人物特定に使える!?実際の映像で顔を認識するKinectプログラム

2012年10月5日(金)
薬師寺 国安

今回のサンプルは、前回の「顔の認識」を実写上で行ったものです。設置したKinectから2mほど離れてプログラムを実行すると、実写の顔の上に、顔の輪郭に沿った三角形の集合体であるジオメトリーが表示されます。その後は1m以内ぐらいまで近づき、椅子に座ったままの状態でも表示することが可能です。
実際の動作は図1と動画を参照してください。

この方法を使うと、犯罪による犯人特定の手段としても利用できるのかな?と考えてみましたが、いかがでしょうか。前歴のある人物の顔の認識データが登録されていると、防犯カメラに映った人物の顔認識データと比較して、人物を特定する、といったことは、すでに実施されているのかもしれませんね。

今回のサンプルでは、前回の「Kinectを使って、顔の動きを認識して画面に表示する」で使用したのと全く同じ内容の、ユーザーコントロールのFaceTrackingViewer.xaml.vbを使用します。このコードと、その解説に付いてはそちらを参照してください。コードの掲載と解説は割愛させていただきます。

図1:実写上でプレイヤーの顔を追跡して表示している

サンプル一式は、会員限定特典としてダウンロードできます。記事末尾をご確認ください。

プロジェクトの作成

VS 2010のメニューから[ファイル(F)/新規作成(N)/プロジェクト(P)]と選択します。次に、「WPF アプリケーション」を選択して、「名前(N)」に任意のプロジェクト名を指定します。ここでは「KINECT_ FaceTrackingRGB」という名前を付けています。

まず初めにコードも何も記述しない空のUserControlを作成します。

UserControlの作成

VS2010のメニューから「プロジェクト(P)/ユーザーコントロールの追加(U)」と選択し、「ユーザーコントロール(WPF)を選択します。「名前(N)」にはFaceTrackingViewer.xamlと指定し[追加(A)]ボタンをクリックします

FaceTrackingViwer.xamlのコードから要素のプロパティDesignHeightとDesignWidthを削除します。また要素も削除しておいてください。このままの状態でUserControlを置いておいてください。このユーザーコントロールでは、プレイヤーの顔を認識して三角形の集合体で構成されるジオメトリーを作成します。コードについては、前回の1ページ目を参照してください。

  • 実際の映像で顔を認識するKinectサンプル

薬師寺国安事務所

薬師寺国安事務所代表。Visual Basic プログラミングと、マイクロソフト系の技術をテーマとした、書籍や記事の執筆を行う。
1950年生まれ。事務系のサラリーマンだった40歳から趣味でプログラミングを始め、1996年より独学でActiveXに取り組む。1997年に薬師寺聖とコラボレーション・ユニット PROJECT KySS を結成。2003年よりフリーになり、PROJECT KySS の活動に本格的に参加、.NETやRIAに関する書籍や記事を多数執筆する傍ら、受託案件のプログラミングも手掛ける。Windows Phoneアプリ開発を経て、現在はWindows ストア アプリを多数公開中

Microsoft MVP for Development Platforms - Client App Dev (Oct 2003-Sep 2012)。Microsoft MVP for Development Platforms - Windows Phone Development(Oct 2012-Sep 2013)。Microsoft MVP for Development Platforms - Client Development(Oct 2013-Sep 2014)。Microsoft MVP for Development Platforms-Windows Platform Development (Oct 2014-Sep 2015)。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています