JetsonNanoで顔認証(face_recognition)⓵

JetsonNanoで顔認証(face_recognition)⓵

 JetsonNanoは128コアのGPU(CUDAコア)を積んでいますが正直な話、GPUってスペック見ても
よくわからないです…笑
ということでとりあえず実際に動かして目で見て確認してみましょう!

今回は開発環境の構築も兼ねてface_recognitionライブラリのインストールまで行います。
サンプルの実施などは次回行います!

JetsonNanoのセットアップについてはこちらから

 

dlib

 今回利用する核となるライブラリです。
公式サイト(http://dlib.net/)の説明を和訳すると
「Dlibは、現実世界の問題を解決するためにC ++で複雑なソフトウェアを作成するための機械学習アルゴリズムとツールを含む最新のC ++ツールキットです。これは、産業界と学術界の両方で、ロボット工学、組み込み機器、携帯電話、および大規模高性能コンピューティング環境を含む幅広い分野で使用されています。 Dlibのオープンソースライセンスはあなたが無料であらゆるアプリケーションでそれを使用することを可能にします。」
こいつを使えば顔認識、顔の特徴点抽出もできちゃいます。

さらにdlibベースのライブラリとしてface_recognitionがあります。
こちらは顔認識、顔の特徴点抽出がシンプルなメソッドでできちゃいます。
非常にシンプルです。(2回目)
公式サイト(https://github.com/ageitgey/face_recognition)も英語ではあるものの使い方からサンプルコード、
仕組みまで非常に丁寧に書かれているためgoogle翻訳を使いながらでも読みやすいと思います!

では準備していきましょう。

 

必要なライブラリのインストール

 Adam Geitgeyさんの解説(Build a Hardware-based Face Recognition System for $150 with the Nvidia Jetson Nano and Python)を参考に進めていきます。
以下のものをインストールしていきます。
・必要なPythonライブラリ
・numpy、dlib
・face_recognition

まずは以下を実行し、pipなど基本的なものをインストールします。

次にnumpyとdlibですが、メモリが4GBしかないため特にdlibのコンパイル途中でメモリ不足になります。
そこでスワップファイルを作成することで一時的にメモリを大きくします。
更にこのスワップファイルはJetsonHack(https://www.jetsonhacks.com/?source=post_page—————————)の方々がすでにgitにあげてくれてます!
これをクローンするだけです!(感謝)

以下のようにコマンドを実行します。

終わったら一度再起動してください。
再起動したらnumpyをインストールします。

続いてdlibです。

JetsonNano環境に限り、CUDAライブラリのバグが存在するため、dlibのコードを少しいじる必要
があります。
まずはdlibのパッケージを入手します。

以下を編集します。

大体854行目あたりのコードをコメントアウトします。
//forward_algo = forward_best_algo;←コメントアウト

ファイルを保存後dlibのコンパイルを行います。
めちゃくちゃ時間かかります…

最後にface_recognitionをインストールします。

 

最後に

 今回はページボリュームの関係で開発環境の構築までとなってしまいました。
次回から実際にサンプルを動かしていきます!
ついでに各メソッドについても解説もしていく予定です。