OpenCV4.0-pre更新日志

该版本发布于2018.09,是正式版本之前的一个过渡版本。我也没着急编译这个版本,等正式版出来之后再看看效果。

C++11

现在的OpenCV 4.0-pre使用了C++ 11库,所以需要编译器支持C++ 11,在之前的OpenCV 3.x版本,需要在cmake中使用-DENABLE_CXX11=ON手动开启,现在因为OpenCV主体就需要C++11,所以这个选项不需要手动开启,它默认就是支持的。

  • 也正是因为支持C++11,之前OpenCV版本中的cv::Stringcv::Ptr会被C++11标准中的str::stringstr::shared_ptr代替。

DNN方面的改进

  • 增加了对Mask-RCNN模型的支持,更多以及Python例程
  • 整合了ONNX 解析器,现在支持多种分类网络,而YOLO目前只能部分支持(因为YOLO所使用的ONNX版本对最后预测矩形框的层不太支持)。
  • 当在编译的时候开启Intel DLDT 支持时,可以大大提升DNN模块的性能,
  • 默认情况下,blobFromImage一族的函数不会交换red和blue通道,而且也不会对图像进行裁剪。

性能提升

  • 大量的核心程序利用所谓的wide universal intrinsics进行重写,这些intrinsics映射到SSE2, SSE4, AVX2, NEON,VSX中的intrinsics函数,当然开不开启要取决于目标平台是否支持以及编译时候的flag设置。使用这一特性可以显著提升程序的性能,就算一些函数已经优化了,依然可以再提升其性能。如果你在OpenCV编译的时候配置CPU_BASELINE=AVX2,那么图像处理函数一般会得到15-30%的性能提升,在4.0正式版本中我们还将优化更多的函数来提升程序的性能。
  • 二维码检测器已经整合进OpenCV中,我们也提供了例程,在正式版本中我们还会将二维码解码部分也整合进去,这样才是一个完整的解决方案,一家人整整齐齐。
  • Kinect Fusion也被整合进opencv_contrib/rgbd,在CPU和GPU(OpenCL)都经过了优化。将来Kinect 2 会在opencv/videoio中支持。

Opencv Github:更新日志