对于预测旋转的计算机视觉模型,什么是好的目标函数?

机器算法验证 回归 神经网络 反向传播 计算机视觉 循环统计
2022-03-24 18:26:29

假设我必须校正可以在该范围内旋转的场景图像[0,2π). 对于我的特定应用程序,我已经知道 CNN 是有意义的。我会用它来检测方向,然后应用适当的校正。我只是想考虑如何构建问题和目标函数。这篇文提到了分类交叉熵损失与多标签分类问题的使用,其中标签是{0,1,2,3,...359}. 对我来说这没有多大意义,因为如果目标是 45,那么 44 的惩罚与 87 一样严重。

回归感觉更明智,除了数字线在这里绕回自身的事实。但是,由于最大池与反向传播一起使用,我不明白为什么我不能使用修改后的 MSEmin((yy^)2,(yy^2π)2,(y^y+2π)2).

另一个潜在的解决方案可能是采用分类方法,但对目标概率应用高斯平滑,以目标标签为中心。

有人愿意发表评论或建议吗?

2个回答

在循环统计中,您的建议我们可以称之为弧距离损失,实际上是可以使用的已知损失函数之一。由于您提到的原因,它有效,并且直观地肯定比分类方法更明智。我想,它仍然被使用的原因是它规避了将预测完全视为循环。min((yy^)2,(yy^2π)2,(y^y+2π)2),

在循环统计领域,一种可能更简单和更常见的方法是使用我们可以称之为余弦距离损失,其范围在 0 之间(当)和 2(当1cos(yy^),y=y^y=y^+π).

弧距损失与 Wrapped Normal 分布有关;余弦距离损失与 von Mises 分布有关。当然,圆(以及超球面)上的其他损失函数是可以想象和使用的,例如绝对误差损失的类似物。

一种常见的方法是让神经网络输出u,v表示角度θ^这样cos(θ^)=uu2+v2,sin(θ^)=vu2+v2. 这避免了输出中的“边界”,这可能证明反向传播学习具有挑战性。

每次旋转θ有一个相应的旋转矩阵,可以方便地用角度的正弦和余弦构造。

R=[cosθsinθsinθcosθ]

R^是对应于预测角度的旋转矩阵,并且R是真正的旋转矩阵。然后tr(RTR^)=2cos(θ^θ)对于计算余弦距离损失很有用。方便的是,这种跟踪技巧也适用于 3D 旋转,即使旋转发生在多个坐标轴上。