
OpenCV5关键改进
ONNX算子支持
OpenCV 的 ONNX 算子覆盖支持率从4.x天的约22%跃升至OpenCV 5中的80%以上。这样对绝大多数的模型部署都会给予比较好的支持。
算子融合与压缩支持
DNN引擎识别每个Transformer block核心的经典 MatMul → Softmax → MatMul 模式,并将其压缩为单一的熔合注意力操作,并采用类似 FlashAttention 的实现。有效提升模型推进速度。
后台推理引擎支持
支持三种不同的模式,分别是DNN图模式、自动模式、ORT模式。AUTO模式会自动尝试最新的推理引擎,不行则退回原来的经典模式;其中ORT模式采用ONNXRUNTIME的核心推理引擎。
VLM与LLM模型部署支持
OpenCV5 DNN模块实现了对大语言模型与多模态视觉语言模型部署支持,同时支持CNN与Transformer DINO系列模型部署。

为了支持VLM与LLM,OpenCV首次实现内置库中的本地分词器,用于自回归解码的KV缓存,因此生成过程保持高效,模型一次生成一个token。
此外特征匹配层面,OpenCV5也引入了基于CNN的特征匹配模型方式支持。大家可以自己看文档。
Jetson上OpenCV5编译安装
Jetson Orin Nano/AGX上面完成OpenCV5的源码编译与安装主要分为下面几个步骤:
https://github.com/opencv/opencv/archive/refs/tags/5.0.0.zip


#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
string rootdir = "/home/orinnano/Documents/";
void video_demo();
int main(int argc, char** argv) {
Mat image = imread(rootdir + "lena.jpg", IMREAD_UNCHANGED);
namedWindow("input", WINDOW_AUTOSIZE);
imshow("input", image);
waitKey(0);
destroyAllWindows();
video_demo();
return 0;
}注意点
是否需要编译扩展模块支持,如果需要编译OpenCV CUDA推理支持,必须要编译扩展模块。
为了避免因为模型无法下载而导致的编译失败,推荐把下面的模块在cmake编译参数设置为关闭。
-D INSTALL_C_EXAMPLES=OFF \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D BUILD_opencv_python3=OFF \
-D BUILD_opencv_python2=OFF \
-D BUILD_xfeatures2d=OFF \
-D BUILD_wechat_qrcode=OFF \
-D BUILD_opencv_gapi=OFF \最后完成的编译过程,我已经发布成build script文件,通过我的github主页即可下载(OpenCV-5-0-0.sh):
https://github.com/OpenCVXUETANG/opencv_workflow