Kinectを使って、顔の動きを認識して画面に表示する
今回のサンプルは、Kinect for Windows Developer Toolkit 1.5.1に含まれる、Face Tracking Basics-WPFのC#のサンプルを参考に、少しアレンジを加えてVBに書き換えた、顔の輪郭を追跡して表示するサンプルです。
実際の動きは図1と動画を参照してください。このサンプルでは実行後、まず2mほど離れると、顔の輪郭に沿って三角形の集合体のジオメトリーが表示されます。その後1m以内ぐらいまで近づき、椅子に座ったままの状態でも顔のジオメトリーが表示されます。
顔の細かい動きを追えることから、継続的に顔の動きが必要なアプリを作る際に役に立ちそうですね。
サンプル一式は、会員限定特典としてダウンロードできます。記事末尾をご確認ください。
プロジェクトの作成
VS 2010のメニューから[ファイル(F)/新規作成(N)/プロジェクト(P)]と選択します。次に、「WPF アプリケーション」を選択して、「名前(N)」に任意のプロジェクト名を指定します。ここでは「KINECT_ FaceTracking」という名前を付けています。
まず初めにコードも何も記述しない空のUserControlを作成します。
UserControlの作成
VS2010のメニューから「プロジェクト(P)/ユーザーコントロールの追加(U)」と選択し、「ユーザーコントロール(WPF)」を選択します。「名前(N)」にはFaceTrackingViewer.xamlと指定し[追加(A)]ボタンをクリックします(図2)。
FaceTrackingViwer.xamlのコードから
コントロールの配置(MainWindow.xaml)
まず、このMainWindow.xamlに先ほど作成しておいたFaceTrackingViewer.xamlを取り込みます。そのためには名前空間を定義する必要があります。
ツールボックスからデザイン画面上にImageコントロール1個配置します。配置したImageコントロールの下に、 XAMLコードはリスト1、レイアウトは図5のようなります。リスト1 (MainWindow.xaml)
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:KINECT_FaceTracking" ■(1)
Title="Face Tracking" Height="480" Width="640">
<Grid Name="MainGrid" Width="640" Height="480">
<Image Name="colorImage" /> ■(2)
<local:FaceTrackingViewer x:Name="FaceTrackingViewer1"/> ■(3)
</Grid>
</Window>
顔の動きを追跡するKinectサンプル
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- 人物を切り抜いて画面に表示するKinectサンプル
- 人物特定に使える!?実際の映像で顔を認識するKinectプログラム
- Kinectで人体を認識して棒人間を動かすサンプル
- Kinectを使って、自分の手のひらに小さな分身を出現させてみる
- プレイヤーの身体パーツを判別するKinectサンプル
- Kinectで手の動きに合わせてモニタ上の画像を動かすサンプル
- Kinectで結成したマイ・ダンスチームを、サンプルを見ながら実際の背景に合成してみよう
- Kinectの音声認識を使って、プレイヤーを分離、結合させるデモを試してみる
- これであなたもダンスグループの一員!?Kinectで自分を分身させるプログラムを作る
- 人体の連続した動作を音声でキャプチャするKinectのサンプルプログラム