实例分割包含了目标检测,和检测框里的语义分割。
在搭建好一个模型后,训练过程中遇到了mask loss异常值,目标框消失不见,validation过程报错的情况,这里记录一下对这些问题的分析过程和debug记录。
首先分析一下mask loss异常值的问题。
mask loss用的是BCE loss。
mask的值很大,几十万。
拿yolact来做一下对比。
它的mask loss只有一万多(后续处理前),那肯定我的值是不对的。
值大了很多,第一直觉是目标框可能没放对位值,导致gt mask不对。
于是选一张图片验证,原图是这样的

在yolact的mask loss部分,提取它的gt mask和gt 目标框,

可以看到图片是经过翻转的,目标框能和mask的目标部分对应上。
而把模型mask也这样提取出来,
原图是这样的,
实例分割训练调试:mask loss异常与验证报错分析

本文记录了在实例分割模型训练过程中遇到的mask loss异常值和验证报错问题的分析与解决过程。首先,通过对比发现mask loss异常可能是由于gt mask在预处理中未进行相应变换导致的,修正预处理后问题得到解决。接着,发现训练过程中的报错发生在验证阶段,原因是数据处理部分存在None值,修正后问题消除。最后,针对目标框消失的问题,检查模型结构和预处理,发现并修复了共享权重、权重初始化以及小目标过滤阈值设置不当等问题。
订阅专栏 解锁全文
765

被折叠的 条评论
为什么被折叠?



