我目前正在进行人员检测和计数项目。它基本上可以通过USB网络摄像头检测现场的任何人,然后统计路过的人。目前,我的设置是:OpenGL人脸检测
- OpenCV的2.4.6,使用检测方法哈尔(浮点处理)
- ARM板与ARM A9四核心和Mali四核GPU
不幸的人头上,处理时间不够快,每帧70 - 100毫秒(14 - 10 fps),因此不会计算以正常速度或更快速度行走的人。瓶颈在于OpenCV HaarDetection方法,基本上每帧处理时间的90%被该进程消耗。
我试着在Haar旁边使用另一个模型,这是基于整数处理的LBP模型,但到目前为止,我的LBP模型并不令人满意,我仍在努力创建新模型。此外,我尝试使用TBB与OpenCV(原生在OpenCV中实现的多线程)但以某种方式导致Odroid崩溃,如果我不使用TBB,应用程序运行稳定。
我能想到的唯一优化就是利用板上的Mali GPU,使用修改后的HaarDetection重新编译OpenCV以利用某些GPU处理能力。我的问题是,这是可以使用OpenGL库吗?我看到大多数OpenGL的例子都是渲染图形,而不是处理图像。
今天大多数Mali四核处理器都是Mali-400 MP,它只支持OpenGL ES 2.0,并且没有GPGPU api的说法。你可能有很多意志力和时间可能使用顶点/片段着色器将某些东西拼凑在一起,但它似乎很难实现(你不仅需要重写算法,而且要以非常尴尬的分区方式重写它)。抛出硬件或调整算法/改变你的方法。 – PeterT
您可以尝试使用latentsvm检测器,但这意味着需要为不直观的人员培训新模型。告诉我,如果你有兴趣,我会提供更多的细节。 – GilLevi
没关系,有一个训练有素的模特儿。 – GilLevi