Jetson TK1 で,カメラで撮影した映像に対して OpenCV を使って顔認識を行うところまでの手順について紹介します.
NVIDIA からは,コンパイル済の OpenCV のパッケージも用意されていますが,ここではソースからインストールすることにします.
準備
以下のものが必要になります.
- USB 接続できる WEB カメラ
特殊なものでなければ何でも良いです.
CUDA 準備
参考文献に記載した「Jetson TK1 support」経由で,Jetson TK1 用の CUDA (CUDA 6.0 Toolkit for L4T Rel -19.2) をダウンロードしたあと,次のコマンドを実行します.
1 2 3 4 5 |
$ sudo dpkg -i cuda-repo-l4t-r19.2_6.0-42_armhf.deb $ sudo apt-get update $ sudo apt-get install cuda-samples-6-0 $ sudo apt-get install cuda-toolkit-6-0 $ sudo usermod -a -G video $USER |
ライブラリを参照できるように環境変数を設定します.適宜シェルの設定ファイルに追記.(Zsh なら, ~/.zshenv)
1 2 |
export PATH=/usr/local/cuda-6.0/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-6.0/lib:$LD_LIBRARY_PATH |
OpenCV のビルドに必要なツール・ライブラリのインストール
ここからは,Linux に OpenCV をインストールする場合と同じ手順になります.
1 2 3 4 5 6 |
$ sudo apt-get install build-essential make cmake cmake-curses-gui g++ $ sudo apt-get install libavformat-dev libavutil-dev libswscale-dev $ sudo apt-get install libv4l-dev $ sudo apt-get install libeigen3-dev $ sudo apt-get install libglew1.6-dev $ sudo apt-get install libgtk2.0-dev |
OpenCV のダウンロードと解凍
OpenCV のページから最新版をダウンロードします.
1 2 |
$ wget http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/2.4.9/opencv-2.4.9.zip $ unzip opencv-2.4.9.zip |
ビルドとインストール
cmake のオプションに, -DBUILD_EXAMPLES=ONをつけて,サンプルもコンパイルするようにします.完了するまで30分程度かかります.
1 2 3 4 5 6 |
$ mkdir build $ cd opencv-2.4.9 $ mkdir build $ cd build $ cmake -DWITH_CUDA=ON -DCUDA_ARCH_BIN="3.2" -DCUDA_ARCH_PTX="" -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_EXAMPLES=ON .. $ sudo make -j4 install |
ライブラリを参照できるように環境変数を設定します.
1 |
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/ |
顔認識サンプルアプリの実行
WEB カメラを接続した後,以下のコマンドを実行します.
1 |
$ ./bin/gpu-example-cascadeclassifier --camera 0 --cascade ../data/haarcascades/haarcascade_frontalface_alt.xml |
冒頭のような画面が表示され,顔を認識すると四角い枠が描画されます.
参考文献
- Jetson TK1 support
- NVIDIA から公式に提供される Jetson TK1 関係の配布物がまとめられています.
- Jetson/Installing CUDA
- Jetson TK1 への CUDA のインストール方法が説明されています.
- Jetson/Installing OpenCV
- Jetson TK1 への OpenCV のインストール方法が説明されています.
コメント