OpenCV与Open3D等开源视觉库的详细笔记

开源视觉库,从二维(2D)逐步发展到三维(3D)并已经日益成熟。OpenCV版本为4.1.2+,Open3D版本为0.8+。

OpenCV与Open3D等开源视觉库的详细笔记_第1张图片

OpenCV:

OpenCV(开源计算机视觉库)是一个开源计算机视觉和机器学习软件库。OpenCV的构建旨在为计算机视觉应用程序提供通用的基础结构,并加速在商业产品中使用机器感知。作为BSD许可的产品,OpenCV使企业可以轻松地使用和修改代码。

该库具有2500多种优化算法,其中包括一整套经典和最新的计算机视觉和机器学习算法。这些算法可用于检测和识别人脸,识别物体,对视频中的人类动作进行分类,跟踪相机运动,跟踪运动物体,提取物体的3D模型,从立体相机产生3D点云,将图像缝合在一起以产生高分辨率整个场景的图像,从图像数据库中查找相似的图像,从使用闪光灯拍摄的图像中消除红眼,跟随眼睛的运动,识别风景并建立标记以将其与增强现实叠加在一起等。OpenCV拥有超过4.7万人的用户社区,下载量估计超过1800万。该库在公司,研究小组和政府机构中得到广泛使用。

除了使用该库的Google,Yahoo,Microsoft,Intel,IBM,Sony,Honda,Toyota之类的知名公司外,还有许多新兴公司(例如Applied Minds,VideoSurf和Zeitera)广泛使用OpenCV。OpenCV的部署用途包括将街景图像拼接在一起,检测以色列监视视频中的入侵,监视中国的矿山设备,帮助机器人导航和拾取Willow Garage的物体,检测欧洲游泳池溺水事故,在西班牙和纽约,在土耳其检查跑道上的碎屑,检查世界各地工厂产品上的标签,然后在日本进行快速面部识别。

它具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux,Arduino和Mac OS。OpenCV主要倾向于实时视觉应用,并在可用时利用MMX和SSE指令。 目前正在积极开发功能齐全的CUDA和OpenCL接口。有500多种算法,而构成或支持这些算法的功能大约是其10倍。OpenCV用C ++原生编写,并具有可与STL容器无缝配合的模板化接口。

  • OpenCL:开放计算语言(OpenCL)是一种开放标准,用于编写跨异构平台(包括CPU,GPU,DSP等)运行的代码。特别是,OpenCL为应用程序提供对GPU的访问,以用于非图形计算(GPGPU),在某些情况下会导致大大加快了速度。在计算机视觉中,许多算法可以在GPU上比在CPU上更有效地运行:例如图像处理,矩阵算术,计算摄影,对象检测等。
  • OpenGL:OpenGL是开发便携式,交互式2D和3D图形应用程序的主要环境。自1992年问世以来,OpenGL已成为业界使用最广泛且受支持最多的2D和3D图形应用程序编程接口(API),将成千上万的应用程序带入各种计算机平台。OpenGL通过合并大量的渲染,纹理映射,特殊效果和其他强大的可视化功能来促进创新并加快应用程序开发。开发人员可以在所有流行的台式机和工作站平台上利用OpenGL的功能,从而确保广泛的应用程序部署。

Open3D:

Open3D是一个开放源代码库,支持快速开发处理3D数据的软件。Open3D前端在C++和Python中公开了一组精心选择的数据结构和算法。后端经过高度优化,并设置为并行化。

OpenCV与Open3D等开源视觉库的详细笔记_第2张图片

介绍

Open3D是一个开放源代码库,支持快速开发处理3D数据的软件。Open3D前端在C ++和Python中公开了一组精心选择的数据结构和算法。后端经过高度优化,并设置为并行化。Open3D是从一开始就开发出来的,带有很少的,经过仔细考虑的依赖项。它可以在不同的平台上设置,并且可以从源代码进行最小的编译。代码干净,样式一致,并通过清晰的代码审查机制进行维护。Open3D已用于许多已发布的研究项目中,并已积极部署在云中。我们欢迎开源社区的贡献。

核心功能

  • 基本的3D数据结构
  • 基本的3D数据处理算法
  • 场景重建
  • 表面对齐
  • 3D可视化
  • Python绑定

支持的编译器

  • Linux上的GCC 4.8及更高版本
  • OS X上的XCode 8.0及更高版本
  • Windows上的Visual Studio 2015及更高版本

PCL:The Point Cloud Library(或PCL)是大型的,开放项目用于2D / 3D图像和点云的处理。PCL框架包含众多最新算法,包括滤波,特征估计,表面重建,配准,模型拟合和分段。这些算法可用于,例如,从嘈杂的数据中过滤离群值,将3D点云缝合在一起,分割场景的相关部分,提取关键点并计算描述符以根据物体的几何外观识别世界上的物体,并从中创建表面点云并将其可视化

计算机视觉库OpenCV早年也是Intel开源的,在Intel公司的支持下,Open3D会像OpenCV一样成为三维开源视觉SDK标杆。

从源码编译安装,但是相对复杂一些,特别注意:如果系统之前已经安装了ROS,安装Open3D的源码编译依赖时会卸载掉ROS,所以还是推荐第一种安装方式。除非系统非常干净,因为系统装的东西太多的话,安装包冲突会很麻烦。


OpenCV与Open3D等开源视觉库的详细笔记_第3张图片


Open3D: A Modern Library for 3D Data Processing

  • 用于3D数据处理的现代库

  • About Open3D 关于
    • Core features
    • Supported compilers
    • Resources
  • Getting Started 入门
    • Installing from PyPI or Conda
      • PyPI
      • Conda
      • Try it
    • Running Open3D tutorials
  • Compiling from source 源码编译
    • Ubuntu
      • 1. Install dependencies (optional)
      • 2. Setup Python binding environments
        • 2.1 Select the right Python executable
        • 2.2 Jupyter visualization widgets support (experimental)
        • 2.3 Disable Python binding
      • 3. Config
      • 4. Build
      • 5. Install
        • 5.1 Install Open3D Python package
        • 5.2 Install Open3D as a C++ library
    • MacOS
      • 1. Install dependencies (optional)
      • 2. Setup Python binding environments
      • 3. Config
      • 4. Build
      • 5. Install
    • Windows
      • 1. Dependencies
      • 2. Setup Python binding environments
      • 3. Config (generate Visual Studio solution)
      • 4. Build
      • 5. Install
    • Sanity check
    • Compilation Options
      • Dependencies
      • OpenMP
      • Unit test
  • Building Documentation 编译文档
    • Prerequisites
      • 1. Build Open3D from source
      • 2. Install Sphinx
      • 3. Install Doxygen
    • Build
  • Contributing to Open3D 贡献
    • Issues and pull requests
    • Maintain sanity of the project
    • Coding style
    • Automated style Checker
      • Install clang-format
        • Ubuntu
        • macOS
        • Windows
        • Checking clang-format version
      • Install YAPF
      • Checking and applying format
        • Ubuntu & macOS
        • Windows

Tutorial 教程

  • Basic
  • Advanced
  • Reconstruction system
  • C++ interface
  • Docker
  • Reference

Python API 

  • open3d.camera
  • open3d.color_map
  • open3d.geometry
  • open3d.io
  • open3d.integration
  • open3d.odometry
  • open3d.registration
  • open3d.utility
  • open3d.visualization

 

你可能感兴趣的:(Ubuntu软件)