OpenCV 2.0 发布至今已经近 5 年了,它带来了全新的 C++ API,开启了项目大规模增长的全新时代。在整个 2.x 生命周期中,我们添加了对新平台的支持,包括 iOS 和 Android,通过 CUDA 和 OpenCL 添加了 GPU 加速,为 Python 和 Java 用户提供了完整的接口,并构建了基于 github 和 buildbot 的最先进的持续集成系统。结果,我们现在拥有非常稳定的 OpenCV 2.4.x,它已在全球许多公司和大学中使用。
现在,我们很高兴宣布新赛季的开始,即 OpenCV 3.x。在这个版本中,不会像 2.0 那样进行彻底的重构,但它仍然包含大量实质性的更改,为我们和您,我们伟大的 OpenCV 社区,带来了很多新机会。
与往常一样,详细的更改日志可在我们的开发网站上找到 http://code.opencv.org/projects/opencv/wiki/ChangeLog ,让我们来谈谈一些亮点
1. 项目架构的变更。从一开始,OpenCV 就是一个完整的项目,作为一个整体进行构建和发布,并且这种策略在许多年中都非常有效。但是,随着功能不断增长,包括在我们仓库提交拉取请求前几分钟发布的尖端算法,以及越来越多的贡献者(非常感谢大家!),我们得出了与许多其他大型项目相同的结论和决定——这种固定的模型不再有效。那么让我们使用核心 + 插件架构吧!
除了我们的主仓库 http://github.com/itseez/opencv 和额外的“测试数据”仓库 http://github.com/itseez/opencv_extra 外,我们现在很高兴地介绍 http://github.com/itseez/opencv_contrib ,在这里,我们放置了许多激动人心的功能,包括已经为人熟知的的人脸识别和文本检测,以及文本识别、新一代边缘检测器、最先进的图像修复、深度图处理、新的光流和跟踪算法等。
opencv 和 opencv_contrib 之间有什么相同和不同之处?
- 它们都由我们的持续集成系统提供支持 http://pullrequest.opencv.org/ (注意页面顶部的组合框),尽管 contrib 的单元测试尚未定期运行。
- 所有或部分这些额外模块可以使用我们的构建系统进行构建,将 OPENCV_EXTRA_MODULES_PATH=/modules 传递给 CMake。
- contrib 的文档会自动生成,并可在 docs.opencv.org/master 中找到。在 OpenCV 3.0 beta 和最终版本中,它将变得更加完善和更具条理。
- 主要的 opencv 是 Itseez 支持的代码,它将拥有非常稳定的 API,并且可能只有少量创新。
- opencv_contrib 是放置大部分实验代码的地方,其中一些部分可能会改变 API,并且欢迎您在这里贡献您激动人心的新算法。
2. 由于英特尔和 AMD 公司的支持,我们让许多视觉算法的 GPU 加速变得非常容易获得。这项技术被称为 T-API(“透明 API”)。关于此主题的单独指南正在准备中,但欢迎您查看并尝试 我们的 t-api 示例 以了解它的工作原理。
3. 英特尔公司为我们送上了另一份激动人心的礼物。 英特尔集成性能基元 (IPP) 的一个子集默认情况下与 OpenCV 链接,并且所有用户都可以免费获得。这包括重新分发使用 IPP 加速的 OpenCV 的应用程序的许可证。正如您所见,对于许多图像处理函数,我们通过 IPP 实现了非常显著的加速(在 IPP 与启用了所有可能的优化选项的 OpenCV 相比较的情况下)
4. 最后但并非最不重要的一点是,OpenCV 3.0 带来了许多新功能,例如
- 由 Lluis Gomez 和 Stefano Fabri 进行的文本检测和识别
- 由 Fedor Morozov 和 Alexander Shishkov 进行的 HDR
- 由 Eugene Khvedchenya、算法作者 Pablo Alcantarilla 以及 F. Morozov 进行的一些改进的 KAZE/A-KAZE。
- 由 Vitaly Lyudvichenko、Yuri Gitman、Alexander Shishkov 和 Alexander Mordvintsev 进行的智能分割和边缘感知滤波器
- 由 Vlad Shakhuro 和 Nikita Manovich 进行的利用 Waldboost、ACF 进行的汽车检测
- 由 Alex Leontiev 进行的 TLD 跟踪器以及一些常用的优化算法
- 由 Hilton Bristow 进行的 Matlab 绑定,并得到了 Mathworks 的支持。
- 由 Alexander Mordvintsev、Abid Rahman 等人进行的大量扩展的 Python 绑定,包括 Python 3 支持以及一些 OpenCV+Python 教程。
- 由 Ozan Tonkal 和 Anatoly Baksheev 进行的利用 VTK 进行的 3D 可视化。
- 由 Vincent Rabaud 进行的 RGBD 模块
- 由 Daniel Angelov 进行的线段检测器
- 由 Siddharth Kherada 进行的许多有用的计算摄影算法
- 由 Juan Manuel Perez Rua 和 Ilya Lysenkov 进行的形状描述符、匹配和变形形状(形状模块)。
- 由 Antonella Cascitelli 和 Francesco Puja 进行的长期跟踪 + 基于显着性的改进(跟踪模块)。
- 由 Edgar Riba 和 Alexander Shishkov 进行的另一种姿势估计算法以及姿势估计教程
- 由 Biagio Montesano 和 Manuele Tamburanno 进行的线描述符和匹配器
- 由 Steven Puttemans 对库各个部分进行的大量改进;非常感谢您,Steven!
- 由 Adrian Stratulat、Cody Rigney、Alexander Petrikov、Yury Gorbachev 等人进行的一些 NEON 优化。
- 由 Kazuki Matsuda 进行的 cv::Mat 上的快速 foreach 循环
- 由 Georgios Evangelidis 进行的图像对齐(ECC 算法)
- 由 Marvin Smith 进行的 GDAL 图像支持
- 由 Vincent Rabaud 进行的 RGBD 模块
- 由 Ilya Krylov 进行的鱼眼相机模型
- 由 Eugene Khvedchenya 进行的 OSX 框架构建脚本
- 由 Pierre-Emmanuel Viel 进行的多个 FLANN 改进
- 由 Gregory Morse 进行的 WinRT 支持改进
- 由 Evgeniy Kozhinov 和 NNSU 团队进行的潜在 SVM 级联(等待集成)
- 由 Rahul Kavi 进行的逻辑回归
- 由 Bo Li 进行的五点姿势估计算法
如果没有来自世界各地许多人的大力帮助,这个版本将无法实现。感谢所有为代码做出贡献、提交错误报告、补丁、审查补丁并以其他方式帮助我们的人。特别感谢
Alexander Shishkov(他还维护着 opencv.org 网站)、Andrey Pavlenko、Alexander Alekhin、Alexander Smorkalov、Roman Donchenko、Kirill Kornyakov、Andrey Kamaev、Sergey Sivolgin、Vladimir Bystritsky、Sergey Nosov、Nikita Manovich、Evgeniy Talanin、Elena Gvozdeva、Alexander Karsakov、Konstantin Matskevich、Ilya Lavrenov、Anna Kogan、Ivan Korolev、Dinar Ahmatnurov、Andrey Senin、Vlad Vinogradov、Alexey Spizhevoy、Anatoly Baksheev、Marina Kolpakova、Daniil Osokin、Leonid Beynenson、Dmitry Retinsky、Maria Dimashova、Ilya Lysenkov、Andrey Morozov、Victor Eruhimov、Alexander Bovyrin、Sergey Molinov、Gary Bradski、Vincent Rabaud、Harris Gasparakis 以及其他许多人。
下载
这是 alpha 版本,所以可能会出现一些故障,例如 Python 绑定部分损坏、一些测试失败等。这些问题正在解决中,我们也十分感谢您的反馈。
OpenCV 3.0 beta 预计将在今年秋季中期发布,而 OpenCV 3.0 正式版本 应该会在圣诞节/新年假期前发布。
此致
OpenCV 开发团队。