0%

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 Img Test Img SOpt. Conf. MAE RMSE
yolov5n 640 640 0.31 5.9375 7.8509554 0.9541248
yolov5n 640 1280 0.47 6.2125 8.1693023 0.950329
yolov5n 1280 640 0.18 6.7375 9.1917082 0.9371181
yolov5n 1280 1280 0.33 5.4 7.0816665 0.9626746
yolov8n 640 640 0.29 6.2625 7.9348913 0.9531386
yolov8n 640 1280 0.39 6.275 8.4926439 0.9463192
yolov8n 1280 640 0.29 6.2625 7.9348913 0.9531386
yolov8n 1280 1280 0.39 6.275 8.4926439 0.9463192
yolo11n 640 640 0.35 6 7.930952 0.9531851
yolo11n 640 1280 0.51 7.0875 9.2472969 0.9363552
yolo11n 1280 640 0.23 7.0125 9.3828301 0.9344759
yolo11n 1280 1280 0.32 5.1875 7.1388024 0.9620699

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