
我们
回到有关开源计算机视觉
库OpenCV的故事。 该项目由在英特尔工作的一组开发人员驱动,并得到社区的长期支持,从而得以发展和发展。 在2018年底,发布了4.x分支的第一个稳定版本,就在一个月前发布了一个新更新-版本4.1。 我们要求该库的作者简要列出这两个版本为OpenCV功能带来了什么。
Opencv的4.0
OpenCV 4.0的发行完成了3.x版的生命周期-为了修复错误和进行较小的改进,创建了3.4分支,从中已经创建了3.4.x的较小版本(类似于2.4.x)。
OpenCV 4.0最终版- OpenCV现在是C ++ 11库,并且需要与C ++ 11兼容的编译器。
- 已删除过时的C API的许多功能(从OpenCV 1.0开始),旧的常量和函数声明已移至单独的头文件( imgproc_c.h ),现在应由用户明确包含( #include <opencv / imgproc / imgproc_c.h> );
- 所有的CUDA模块都已移植到opencv_contrib存储库中。
- 用于在文件中写入和读取数据的持久性API已用C ++重写,旧功能已删除;
- 添加了一个新的G-API模块,该模块允许您根据图像上的操作构建图形并对其进行各种优化。
- 在dnn模块中增加了对深度学习部署工具包(包括开源版本 )的支持,包括在Raspberri Pi 3上使用Intel Movidius神经计算棒或Intel神经计算棒2 ;
- dnn模块中已添加了对ONNX (开放神经网络交换)格式的网络的支持;
- 在 dnn模块中增加了对通过Vulkan进行计算的实验支持;
- 添加了用于处理KinectFusion的 3D场景/模型的实时算法的实现 (针对CPU和GPU / OpenCL进行了优化);
- 对检测和解码QR码的支持已添加到objdetect模块中(解码器使用QUirc库)-今年夏天,作为暑期实习的一部分,将进行工作以提高质量,并且可能会添加同时检测-解码图像中多个QR码的模式。
- 一种非常高效且同时高精度的DIS光流算法从opencv_contrib传输到主存储库的视频模块。
Opencv的4.1
- 在核心和imgproc模块中增加了许多算法的调度优化实现;
- dnn模块的改进:
- 为在Intel Neural Compute Stick 2上启动网络提供了支持(使用DLDT);
- 减少最大内存消耗,引入了对TensorFlow的许多新网络的支持
- Videoio模块增加了对Android Media NDK API的支持,可从C ++代码读取Android设备上的视频文件/流(用于测试算法);
- 增加了一个用于分析图像质量的新模块( opencv_contrib / quality )。 它既实现了基本算法(PSNR,SSIM),又实现了新的专用算法(例如不使用原始BRISQUE图像的质量评估算法-盲/无参考图像空间质量评估器);
- 实施了几种新算法:稳健的局部光通量,准密集立体声,连接到机械手的摄像机校准(Hand-Eye);
有关该库的更多信息,请参见
项目站点,此
站点已发生了无法识别的变化。
从4.0.0到4.1.0的补丁程序数量:462(每天大约5.3个补丁程序,不包括周末和节假日)。 如您所见,有很多变化,而且它们都是重要的。 如果您对嵌入式功能有疑问,或者对未实现的功能有疑问,欢迎发表评论,OpenCV开发人员将尝试回答这些问题。