08-Yolo通用模型测试
本章为通用模型YOLO在开发板上运行的DEMO.支持yolo V5,V6,V7,V8,V10,V11
源码路径
源码位于:08-yolovx-test文件夹中。
本章小结
本章主要学习如何使用盒子NPU相关功能。
1、怎么加载模型
2、怎么送图像进模型。
3、模型输出结果是什么。
代码走读
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版本。每个版本需求不一样。请查看源码。
运行前将测试视频和模型下载到kmboxApp.exe同级目录中。
依次运行各个版本推理时间均值如下:
模型版本 | 模型尺寸 | 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快捷键,以你设置的为准)