我想开发一个神经网络来测量图像中对象两个相对侧之间的距离(以类似于分数卡尺工具测量对象的方式)。
因此,给定一个物体的图像,神经网络应该产生物体的深度或高度。
我可以使用哪些计算机视觉技术和神经网络来解决这个问题?
我想开发一个神经网络来测量图像中对象两个相对侧之间的距离(以类似于分数卡尺工具测量对象的方式)。
因此,给定一个物体的图像,神经网络应该产生物体的深度或高度。
我可以使用哪些计算机视觉技术和神经网络来解决这个问题?
说真的——如果你有立体图像应该是可能的,因为那是我们用于深度感知的东西。如果您知道点 x1 和 x2 的距离,那么您可以使用三角法测量距离。我猜不需要神经网络。https://en.wikipedia.org/wiki/Triangulation_(computer_vision)
如果您想要的对象测量不太复杂(即明确定义的特征的长度),并且您能够获取与您的模型在您的用例中看到的相似的对象图像的训练数据集(相同的比例/距离)、它们的边界框和它们的测量值,您可以尝试实现的模型是多任务卷积神经网络 (MTCNN)。
MTCNN 通常用于人脸检测和对齐,但我想如果经过适当的培训和调整,可以使它们适应您的用例。如果您想要获得更复杂的测量结果,您可以将检测到的对象传递给另一个模型以进行更具体的测量。
但是,您将遇到测量深度的问题。由于我们在从 3D 空间移动到 2D 空间时会丢失信息,因此很难从图像中估计深度。MachineEpsilon对交叉验证问题的回答“如何使用机器学习检测图像中对象的确切大小? ”对此有更详细的解释,但引用了他的主要陈述:
深度估计的这项任务是计算机视觉中称为 3D 重建的难题和基本问题的一部分。从图像中恢复度量信息有时称为摄影测量。这很难,因为当您从现实世界转移到图像时,您会丢失信息。
具体来说,通过 𝑥=𝑇𝑝 将 3D 点 𝑝 带到 2D 点 𝑥 的投影变换 𝑇 不会保留距离。由于 𝑇 是一个 2×3 矩阵,计算 𝑇−1 以解决 𝑇−1𝑥=𝑝 是一个欠定逆问题。这样做的结果是,像素长度通常不会在现实世界的距离方面有意义
然而,这并不是说如果额外的成本不是问题,您可以添加额外的传感器来解决深度估计问题(即立体相机或红外距离传感器)。