什么时候对depth进行缩放?
encoding depth
depth[i] = objects[i].pos[-1]
monodle
encoding depth
depth[i] = objects[i].pos[-1] * aug_scale
为什么不对深度进行比例缩放呢?monodle中对depth进行了缩放,这是为什么呢
depth在增强时进行缩放的原因是mono3ddet都是过拟合图像尺度与depth之间的关系用于做depth推理。
random crop会改变上述关系,导致模型无法推理depth
对于gupnet,不需要做scale的原因是gupnet用了一种特殊的coordnate map,会把aug前图像的坐标位置记录下来,因此网络还是可以根据coordnate map还原出原始图像尺度信息,因此不需要scale操作
我还不是很理解,我个人理解是这样的,麻烦您解答一下疑惑 random crop 并不会改变物体的成像尺寸,所以,物体的尺寸对应深度不会发生变化,但是如果进行了缩放scale,物体的尺寸发生了放大或者缩小,不是对应着深度的放大和缩小吗?所以对应的真实深度应该乘上scale因子。 我得理解是哪里出问题了吗?
你crop后:1)肯定要对图像的尺寸进行拉伸放缩的,这就改变了物体成像在2d平面的尺寸。2)而且也会破坏图像成像中心点的位置。这两者的改变可以认为是改变了相机现有的内参,这些会影响mono3d系统推理depth。
感谢您的回复和解答!
不客气,其实从内参角度理解是比较容易的。可以简单理解成: 单目3d都是overfit图像内参的,由于单目数据内内参变化不会范围特别大,所以模型都会overfit内参,random crop会显著改变内参,所以需要针对性处理