我开始搜索实现一个系统,必须计算某些地方的人流。最后一个想法是类似http://www.youtube.com/watch?v=u7N1MCBRdl0的东西。我正在使用OpenCv开始创建它,我正在阅读和研究。但是我想知道是否有人能给我一些提示的源代码示例,文章和其他任何东西,可以让我更快地完成我的交易。
我从blobtrack.exe样本开始研究,但我没有得到很好的结果。
斑点检测是正确的方法,只要你选择好的阈值和你的照明均匀一致;但这里真正的问题是编写一个跟踪算法,它可以跟踪多个blob,并抵抗掉帧。基本上,你希望能够在多个帧中为每个blob分配持久的id,请记住,由于光照条件的变化,由于人们走得非常近和/或穿过路径,blob可能会在几个帧中退出,分裂和/或合并。
为了"正确地"做到这一点,你需要一个模糊ID分配算法,它可以抵抗掉帧(即blob ID保留,并且理想地预测运动,如果blob掉了一帧或两帧)。您可能还希望保留ID合并和拆分的历史记录,以便如果两个ID合并为一个,然后一个分裂为两个,您可以将单个合并的ID重新分配给生成的两个blob。
根据我的经验,openFrameworks的openCv基本示例是一个很好的起点。
我不会把这个作为正确答案。
对于那些能够阅读葡萄牙语或可以使用翻译的人来说,这只是一个选择。这是我的毕业设计,上面有一个选项的解释,可以计算其中的人数。
限制:
- 在背景光变化很大的环境下,它的表现不佳。
- 必须为您将使用它的每个位置配置它。
优势:
- 这是快!
我使用OpenCV来做基本的功能,如,捕获屏幕,通过像素等。但是计算人数的算法是我自己完成的。
你可以在这张纸上查一下
关于这个项目的最终意见:它还没有准备好活下来,成为一个产品。