スライド 1 - OpenRTM-aist official website |

RTミドルウエアコンテスト2007
OpenCV を使った画像処理コンポーネントの作成例
田窪 朋仁(大阪大学)
概要:
USBカメラで取り込んだ画像をOpenCVで提供されて
いるライブラリで処理し出力するためのコンポーネント
群を開発しました.コンポーネント間のデータのやりと
りは画像のみに限定し,複数コンポーネントの処理を
重ねることで様々な画像処理結果を得ることができま
す.画像処理における各種パラメータはRTCLinkの
ConfigurationViewから調整可能にすることで高機能
画像処理ライブラリの機能を容易に試用することがで
きます.
特徴:
広く利用されている画像処理ライブラリOpenCVを
RTMコンポーネントにすることで作成例を学ぶ.
複数の実用性のある画像処理を簡単に連結できる.
主要な処理パラメータをRTCLinkから調整できるよ
うにすることでライブラリの試用ができる.
VMWareイメージにより仮想環境を配布.すぐに試
せる.
インタフェース・使用OS環境:
・入力ポート1,出力ポート1
・入出力共にカラー画像データのみ
・VMWareでFedraCore6(Linux)を使用
図1 背景差分とテンプレートマッチングモジュール
による人物追従の例
連絡先:
大阪大学大学院基礎工学研究科 田窪 朋仁
takubo<at>arai-lab.sys.es.osaka-u.ac.jp
URL: http://www-arailab.sys.es.osakau.ac.jp/~takubo/howto.html
無料高機能画像処理ライブラリOpenCVの各機能をコ
画像処理モジュール
ンポーネント化することで,プログラムの書き換え無しに
様々な処理を試し,結果を表示することができます.
テンプレート
今回作成した処理コンポーネントは下記の13種類です.
背景差分
マッチング
カメラキャリブレーション:カメラの内部パラメータ計算
モジュール
モジュール
背景差分:モジュールを起動した時を基準とした差分
フレーム差分:フレーム間差分により動体を表示
テンプレートマッチング:テンプレートに近い画像を探索
1.背景差分モジュールの起動時に環境の画像を背
オプティカルフロー:区間画像の動きをベクトルで示す
景として登録し,人がカメラ前に来たときに背景画像
ハフ変換:画像内の直線らしき場所を検出
との差分で人のシルエットが抽出されるようにする.
閾値処理:カラー画像をある輝度値で2値化する.
2.人物シルエットのテンプレートを用意しテンプレー
回転:画像の回転だけ.あまり使い道はない.
トマッチングにより人物の頭部位置を特定する.
膨張と拡大:モフォロジー処理を行える.
平滑化:雑音の除去.このあとに他の処理をするといい
図3 人物追跡機能の構成例
ことがあるかもしれません.エッジは甘くなる.
エッジ画像:カラー画像を入れるとモノクロのエッジ画像 モジュールの入力と出力は画像サイズを固定したカ
になります.
ラー映像のみとなっているので,1つのモジュールで処
グレイ画像:カラー画像をグレイ画像に変換します.
理した結果を他のモジュールに数珠繋ぎにして処理を重
輪郭抽出:閾値処理後の画像を入れると輪郭を抽出し ねていくことができます.
てくれます.
用意したコンポーネントを使った人物追跡の例を図3に
USBカメラ
モジュール
画像を取得し
送信
好みの処理モジュールを
直列につなぎ合わせる
画像処理
モジュール
図2 画像処理の流れ
画像処理結果
を表示
画像表示
モジュール
示します.使用するコンポーネントは「背景差分モジュー
ル」,「テンプレートマッチングモジュール」の2つです.ま
ず,カメラから取得された画像を背景差分の処理により
人物領域を抽出します.次に,人物のシルエットをテンプ
レート画像として上半身の位置をテンプレートマッチング
により検出し,画像上に人物の上半身を囲む表示をして
います.
詳細に関しては,ホームページをご覧下さい.