前两周左右一个公司让我们写一下demo实现行人计数和某个人计次的功能,到现在为止效果不太好,但是还是有必要记一下我们的思路。
说到行人计数的话,肯定是要有行人检测和行人跟踪两部分的,网上搜了一下,opencv里面有两种检测的方法,一种叫做hog变换,另一种是haar人形检测的方法。后一种方法我没有测试,但是从之前haar方法的人脸检测的效果来看,行人检测的误检率肯定也蛮高的。行人跟踪方面没有找到合适的代码,opencv里有meanshift和camshift两种跟踪方法,这两种方法大同小异,理论上可以跟踪任何物体。但是因为是采用的颜色直方图信息,所以如果行人走动的背景较为复杂,很难判断这个行人是否走出视野。最要命的是,camshift只能实现单目标跟踪,也就是说有很多人一起走的时候就不灵了,上周想将camshift改成多目标跟踪,但是一点思路都没有。
也就是到目前为止博主不知道有什么现成的跟踪方法来跟踪行人,好办法没有笨办法倒是还能想到的。撸主的想法是这样的,检测前后帧里的行人框(hog方法会将行人以方框圈出,并返回方框数据)比对方框是否临近(可以按照所检测到的方框的宽度作为检测的阈值,比如上一帧的某个方框宽度为50pix,而在当前位置下人走一步的宽度基本是不会超过50pix的)如果临近,那说明前后帧所圈出