如何用 Matlab 立体计算机视觉测量运动物体的距离和质心?

Posted

技术标签:

【中文标题】如何用 Matlab 立体计算机视觉测量运动物体的距离和质心?【英文标题】:how to measure distance and centroid of moving object with Matlab stereo computer vision? 【发布时间】:2015-07-14 14:28:38 【问题描述】:

应该使用哪些 Matlab 函数或示例来 (1) 跟踪从运动物体到立体(双目)相机的距离,以及 (2) 跟踪运动物体的质心 (X,Y,Z),理想情况下在 0.6 范围内米到 6 米。来自相机?

我使用了使用 PeopleDetector 函数的 Matlab 示例,但是当人在 2m 以内时,这会变得不准确。因为它开始剪头和腿。

【问题讨论】:

【参考方案1】:

您需要处理的第一件事是如何检测感兴趣的对象(我想您已经解决了这个问题)。有很多方法可以检测运动物体。如果您的相机将站在固定位置,您可以只使用一台相机并使用一些背景减法来获得场景中出现的对象(一些信息here)。如果您的相机正在移动,我认为最好的方法是使用两个相机的光流(而不是使用前一帧来获取流图,立体对图像用于获取每个帧中的光流图)。

在 MatLab 中,有一个名为disparity computation 的选项,这可以帮助您尝试检测场景中的对象,之后您需要添加一个阶段来提取您感兴趣的对象,您可以使用一些阈值。获得所需对象后,您需要将它们放入二进制掩码中。在这个掩码中,您可以使用一些图像动量(检查this 和this)提取器来计算质心。如果二进制掩码中的图像看起来很嘈杂,您可以使用一些形态学运算来改善结果(观看this)。

【讨论】:

也许你可以结合background subtraction的方法在视差图上,得到更好的对象形式来跟踪。

以上是关于如何用 Matlab 立体计算机视觉测量运动物体的距离和质心?的主要内容,如果未能解决你的问题,请参考以下文章

双目立体视觉

立体视觉:深度估计

计算机视觉 立体视觉极简一览

如何用陀螺仪测加速度

求助:如何用matlab测量中国地图面积

如何测量相机与物体之间的距离