「Jetson Nano」にUSBカメラをつなげてにゃんこを認識させる:Jetson Nanoで組み込みAIを試す(4)(2/3 ページ)
NVIDIAが価格99ドルをうたって発表した組み込みAIボード「Jetson Nano」。本連載では、技術ライターの大原雄介氏が、Jetson Nanoの立ち上げから、一般的な組み込みAIとしての活用までを含めていろいろと試していく。第4回は、Jetson Nanoに市販のUSBカメラを接続してさまざまな物体を認識させてみる。にゃんこもいるよ!
Live Camera Recognition Demoによるにゃんこの認識
ということで、これらの構成でLive Camera Recognition Demoを実施してみた。Webサイトに概要があるが、要するにカメラ映像をネットワークで分析し、ターゲットが何であるかを認識して表示するというものである。幸いにもこのLive Camera Recognition Demoは、前回行ったBuildで同時に作成されているので、新たにBuildを行う必要はない。つまり、前回のディレクトリをそのまま利用しての作業である。筆者の場合Home Directoryの下にjetson-inferenceというフォルダを作成してその中でBuildしたので、ターゲットディレクトリは以下のようになる。
~/jetson-inference/build/aarch64/bin
ここに移動してから、以下のコマンドを実行する。
./imagenet-camera --camera=/dev/video0
そうすると、ちょっと間が開いてから全画面でライブビデオと認識結果が示される(図6)が、あまり精度はよろしくない(図7)。ちなみに、この段階では30fpsを超える認識速度が出ているが、これはそもそも明るさが足りず、画像が全体的に暗過ぎて正しく認識できていない(=その分処理速度が上がる)という話で、明るさをまともにすると10fpsを切っている。
なお、imagenet-cameraではデフォルト720p(1280×720ピクセル)で画像を取り込み、処理している。ではもっと小さくしたらどうなるか? というわけで、まず640×480ピクセルにしてみる。これは、コマンドラインで以下のようにすればよい。
./imagenet-camera --camera=/dev/video0 --width=640 --height=480
こちらでも暗めだと37fpsとかいうすごい数字が出ている(図8)が、明るくするとフレームレートは11fpsとかまで落ちる(図9)。
調子に乗って他のモノも認識させてみた結果がこちら(図10〜12)。扇風機で17fps程度であり、640×480ピクセルだとこのあたりが性能の上限だろう。
もちろん、これはネットワークに何を選ぶかという話でも変わってくる。今回はGoogleNetをFP16で動かしているが、例えばResNet18とかだともう少し高速になるかもしれない。逆に、解像度をこれ以上小さくしてももう性能は上がらない。
実際にコマンドラインで以下のようにしてみた。
./imagenet-camera --camera=/dev/video0 --width=320 --height=240
これにより320×240ピクセルで認識させてみた結果がこちら(図13、14)で、おおむね10fps程度にとどまっている。画像処理性能よりもInference(推論)の性能の方が支配的、という話である。
今回、ネットワークにはGoogleNetを利用したが、例えばResNet-18を使うと27〜47fpsとだいぶ高速化される(図15、16)。当たり前だがどんなネットワークを使うかで性能が変わることになる。
Copyright © ITmedia, Inc. All Rights Reserved.