对于人数检测:用ACF会得到比较好的效果,实际测试结果表明白天会得到90%以上的准确率,但是夜间效果确实不怎样。为此夜间需要用夜间模型进行单独检测,同时还需要用跟踪算法进行弥补:
跟踪算法具体如下:
1、检测出人头位置,作为跟踪的初始化位置;
2、寻找目标位置内的特征点,这里可以用cvFastToTrack进行点的定位;然后用光流进行跟踪;得到跟踪后的位置(刚性目标跟踪,不存在太大的尺度变化)。
3、目标更新后的位置与下一帧检测位置进行叠加度匹配;得到目标的最终位置,没有匹配上的目标将采用跟踪结果进行填充,同时endflag++。
4、循环运行1-3直到视频结束。
对于步骤2中根据点得到目标位置,需要做一些说明:
光流跟踪不能确定所有点都能很好、正确地跟踪,点跟踪可能存在扩散、跟错、跟丢等情况,这些情况都导致无法准确地根据点得到目标的新位置。
为了得到新的目标位置,需要从两个方面入手:1、目标的位置偏移,2、目标的尺度变化
对于目标位置偏移:用前后各个点偏移位置的中值为基准
对于目标的尺度变化:用前后目标中所有点之间的距离变化比例的中值作为尺度变化
先进行位置偏移,然后进行尺度变化,最终得到跟踪后的目标位置。