JetsonNanoで顔認証(face_recognition)⓵
- 2019.07.24
- Jetson

JetsonNanoは128コアのGPU(CUDAコア)を積んでいますが正直な話、GPUってスペック見ても
よくわからないです…笑
ということでとりあえず実際に動かして目で見て確認してみましょう!
今回は開発環境の構築も兼ねてface_recognitionライブラリのインストールまで行います。
サンプルの実施などは次回行います!
JetsonNanoのセットアップについてはこちらから
今回利用する核となるライブラリです。
公式サイト(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など基本的なものをインストールします。
1 2 |
$ sudo apt-get update $ sudo apt-get install python3-pip cmake libopenblas-dev liblapack-dev libjpeg-dev |
次にnumpyとdlibですが、メモリが4GBしかないため特にdlibのコンパイル途中でメモリ不足になります。
そこでスワップファイルを作成することで一時的にメモリを大きくします。
更にこのスワップファイルはJetsonHack(https://www.jetsonhacks.com/?source=post_page—————————)の方々がすでにgitにあげてくれてます!
これをクローンするだけです!(感謝)
以下のようにコマンドを実行します。
1 2 |
$ git clone https://github.com/JetsonHacksNano/installSwapfile $ ./installSwapfile/installSwapfile.sh |
終わったら一度再起動してください。
再起動したらnumpyをインストールします。
1 |
$ pip3 install numpy |
続いてdlibです。
JetsonNano環境に限り、CUDAライブラリのバグが存在するため、dlibのコードを少しいじる必要
があります。
まずはdlibのパッケージを入手します。
1 2 3 |
$ wget http://dlib.net/files/dlib-19.17.tar.bz2 $ tar jxvf dlib-19.17.tar.bz2 $ cd dlib-19.17 |
以下を編集します。
1 |
$ gedit dlib/cuda/cudnn_dlibapi.cpp |
大体854行目あたりのコードをコメントアウトします。
//forward_algo = forward_best_algo;←コメントアウト
ファイルを保存後dlibのコンパイルを行います。
めちゃくちゃ時間かかります…
1 |
$ sudo python3 setup.py install |
最後にface_recognitionをインストールします。
1 |
$ sudo pip3 install face_recognition |
今回はページボリュームの関係で開発環境の構築までとなってしまいました。
次回から実際にサンプルを動かしていきます!
ついでに各メソッドについても解説もしていく予定です。
-
前の記事
Jetson Nano 環境構築 2019.07.16
-
次の記事
JetsonNanoをリモートデスクトップで操作する 2019.07.25