OpenCVOpen3D开源视觉库的详细笔记

网友投稿 1244 2022-05-30

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

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中公开了一组精心选择的数据结构和算法。后端经过高度优化,并设置为并行化。

介绍

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,所以还是推荐第一种安装方式。除非系统非常干净,因为系统装的东西太多的话,安装包冲突会很麻烦。

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

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

Reference

Python API

open3d.camera

open3d.color_map

open3d.geometry

open3d.io

open3d.integration

open3d.odometry

open3d.registration

open3d.utility

open3d.visualization

OpenCV 华为开源镜像站 Mirrors

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:冒泡法排序笔记
下一篇:深度学习最全优化方法总结比较(SGD,Adagrad,Adadelta,Adam,Adamax,Nadam)
相关文章