如何使用Matlab检测弯曲的人

How to detect a bending person using Matlab

我在使用计算机视觉系统工具箱 (Matlab) 时遇到问题 vision.PeopleDetector 检测人体弯曲的系统对象。由于此工具仅检测直立的人,因此当弯曲姿势不直立时会失败。

我确实尝试使用 regionprops 来处理弯曲图形的分段轮廓,但由于我使用高斯混合模型进行分段,结果也很糟糕。

有没有人对检测弯腰的人有好的建议?非常感谢。

澄清一下,您是在处理视频吗?你的相机是固定的吗?在那种情况下,您应该能够使用 vision.ForegroundDetector 来检测任何移动的东西,然后使用 regionprops 到 select 正确大小的斑点。如果 regionprops 对您不起作用,您可能想尝试使用形态学(imcloseimopen)来缩小小间隙并滤除噪音。

此外,如果您正在处理视频,则可以使用 vision.KalmanFilter 来跟踪人员。那么你就不必在每一帧中检测每个人。如果一个人弯下腰,当他直起身子时,你仍然可以恢复轨道。

另一种可能性是尝试使用vision.CascadeObjectDetector进行上半身检测。如果将图像旋转90度,应该可以检测到弯腰人的上半身。

另一种可能性是使用 trainCascadeObjectDetector 函数训练您自己的 "bending person detector"。