OpenCV推出4.0,有什么大动作?

OpenCV 4.0带来了重大更新,包括成为C++11库,删除C API,核心模块的持久性重写,新增G-API模块,dnn模块增加Vulkan后端和ONNX支持,以及视频稳定和光流算法的优化。OpenCV 4.0的G-API提供了一种新的图像处理方法,类似于基于图形的执行模型。此外,dnn模块性能提升,支持更多的深度学习层,并包含底层加速库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在OpenCV3.0发布后的时隔三年半后,终于推出4.x系列第一个稳定版本4.0。这次有什么变动?我们又有那些新工具可用?

 

官方给出的发布亮点:

  • OpenCV现在是C ++ 11库,需要符合C ++ 11标准的编译器。所需的最低

    CMake版本已提升至3.5.1。

  • 很多来自OpenCV 1.x的C API已被删除。

  • 核心模块中的持久性(在XML,YAML或JSON中存储和加载结构化数据)已

    在C ++中完全重新实现,并且也丢失了C API。

  • 添加了新的模块G-API,它可以作为非常有效的基于图形的图像处理流水线的

    引擎。

  • dnn模块现在包括实验性Vulkan后端,并支持ONNX格式的网络。

  • 流行的Kinect Fusion算法已针对CPU和GPU(OpenCL)实施和优化

  • QR码检测器和解码器已添加到objdetect模块中

  • 非常高效且高质量的DIS密集光流算法已从opencv_contrib转移到视频模块。

  • 更多细节可以在之前的宣布中找到:4.0-alpha4.0-beta4.0-rc和更新日志

分支3.4将切换到维护模式:只接受错误修正和灯光功能。BTW,版本3.4.4也准备好了!

我对比了一下opencv43.4.4的官方文档

opencv3.4.4是3.x系列最后一个版本,是稳定版本,也是4.0之前最后一个稳定版本。4.x稳定版之前还有个beta版本。所有版本的API doc

新增如下:

1GAPI 图api Graph

看到Graph这个单词你可能会想到tensorflow Graph。对!没错,我看了介绍觉得这也是类似的东西。

OpenCV Graph API(或G-API)是一种新的OpenCV模块,旨在使常规图像处理快速便携。通过引入新的基于图形的执行模型来实现这两个目标。

G-API是OpenCV中的一个特殊模块 - 与大多数其他主要模块相比,这个模块充当框架而不是某些特定的CV算法。G-API提供了定义CV操作,使用它构造图形(以表达式的形式),最后实现并运行特定后端的操作的方法。

​这是官方给出的 在G-API上移植各向异性图像分割 原图太大,我截取了部分

 

2 videostab 视频稳定

这个在3.4.4中有一个videostab .hpp的文件,在4.0中已经成为一个模块。恩应该是这样。

模块包括:全局运动估计、快速行进方法

详细说明

视频稳定模块包含一组可用于解决视频稳定问题的功能和类。实施了一些方法,其中大部分都在论文[135]和[78]中描述。但是,原始纸张方法存在一些扩展和偏差。

参考

“运动修复的全帧视频稳定”松下靖久,Eyal Ofek,Weina Ge,Tangou Tang,高级会员,Heung-Yeung Shum

“具有强大L1最佳相机路径的自动定向视频稳定”Matthias Grundmann,Vivek Kwatra,Irfan Essa

 

三、GitHub上的更改日志

opencv的GitHub上写的更改日志链接:https://github.com/opencv/opencv/wiki/ChangeLog

dnn深度学习

opencv dnn

机器之心提到

OpenCV 4.0 支持 Mask-RCNN 模型,性能也有所提升,图像处理操作可实现 15%-30% 的速度提升。

目前 OpenCV 所支持的深度学习层级函数:

AbsVal

AveragePooling

BatchNormalization

Concatenation

Convolution (including dilated convolution)

Crop

Deconvolution, a.k.a. transposed convolution or full convolution

DetectionOutput (SSD-specific layer)

Dropout

Eltwise (+, *, max)

Flatten

FullyConnected

LRN

LSTM

MaxPooling

MaxUnpooling

MVN

NormalizeBBox (SSD-specific layer)

Padding

Permute

Power

PReLU (including ChannelPReLU with channel-specific slopes)

PriorBox (SSD-specific layer)

ReLU

RNN

Scale

Shift

Sigmoid

Slice

Softmax

Split

TanH

对于对性能要求很高的神经网络层,这个 DNN 模块包括 SSE、AVX、AVX2 和 NEON 等底层加速库,且还有持续优化中的 Halide 后端。

一些网络的测试效率(ms毫秒)

来自opencv GitHub给出的测试结果。

链接https://github.com/opencv/opencv/wiki/DNN-Efficiency

OS: Linux 4.8.0-34-generic x86_64
Compiler: gcc 5.4.0
CPU: Intel® Core™ i7-6700K CPU @ 4.00GHz x 8
GPU: Intel® HD Graphics 530 (Skylake GT2)

机器学习

opencv在之前就已经支持了机器学习,这次好像没提到做了什么改进

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值