最后本方案线上取得的最高F1 score为0.98336,作为one-stage算法来说算是还可以,由于很多参数只是粗调,预计还能有千分位的提高,感兴趣的读者可以自行尝试,接下来分享一下我在这个场景下关于YOLO v3的改进方案。
先上分数(排名仅是复活赛排名,无实际意义):
代码已上传至:https://github.com/cristianoc20/Rebar_Detection,欢迎各位给个star
10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326
FPN
,其中
固定为2不用调,主要是调整
,但在试验中我发现无论怎么调这个参数,最后训练的时候虽然收敛的速度加快许多,但是检测的效果都没有变好,这和YOLO论文中作者说加了Focal loss不work一样,后面想了很久才明白:我们知道YOLO对物体的判断有三种:正例,负例和忽视,与ground truth的iou超过0.5就会被认为ignore,我们用YOLO v1的一张图来说明:
从0.1试0.7,效果都非常不好,我们具体来看效果图:
取到很大)他们被惩罚后的置信度仍然不算低,有些甚至还有0.6左右和本身低分但正确的框有同样的置信度,这让原本打算通过置信度来筛选框的办法失去意义,不知道是我使用方式有误还是怎么的,尝试过后就放弃了soft-nms。