我想统计从两边越线的人数。我有一个放置在天花板上的摄像机,拍摄线条所在的地板(因此摄像机只能看到人的头顶;因此它更多的是物体检测而不是人检测)。
是否有针对此问题或类似问题的示例解决方案?那我可以向他们学习吗?
编辑1:任何时刻都有不止一个人越线。
如果除了人类之外没有其他东西可以越线,那么您不需要检测人,您只需检测运动即可。
运动检测有多种方法。
也许最简单的一种就适合您的目标。您只需计算视频流的连续帧之间的差异,然后通过这种方式确定“运动掩模”,从而检测线交叉事件
作为此“算法”的改进,您可以考虑“运行平均”方法。
要确定运动方向,您可以使用“运动模板”。
为了提高探测器的准确性,您可以尝试任何背景扣除技术(这又不是一个简单的解决方案)。例如,如果有一些移动背景应该被过滤掉(例如使用统计学习)
所有提到的算法都包含在 OpenCV 库中。
UPD:
- 如何计算运动掩模 https://stackoverflow.com/questions/4756690/finding-image-silhouette-using-opencv/4759556#4759556
- 用于确定运动方向的有用函数
cvCalcMotionGradient
, cvSegmentMotion
, cvUpdateMotionHistory
()。 OpenCV 库包含运动分析的示例代码,请参阅莫泰普 https://code.ros.org/trac/opencv/browser/trunk/opencv/samples/c/motempl.c?rev=1429
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)