MMDet实例分割loss_rpn_bbox为nan但其它loss正常的解决

昨天还以为这个月无活可整,没想到第二天就来事了,下个月还好久,留到下月发也不大好( º﹃º )。

问题描述

  • 使用MMDetection训练实例分割,训练可执行,测试可执行,但loss_rpn_bboxnanloss_bbox却有值。
  • 评估时,少数模型能获得0.1的精度,但无法随训练次数上升而提高。
  • 使用faster rcnn或mask2former,四个backbone,都出现上述问题。

故障原因

  • 标签尺寸与图像尺寸不匹配。
    • 例如,图像为700x700的大小,而annotations/trainval.json里的大小却为3840x2160,且所有segmentation, bbox的标签,都是以3840x2160为参考(即取值为[0, 3840])

解决方法

  • 我是跑TTPLA时出问题的,按官方的流程走,结果分割数据集的时候用到了未缩放的标签,最后重新缩放一遍就好了。
    • 至于其它数据集未提供对应脚本的,可以手动缩放,见下文。
  • 将标签里的height, width, segmentation, bbox缩放至与图像大小一致。
  • TTPLA的方案是 所有标签除以对应宽高,然后再 乘缩放宽高。
    • 但它是对labelme标签处理,不是coco,而coco的segmentation似乎不是直接对应宽高。
    • 所以要解决segmentation的缩放,要么找到它的编码方式,要么转labelme再转coco。

版权声明:
作者:MWHLS
链接:https://panwj.top/4901.html
来源:无镣之涯
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
< <上一篇
下一篇>>
文章目录
关闭
目 录