读者朋友们好,
告诉一个消息,OpenCV 4.0 alpha 发布 liao,正式版不出意外将于十月底问世。
什么!OpenCV 都 4.0 了?
什么!小张都奔四了!
小张快速看了下,这个版本基于 3.4 的分支,卖点有这么三个:
- 深度学习
- 性能优化
- C++11
深度学习 DNN 模块的改进
- ONNX parser 现已加入 OpenCV DNN 全家桶,现阶段的重点是图像分类
- 比如 AlexNet, Inception v2, Resnet, VGG 等网络。
- 图像分类以外,还部分支持 tiny YOLO v2 物体检测网络。
- 再强调一次,OpenCV DNN 只做 inference。
- OpenCV 4.0 现在支持的网络框架包含:
- ONNX
- Caffe
- Darknet
- Tensorflow
- Torch
- Intel OpenVINO
- 增加对 Mask RCNN 的支持,附上 Python 范例。
性能优化
- 增加 SSE4-, AVX2- 和 NEON-指令级的覆盖率,用到了一个小张没听说过的技术 “wide universal intrinsics”.
- CPU- 和 GPU-加速的 KinFu 实时三维重建算法已加入 opencv_contrib 全家桶。
- 利用 Intel OpenVINO 项目中的 Inference Engine,加速物体检测网络。
- 加速后端新增 HPX,这是一个 C++ 的并行加速标准库。
- 支持基本的 FP16 (新增数据类型 CV_16F)。
大量使用 C++11 特性,向 C 说拜拜
- OpenCV 现在是一个 C++11 的项目了,编译器需要支持 C++11。因此很多方便的新特性可以用到了,比如:
parallel_for
配合labmda
函数一起服用- 方便地遍历
cv::Mat
,通过列举元素来初始化cv::Mat
- 标准库里的
std::string
替代了cv::String
std::shared_ptr
替代了cv::Ptr
parallel_for
可以使用std::thread
来做线程池
- 不幸的是,我们要对 C 接口说再见了,OpenCV 1.x 时代的遗老们(
CvMat
,IplImage
等)正慢慢被删除着,到了 4.0 正式版差不多就都拜拜了。
好了,让我们结束这篇悲伤的文章吧。
vinjn.com - Democratizing Visual Computing