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

论坛 期权论坛 脚本     
匿名技术用户   2020-12-27 08:11   11   0

在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在之前就已经支持了机器学习,这次好像没提到做了什么改进

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP