opencv 如何在训练前处理不平衡的数据?

dzjeubhm  于 2022-12-19  发布在  其他
关注(0)|答案(2)|浏览(148)

假设我们要训练YOLOV3。我们为3个不同的类收集了大约5000张图像。类分布为:

Class#1 = 2250  images
Class #2= 2500  images
Class #3= 250   images

正如你所看到的,这是不平衡的,我不能训练的基础上,数据。我需要做什么?我需要考虑一个数据处理阶段?
请不要只说数据扩增,因为数据扩增有不同的含义。我相信它在训练过程中做旋转和变换,使训练的模型更鲁棒,它不能解决不平衡的数据集问题。
如何处理不平衡的数据?

bttbmeg0

bttbmeg01#

您可以尝试对配置文件执行以下操作:

选择1:

[yolo]
focal_loss=1

选择2(更有效):

[yolo]
counters_per_class=100, 2000, 300, ... # number of objects per class in your Training dataset

要计算counters_per_class,请参阅以下链接
更多详情here

**选项3:**同时执行选项1和选项2

svdrlsy4

svdrlsy42#

对于yolov7,您可以:

  • 使用以下参数调整焦距损失:h ['fl_gamma']

相关问题