最近在使用yolo。在mosaic增强时,发现了一些问题,这些问题可能严重影响训练。正准备提bug,记录一下。在我的场景中,根据yolo展示的训练截图,大约每9张就会出现一个严重错误。
由于我的目标是"斜跨标注框对角线"的,因此当某些标注框被截取的时候,非常有可能把标注框中,完全不含目标物的区域截出来,严重干扰模型训练。
问题分析
原始图像如下,标注比较合理,识别目标是绝缘子。
马赛克增强后的效果如下(我选了一个还能看懂的,实际情况中,有非常多特别离谱的错误)。可以看到,右下角的0标签,出现了明显的问题,比真实目标宽了很多,应该会影响到模型的训练。
类似的问题还包括,下图的情况,目标被剪裁到的只剩下了一个非常小的角,根本无法识别。类似的情况也比较多。
问题解决
当关闭马赛克后,类似的情况就少了很多(几乎没有),因此应该是马赛克过于粗暴了。
由于我的目标是斜跨标注框对角线的,因此在马赛克截取的时候,需要重新根据对角线位置计算新的坐标框(计算截取位置与对角线的交点)。
或者在我的场景下,不要使用mosaic增强,或者保证马赛克增强的时候,把某些特殊类别的坐标框完整的保留。
或者少用一些马赛克,提前关闭马赛克,但是未关闭的时候,造成的模型误会和训练浪费,恐怕难以纠正。
或者当马赛克将某个目标截取了超过50%面积的时候,自动将目标剩余的部分涂黑。
原始图像
