使用光流查找相机支架和墙壁之间的距离
Posted
技术标签:
【中文标题】使用光流查找相机支架和墙壁之间的距离【英文标题】:Finding distance between camera holder and wall using optical flow 【发布时间】:2012-09-14 13:21:57 【问题描述】:是否可以准确地确定墙壁与以正常速度行走的持有智能卡的人之间的距离?智能手机中只有一个摄像头。可以通过光流来完成吗?我问这个是因为在谷歌搜索中我发现计算距离可能会产生误导。阅读 Peter Meijer here 的评论。
另外,我想知道是否有任何其他选项可以计算步行者行进的距离,因为我拥有的唯一资源是带摄像头和加速度计的智能手机。只需提及算法或提供链接就足够了。
我可以得到的信息:-
摄像头与墙壁的最大距离
来自 android 加速度计的加速度以找出近似值 用户速度
如果我的问题不清楚,请发表评论。
【问题讨论】:
我认为你不能真正证明 C++ 标记的合理性。 还有其他信息吗?人走路的速度?人走路的确切方向?墙的大小?对于此类问题,您需要包含您可以使用的任何信息。如果您对场景一无所知,那么不,您无法找到与墙壁的距离。 @Hammer 添加了我可用的信息 你的墙有纹理吗?如果是这样,您可以使用this 之类的方法来执行此操作。使用此方法,您将使用两个视图初始化平面上的一组点,并估计这些视图之间的距离。您的结果将非常依赖于该初始化步骤。一旦建立了坐标系的比例,就可以继续跟踪平面对象。 【参考方案1】:我可以想到两种三种方式:
-
如果您知道此人所持物体的大小,则可以估计此人与相机的距离,并且无需移动手机即可跟踪此人并获得预计的行进距离。在这里,您需要对人持有的物体进行初始校准,并且还需要手机中相机的焦距。此外,人走过的线应该与手机的图像平面平行。我在这里认为您的结果对于手机的摄像头来说非常不准确。
第二种方法是使用您拿着手机的高度并指向人的脚。使用可以从加速度计获得的角度来计算与人的距离并进行与上述相同的跟踪(适用相同的条件)。
您可以使用指南针计算经过的角度,并通过方法#2 计算三角形两侧的长度。然后得到另一边,这样更准确,也更简单。
【讨论】:
我忘了,Android、opencv甚至opticalflow也是有点误导标签。以上是关于使用光流查找相机支架和墙壁之间的距离的主要内容,如果未能解决你的问题,请参考以下文章