Mashup Awards 8 用に作ってみました。
Kinect for Windows SDK と PUX社の顔認証ライブラリを組み合わせて、「顔認証の自動ログイン」と「離席時の自動PCロック」です。動作イメージはこんな感じです。ちなみに、Kinect for Windows SDK v1.6 がVM対応してくれたので、デバッグが楽ちんでしたw この動画も、VM上で動作させています。
Kinectはこんな感じでおいています。
このシステムは、僕がKinectを始めたきっかけでもあったので、約2年越しでの実現になりました^^;
現在もWebカメラなどで顔認証はありますが、それをあえてKinectを使う理由として、3次元的に識別できるので、従来のWebカメラの顔認証や虹彩認証で通ってしまった、写真や動画が通らなくなり、よりセキュアなログイン環境を実現できます。
このアプリケーション内でも、Kinect SDKの顔認識とPUX社の顔認識の2つを通すことで、より確実に人を認識させています。
アプリケーションとしては次の3つから構成されています。
- Windows 7 の CredentialProvider と KinectおよびPUX社の顔認証ライブラリを組み合わせた、顔認証+自動ログインアプリ (Win32)
- KinectおよびPUX社の顔認証ライブラリを組み合わせた、顔認証データ登録アプリ (MFC)
- Kinect を利用した、離席時自動ロックアプリ (MFC)
このご時世に、すべてCおよびC++で書くとは思いませんでしたw 特に、最大の難関の CredentialProvider はコードとドキュメントを読みつつ、動作を把握したのですがなんとか形になりました(改善したいところはたくさんあるのですが)。おかげでいろいろ新しい知識を仕入れることができたのでいいですw
まだ、やりたいことはいろいろあって、積み残しを記録しておきます。基本的にできなくはないのですが、タイムアップのため。
- 複数人を登録した場合の、顔認証によるユーザー切り替え(CredentialProvider でユーザーの選択方法がわからなかったため未実装)
- Kienct部分のサービス化による、アプリケーションの安定化( サービス化自体よりも、データの受け渡し(プロセス間通信)部分が大変そうだったので未実装 )
- MFCアプリのタスクトレイアプリ化(サービス化が前提のため、未実装)
PUX社のライブラリはほかにもいくつか仕様ライセンスを発行してもらったので、ほかのも触ってみようと思います。