为了完成我的本科论文,我需要通过视频摄像头尽可能准确地计数人数。为了解决这个问题,我使用了Python和OpenCV。我知道像CNN这样的神经网络是尝试解决此问题的理想方法。但问题在于,我的论文要求不能使用神经网络。
我经常研究这个话题,但总是发现使用Tensorflow和Keras(如Yolo、Mobilenet)的神经网络模型进行物体检测和跟踪。我找到的唯一“传统”方法是:使用人的平均宽度和高度进行背景减除,以及使用HOG和SVM的方法。还有其他我可以使用的算法吗?(如knn或随机森林代替SVM)
我还有一个问题,始终找不到确切的答案,即如何在视频中使用这些方法,而不是在图像中。你是将视频逐帧分解,然后检测人吗?还是有我尚未发现的其他方法?我觉得对每一帧进行物体识别和检测对运行的机器来说可能会非常密集。
是否也可以在一个帧中检测多个人?
我非常希望有人能帮助我解决这个问题,因为我已经在这个论文部分卡了很长时间了。我想再次取得一些进展!提前多谢!
回答:
-
第一种方法 – 使用HAAR级联作为特征 + AdaBoost作为分类器。更快但效果较差 – 使用LBP替代HAAR。
-
HOG + 线性SVM。还有更多:CoHOG, DPM,…
-
ICF(积分通道特征)+ 森林。
这些是最重要的方法。
编辑1:你还可以使用更多特征(颜色、对称特征)和降维技术:PCA、PLS等。例如,线性SVM非常快但对噪声不robust。一些研究人员使用降维技术来减少特征向量大小,并获得了更好的结果。一篇好的论文“使用部分最小二乘法的车辆检测”:https://anikem.github.io/papers/Kembhavi_VehicleDetection_PAMI2011.pdf但深度神经网络显示了更好的结果。