前回に続いて、今回はUSBカメラを用いてJetson NanoのTensorRTのデモを行ってみます。こちらはGitHubにもチュートリアルが掲載されています。
Jetson Nanoのセットアップ
前回の記事を参照してください。
JetsonNanoのセットアップ
今回使用するもの
- USBカメラ(後述)
1. Gitレポジトリのクローン コンパイル
'Ctrl+Alt+T'でターミナルを立ち上げます。
以下のコマンドで、GitHubのリポジトリをクローンしてコンパイルしていきます。
$ sudo apt-get install git cmake
$ git clone https://github.com/dusty-nv/jetson-inference
$ cd jetson-inference
$ git submodule update --init
$ mkdir build
$ cd build
$ cmake ../
$ cd jetson-inference/build
$ make
$ sudo make install
2. USBカメラの設定
Jetson NanoはRaspberryPiのCamera Module V2とUSBカメラに対応しています。今回はUSBタイプのウェブカメラを使用します。以下のカメラを使用しました。
- BUFFALO BSW20KM11BK
詳細
先程コンパイルしたものは、デフォルトでJetson Nanoのオンボードカメラを使用するよう設定されています。USBカメラを使用する場合は以下のようにimagenet-camera.cpp
内の定義を修正し、再コンパイルする必要があります。
以下のようにcppファイルを開きました。
#define DEFAULT_CAMERA
の後ろの数字を-1
から0
へ変更します。
#define DEFAULT_CAMERA 0 // -1 for onboard camera, or change to index of /dev/video V4L2 camera (>=0)
再コンパイル
$ cd jetson-inference/build
$ make
$ sudo make install
3. デモを動かす
以下のコマンドでカメラを使った物体識別のデモを実行します。
$ cd jetson-inference/build/aarch64/bin
$ ./imagenet-camera googlenet
カメラのストリーミング映像から物体をTensorRTで識別します。かなり色々なものを、すばやく認識することができます。以下にいくつか画像を示します。
次に、以下のコマンドでボトルを認識するデモを実行します。
$ cd jetson-inference/build/aarch64/bin
$ ./detectnet-camera coco-bottle
ペットボトルを薄い色の枠で囲って認識することができています。
このデモには他にも、ボトル認識と同じように顔認識を行うものもあります。興味のある方は試してみてください。