做人数统计时,很自然地想到通过检测人头来计数。研究人头检测我主要是从两方面着手。
(一)传统方法
(1)opencv haar+adaboost 训练,经实测虽可检测,但鲁棒性不够好。
(2)opencv hog+svm训练,最终测试也是鲁棒性不够好。
以上两种方法都受制于样本数量问题,如果样本数量足够多,效果也自然会好点。
(二)深度学习方法
目前目标检测的主流方法是cnn,我选择的是caffe ssd框架,网络选用的是faceboxes(这部分需自己实现),选用faceboxes的好处是速度快精度高。训练数据选用的是HollywoodHeads,该数据库虽然样本数量较大,但仍存在以下问题:
(1)为电影场景,画面都是经过处理的,与现实中摄像头拍摄的画面寻找明显差异。
(2)虽名为人头数据集,但其中绝大部分为人脸部分,人头部分是少之又少。
使用faceboxes方法较之传统方法确实是好了点,但对于图像中人头分辨率太小的效果还是不太好,这时就不得不放大输入图像以取得更好的检测效果。