OpenCV 是 Intel 开源计算机视觉库,它实现了图像处理和计算机视觉方面的很多通用算法。OpenCV 4.8 版本的主要更新内容如下:
-
DNN module patches:
- #23161、#23409 TFLite 模型支持,包括 int8 量化模型。
- #23604 启用 DNN 模块构建,无需 Protobuf 依赖。
- Improved layers => supported more models:
- ONNX:#23047 Layer normalization、#23219 GELU 和 #23655 QLinearSoftmax。
- CANN 后端修复:
- #23319 支持 ONNX Split、Slice、Clip (Relu6) 和带有 auto_pad 的 Conv。
- #23401 支持 ONNX Sub、PRelu、ConvTranspose。
- #23613 减少重构以实现 robustness 和潜在的后续改进。
- 修复了 nary element wise 层中关于 broadcast 的问题:
- #23557 CPU 修复。
- #23528 和 #23560 修复 CUDA 后端。
- 通过改进卷积,进一步提高 DNN 在 ARM 和 X86 上的速度,覆盖 1D 和 3D 情况,支持 convolution+element-wise op fusion。
- 在 ARMv8 平台上添加了完整的 FP16 计算分支,比 FP32 快 1.5 倍(FP16 Winograd 仍在等待中)。
- #22957 现代 OpenVINO 支持。
-
G-API module:
- TBD
-
Objdetect module:
- #23020 FaceDetectorYN 升级以获得更好的性能、准确性和 facial landmarks 支持。
- #23264 基于 ArUco 码的新 QR 代码检测算法。
- #23666 条形码检测器和解码器从 Contrib 移至主存储库。
- #23758 为所有图形码(如条形码和 QR 码)引入了通用 API。
- #23153 添加了 4.6.0 之前版本 ChAruco boards 支持的 flag。
- QR 码检测和解码管道中的多个错误修复和改进。
- 基于 ArUco 的管道中的多个错误修复和改进。
-
Calibration module:
- #23078 USAC 框架改进。
- #23025 修复了相机校准管道中的 stddev 估计。
- #23305 修复了 icvGetRectangles 中不正确的像素网格生成问题,提高了 getOptimalNewCameraMatrix、stereoRectify 和其他一些校准函数的准确性。
- 在模式生成器、交互式校准工具和校准样本中支持 Charuco board。
-
Image processing module:
- #23210、#23388 线段检测器中的各种修复。
- #23634 修复了调整大小时 INTER_NEAREST_EXACT 的 even 输入尺寸。
- #21959 优化IntelligentScissorsMB::buildMap 中的 local cost 计算。
- #22798 修复 distransform 使其适用于大图像。
-
Features2d module:
- #23124 SIFT 精度改进。
-
核心模块:
- #13879 添加了 REDUCE_SUM2 选项到
cv::reduce
. - #22947 引入
cv::hasNonZero
function。 - #23443 将 IPP 二进制文件更新至版本 20230330。
- 改进了 RISC-V RVV 矢量扩展支持。
- #23383 支持 LLVM 16 和 GCC 13 中可用的 RVV v0.11 intrinsics
- #23246 支持使用 T-Head RISC-V 工具链进行构建(RVV 0.7.1 和 1.0)
- 多个 OpenCL 供应商和版本处理改进。
- #13879 添加了 REDUCE_SUM2 选项到
-
Multimedia:
- #23596 通过 libavif 添加了 AVIF 支持。
- #23237 Orbbec Femto Mega cameras 支持。
- #23692 修复了 FFmpeg 后端某些视频的 FPS 计算。
- #23300 为 DShow 后端添加了对 VideoCapture CAP_PROP_AUTO_WB 和 CV_CAP_PROP_WHITE_BALANCE_BLUE_U 的支持。
- #23460、#23469 修复 OBS 虚拟相机捕获。
- #23433 CV_32S 编码支持 tiff。
- #3486、#3453 cudacodec 模块(opencv_contrib)中更严格的解码器检查和动态分辨率支持。
- #3485 在 cudacodec 模块(opencv_conrib)中添加了基本的 VideoCapture 属性支持。
-
Python Bindings:
- #20370 Python typing stubs。
- #23350 修复 registerNewType 中的引用计数错误。
- #23399、#23436、#23138 修复了 ChAruco 和 diamond boards detector bindings。
- #23371 添加了绑定以允许 GpuMat 和 Stream 对象从其他库中初始化的内存进行初始化
- #23691 np.float16 支持。
- RotatedRect、CV_MAKETYPE、CV_8UC(n) 的 Python 绑定。
-
JavaScript bindings:
- #23344 在
opencv.js
中添加了禁用内联wasm
的可能性 - Aruco、Charuco、QR 码和条形码的扩展 JS 绑定。
- #23344 在
-
Platforms:
- #21736 Android:不需要已弃用的工具。
- #23768 iOS:修复了 CMake 3.25.1+ 的框架构建问题。
-
Other:
- wechat_qrcode 模块(opencv_contrib)中的几个关键问题修复
详情可查看更新说明。