NVIDIAが価格99ドルをうたって発表した組み込みAIボード「Jetson Nano」。本連載では、技術ライターの大原雄介氏が、Jetson Nanoの立ち上げから、一般的な組み込みAIとしての活用までを含めていろいろと試していく。第4回は、Jetson Nanoに市販のUSBカメラを接続してさまざまな物体を認識させてみる。にゃんこもいるよ!
⇒連載「Jetson Nanoで組み込みAIを試す」バックナンバー
前回は「imagenet-console」を使って、静止画の認識を行うというデモだったわけで、一応意味があると言えばあるが、あまり実用的とは言い難い。ということで、今回はカメラを使ってリアルタイムに認識させるデモを実施してみたい。
Jetson Nanoの基板上にはカメラI/F(インタフェース)が搭載されており(図1)、ここにカメラを直接接続することが可能だ。
I/F規格はMIPI CSI-2で、フラットケーブルを利用して接続する形となる。これに準拠していて、かつ国内で入手できるものについて取りあえず検索をかけてみると、以下のような候補がすぐ見つかった。
e-CAM30_CUNANO(オン・セミコンダクターのAR0330を採用)はともかく、SainSmart IMX219(ソニーのIMX219を採用)に関しては似た製品が多くのメーカーから発売されており、いろいろ選ぶことができそうだ。加えて、以下のような選択肢もある。
このようなRaspberry Pi向けカメラの流用も可能(ただし、Raspberry Pi V1向けのカメラは非対応。V2以降が必須)となっている。お値段も、安いものは3000円程度となっているので、あまり考えずに購入できると思う。
ただし、わざわざこのためだけにカメラを買うのも……ということで、部屋を探してみたらUSBカメラ(BUFFALO BSW32KM04)が出てきた(図2)。これが使えないか? ということでちょっと確認してみた。
というのは、Jetson NanoのLive Camera Recognition Demoでは、MIPI CSI-2カメラ以外にV4L2(Video for Linux Two API) Cameraをサポートしているからで、こちらが使えればその方が話が早い。
ということでJetson NanoにUSBカメラを接続してみた(図3)。モデルは筆者の仕事場にたむろっているまめっち先生(編注:大原氏の愛猫)を利用した(図4)。
さて、これが使えるかどうかを確認するには、Ubuntuに標準で入っているCheeseを使うのが早い。左上の“Search your computer”で“Cheese”を入力すると出てくるので、これを立ち上げるとあっさりとUSBカメラを認識して動画表示がスタートした(図5)※1)。これなら問題なさそうだ。
※1)camera-viewerという、USBカメラの表示をそのまま行うだけのプログラムも用意されている、binディレクトリで以下の内容を実行するだけで同じことができる。
./camera-viewer --camera=/dev/video0
ただし、筆者の環境では安定性がいまひとつだった。
Copyright © ITmedia, Inc. All Rights Reserved.