【发布时间】:2020-05-27 17:17:45
【问题描述】:
目前我正在研究一个对象检测问题,该问题涉及检测图像中的面部并在它们周围创建框。 为了解决这个问题,我创建了一个 yolov2 模型,如论文中所述,其损失函数如论文本身所述。在早期阶段,我面临着定位损失的 Nan 损失问题,因此训练不稳定。因此,通过对损失函数进行一些小的更改找到了解决方法。目前我面临的问题是对象置信度分数非常低,因为我正在处理 face-no_face 数据集,推理期间的类分数为 1.0,但对于许多只包含一张脸的实例,对象置信度分数非常低,更不用说图像中的多个面孔了。虽然在训练时累积损失在 0.06 左右饱和,但在推理时,置信度得分非常低。
损失函数:我用于计算置信度得分的损失函数是两项的累积损失:no_object_loss 和 object_loss,两者都是具有对象 (object_loss) 且其余部分对 no_object_loss 有贡献的网格单元的 MSE 损失。
注意:我的数据集包含 4996 个多面图像实例和只有 4 个无面实例。所以我想知道这是否是问题所在,因为我的对象置信度得分较低。
【问题讨论】:
-
可以看到你的损失函数吗?另外,您是否尝试过一些不平衡数据集的东西?我想你可以通过
class_weightsin keras。检查this thread -
@SiddhantTandon 损失函数是四个项的组合损失,localization_loss、no_objecT_loss、object_loss 和 class_loss。所有的损失都是预测和地面实况的 MSE,如果是交叉熵版本,则除了类别损失外,还有一些预测的预处理。我使用 Tensorflow 1.15 作为后端,使用所有四个损失项的比例值来调节对损失函数的影响。它是 yolo 论文中描述的损失函数的复制。你可以查一下(stats.stackexchange.com/questions/287486/…)
标签: python deep-learning computer-vision object-detection yolo