Introduction
经过前面三篇教程帖子(yolov8n在行空板上的运行(中文),yolov10n在行空板上的运行(中文),Mediapipe在行空板上的运行(中文))的介绍,我们对如何使用官方代码在行空板上运行物体检测的AI模型有了基本的概念,并对常见的模型进行了简单的测试和对比。
进一步的,本文将对不同模型的图片物体检查进行详细的对比分析,包括不同输入尺寸、不同模型设置等方面的对比,并提供在图片物体检测任务时选择模型的建议。
测试结果汇总
Ultralytics官方库中,yolo系列模型导出onnx格式不支持int8量化,只支持半精度(float16)量化,但是行空板没有针对半精度的速度优化,所以速度与float32相同。所以在这一节的对比中并不对yolo系列的模型进行量化。
前面三篇教程帖子已经介绍了如何使用官方代码进行图片的物体检测,在此不再赘述,在本篇我们仅进行统计分析。下面是测试结果的汇总:
深绿色是每个分辨率中最好精度表现中速度最快的模型;
浅绿色是每个分辨率中次好精度表现中速度最快的模型。
根据以上统计,在进行图片物体检测的时候可以根据图片的分辨率和所需的速度及精度表现进行权衡选择。
本测试中准确性的判断标准为(下文同):
准确性 | 很好 | 较好 | 一般 | 差 | 很差 |
---|---|---|---|---|---|
与gt识别物体的个数差异 | 0 | 1 | 2 | 3 | >3 |
图片物体检测总结
我们在统计测试后发现了以下特点:
- yolo系列随着图片分辨率下调,检测耗时显著减少;而Mediapipe不明显。这说明在小分辨率图片检测中,yolo系列有显著的速度优势;
- det的两个模型进行int8量化之后速度显著提升,几乎不会损失准确性;
- Mediapipe的模型在较大分辨率的时候相比yolo有显著的速度优势,但是准确性略低一点。在应用的时候,需要在准确性和速度上进行权衡。
模型选择建议
- 如果物体较近或者较大,在低分辨率图片上也可以方便地提取特征,这种情况下推荐使用较低分辨率而速度较快的模型,如
yolov10n
系列; - 如果物体较远或者物体较小,则需要分辨率更高才能提取到足够的特征,这种情况下需要使用高分辨率图片,如果更看重速度,可以使用
ssd_mobilenet_v2
,而如果更看重准确性,则推荐选择yolov10n
。可以参考下面的流程来选取模型。