【CEATEC】東芝Cell実演の画像認識,中身の処理はこうなっている【動画あり】
東芝は画像認識技術を駆使して,カメラ画像から人間の姿勢を推定するモーション・キャプチャ「動的捕獲術 SHADOW」の実演をCEATEC会場で披露している(Tech-On!関連記事)。この技術は,「Integral Image」などいくつか特徴的な技術を用いている。この記事では,その処理の詳細を報告する。なお,モーション・キャプチャの実演の動画はこちら(MPEG,約1.2M),モーション・キャプチャを使ったゲームの動画はこちら(MPEG,約7.3M)。
まず処理全体の流れは以下のようになっている。
(1) カラー画像の撮影:240×320画素のカラー画像を取得。
(2) 人物のシルエットの抽出:背景画像の色相情報(緑色)を基にして,背景以外の領域のみを取り出す。今回は背景以外には一人の人物しかいないと仮定しているため,背景以外の領域がすべて人物のシルエットとなる。背景部分の画素の値はゼロ,人物領域は1といった2値画像を得る。
(3) 姿勢データベースとのマッチング:この2値画像を姿勢DBとマッチングさせ,DBに格納された4万個の姿勢データ(28個の関節角データ)の中から最も似た姿勢を判別する。
(4) CGキャラクタの描画:得られた姿勢に対応する関節角を基にCGを描画する。
今回のシステムは毎秒10回の判定結果を得られるため,上記の処理をCellは100msで実行する。上記の処理のうち,最も負荷が重い処理は,姿勢データベースから最も近い姿勢を検索する処理である。人物領域のシルエット画像という2値画像での相関演算とはいえ,240×320画素の画像をデータベースに格納した4万枚の画像と直接マッチングさせてしまうと,いくら高速なCellをもってしてもリアルタイムでの認識は難しい。
Integral Imageでマッチングを高速化
そこで今回同社は,このシルエット画像のマッチングにおいて,主に二つの工夫をしている。まずマッチングの高速化のために「Integral Image」と呼ぶ手法を用いた。Integral Imageとは,ある画像領域内での画素の総和をあらかじめ計算しておいたもので,今回は行ごとに総和を算出した。このIntegral Imageを用いると,相関演算の演算量を数百分の一にできるという。なお,姿勢データベースでは,関節角に基づいて描画したCGモデルを2次元に投影し,ここからシルエット画像を生成している。
次に,姿勢データベースを似た姿勢ごとに3階層のツリー構造とした。最上位の階層は大まかな姿勢でグルーピングされており,まずはこの階層でマッチングを行い,絞り込みを行う。判別結果が出たら,さらにその下の階層の検索に移るといった具合である。なお,検索処理はツリー構造の枝ごとにCellの七つのSPEで分散処理させており,並列化している。



















