Pytorch 边界框';s的位置和尺寸不正确,如何改进它';准确度如何?

Pytorch 边界框';s的位置和尺寸不正确,如何改进它';准确度如何?,pytorch,cnn,bounding-box,faster-rcnn,detectron,Pytorch,Cnn,Bounding Box,Faster Rcnn,Detectron,我用detectron2来解决一个分割任务, 我想把一个物体分成4类, 所以我使用了COCO InstanceSegmentation/mask\u rcnn\u R\u 50\u FPN\u 3x.yaml。 我已经应用了4种增强变换,经过训练我得到了大约0.1 全损 但由于某些原因,bbox的精确度在测试集的某些图像上不是很高, bbox被绘制得更大或更小,或者没有覆盖整个对象 此外,有时预测器会绘制几个BBox,它假设只有一个对象,但不同的对象却很少 有什么建议可以提高它的准确性吗 有什么

我用detectron2来解决一个分割任务, 我想把一个物体分成4类, 所以我使用了COCO InstanceSegmentation/mask\u rcnn\u R\u 50\u FPN\u 3x.yaml。 我已经应用了4种增强变换,经过训练我得到了大约0.1 全损

但由于某些原因,bbox的精确度在测试集的某些图像上不是很高, bbox被绘制得更大或更小,或者没有覆盖整个对象

此外,有时预测器会绘制几个BBox,它假设只有一个对象,但不同的对象却很少

有什么建议可以提高它的准确性吗

有什么好的实践方法来解决这个问题吗


任何建议或参考资料都会有所帮助。

我建议如下:

  • 确保您的训练集具有所有大小的要检测的对象:通过这种方式,网络可以了解到对象的大小可能不同,并且不太容易过度拟合(例如,检测器可以假设您的对象应该很大)
  • 添加数据。尝试添加更多数据,而不是应用所有类型的增强。虽然只有一个对象,但检测到不同对象的现象使我相信您的网络不能很好地概括。就个人而言,我会选择每个类至少500个注释
  • 改进的最大一步将通过(2)实现


    一旦你有了一个像样的基线,你还可以尝试增强。

    我建议如下:

  • 确保您的训练集具有所有大小的要检测的对象:通过这种方式,网络可以了解到对象的大小可能不同,并且不太容易过度拟合(例如,检测器可以假设您的对象应该很大)
  • 添加数据。尝试添加更多数据,而不是应用所有类型的增强。虽然只有一个对象,但检测到不同对象的现象使我相信您的网络不能很好地概括。就个人而言,我会选择每个类至少500个注释
  • 改进的最大一步将通过(2)实现


    一旦你有了一个合适的基线,你也可以尝试增强。

    谢谢你的回复。我在试着认出一只狗的面包。我刚刚注意到Yolov5已经有了一个类名dog,所以你认为我应该让Yolov5扮演找到bbox位置的角色吗(因为我的bbox通过我的模型是不准确的),然后用我的模型对实际的品种进行分类,我的模型在4个品种类别上进行了训练?如果你确实看到类别预测全部/大部分时间都失败,你可以把它交给分类器。但是我说Yolo应该在这两项任务上都做得很好,所以你应该真正关注你的数据集。。。否则,唯一的解决办法就是你说的。谢谢你的回复。我在试着认出一只狗的面包。我刚刚注意到Yolov5已经有了一个类名dog,所以你认为我应该让Yolov5扮演找到bbox位置的角色吗(因为我的bbox通过我的模型是不准确的),然后用我的模型对实际的品种进行分类,我的模型在4个品种类别上进行了训练?如果你确实看到类别预测全部/大部分时间都失败,你可以把它交给分类器。但是我说Yolo应该在这两项任务上都做得很好,所以你应该真正关注你的数据集。。。否则,唯一的解决办法就是像你说的那样。