最近の開発でOPEN CVを用いた案件がありました。
若い社員が半年近くかけて最後までソフト(C++使用)を作りあげてくれました。以下のようなオライリー本を数冊読んだりと大変そうでしたが今では洗練されたOPEN CV使い。本当に頑張ってくれました。嬉しい限りです。
(この写真にあるのはごく一部。最終的にオライリー本に頼る事になりますが。。)
という事で、OPEN CVの技術についてまとめてみました。
【 OPEN CVを用いた人物検知技術 】
—– getDefaultPeopleDetectorを利用
人物検知の仕組みはOPEN CVの標準ライブラリ中(getDefaultPeopleDetector)にあります。人物検知させるだけだったら比較的容易に実装可能です。
弊社で実際に、getDefaultPeopleDetectorを試してみましたが、人物検出の精度が弱い感じでした。オルクージョン(手前にある物体が背後にある物体を隠して見えないようにする状態)時などは検出できないのがネックですね。
参考サイト:Open CV3.0で人物追跡する
—– Multi-Person Pose Estimation in OpenCV using OpenPoseを利用
この技術を利用すると、かなりの精度で人物検出が可能になります。ただし、弊社でGPUを組んだPCで確認した限りでは、処理速度に難がありました。恐らくですが、GPUハードスペックが高い物を準備してもリアルタイム検知は厳しいと思われます。
なお、Open POSEの商用利用は年額約270万ほどかかります。ちなみにアカデミック、研究関係などであれば無償利用可能なので使いどころが重要ですね。
参考URL:Multi-Person Pose Estimation in OpenCV using OpenPose
【 OPEN CVを用いた物体認識 】
—– 特定物を認識する機能
これは人物検知と同じような機能ですが、特定したい物が多岐に渡るためOPEN CV上には最初から備わっていません。認識したいデータを別途準備してOPEN CVに読み込ませる必要があります。OPEN CVには機械学習の機能が備わっており、画像データを渡す事で特定したい物の特徴を覚えさせ、物体認識(Object recognition)させる事ができます。その後、読込む画像・動画をOPEN CVに渡すことにより特定物を認識させる事ができます。
—– 耳を検出する方法
耳を検出する方法が解かりやすく述べられているのでこちらで紹介します。オブジェクトの画像から特徴量を抽出して特定物を認識するHaar Cascadeという技術が用いられています。
OpenCVとSwiftで耳検出のアプリを作る
Face Detection using Haar Cascades