知道输入图像恰好包含一个目标对象,应该使用什么损失函数进行对象检测?

人工智能 卷积神经网络 目标函数 物体检测
2021-10-28 13:54:26

知道输入图像只包含一个目标对象,应该使用什么损失函数?

我目前正在使用 MSE 来预测 ROI 坐标的中心及其宽度和高度。所有值都与图像大小有关。我认为这种方法并没有对这些坐标相关的事实施加足够的压力。

我知道存在 YOLO 或 UnitBox 等算法,我只是想知道这种特殊情况是否有一些捷径。

1个回答

我目前正在使用 MSE 来预测 ROI 坐标的中心及其宽度和高度。所有值都与图像大小有关。我认为这种方法并没有对这些坐标相关的事实施加足够的压力。

乍一看,这看起来很合理。计算机视觉并不是我真正的主要专业领域,所以我进行了一些谷歌搜索,我遇到的第一个存储库之一做了非常相似的事情您可能会更详细地查看该存储库中的代码和引用。

在我看来,他们也在使用MSE损失函数。我不是 100% 确定他们是如何定义边界框的,也许你可以通过挖掘代码来弄清楚。您当前通过以下方式定义边界框:

  1. 边界框中心的X坐标
  2. 边界框中心的Y坐标
  3. 边界框的宽度
  4. 边界框高度

你是对的,因为这些坐标非常密切相关。如果中心不正确(例如,向右太远),则可以通过采用更大的宽度来部分“修复”该错误(边界框会向右太远,但仍会封装对象)。我不知道这是否一定是一个问题,或者一个应该以某种方式加以利用的事实,或者应该“施加压力”的东西。如果这是您关心的问题,我想您也可以按如下方式定义边界框(我不确定这是否是上面链接的存储库中所做的):

  1. 边界框左上角的X坐标
  2. 边界框左上角的Y坐标
  3. 边界框右下角的X坐标
  4. 边界框右下角的Y坐标

直观地说,我怀疑这两个角点之间的关系将不如您确定的中心 + 宽度 + 高度之间存在的关系那么强。左上角坐标中的“错误”不能通过将右下角放在其他地方来部分“修复”。