hukaixuan19970627 / yolov5_obb

yolov5 + csl_label.(Oriented Object Detection)(Rotation Detection)(Rotated BBox)基于yolov5的旋转目标检测
GNU General Public License v3.0
1.81k stars 425 forks source link

测试自训练数据集问题 #61

Closed BruceFreedom closed 3 years ago

BruceFreedom commented 3 years ago

自制数据集(长宽不相等,1920*1080,大约800张),2个类别,没有使用mosaic训练,训练参数中添加--rect,训练了150epoch(问题和这个类似:https://github.com/hukaixuan19970627/YOLOv5_DOTA_OBB/issues/57), 刚开始没有检测到任何目标(使用的训练集),后来将置信度调整到0.05,部分图片部分目标,但是bbox的尺寸明显不对

在之前训练的时候,由于看到前3个batch的label位置明显不对,查看数据代码是label反归一化的问题,修改后仍然出现这个位置问题,但添加--rect后正常,但检测结果确定有点问题,看了下历史issue,会不会和我的训练集的图片长宽不等有关

图片

github-actions[bot] commented 3 years ago

Hello @HuDewen, thank you for your interest in our work! Please visit our Custom Training Tutorial to get started, and see our Jupyter Notebook Open In Colab, Docker Image, and Google Cloud Quickstart Guide for example environments.

If this is a bug report, please provide screenshots and minimum viable code to reproduce your issue, otherwise we can not help you.

If this is a custom model or data training question, please note Ultralytics does not provide free personal support. As a leader in vision ML and AI, we do offer professional consulting, from simple expert advice up to delivery of fully customized, end-to-end production solutions for our clients, such as:

For more information please visit https://www.ultralytics.com.

hushuai1 commented 3 years ago

是的,必须把数据集调整成长宽一样,我昨天遇到了和你一样的问题,pad以后再训练效果就很正常了

BruceFreedom commented 3 years ago

是的,必须把数据集调整成长宽一样,我昨天遇到了和你一样的问题,pad以后再训练效果就很正常了

我今天调整完后,效果也正常了; 不过类似于我这种目标相对大的数据集,数据增强部分只能选择性的用,目标很容易有缺失,导致bbox的loss难以下降,

hukaixuan19970627 commented 3 years ago

非密集小物体检测的话看数据集的规模情况可以选择不使用mosaic,如果规模太小,必须使用大量的数据增强确保不过拟合,这时候可以开启mosaic,但开启mosaic之后可能会破坏部分超大物体的完整性,这个时候要修改一下代码,mosaic之后先resize一下,再进行crop。 具体操作可以参考:https://github.com/hukaixuan19970627/YOLOv5_DOTA_OBB/issues/57

BruceFreedom commented 3 years ago

非密集小物体检测的话看数据集的规模情况可以选择不使用mosaic,如果规模太小,必须使用大量的数据增强确保不过拟合,这时候可以开启mosaic,但开启mosaic之后可能会破坏部分超大物体的完整性,这个时候要修改一下代码,mosaic之后先resize一下,再进行crop。 具体操作可以参考:#57

有道理,我试试

还是碰到一个问题,关闭了数据增强功能,我刻意训练模型过拟合(数据大约500张,数据1920x1080,padding成1920x1920,训练时候resize成720x720),但是angle 的loss一直无法收敛,直接使用训练集进行测试,置信度为0.3有很多检测不出来,调整到0.1,很多误检,angle无法收敛会不会和数据有关,每张图片只有一个目标,也只能有一个angle输入

图片 图片

hukaixuan19970627 commented 3 years ago

多任务训练的时候,一般几个loss之间下降的趋势要同步才会有比较好的检测效果,可以适当调节一下loss权重; 目标数量太少的话首先就是会引入θ类别的不平衡,mosaic和mixup都可以开起来,对yolov5整个流程代码比较熟悉的话,还可以在代码中添加旋转增强代码,对你这个任务场景的识别有很明显的性能提升的

BruceFreedom commented 3 years ago

多任务训练的时候,一般几个loss之间下降的趋势要同步才会有比较好的检测效果,可以适当调节一下loss权重; 目标数量太少的话首先就是会引入θ类别的不平衡,mosaic和mixup都可以开起来,对yolov5整个流程代码比较熟悉的话,还可以在代码中添加旋转增强代码,对你这个任务场景的识别有很明显的性能提升的

好的,我试试,谢谢啦