face_recognitionのWebサービス版をカスタマイズ


ラズパイで顔認識の続編(インストール等はこのページを参照してください、Linux版のdlibはここ参照

exampleにあるweb_service_example.pyをカスタマイズしてみます。

オリジナルはオバマさん認識の一択でしたが、複数認識にしてみました。

登録しておいた複数の顔画像をもとにして、写真の人は誰でしょう?ということをやっています。

 


web_service_example.pyをカスタマイズ

facerec_from_webcam_faster.pyのロジックを拝借しています。

要は、顔画像を読み込んでエンコーディングして(10~ 16行)、配列を作成して(19 ~36行)、ユーザーの画像をdetect_faces_in_image()で判断するという流れです。

最終行のIPアドレスはご自分の環境で書き換えてください。

 

 

:Exec format error が出る場合は、最終行の引数で debug=False に変えてみてください。

 


サンプル

顔画像はガンバ大阪の選手です(ファン以外の人には興味ないと思いますが)。

example  (修正版)

このexampleではFlaskでWebサーバーを立てています。ページの外観をいろいろ変える場合はstaticフォルダーを変更してください。

37選手の顔画像を認識します。

環境としてラズパイは非力過ぎるのでPCに設定(ラズパイ3 Model B+なら起動に5分20秒かかりました)

これは顔画像のエンコーディングに時間を要しているからです。事前にデータを用意しておけばもっと高速化されます。やり方

データはこんな数値配列です。

[-0.09143438,0.13086095,0.01314379,…..,0.07552321,0.08523151,0.00671968]

 

Intel Core i3 3.1GHz/4GB RAM(二昔前くらいのモデル)、64bit、Ubuntu 16.04 LTS

30秒くらいで起動します

こんな感じ。

$python3 web_service_example.py

ブラウザー表示

自分の写真をアップすれば、自分がどの選手に似ているか教えてくれます(Unknownになったら誰とも似ていないということです、結果についてはたぶん異論が出るでしょうけど、当方は責任持ちません)


WisteriaHillはカマタマーレ讃岐のサポでもあります。

データをご用意しました。

 


Next

Web版をさくらインターネット(Arukas)の0円Dockerコンテナで公開してみる

 


 

Be the first to comment

Leave a Reply

Your email address will not be published.


*