目前正在参加软件杯《公共地点人流量计算的云监管平台》,做了很多研究后发现人流量检测还存在着很多难点等待解决。
目前存在的问题有:
1.识别准确度:
影响准确度最关键的问题就是人群遮挡
首先摄像头必须从空中俯拍人头以降低识别难度,因为人头一般不容易被遮挡。
另外深度学习目前的大多数数据集都是针对整个人身体或人脸做标记的,很少有针对人头的数据集,即便有,在下载下来后发现标注者的水平并不能令人满意,存在漏标误标的情况。还是应当自己做标注或对现有数据集做筛选
最后当改成识别人头后,对于头部遮挡就不好去识别。列如打伞、带头盔等
其他影响准确度的因素还有算法本身及环境因素(如阴暗环境、摄像模糊),后者可以通过数据增强来解决。
2.识别速度:
很多目标检测算法都是针对通用目标检测,算法比较重,只有针对人流量统计做过优化后的算法在速度和准确性上才有提升。经测试,在1050 2G显存环境下,使用不同分辨率的图做检测,faster-rcnn算法平均0.45s一张图,yolov3平均0.08s一张图(不考虑模型加载时间)。考虑到人群在短时间内位置变化不大,可以每隔10帧或每隔5帧做一次目标检测。
如果对实时性要求比较高,还可以加上目标跟踪。跟踪要比检测快。可以跟踪和检测交替进行,这样能加快处理速度,还能一定程度缓解因目标被遮挡后丢失目标的问题。
最后,除了改进算法本身,还一定要用好一点的电脑去跑算法,1050压力很大。
关于目标跟踪,opencv自带了几个目标跟踪算法,
同时附上目标跟踪算法的排名
https://github.com/foolwood/benchmark_results