本実験の目的は,顔,手形状,顔向き,ゼスチャー,動作などの人の動きを認識するアルゴリズム・システムの試作を通して,画像認識の基本原理を数理レベルから深く理解することにあります.同春学期に開講する画像認識工学と併せて受講すると,講義で紹介する画像認識における高次元ベクトル空間の基本数理や識別理論に対する理解が,本実験で扱う具体的な課題を通して,より深まることが期待されます.
マイクロソフト社が提供するKinectセンサーは,通常のカラー画像と距離画像(つまり対象物の3次元形状)を同時に取得できるセンサーです.このデバイスが登場するまでは,距離画像を得るためには,レーザー光線を用いたレンジファインダと呼ばれる高価な特殊な機器が必要でした.これがKinectの出現により劇的に変わりつつあり,既に様々なアイデアに基づいた多種多様な画像認識システムが開発されています.通常のカメラから得られる輝度画像に比べて,距離画像からは対象物の切り出しが容易であるという大きな利点があります.
前半:識別対象を顔あるいは手形状に定め,リアルタイムで動作する識別システムを試作してもらいます.Kinect for Windows SDK,画像処理ライブラリOpenCV, Visusal Studio C++を使う.企業では C++が一般的に使われています.
後半:ゼスチャー,全身動作,歩容(人の歩き方)などを対象とした識別アルゴリズム(深層学習も含む)を自分なりに考え,Matlabを使って実装・性能評価してもらいます.こちらはオフライン処理を想定しています.
前半の成果を中間報告会で発表してもらいます.
後半の成果を最終報告会で発表してもらいます.
全受講者に1台づつKinect for windowsを貸し出します.
プログラミングが苦手でもTAが懇切丁寧に指導するので心配無用です.
手形状を用いたじゃんけんシステムの例で基本的な流れを概説します.
手形状クラス(グー,チョキ,パー)毎に以下の処理を行う.
(1)Kinectを用いて距離画像を手の形状を変化させながら複数枚入力する.
(2)距離情報を用いて,各距離画像からそれぞれの手領域を抽出する.
(3)各距離画像から識別に有効な特徴を抽出する.
(4)複数枚の距離画像から抽出された特徴セットから主成分分析を用いて辞書を作成する.
(1)識別したい手形状の距離画像を入力する.
(2)距離情報を用いて,手領域を抽出する.
(3)手領域の距離画像から特徴(学習フェーズと同じ)を抽出する.
(4)(3)で抽出された特徴を予め用意されている各手形状クラスの辞書特徴を比較し,類似度を求める.
(5)全クラスの中で最大類似度を有する形状クラスを該当するクラスとする.
(6)識別結果を用いてコンピュータが出したCG手と比較し,勝ち負けを判定する.
以下の項目を含んだレポートを提出してもらいます.
アルゴリズム(ソースコード)
アルゴリズムの基本アイデアの説明
実験結果
実験結果に対する考察
感想
課題が早く済んだ人は,次の課題をアップするのでTAに声をかけてください.
4/17日は休講です.
19日(金)は15:15から説明会を行いますので,3E205(コンピュータビジョン研究室)に集まってください.
第1回:初回ガイダンス(4月19日) (資料はこちら, opencv2410.zip, sample.zip)
第4,5回:画像処理 (資料はこちら)
第6,7,8回:Kinectを用いたポーズ認識 (資料はこちら, kadai03class.zip, kadai03withoutclass.zip)
第9回 : オプション課題 表情認識(資料はこちら)
第10,11回:部分空間法による認識 (資料はこちら),face_dataのPWは[face_recog_09]です.
第12回 : 中間報告会(資料はこちら)
後半第1回 (MATLAB演習) (資料はこちら)(cvtLabel.m)(matlab_sample.zip)
最終報告会(資料はこちら)
プロジェクトの読み込みが失敗する場合、プロジェクトに右クリック、再読み込みしてみる.
プロパティシートの設定を再度チェック.
Kinectを他のUSBポートを繋いでみる.
奥田 虎児 (コンピュータサイエンス専攻 博士前期課程1年)
okuda AT cvlab.cs.tsukuba.ac.jp
黄 源天 (コンピュータサイエンス専攻 博士前期課程1年)
huang_yuantian AT cvlab.cs.tsukuba.ac.jp