OpenCV 4.0和4.1-新功能?



我们回到有关开源计算机视觉库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开发人员将尝试回答这些问题。

Source: https://habr.com/ru/post/zh-CN452790/


All Articles