千呼万唤始出来,OpenCV 4.0正式发布!


OpenCV 4.0 正式版来啦!虽然官网还没更新,但Github已经放出来了!

重回英特尔的OpenCV终于迎来一次大版本更新,增加了诸多新特性,快来一起看看吧~

因为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倍的内存!

3.编译新版OpenCV现在需要支持 C++ 11 的编译器。

DNN(深度神经网络)模块是目前OpenCV更新最重要的模块!

1.增加Mask-RCNN模型支持。

其使用指南:

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曾经对检测功能进行了测试:

OpenCV4.0 快速QR二维码检测测试示例

实现了流行的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是值得表扬的亮点!

下载

(0)

相关推荐

  • pb模型文件与.pbtxt配置不匹配导致OpenCV调用dnn模块出错(Mask R

    问题:pb模型文件与.pbtxt配置不匹配导致OpenCV调用dnn模块出错(Mask R-CNN为例) OpenCV调用tensorflow的pb模型,需要.pb和.pbtxt文件. 在前期采用Te ...

  • (8条消息) opencv 使用DNN模块调用Tensorflow的Mask

    文章目录 环境准备 利用opencv自带的工具生成对应的模型对应的描述文件 DNN模块使用 demo 效果 环境准备 Python3 OpenCV 4.5.0 (4版本以上都可以) Mask-RCNN ...

  • 利用OpenCV实现基于深度学习的超分辨率处理

    重磅干货,第一时间送达 OpenCV是一个非常强大的计算机视觉处理的工具库.很多小伙伴在入门图像处理时都需要学习OpenCV的使用.但是随着计算机视觉技术的发展,越来越多的算法涌现出来,人们逐渐觉得O ...

  • opencv调用darknet

    本文主要介绍如何通过opencv调用已经训练好的darknet模型进行目标检测 1.模型及配置文件下载 需要下载以下文件 已经训练好的模型权重文件 **.weights 模型配置文件 yolov3.c ...

  • opencv调用自己训练的yolo3模型

    一 实现流程 1.准备好自己的数据集,通过yolo3结构框架训练好自己的模型文件(loss值一般训练到10就OK)yolov3源码:https://github.com/qqwweee/keras-y ...

  • 实用教程详解:用OpenCV的DNN模块部署YOLOv5目标检测

    作者丨nihate 审稿|邓富城 编辑丨极市平台 极市导读 本文中介绍的整套程序只依赖OpenCV库就能正常运行,彻底摆脱了对深度学习框架的依赖.文章讲述了作者在自己编写用OpenCV的dnn模块做Y ...

  • (4条消息) 用opencv的dnn模块实现Yolo

    最近在微信朋友圈里疯传的Yolo-Fastest(github代码地址是https://github.com/dog-qiuqiu/Yolo-Fastest),据说模型非常小,且运行速度快,而且,这个 ...

  • 【从零学习OpenCV 4】深度神经网络应用实例

    重磅干货,第一时间送达 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍<OpenCV 4开发详解>.为了更让小伙伴更早的了解最新版的OpenCV 4,小白与出版社沟通 ...

  • 基于OpenCV的dnn模块使用YOLOv3进行目标检测

    0.说明: 测试的opencv版本为opencv3.4.5 电脑cup:intel 4代i5(4200U) 1.YOLO介绍: YOLO详解(知乎) 2.下载yolov3的配置文件: wget htt ...

  • 用 Python 实现抖音尬舞机

    如今说到体感游戏,大家一定都不陌生,比如微软的 Kinect.任天堂的 Switch,都曾是游戏业的革命性产品.而另一款网红产品-抖音,也在去年底上线过一个"尬舞机"的音乐体感游戏 ...

  • OpenCV4.4加载C 版和pytorch版YOLOv3及YOLOv4实现自定义目标检测

    opencv在4.4版本添加了对yolov4的支持,网上也有相应的教程,但是目前中文网上的教程大都基于C++实现,或者是用cv2.dnn.readNetFromDarknet.这个比较low-leve ...

  • opencv调用yolov3模型来进行图像检测

    之前使用了opencv来调用ssd的模型来检测物体,今天学了一下用opencv调用yolov3的模型来检测物体,二者在预测图形的部分,代码流程差不多,反正就是加载模型然后预测输出,但是对于输出结果的处 ...

  • (10条消息) OpenCV之DNN模块,实现深度学习网络的推理加速

    OpenCV是计算机视觉领域使用最为广泛的开源库,以功能全面使用方便著称.自3.3版本开始,OpenCV加入了对深度神经网络(DNN)推理运算的支持.在LiveVideoStack线上交流分享中英特尔 ...

  • 2021年python库大全

    一.算法设计 Python 的数据结构,算法和设计模式的实现.另请参阅真棒算法. 演算法 algorithms 数据结构和算法的最小示例. https://github.com/keon/algori ...