图片是自己拍摄的,标注数据也是自己标的,但是却出现了混合物种的图片标注数据正常,单物种图片标注数据异常的情况,这就让人很迷惑!
如下训练的train_batch 图 混合物种图的框都很正常,但是到单物种图中框就全跑偏了
问题探索
1、猜测是不是标注数据有问题
于是把单物种的图将标注数据在图片中把框画出来,唉,都是正常的呀,框标的很棒呢。
2、会不会是因为单物种的图和混合物种的图分辨率不一样大导致的
yolov5是自带 resize 的的,不同大小的图片一起训练完全没问题的。最后单独只跑单物种图的时候发现还是偏移了。那问题肯定还是出在标注数据上。
3、用 pycharm 打开单物种图片时发现图片逆时针旋转了90°。因为图片拍完后有进行裁决,导致单物种的图片 高 > 宽,竖着的长方形在 pycharm 里面变成了横着的长方形。会不会是因为图片在训练的时候默认旋转90°了,导致图片和标注数据不匹配了。
于是我把图片旋转 90°,再根据规律变换,把标注数据也旋转90°,发现,哦吼,怎么标注数据变成负的了
不对劲,有问题。
4、于是继续尝试,只把图旋转,标注数据不变。扔进服务器上去跑一下yolo,唉,可算正常了。
解决了解决了,赶紧把单物种和混合物种的图搁一块一起跑模型
总结:标注工具我是用的 labelImg,原图分辨率是 4344x5792 ,但是标注的数据却是按照 5792x4344 来生成的,图片用pycharm来使用没问题,但是放到linux下问题就暴露出来了。