私は現在、人の検出とカウントのプロジェクトに取り組んでいます。基本的に、USB ウェブカメラを介してシーン内の人を検出し、通り過ぎる人をカウントします。現在、私のセットアップは次のとおりです。
- OpenCV 2.4.6、Haar法(浮動小数点処理)で人の頭を検出
- ARM A9クアッドコアとMaliクアッドコアGPUを搭載したARMボード
残念ながら、処理時間は 1 フレームあたり 70 ~ 100 ミリ秒 (14 ~ 10 fps) と十分に速くないため、通常の速度またはそれより速い速度で歩いている人はカウントされません。ボトルネックは OpenCV の HaarDetection メソッドにあり、基本的に 1 フレームあたりの処理時間の 90% がプロセスによって消費されます。
整数処理に基づく LBP モデルである Haar 以外の別のモデルを使用してみましたが、これまでのところ、私の LBP モデルは満足のいくものではなく、まだ新しいモデルの作成に取り組んでいます。また、OpenCV (OpenCV でネイティブに実装されたマルチスレッド) で TBB を使用してみましたが、Odroid で何らかの理由でクラッシュが発生し、TBB を使用しないとアプリケーションが安定して動作します。
私が考えることができる唯一の最適化は、ボードで Mali GPU を利用し、修正された HaarDetection で OpenCV を再コンパイルして GPU 処理能力を利用することです。私の質問は、これは OpenGL ライブラリを使用して実行可能ですか? OpenGLのほとんどの例は、画像を処理するのではなく、グラフィックをレンダリングすることです。