先说一句:OpenCV 5 已经在路上了!
前言
OpenCV 4.4.0 于2020年7月18日正式发布,不得不说OpenCV 作为最大开源的图像处理工具,提供的内容太全面了,对小白友好度很高。不仅算法众多,而且文档、源码、各平台下的SDK都极易获取/访问。
https://opencv.org/releases/
OpenCV 4.4.0 亮点精选:
SIFT 迁移至主库(因为SIFT专利过期)
支持YOLO v4
支持EfficientDet
OpenCV 4.4.0
一、SIFT
SIFT(尺度不变特征变换)算法已移至主库(因为SIFT的专利已过期)。
SIFT 算法在谷歌学术上引用量已高达 19339 + 57536
很多刚入门CV的同学,应该对传统算法不太熟悉。像SIFT(1999年出现,2004年完善)在传统图像处理中的地位应该就像深度学习中的ResNet一样(比喻可能不太恰当),主要用来做特征点检测与描述,可以扩展应用于图像匹配、三维重建、图像拼接等任务。
SIFT 中的金字塔思想,现在也被很多CNN网络参考和借鉴,主要用于解决 scale(尺度)问题。
多说一句,SIFT是否过期其实对学生来说,意义不大,因为本身就是可以用于学术研究,而且之前在non-free模块中也可以快速使用;但对于企业级商业应用来说,意义还是很大的。
二、DNN模块
改进 layers/激活/支持更多模型。
注:OpenCV中的DNN模块大多数是用于inference,因为其并不是担任深度学习框架的角色,所以大多数模型并非首发,而是支持。
2.1 支持最新的YOLO v4
因为原版YOLOv4就是基于C语言开发的,所以迁移到OpenCV中相比较并不是特别难的事情,所以时隔3个月,OpenCV就快速支持了YOLOv4。
2.2 支持EfficientDet
谷歌家的EfficientDet 没话说,性能强悍,mAP和FPS的表现都很赞。
EfficientDet
2.3 支持FlowNet2
FlowNet2 是基于深度学习的光流估计网络,早期开源的版本就是基于Caffe框架的,现在终于迁移过来了。
FlowNet2
除了上述更新之外,DNN模型还有如下更新:
ONNX:添加对Resnet_backbone(Torchvision)的支持
添加文本识别新示例
增加了对OpenVINO 2020.3 LTS / 2020.4版本的支持
CUDA后端中的许多修复和优化
三、G-API模块
在 OpenCV后端引入了用于状态内核的新API:GAPI_OCV_KERNEL_ST。有状态内核在各个图执行或流的视频帧之间(以流模式)保留其状态。
在G-API中引入了更多面向视频的操作:goodFeaturesToTrack,buildOpticalFlowPyramid,calcOpicalFlowPyrLK。
添加了更多的图像处理内核:Laplacian和双边 filters。
修复了 G-API的 OpenCL后端中的潜在崩溃。
四、社区贡献
OpenCV社区的许多其他伟大贡献,包括但不限于:
Obj-C / Swift绑定
(opencv_contrib)Julia绑定是正在进行的GSoC项目的一部分
(opencv_contrib)BIMEF:生物启发的多重曝光融合框架,用于弱光图像增强
Otsu 阈值化支持 CV_16UC1图像
为文本检测添加笔画宽度变换(Stroke Width Transform,SWT)
贡献者:
opencv:105位
opencv_contrib:27位