Face01, Face01_imager の簡単な利用方法

アイキャッチ画像

Face01 の場合

今日は Face01 の簡単な利用方法について触れてみたいと思います。下のコードをご覧ください。

テストスクリプトのソースコード

import face01_linux as f # Windows なら face01_windows

kaoninshoDir, pictures_of_people_i_knowDir = f.home()
known_face_encodings, known_face_names = f.load_priset_image(kaoninshoDir, pictures_of_people_i_knowDir, jitters = 1)
xs = f.face_attestation( kaoninshoDir, known_face_encodings, known_face_names, tolerance=0.5 )
for x in xs:
	print ('name is ', x['name'])
	print ('date is ', x['date'])
	print ('location is ', x['location'])

上のコードのように Face01 を import してください。face_attestation() 関数の戻り値を for 文で回して name, date, location の各 key で値を得ます。

テストスクリプトの実行結果

実行結果は以下のようになります。

name is  山川04
date is  2019,08,28,07,58,34
location is  (152L, 342L, 259L, 235L) 

name is  西野02
date is  2019,08,28,07,58,34
location is  (175L, 724L, 283L, 617L) 
terminal に表示される様子
terminal に表示される様子
男女お二人の顔認識の様子
男女お二人の顔認識の様子

非常に短いコードで極めて簡単に名前や時間が取得できることがお分かりになると思います。

Face01 の使用例

【追記 2020年5月10日】上記動画は CUDA 環境下での Face01 処理結果に差し替えました。

face01_imager の場合

face01_imager とは

サーバで複数の端末からの顔認証リクエストを効率良くさばけるように設計された face01 シリーズの一つです。
サーバに適した Face01 の開発」に紹介記事があるのでそちらも参照してください。

サーバからの画像を受け付ける check_images フォルダ

check_images フォルダ
check_images フォルダ

check_images フォルダには各端末から次々と画像リクエストが来ます。この画像の中に予め登録しておいた顔画像がある場合、顔画像だけクロップして保存、また標準出力へ登録者名と時刻を表示し続けます。

処理された画像が移動される recognated フォルダ

処理された画像が移動される recognated フォルダ
処理された画像が移動される recognated フォルダ

顔認証処理された画像は次々と recognated フォルダへ移動されます。

登録者の顔画像を置いておく pictures_of_people_i_know フォルダ

顔画像登録者はファイル名を登録者名として pictures_of_people_i_know フォルダに置いておきます。

登録者の顔画像を置いておく pictures_of_people_i_know フォルダ
登録者の顔画像を置いておく pictures_of_people_i_know フォルダ

エンコードされた 128 次元数値データの npKnown.txt ファイル

登録者の顔画像は 128 次元数値データとしてエンコードされ、npKnown.txt ファイルに保存されます。

npKnown.txt ファイル
npKnown.txt ファイル

顔認証された顔データを保存する output フォルダ

顔認証処理により check_images フォルダ内の各画像から顔部分を切り出し、ファイル名に登録者名と時刻がセットされます。
登録者でなかった場合、ファイル名は「Unknown」となります。

顔認証された顔データを保存する output フォルダ
顔認証された顔データを保存する output フォルダ

標準出力画面に出力される顔認証結果のデータ

face01_imager の処理によって出力された顔認証データを標準出力する端末画面。
標準出力されることによって他のアプリケーションとの親和性を生み出します。

顔認証処理により標準出力画面に表示される顔データ
顔認証処理により標準出力画面に表示される顔データ

実際の動作画面

実際にどのように動いているのかをデスクトップキャプチャしました。
check_images フォルダの画像がどんどん処理されて減っていき、recognated フォルダへ移っていきます。また output フォルダにはクロップされた顔画像が登録者名をファイル名として続々と保存されていきます。
真ん中の端末画面にはエンコード中のファイル名や、顔認証処理された結果の登録者名が表示されていきます。

また、check_images フォルダがカラになった時、face01_imager は check_images フォルダに画像が来るのを待ち続けます。
ですので動画では一度処理された recognated フォルダに入っている画像を再び check_images フォルダに手動で投げ込んでみています。すると再び顔認証処理が行われる様子が見て取れると思います。

まとめ

以上です。
Face01 シリーズにはこれら以外に「face01_usb_windows_1.0」(Linux 版もあり)もあります。
こちらは USB カメラから入力された動画像から顔認証処理を行う face01_windows_1.0 です。
新規に顔画像登録する方法」で少し触れていますのでぜひご参照ください。

Follow me!