この連載も最終回となりました。今回はこれまでの連載のまとめの意味も含めて、前回作成したARアプリケーションである「ARemoconGesture」のアルゴリズムの説明を中心に、画像解析のアルゴリズムを解説します。

日本Androidの会 金沢支部 出村成和

 まず、ここまで作成してきたARシステムをおさらいしてみましょう(図1)。

図1●完成したARシステム
[画像のクリックで拡大表示]

 BeagleBoard上には、Androidを搭載し、各種プログラムを実装しています(図2)。BeagleBoardにUSB接続したWebカメラから、手の画像が入力されます。「USV」(Webカメラ接続のためのUSV規格のドライバソフト)を介し、「Video4Linux」(ビデオキャプチャデバイスを扱うAPI群)でデータを取り込みます。さらに、カメラ関連のライブラリ「libcamera.so」を介して、ARアプリケーション「ARemoconGesture」に渡され、処理します。最後に、パソコン用学習リモコン「PC-OP-RS1」を制御するためのライブラリ「libpcremocon.so」を使って家電機器を操作します。

図2●ARシステム全体の流れ
[画像のクリックで拡大表示]

 前回作成したアプリケーション「ARemoconGesture」の処理の流れは図3のようになっています。カメラで撮影した画像から肌を検出し、手領域を検出し、輪郭(エッジ)を求めます。これとは別に、グー、チョキ、パーの画像から、作成した手の輪郭画像を用意します。カメラの画像を元にした手の輪郭と、あらかじめ用意したグー、チョキ、パーの手の輪郭をあるアルゴリズムで比較し、手の姿勢が、グー、チョキ、パーのいずれであるかを判断します。

図3●ARアプリケーション「ARemoconGesture」のフロー
図3●ARアプリケーション「ARemoconGesture」のフロー

この先は会員の登録が必要です。有料会員(月額プラン)は初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら