Hog + svm 人流量检测方法总结
一、程序和数据来源
1、程序:
(1) HOGTrain hog + svm训练代码
(2) countpeople 人流检查代码,参考这个代码,增加了在图像上实时输出人数
功能
2、数据
上海地铁视频数据,分帧得到图片用于训练测试。
二、训练测试参数设置
训练时要先设置hog和svm的参数,即更改svmInfo.info和detector.xml两个配置文件。
1、 选取窗口大小
经过多次实验窗口大小为64*80比较好,感兴趣区域大部分都可以检测到,
2、 直方图精度
这个参数在14~34之间最好,一般来说该值小点,速度快一些。
3、 HOG维数
通过实验,设置为4536效果最佳。
4、 测试感兴趣区
根据数据特点,选取感兴趣区。设置mask位置。
三、训练数据获取
数据通过手动抓取方式得到,选取原则:正样本尽量要统一,负样本要多样性。
这步最耗时。训练数据要至少一千,否则模型训练不充分。
四、 难例重训练
训练好模型后,用测试程序测试,查看测试结果,把测试错误地方记录下来。然后把错误地方选取为负样本,重新训练模型,然后在测试。重复多次,达到最优为止。
该步比较重要,能够大幅度提高训练结果。
五、测试结果
通过多次难例训练。最好识别结果能够达到75%左右。离工程应用95%还有差距。
六、结果分析
感兴趣区域人基本上都能识别出来。误差原因:
(1) 玻璃人影干扰
(2) 人腹部、腿部干扰。
七、程序bug
(1) 不能在文件夹内删除样本,否则报bug.(程序对文件内图像进行遍历,然后从0开始遍历训练,中间有删掉就会报错)
(2) 增加样本页面下一个建不能用,还有选错样本后,只能回到初始界面删除。(这部分功能代码没有实现)