繁体   English   中英

用于从视频馈送确定房间大小的算法

[英]Algorithm to determine size of a room from video feed

有没有人知道一个图像分析算法,通过这个算法,我可以确定一个房间在这个房间的一个(或多个)视频录像中有多大(大约在现实生活中的测量中,比如宽度,以米为单位)?

我目前正在使用OpenCV作为我选择的图像库,但我在学习图像分析算法方面并没有走得太远,只需要一个名字下降就可以了。

谢谢

编辑:好的,我刚从相关人员那里得到一点澄清。 我基本上无法控制如何拍摄视频,也无法保证有多个数据源。 然而,我在房间里有一个点位置,我应该放置与这一点有关的东西。 因此,我可能会尝试识别房间的边缘,然后确定给定位置在房间内的程度,然后猜测房间的大小。

非常困难(但有趣!)问题。

如果您正在考虑以完全自动化的方式执行此操作,我认为您将遇到很多问题。 但我认为如果操作员可以在一组图片中标记控制点,这是可行的。

当您从两个或多个从不同视点拍摄的2D图片中仅获得这些点的位置时,您的问题可以更一般地说明为在3D空间中找到两个点之间的距离。 这个过程或多或少会像这样:

  • 图片将附带相机位置和方向信息。 例如,假设你得到两张照片,相同的相机方向,两张照片是用水平相距三英尺的相机拍摄的。 您必须为摄像机所在的3D空间定义参考原点,例如,您可以说左侧图像的摄像机位于(0,0,0),右侧图像位于(3,0, 0),两者都将面向前方,这将是(0,0,1)的方向。 或类似的东西。
  • 现在,操作员在两张照片中标出了房间的两个角落。 因此,每个角落都有2组2D坐标。
  • 您必须知道相机和镜头的细节(视野,镜头失真,像差等)。 您对相机如何使图像变形的了解越多,您的估算就越准确。 这是同样的东西全景拼接软件做到更好的缝合。 有关信息,请参阅PanoTools
  • 有趣的是:现在,您将对每个2D点进行透视投影的反转。 透视投影在3D空间和相机定义中占据一个点并计算2D点。 这用于表示平面中的三维对象,如计算机屏幕。 与此相反,对于每个2D点,​​您将尝试获取3D坐标。 由于2D点中没有足够的信息来确定深度,因此从单个2D点可以做到的最好的事情是在3D空间中获得穿过镜头并穿过相关点的线,但是您不知道距离镜头有多远。 但是,您在两个图像中具有相同的2D点,因此您可以从不同的摄像机位置计算两条3D线。 这些线不是平行的,因此它们将在一个点上相交。 3D线的交点将很好地估计3D点在空间中的位置,以及参考相机3D空间的坐标。
  • 其余的很容易。 当您拥有两个兴趣点的估计3D位置时,您只需计算它们之间的3D距离 ,这就是您想要的数字。

很简单,对吧?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM