作者 | 周强(本文为作者独立观点,转载请联系作者)

来源 | 我爱计算机视觉

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

-【完】-

精彩推荐

BDTC 2018

2018 中国大数据技术大会将于 12 月 6 - 8 日在新云南皇冠假日酒店举行。汇聚超百位国内外实力讲师从学界翘楚到行业一线大拿:

管晓宏:中国科学院院士;

张宏江:源码资本投资合伙人;

张晓东:美国俄亥俄州立大学 Robert M. Critchfield 讲席教授;

陈性元:北京信息科学技术研究院副院长;

周靖人:阿里巴巴集团副总裁;

李浩源:Alluxio 公司创始人&CEO

......

全方位立体解读大数据时代的技术进程,为众技术爱好者奉上一场优质干货盛宴。


推荐阅读

胜过iPhone XS?Google Pixel的“夜视功能”是怎样炼成的

近期最受大家关注的机器学习项目Top10!

干货(附源代码) | 爬取一万条b站评论,分析9.7分的新番凭啥这么火?

程序员如何 Get 分布式锁的正确姿势?

让你崩溃无语的程序命名有哪些?

2年2亿美金,澳本聪耗得起BCH内战又怎样?

刚写完排序算法,就被开除了…

千呼万唤始出来!OpenCV 4.0正式发布!相关推荐

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

    点击我爱计算机视觉标星,更快获取CVML新技术 OpenCV 4.0 正式版来啦!虽然官网还没更新,但Github已经放出来了! 重回英特尔的OpenCV终于迎来一次大版本更新,增加了诸多新特性,快来 ...

  2. Apache Kafka 1.0.0正式发布!

    千呼万唤始出来,经过7年的发展与完善,Apache Kafka 1.0.0正式发布!在笔者看来,比起1.0.0引入的新功能,此版本最大的意义在于标识Kafka各种组件功能的稳定性.不过我们还是来看下1 ...

  3. OpenCV 4.0 rc版本发布,扩展计算图Graph API

    点击我爱计算机视觉标星,更快获取CVML新技术 rc版本即正式发布前的候选版(release candidate),指在重大版本号升级前,几乎已经完工了,但为避免可能的百密一疏,先让大家"测 ...

  4. 百度地图android室内定位,百度地图4.0正式发布,主打免费语音导航、室内定位、实时公交和生活搜索 (视频)...

    自2010年10月百度地图在塞班平台上线了第一个版本以后,陆续登陆了Android和iPhone平台,据百度地图团队介绍,其最新的用户数已达7000万.今天,百度地图4.0 正式发布(iPhone版 ...

  5. python3.8.0shell_Python 3.8.0 正式发布 更新内容

    导读 Python是一种跨平台的计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项目的开发 ...

  6. Apache Kylin v2.5.0正式发布,开源分布式分析引擎

    文章转载自开源中国,作者 Apache Kylin 社区 日前,Apache Kylin 社区宣布,Apache Kylin v2.5.0 正式发布. Apache Kylin 是一个开源的分布式分析 ...

  7. OpenCV实现0到9数字识别OCR

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 使用OpenCV对0到9数字进行识别,实现简单OCR功能,基于CA ...

  8. Angular 表单验证类库 ngx-validator 1.0 正式发布

    背景介绍 之前写了一篇 <如何优雅的使用 Angular 表单验证>,结尾处介绍了统一验证反馈的类库 ngx-validator ,由于这段时间一直在新模块做微前端以及相关业务组件库,工具 ...

  9. 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置

    1.下载和安装OpenCV SDK VS2010不用说,肯定都安装了吧.来说说当前最新的OpenCV版本2.4.8(2014年2月24日),2.4.9 (2014年4月)的下载和安装.与其说是安装,不 ...

最新文章

  1. 跟我学Springboot开发后端管理系统4:数据库连接池Druid和HikariCP
  2. hdu3329 二分+搜索
  3. 细说plsql中的空值表达式
  4. 打开和关闭mysql服务的两种方法
  5. Redis与Lua详解
  6. R语言数据转换(split-apply-combin…
  7. python必读_学好Python必读的几篇文章
  8. html不建议翻译,[译] 可用但最不常见的 HTML5 标签
  9. 遗传算法python实现
  10. python大众点评霸王餐_大众点评-每天自动抽取霸王餐
  11. kindle看pdf乱码_Kindle 中文书名 目录 乱码 解决办法
  12. 阿里一位 70 后程序员、架构师的 26 个职场感悟
  13. 推荐一个Github上很酷的开源项目——The Octo-Bouncer
  14. 如何提高页面性能并充分利用主机
  15. R语言基础 | t检验、F检验
  16. MAC或linux上使用MODIS投影镶嵌工具MRT-客户端
  17. ubuntu18.04安装opencv viz模块
  18. Mysql中decode函数的几种用法
  19. 体系设计建模软件系统
  20. Java实现mysql保存微信特殊表情符号

热门文章

  1. HDOJ2569 ( 彼岸 ) 【递推公式】
  2. 认识HTML5的WebSocket 认识HTML5的WebSocket
  3. sql server日志占用空间过大的问题
  4. Swing布局管理器介绍
  5. Error Creating Control when creating a custom control
  6. SpringBoot自动配置的原理及实现
  7. Java面试题大汇总,2021年附答案解析
  8. C/C++、嵌入式开发岗笔试集锦
  9. 如何为Android上的产品设计一款合适的图标
  10. 【Java】Linux下安装配置Oracle JDK 1.7版本