08-Yolo通用模型测试

本章为通用模型YOLO在开发板上运行的DEMO.支持yolo V5,V6,V7,V8,V10,V11

源码路径

源码位于:08-yolovx-test文件夹中。

本章小结

本章主要学习如何使用盒子NPU相关功能。

1、怎么加载模型

2、怎么送图像进模型。

3、模型输出结果是什么。

代码走读

1745498300769

kmAI_YOLO_Loadmodel 加载yolo模型

将指定的rknn模型加载到内存中。

第一个参数为:npu上下文。

第二个参数为:模型文件的路径。

kmAI_YOLO_InterfaceModel 将图像送入NPU内推到结果

第一个参数为:npu上下文。

第二个参数为:输入图像。

第三个参数为:返回NPU推到结果。

将图片img送入模型中推导,结果存放在out中。你需要自行处理out中的数据。

int kmAI_YOLO_InterfaceModel(rknn_context_t ctx,cv::Matimg,object_detected_list out);//将img图像放到

kmAI_YOLO_DrawRectangle 绘制矩形框

此函数用来绘制矩形框。其作用是在img中(rx,ry)中画一个宽高为(rw,rh)颜色为color厚度为thickness的矩形框。

voidkmAI_YOLO_DrawRectangle(cv::Matimg,intrx,intry,intrw,intrh,unsignedintcolor,intthickness);//画框

kmAI_YOLO_DrawText 绘制文本标签使用

在img中(rx,ry)处插入文本text,颜色为color字体大小为fontsize的文字

voidkmAI_YOLO_DrawText(cv::Mat img,const char*text,intrx,intry,unsignedintcolor,intfontsize);//绘制文本

kmAI_YOLO_Release

当不再使用NPU时调用此函数释放NPU。

运行代码

./kmboxApp.exe 6 yolov6.rknn test.mp4 #运行yolov6模型

./kmboxApp.exe 5 yolov5.rknn test.mp4 #运行yolov5模型

./kmboxApp.exe 7 yolov7.rknn test.mp4 #运行yolov7模型

./kmboxApp.exe 8 yolov8.rknn test.mp4 #运行yolov8模型

./kmboxApp.exe 10 yolov10.rknn test.mp4 #运行yolov10模型

./kmboxApp.exe 11 yolo11.rknn test.mp4 #运行yolov11模型

注意本程序支持yolo V5/6/7/8/10/11版本。每个版本需求不一样。请查看源码。

1745499250906

运行前将测试视频和模型下载到kmboxApp.exe同级目录中。

1745496803259

依次运行各个版本推理时间均值如下:

模型版本 模型尺寸 NPU推理耗时 后处理耗时 显示一帧耗时
YOLO V5 640x640 60ms 2.1ms 2.5ms
YOLO V6 640x640 35ms 1.5ms 2.5ms
YOLO V7 640x640 64.2ms 2.1ms 2.5ms
YOLO V8 640x640 43.7ms 1.9ms 2.5ms
YOLO V10 640x640 75ms 1.21ms 2.5ms
YOLO V11 640x640 62.5ms 1ms 2.5ms

上表格中,都是使用同一视频源测试。输入分辨率是1280X720.

NPU推理时间包括以下几个部分总和:

1、输入视频缩放为640x640分辨率。

2、NPU中的格式转换。

3、NPU推理耗时。

从表格中可知。YOLO V6的版本在盒子上跑速度是最快的。后面我们以YOLO V6为例。训练自己的模型。

当然目前运行通用模型,推理耗时约为35ms.算上显示。差不多一帧需要40ms。那么换算成FPS就是每秒25贞。勉强能用。后面我们可以优化模型。

视频效果:

FAQ常见问题

如何退出程序

1、控制台直接按键盘ctr+c

2、按键盘End快捷键(切换到内部UI快捷键,以你设置的为准)