【发布时间】:2015-06-16 21:35:56
【问题描述】:
我们想在我们的产品上安装一个或多个立体摄像机,然后检测附近(在特定距离内)是否有 1 个或多个人。
Matlab CVST 可以做到这一点吗?
【问题讨论】:
标签: matlab computer-vision matlab-cvst
我们想在我们的产品上安装一个或多个立体摄像机,然后检测附近(在特定距离内)是否有 1 个或多个人。
Matlab CVST 可以做到这一点吗?
【问题讨论】:
标签: matlab computer-vision matlab-cvst
是的,它可以。事实上,它附带了一个example,它可以检测立体视频中的人并测量他们与相机的距离。要使用这种方法,您需要使用 Stereo Camera Calibrator 应用程序校准您的相机。
【讨论】:
问题有两个部分。第一部分是在视频图像中检测和跟踪人类。二是确定与人类的距离。
通过检测人脸,Matlab CVST 很好地支持了检测和跟踪问题。有几种方法可以通过多帧上的光流方法检测人脸并对其进行跟踪。 Matlab 文档中有一个使用 KLT 光流算法at this link 检测和跟踪人脸的示例。当然,可能需要根据您的具体情况进行一些调整。
@ABC 指出的身体检测当然是另一种选择。讨论是否使用卡尔曼滤波器而不是光流方法进行跟踪在很大程度上取决于场景中的其他对象、照明和许多其他因素。卡尔曼滤波器可以更好地跟踪身体运动学,但它也需要更多的调整。
问题的第二部分更难。您需要设置立体相机,在帧中找到检测到的人脸之间的点对应关系,找到相机设置的对极几何形状并计算到人脸的距离。它在 Matlab 中是可行的,但您肯定需要一些自定义开发。
我不确定您想要的答案有多全面,但希望这是一个开始。
【讨论】:
我要第二个@paisanco 的回答。但我会在接下来的几个步骤中为您分解。
希望这会有所帮助。
编辑: 我忘了回答问题的第二部分:这是更新。
获取大致距离的一种快速而肮脏的方法是从 1 英尺、3 英尺、5 英尺、10 英尺等远的地方拍摄人类的照片。然后运行你的人体探测器,它应该给你主轴的高度,你可以想出一个简单的方程来获得基于高度的距离。您还可以在此基础上提出一个置信度度量,即这是一个人。
【讨论】: