我目前正在从事人员检测和计数项目。它基本上通过 USB 网络摄像头检测场景中的任何人,然后计算经过的人。目前,我的设置是:
- OpenCV 2.4.6,使用Haar方法检测人头(浮点处理)
- 带有 ARM A9 四核和 Mali 四核 GPU 的 ARM 板
不幸的是,处理时间不够快,每帧 70 - 100 毫秒(14 - 10 fps),因此不计算以正常速度或更快行走的人。瓶颈在于 OpenCV HaarDetection 方法,基本上每帧 90% 的处理时间都被进程消耗了。
我尝试使用除 Haar 之外的另一种模型,即基于整数处理的 LBP 模型,但到目前为止,我的 LBP 模型并不令人满意,我仍在努力创建新模型。此外,我尝试将 TBB 与 OpenCV 一起使用(在 OpenCV 中本地实现多线程),但不知何故导致 Odroid 崩溃,如果我不使用 TBB,应用程序可以稳定运行。
我能想到的唯一优化是利用板上的 Mali GPU,使用修改后的 HaarDetection 重新编译 OpenCV 以利用一些 GPU 处理能力。我的问题是,这是否可以使用 OpenGL 库?我看到大多数 OpenGL 的例子是渲染图形,而不是处理图像。