首页 文章

当不知道物体和相机之间的距离时,如何从图像中获取物体的真实大小?

提问于
浏览
24

我必须制作一个移动应用程序来计算图像中对象的实际大小 .

我做了一些研究,发现有用[问题]:How would you find the height of objects given an image?

相机的距离与物体的实际尺寸之间的关系实际上并不复杂,传感器上的物体尺寸与现实生活中物体的尺寸之比与之间的比率相同 . 焦距和物体距离 .

distance to object (mm) = focal length (mm) * real height of the object (mm) * image height (pixels)
                          ---------------------------------------------------------------------------
                          object height (pixels) * sensor height (mm)

但是如果距离未知,如何获得物体的实际高度值?

从图像创建3d模型的工具是否具有真实的生命维度?

1 回答

  • 30

    简单的答案是 you can't .

    顺便说一句,这就是人类有两只眼睛的原因 . 如果您想在没有已知距离的情况下判断尺寸,则至少需要两个参考点 . 这允许您对对象的位置进行三角测量,获得距离,并使用已知的焦距来计算大小 .

    更复杂的答案是 there are ways around this ,例如:

    • 使用已知参考作弊:

    例如,如果您有一个已知大小的对象,则可以推断出距离 . 例如,这类似于校准其相机的NASA does .

    如果您正在处理常见对象,例如在分析建筑物图像时的一层高度,您可以做出安全的假设 .

    • 移动相机:

    这允许您使用相同的相机获得多个参考点 .

    我想你可以使用加速度计来精确测量在时间点T1和T2点捕获的图像之间的位置关系 . 这将为您提供两个相同主题的图像,它们之间已知距离 . 这样就可以让你像三只眼睛一样进行三角测量 .

    正常的手持摄像机抖动是否足以进行三角测量,或者加速度计是否足够精确以便惯性定位手机,我不知道 .

    • 假设距离:

    如果您的应用程序旨在比较人手(或人体解剖学的其他位置)的某些东西,您可以安全地根据人们自然会做什么来确定距离 . 相机本身的聚焦限制还将给出物体可以在多远和仍然聚焦的上下范围 . 这可能在可容忍的误差范围内 .

    正如你在问题中提到的那样,整个subfield致力于这个问题,它是active research area .

相关问题