OceaBase开发者大会落地上海!4月20日共同探索数据库前沿趋势!报名戳 了解详情
写点什么

开源跨平台计算机视觉库 OpenCV 4.0 正式发布

  • 2018-11-21
  • 本文字数:1667 字

    阅读完需:约 5 分钟

开源跨平台计算机视觉库OpenCV 4.0正式发布

OpenCV 是英特尔开源的跨平台计算机视觉库,它是一套包含从图像预处理到预训练模型调用等大量视觉 API 的库,并可以处理图像识别、目标检测、图像分割和行人再识别等主流视觉任务。OpenCV 提供了覆盖整个流程的工具,因此开发者不需要了解各个模型的原理就能基于各个 API 构建视觉任务。



OpenCV 使用 BSD 许可证,因此对研究和商业用途均免费。它具备 C++、Python 和 Java 接口,支持 Windows、Linux、Mac OS、iOS 和 Android 系统。OpenCV 旨在提高计算效率,专注于实时应用。它使用优化的 C/C++写成,能够有效利用多核处理。此外,在 OpenCL 的加持下,OpenCV 可以利用底层异构计算平台的硬件加速。OpenCV 应用广泛,目前在全世界约有 4.7 万用户,下载量约为 1400 万。



可以说 OpenCV 是 CV 领域开发者与研究者的必备工具包,Mask-RCNN 等很多开源项目都依赖于这个工具包。现在距离 3.0 版本的发布已经过去三年多,OpenCV 4.0 final 版本终于于近日发布,这也是 4.x 版本线的第一个稳定版本,它进一步完善了核心接口,并添加了二维码检测器、ONNX 转换格式等新特点。


重要更新如下:



  • OpenCV 4.0 现在是基于 C++ 11 的库,因此编译器需要与 C++ 11 兼容。所使用的 CMake 需要是 3.5.1 以上版本。

  • OpenCV 1.x 中大量 C 的 API 已经被移除,受影响的模块包括 objdetect、photo、video、videoio、imgcodecs、calib3d。

  • core 模块中的 Persistence(用于存储和加载 XML、YAML 或 JSON 格式的结构化数据)已经完全基于 C++重新实现,因此这里的 C API 也被移除了。目前,base64 支持尚未完成(仅支持加载 base64 编码的 XML 和 YAML)。 此外,存储在 FileNode 中的序列的随机访问是慢速 O(N)操作;使用cv :: FileNodeIterator可以做更快速的顺序访问。从积极的方面来说,加载FileStorage比原来的实现方法节省了 3-6 倍的内存。




  • 针对 DNN 的改进

  • 增加对 Mask-RCNN 的支持,官方提供了操作指南Python样例

  • 集成 ONNX 解析器。当前版本的 OpenCV 支持许多流行的分类网络,部分支持 YOLO 对象检测网络(ONNX 版本的 YOLO 缺少一些提供矩形列表的最终图层)。

  • 进一步提升使用英特尔 DLDT 构建的 DNN 模块的性能。DLDT 最近已经正式开源。 请参阅指南了解如何构建和使用支持 DLDT 的 OpenCV。

  • 添加实验性的 Vulkan 后端

  • 修复了 AMD 和 NVIDIA GPU 上的 OpenCL 加速问题。 现在,用户可以直接为模型启用DNN_TARGET_OPENCL,无需额外的环境变量。不过需要注意的是,DNN_TARGET_OPENCL_FP16仅在英特尔 GPU 上做了测试,因此仍需要额外的标志。

  • 为 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
复制代码



  • 添加了新模块 G-API,它可作为基于图的高效图像处理流程的引擎。详细信息可以参见Graph API(G-API)页面



  • 实现了流行的 Kinect Fusion 算法并集成到 opencv_contrib/rgbd 模块,同时针对 CPU 和 GPU (OpenCL) 做了优化。为了使实时样本正常工作,我们在 opencv/videoio 模块中添加了对 Kinect 2 的支持。在 4.0 beta 版本的代码中已经对 iGPU 做了加速,从而使得高分辨率的情况下(512x512x512 集成量)性能提升了 3 倍。

  • objdetect 模块中添加了二维码检测器和解码器,可以参考这里的代码示例

  • 将高效、高质量的 DIS dense optical flow 算法从 opencv_contrib 迁移到 video 模块。

  • 此外,OpenCV 4.0 性能也有所提升,图像处理操作可实现 15%-30%的速度提升。


以下是目前 OpenCV 支持的一些框架:


  • Caffe

  • TensorFlow

  • Torch

  • Darknet

  • ONNX 交换格式的模型


最后附上 OpenCV 4.0 发布地址:https://opencv.org/opencv-4-0-0.html




会议推荐:12 月 20-21,AICon将于北京开幕,在这里可以学习来自 Google、微软、BAT、360、京东、美团等 40+AI 落地案例,与国内外一线技术大咖面对面交流。


公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2018-11-21 18:242438
用户头像
蔡芳芳 InfoQ主编

发布了 780 篇内容, 共 493.2 次阅读, 收获喜欢 2748 次。

关注

评论 1 条评论

发布
暂无评论
发现更多内容

巧用这几种文本检索工具,节省80%的时间!

优麒麟

Linux 操作系统 grep 检索 优麒麟

等保级别最高为几级?市面上常见吗?

行云管家

网络安全 等保 等级保护 过等保

做好云管理一定要云管平台吗?云管理平台应具备什么功能?

行云管家

云服务 云管平台 云资源 云管理

Client-go源码分析之SharedInformer及实战| 社区征文

雪雷

Kubernetes Informer 新春征文

美景本天成,妙笔偶得之——“妙笔”是怎样炼成的?

百度大脑

一文详解Kafka API

华为云开发者联盟

kafka API 拦截器 Consumer API Producer API

PingCode Wiki 权限设计之ACL

阿杰

权限系统 权限控制 acl 权限设计

这个Dubbo注册中心扩展,有点意思

捉虫大师

dubbo 注册中心

四款你必须知道的前端开发工具

编程江湖

在阿里,我们如何管理测试环境

阿里云云效

阿里云 DevOps 云原生 敏捷开发 研发提效

Springboot中,如何读取配置文件中的属性

华为云开发者联盟

数据库 springboot 映射 配置文件

Apsara Stack 技术百科 | 可运营的行业云,让云上资源跑起来

阿里云 科技 混合云

Hango Rider:网易数帆开源 Envoy 企业级自定义扩展框架

网易数帆

开源 云原生 envoy Hango Rider

netty系列之:channel,ServerChannel和netty中的实现

程序那些事

Java Netty nio 程序那些事 2月月更

Linux中Shell重定向

入门小站

Linux

程序员必知的8个Java开源IDE工具

编程江湖

ide

开源最佳实践

LinuxSuRen

开源 最佳实践

聚焦业务价值:分众传媒在 Serverless 上的探索和实践

Serverless Devs

阿里云 Serverless 运维管理 分众传媒 2月月更

在线脑图思维导图生成工具

入门小站

工具

大数据培训:Hadoop HDFS 实现原理

@零度

hadoop 大数据开发

动态加载不适合数组类?那如何动态加载一个数组类?

华为云开发者联盟

Java 数组 动态加载 数组类

百度智能云开物再收“一个奖状”

百度大脑

天数智芯携手龙蜥社区,以高性能算力助力开源发展

OpenAnolis小助手

Linux 开源 芯片

加入科学计算SIG,挑战最前沿的AI+Science研发与创新

百度大脑

你会写java脚本吗?-JShell

蜜糖的代码注释

Java 后端开发 2月月更

语义级代码克隆检测数据集的评估与改进

华为云开发者联盟

软件工程 代码克隆检测 代码克隆 语义代码克隆 BigCloneBench

SENSORO基于TDengine助力基层政府打造数字化应用标杆

TDengine

数据库 tdengine 开源 物联网

上市商业银行推进智慧银行建设,全方位赋能零售业务数字化转型

易观分析

商业银行 智慧银行

Worktile 权限设计

阿杰

权限控制 rbac 权限设计

前端培训:3 个可能有用JavaScript 类

@零度

JavaScript 前端开发

Java培训:封装的含义及实现方式

@零度

JAVA开发 封装

开源跨平台计算机视觉库OpenCV 4.0正式发布_AI&大模型_蔡芳芳_InfoQ精选文章