继2015年的opencv3.0出来后,3.5年时候后opencv 4.0出现了。
那么opencv4.0做了些什么新的功能呢?
- OpenCV现在是C ++ 11库,需要符合C ++ 11标准的编译器。所需的最低CMake版本已提升至3.5.1。
- 很多来自OpenCV 1.x的C API已被删除。
- 在核心模块中的持久性(在XML,YAML或JSON中存储和加载结构化数据)已在C ++中完全重新实现,并且也丢失了C API。
- 添加了新的模块G-API,它可以作为非常有效的基于图形的图像处理流水线的引擎,这个就是类型用tensoflow的方式去布局网络。
- dnn模块现在包括实验性Vulkan后端,并支持ONNX格式的网络,它支持各种分类网络,如AlexNet,Inception v2,Resnet,VGG等。还支持微小的YOLO v2对象检测网络。性能更加好,加了mask-rcnn这些咯。使用英特尔推理引擎(英特尔OpenVINO的一部分)时更快的对象检测。
- 流行的Kinect Fusion算法已针对CPU和GPU(OpenCL)实施和优化。
- QR码检测器和解码器已添加到objdetect模块中(二维码的识别)
- 非常高效且高质量的DIS密集光流算法已从opencv_contrib转移到视频模块。
- 更多细节可以在之前的宣布中找到:4.0-alpha,4.0-beta,4.0-rc和更新日志
需要注意:
- 需要TBB,没有的话会错,这是我的尝试过的。
- 认真看下博客就可完成安装。
- cuda9.0是为了加速,但是DNN模块不支持cuda编程,就算可以也需要用到一个插件且只支持inter的GPU。尴尬吧!
- 用的不好,会觉得GPU比CPU还慢,只是部分计算GPU快,很多时候需要把结果从GPU传回CPU计算,其实快不了什么,而且是比较对cuda编程很熟悉的工程师才能驾驭的,如果工作需要你可以尝试,否则我觉得这个坑还是不要跳了,选择传统方法去做分割、识别、检测好啦。
本篇做整理用:
可参考:
WIN10 + OpenCV3.4 + CUDA8.0 + Cmake3.9.0 + TBB + VS2015配置/重编译
https://blog.csdn.net/gggttt222/article/details/79482033
cmake编译opencv3:opencv3.3.1+contrib+cuda8.0+vs2013(2015)+cmake3.10.1
https://blog.csdn.net/luqiang6q/article/details/78887670