0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

OpenCV 4.0 正式版来啦!

电子工程师 来源:未知 作者:李倩 2018-11-24 10:46 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

OpenCV 4.0 正式版来啦!

重回英特尔的 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

作者曾经报道过的例子:

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 后端(还在开发中!不建议大家使用)。

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

作者曾经对检测功能进行了测试:

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 是值得表扬的亮点!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    183

    文章

    7642

    浏览量

    144692
  • 编译器
    +关注

    关注

    1

    文章

    1670

    浏览量

    51113

原文标题:千呼万唤始出来!OpenCV 4.0正式发布!

文章出处:【微信号:rgznai100,微信公众号:rgznai100】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    没有专利的opencv-python 版本

    所有 官方发布的 opencv-python 核心版本(无 contrib 扩展)都无专利风险——专利问题仅存在于 opencv-contrib-python 扩展模块中的少数算法(如早期 SIFT
    发表于 12-13 12:37

    机器视觉双雄YOLO 和 OpenCV 到底有啥区别?别再傻傻分不清!

    很多人一听到 “YOLO”和“OpenCV” ,总以为它们是同一种东西。其实, 一个是AI算法,一个是视觉工具库;一个会“识别”,一个会“处理” 。本文带你深入了解两者的核心区别与协同关系,以及它们
    的头像 发表于 10-14 16:00 617次阅读
    机器视觉双雄YOLO 和 <b class='flag-5'>OpenCV</b> 到底有啥区别?别再傻傻分不清!

    零成本钢铁侠手套!树莓派+OpenCV 秒变手势遥控器!

    大家好,这是一个树莓派和OpenCV的连载专题。使用树莓派与OpenCV实现姿态估计和面部特征点追踪使用树莓派与OpenCV实现面部和运动追踪的云台系统使用树莓派和OpenCV实现手部
    的头像 发表于 08-16 16:16 903次阅读
    零成本钢铁侠手套!树莓派+<b class='flag-5'>OpenCV</b> 秒变手势遥控器!

    如何使用树莓派与OpenCV实现面部和运动追踪的云台系统?

    大家好,这是一个树莓派和OpenCV的连载专题。使用树莓派与OpenCV实现姿态估计和面部特征点追踪使用树莓派与OpenCV实现面部和运动追踪的云台系统使用树莓派和OpenCV实现手部
    的头像 发表于 08-14 17:45 994次阅读
    如何使用树莓派与<b class='flag-5'>OpenCV</b>实现面部和运动追踪的云台系统?

    如何使用树莓派+OpenCV实现姿态估计和面部特征点追踪?

    大家好,这是一个树莓派和OpenCV的连载专题。使用树莓派与OpenCV实现姿态估计和面部特征点追踪使用树莓派与OpenCV实现面部和运动追踪的云台系统使用树莓派和OpenCV实现手部
    的头像 发表于 08-13 17:44 1006次阅读
    如何使用树莓派+<b class='flag-5'>OpenCV</b>实现姿态估计和面部特征点追踪?

    如何板端编译OpenCV并搭建应用--基于瑞芯微米尔RK3576开发板

    本文将介绍基于米尔电子MYD-LR3576开发板(米尔基于瑞芯微 RK3576开发板)的板端编译OpenCV及环境搭建方案的开发测试。摘自优秀创作者-短笛君 RK3576具有如下配置: 4
    发表于 08-08 17:14

    【Milk-V Duo S 开发板免费体验】SDK编译、人脸检测、OpenCV测试

    【Milk-V Duo S 开发板免费体验】SDK编译、人脸检测、OpenCV测试 本文介绍了 Milk-V Duo S 开发板实现 Buildroot SDK 镜像编译、基于 TDL 模型的人
    发表于 07-11 13:48

    编译opencv_camera_test找不到opencv.hpp怎么解决?

    1.取消makefile中的注释 2.在k230_sdk目录下进入docker环境后使用make mpp-apps编译 期待结果和实际结果 期待得到opencv_camera_test.elf文件
    发表于 06-23 06:14

    如何在k230上运行OpenCV的代码?

    如何在k230上运行OpenCV的代码
    发表于 06-17 06:06

    OpenHarmony应用开发精品课程第七期来啦

    OpenHarmony应用开发精品课程第七期来啦
    的头像 发表于 04-15 14:15 523次阅读
    OpenHarmony应用开发精品课程第七期<b class='flag-5'>来啦</b>

    如何用OpenCV的相机捕捉视频进行人脸检测--基于米尔NXP i.MX93开发板

    本文将介绍基于米尔电子MYD-LMX93开发板(米尔基于NXPi.MX93开发板)的基于OpenCV的人脸检测方案测试。OpenCV提供了一个非常简单的接口,用于相机捕捉一个视频(我用的电脑内置
    的头像 发表于 04-15 11:51 660次阅读
    如何用<b class='flag-5'>OpenCV</b>的相机捕捉视频进行人脸检测--基于米尔NXP i.MX93开发板

    OpenCV行人检测应用方案--基于米尔全志T527开发板

    本文将介绍基于米尔电子MYD-LT527开发板(米尔基于全志T527开发板)的OpenCV行人检测方案测试。摘自优秀创作者-小火苗一、软件环境安装1.安装
    的头像 发表于 04-10 08:03 1122次阅读
    <b class='flag-5'>OpenCV</b>行人检测应用方案--基于米尔全志T527开发板

    为LSDK构建opencv时遇到的问题求解

    我正在尝试使用 flex-builder 来运行 bld -c opencv -r ubuntu:桌面 我想要最新版本的 OpenCV。在我的 sdk.yml 文件中,我将 opencv
    发表于 03-26 08:26

    使用OpenCV保存从摄像头捕获的视频时更改颜色输出视频收到警告怎么解决?

    保存了从配备 OpenCV* 的摄像头捕获的视频。 生成更改的颜色输出视频。 收到警告:[ INFO:0] global .。/opencv/modules/core/src/utils
    发表于 03-05 07:20

    安信可大功率LoRa模组来啦,传输距离可达6.7km

    安信可大功率LoRa模组来啦LoRa小伙伴们!安信可大功率LoRa模组来啦这次小安先带来“Ra-01S-P/Ra-01SC-P”的介绍这次的新品最大发射功率+29dBm最新动态可关注安信可视频号
    的头像 发表于 02-12 18:03 646次阅读
    安信可大功率LoRa模组<b class='flag-5'>来啦</b>,传输距离可达6.7km