下载yolov5代码地址:GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite
在用yolov5进行目标检测的时候感觉mAP@0.5的指标很苛刻,就是最后的结果值很低,想换一个指标看着好看一些(感觉就是训练好的同一个模型,想让修饰还看一些,汤药不换),所以想记录一下换的时候都改了哪些地方
先看Root/val.py文件
第163行: iouv = torch.linspace(0.5, 0.95, 10, device=device) 改为iouv = torch.linspace(0.1, 0.55, 10, device=device)
10表示的是10列,因为从10到55共每加5算一次,共10个数,10,15,20,25,30,35,40,45,50,55。
第191行: s = ('%22s' + '%11s' * 6) % ('Class', 'Images', 'Instances', 'P', 'R', 'mAP50', 'mAP50-95')
将50改为10,95改为55
s = ('%22s' + '%11s' * 6) % ('Class', 'Images', 'Instances', 'P', 'R', 'mAP10', 'mAP10-55')
第192行:tp, fp, p, r, f1, mp, mr, map50, ap50, map = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
将50改为10
tp, fp, p, r, f1, mp, mr, map10, ap10, map = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
我按着shift+ctrl+alt+J键查询了所有map50和ap50的地方,接下来将这些地方全改为10
为了让PR曲线上的标签也对应为mAP@0.1,便将metrics.py文件中的329行的mAP@0.5改为mAP@0.1。
我暂时改的就这些,如果还有要改其他的我再补充,如果我有弄错的,感谢大家给我提出!