2024.11.16随笔

开始的地方:数据集和准备工作
最开始,我选择了 MTDC-UAV 数据集,这个数据集包含了许多图像和标注,适合做目标检测和回归任务。我编写了一个脚本,把 800 张有标注的图像按照 7:2:1 的比例随机分配成 Train、Valid、Test 集。重要的是,确保每个集合里的图片都是随机选取的,三个集合之间没有重复,并且每张图像都能找到对应的标注文件。

YOLOv5的初步实验:尺寸与置信度的探索
一开始,我决定用 YOLOv5 来做一些基础实验,主要测试不同的训练和预测输入尺寸。具体来说,就是使用 640 和 1280 的组合来看看效果。最开始我随便设置了一个置信度(conf)值,然后再根据结果调整。可是后来发现这种方法效率太低了,一次次手动调整实在太浪费时间。

转折点:写脚本优化效率
意识到这个问题后,我写了个脚本,可以自动调整 conf 值的范围,来提高实验效率。我先把这个脚本用在了 YOLOv5 上,结果发现效果有了明显提升。

数据存储与可视化
为了方便分析,我写了个功能,把每次调整的结果存储到 Excel 中。这样我就可以直观地看到每个参数组合下的回归结果。接着,我又加了一个功能,能够根据 Excel 生成 MAE、RMSE、R² 的统计图,这样就能清晰地看到哪些配置最优。

继续实验:YOLOv8和YOLO11
接下来,我把相同的方法应用到了 YOLOv8 和 YOLO11 上,分别对它们进行了同样的实验。每个模型的不同配置下的表现都不错,我得到了 36 张统计图 和 3 个版本的统计表。

最终的结果:12条最优组合
根据这些实验结果,我得出了 12条最优数据组合。这些组合代表了每个模型和配置的最佳表现,可以通过下表查看。

YOLO Ver.Train ImgTest ImgSOpt. Conf.MAERMSE
yolov5n6406400.315.93757.85095540.9541248
yolov5n64012800.476.21258.16930230.950329
yolov5n12806400.186.73759.19170820.9371181
yolov5n128012800.335.47.08166650.9626746
yolov8n6406400.296.26257.93489130.9531386
yolov8n64012800.396.2758.49264390.9463192
yolov8n12806400.296.26257.93489130.9531386
yolov8n128012800.396.2758.49264390.9463192
yolo11n6406400.3567.9309520.9531851
yolo11n64012800.517.08759.24729690.9363552
yolo11n12806400.237.01259.38283010.9344759
yolo11n128012800.325.18757.13880240.9620699

总结
YOLO在回归计数任务中的表现非常出色,尤其是当我通过调整 conf 值后,性能提升显著。这些实验结果表明,YOLO不仅在目标检测中表现出色,在回归任务中也能大展拳脚,尤其是在密集计数或小物体检测场景下。