Echo's blog
Echo's blog
· 1 min read · 资讯

OpenCV 5 发布二十年最大升级

OpenCV 5 来了。如果你没听说过 OpenCV,你可能没用过它,但你在用的很多东西都依赖于它。二十多年来,它是计算机视觉领域的 Linux——看不见,但无处不在地支撑着一切。

二十年,一百万次下载#

OpenCV 诞生于 1999 年的英特尔实验室,最初是一个内部项目。2006 年第一个正式版发布之后,它慢慢变成了计算机视觉的事实标准。到今天,它在 GitHub 上有超过 86000 颗星,每天超过一百万次安装。机器人、工业检测、AR/VR、自动驾驶、医学影像、安防监控——你能想到的涉及”让机器看见”的领域,几乎都跑在 OpenCV 上。

但计算机视觉这二十年变了很多。OpenCV 4 发布是 2018 年,那会儿深度学习才刚刚开始普及,Transformer 还没人听说过,大视觉模型更是不存在的东西。七年过去,整个世界都变了。

OpenCV 5 就是在这样的背景下诞生的。

新引擎,新架构#

这次升级的核心是一条新的 DNN 引擎线。过去的深度学习推理模块在 OpenCV 4 中就已经存在,但随着 ONNX 成为模型交换的标准格式,以及硬件加速方案的多样化,旧的架构逐渐吃力了。

OpenCV 5 的 DNN 引擎从头重新设计,能更好地利用不同的硬件加速单元——你可以在笔记本 CPU 上跑,也可以在树莓派或者高通 Snapdragon 平台上跑,甚至可以在专用的 NPU 上跑。同样的代码,不同的硬件,自动适配。

另外,Python 接口得到了大幅改进。对于很多现代开发者来说,OpenCV 就是一个 Python 库。OpenCV 5 的重点之一就是让 Python 调用路径更直接、更自然,减少不必要的类型转换和内存管理负担。

3D 视觉的扩展#

三维视觉这几年需求增长很快——从手机 AR 到工业三维重建。OpenCV 5 扩展了三维视觉的工具链,新增了更完善的多视角几何函数库,改进了深度相机数据的处理管线。

这部分的改进可能对普通用户没什么感知,但对做机器人导航、空间计算、工业检测的人来说,意味着少写很多自己造轮子的代码。当官方库能解决的问题越来越多,整个生态的迭代速度就会加快。

文档与社区#

OpenCV 5 还做了一件很多人呼吁了很久的事:重写文档。老的 OpenCV 文档以 C++ 为主,示例代码经常是 C 风格的,对 Python 用户不友好。新版文档采用 Python 优先的组织方式,同时保留了 C++ 参考。

另外,社区长期以来的一个痛点是 API 的一致性。不同模块之间的调用风格差异大,有的用 cv::Mat,有的用新的 UMat,还有的用 GpuMat。OpenCV 5 做了一定程度的清理和统一,虽然不能一步到位,但方向是对的。

一次必要的升级#

说它”二十年最大升级”不算夸张。之前的版本更新大多是渐进式的:加几个算法、修一些 bug、优化一下性能。而 OpenCV 5 选择了重新思考底层架构——为新硬件加速做适配,为新的 AI 工作流做准备,为下一个十年铺路。

如果你还在用 OpenCV 4,升级需要做一些适配工作。但考虑到这个库在你项目中的重要性,这件事值得花一点时间。

来源:Hacker News | OpenCV

Related Posts

Comments

Copied
Copied to clipboard