点击我爱计算机视觉标星,更快获取CVML新技术python
OpenCV 4.0 正式版来啦!虽然官网还没更新,但Github已经放出来了!git
重回英特尔的OpenCV终于迎来一次大版本更新,增长了诸多新特性,快来一块儿看看吧~github
由于OpenCV最开始开发时的语言是C,致使许多模块没法利用C++ 11的良好特性,OpenCV 4.0版本的一个重要使命就是去除C语言风格的接口,使其彻底支持C++ 11!
算法
1.大量从OpenCV 1.x遗留的C语言风格的API接口被删掉,主要影响的模块是objdetect, photo, video, videoio, imgcodecs, calib3d。后端
2.在core模块中的持久化(在XML,YAML或JSON中存储和加载结构化数据)已 彻底用 C ++ 从新实现,并去除了相应的 C 风格的接口。 目前,base64支持还没有完成(仅支持加载base64编码的XML和YAML,还未支持编码)。 如今,存储在FileNode中的序列的随机访问是O(N)操做; 使用cv :: FileNodeIterator可以更快地进行顺序访问。 速度上,FileStorage的加载比之前的实现少了3-6倍的内存!api
3.编译新版OpenCV如今须要支持 C++ 11 的编译器。微信
DNN(深度神经网络)模块是目前OpenCV更新最重要的模块!
网络
1.增长Mask-RCNN模型支持。app
其使用指南:ide
https://github.com/opencv/opencv/wiki/TensorFlow-Object-Detection-API
Python例子:https://github.com/opencv/opencv/blob/master/samples/dnn/mask_rcnn.py
52CV曾经报道过的例子:
OpenCV4.0 Mask RCNN 实例分割示例 C++/Python实现
2.集成ONNX解析器。 支持多个流行的分类网络。 部分支持YOLO对象检测网络(YOLO的ONNX版本缺乏一些提供矩形列表的最终图层)。
3.经过引入Intel DLDT 改进DNN模块速度。
Intel DLDT近期已经开源,详见:
https://software.intel.com/openvino-toolkit
4.API更改:默认状况下,blobFromImage方法不会交换R和B通道,也不会对输入图像进行裁剪。 并且,此API更改也已添加到OpenCV 3.4分支。
5.为不支持OpenCL而支持Vulkan的硬件平台添加了实验性质的Vulkan后端(还在开发中!不建议你们使用——52CV君)。
6.为OpenCV支持的最流行的深度学习网络添加了快捷方式。 能够经过指定模型的别名,跳过预处理参数甚至模型的路径!
好比:
python object_detection.py --model opencv_face_detector.caffemodel --config opencv_face_detector.prototxt --mean 104 177 123 --width 300 --height 300
能够直接被替代为:
python object_detection.py opencv_fd
7.修复了AMD和NVIDIA GPU上的OpenCL加速。 如今,能够为模型启用DNN_TARGET_OPENCL,开启OpenCL支持。 请注意,DNN_TARGET_OPENCL_FP16仅在英特尔GPU上进行测试,所以仍须要额外的flags。(这个善意的提醒也就意味着你最好不要用那两家的显卡玩OpenCV(^ ^))
G-API为算法的硬件优化加速提供计算图支持!
opencv_gapi是全新添加的模块, 它是很是有效的图像处理引擎。开发者能够在程序中定义多个图像处理步骤组成的图,执行的时候进行优化,使得fast and portable。
很是看好这一模块的应用!
“加速”是OpenCV开发永恒不变的主题!
每次发布这块的说明都差很少,总结起来就是一句话:
咱们很努力地给大家在CPU的指令级上进行了加速,只要是支持该指令的CPU尽可能让大家用上,并且咱们还支持NEON了哦~
objdetect模块新增QR码的检测和解码!
由于这个功能在移动端几乎成为APP的标配了。
参考例子:
https://github.com/opencv/opencv/blob/master/samples/cpp/qrcode.cpp
52CV曾经对检测功能进行了测试:
实现了流行的Kinect Fusion算法!
并针对CPU和GPU(OpenCL)进行了优化,集成到opencv_contrib / rgbd模块中。 为了使实时采集处理更高效,在opencv / videoio模块中更新了Kinect 2支持。 在4.0 beta版本中,iGPU的代码已经加速,在高分辨率的状况下(512x512x512 integration volume),性能提高了3倍。
很是高效且高质量的DIS密集光流算法已经从opencv_contrib转移到opencv/video模块。
示例:
https://github.com/opencv/opencv/blob/master/samples/cpp/dis_opticalflow.cpp
这仍是比较赞的,以前OpenCV的光流模块相比学术界的最新成果实在是太弱了。
总结
新版OpenCV更加聚焦图像处理基础功能和深度学习模块!英特尔自家的加速库和G-API是值得表扬的亮点!
下载
由于国内网络时有不稳定,为帮助你们第一时间尝鲜,新版OpenCV压缩包已经被上传到百度云,在“我爱计算机视觉”微信公众号对话界面回复“opencv4”,便可收到百度云下载地址。
加群交流
关注计算机视觉技术,欢迎加入52CV群,扫码添加52CV君拉你入群(请务必注明:加群):
喜欢在QQ交流的童鞋,能够加52CV官方QQ群:928997753。
(不会时时在线,若是没能及时经过验证还请见谅)
长按关注我爱计算机视觉
【点赞与转发】就是一种鼓励
本文分享自微信公众号 - 我爱计算机视觉(aicvml)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。