NVIDIA Jetson Nano B01 小型AIコンピュータで遊んでみる その4 リアルタイム画像類推

カメラを接続する


前回、基本的なセットアップはやれたので今回はカメラモジュールをつなげてみようと思います。
一応、フラットケーブル式のカメラモジュールは購入しましたが、よくよく考えるとUSB接続のWebカメラがあったのでそれ使えばよかったかなとも思っています…

NVIDIA Jetson Nano B01 小型AIコンピュータで遊んでみる その3 ファンの自動制御

接続方法

  1. フラットケーブルを固定するコネクターを緩めます。
    左右の突起をそーっと上に持ち上げて緩めます。
    あんまり力を入れるとたぶん壊れる。
  2. フラットケーブルの向きは色がついたほうが基盤の外側を向くように刺し込みます。
    なお、すべてのフラットケーブルに色がついているのかは知りません…
    刺し込む際はフラットケーブルが垂直に刺さっているか曲がっていないかをよくチェックしましょう。
  3. コネクターを基に戻し、電源を入れます。
  4. 起動後、下記コマンドでデバイスが認識されているか確認します。

映像の表示


映像を表示してみます。

VNCとかでリモート接続している場合は映像は表示されないそうなのでHDMIかDisplayPortにでも接続しましょう。
カメラから画像がちゃんと出ればOKです。終了するにはコンソールにて「Ctrl+C」を押すと終了します。

リアルタイム画像類推

せっかくなので、カメラで物の認識をしてみたいと思います。
まずは、OSとかのソフトウェア類を最新にしましょう。

ビルドに必要な子をインストールします。

gitコマンドでjetson-inferenceをcloneします。

submoduleをインストールします。

buildディレクトリを作成し、cmakeします。
いろいろダウンロードしたりするのでしばらく待ちます。


cmakeすると、途中でどのモジュールをダウンロードするか聞かれますのでここは適当に。
デフォルトのままでもいいし、全部入れてもいいし。全部入れると2.2GBぐらいあるらしい。
上記以外も追加のものを入れるか緑色の画面で聞かれますので必要に応じて入れてください。

makeコマンドでビルド(コンパイル・リンク)します。

カメラ映像のリアルタイム類推を実行します。
CUDAエンジンの初期化にしばらく待ちます。
(初回実行時は起動までに5分から10分くらいかかります)

引数のどこを使う的なものはいろいろありますが、先に緑色の画面で選択したやつだけ使えると思います。たぶん。
なので、デフォルトは「googlenet」と「resenet-18」の2つになると思います。
引数にそのまま入れれば起動する的なことも書いてありましたが、うちの場合はうまくいきませんでしたが「–network=」を指定すると動きました。

いろんなものを認識してみる

Googleで適当に検索してスマホで表示してどうなるか試してみました。

ラクダ(適合率88%)

ゾウさん(適合率8%)

カメレオン(適合率51%)

シロクマ(適合率7%)
ちなみに、キツネと認識しています。

マウス(適合率48%)

写真(スマホ上の)のでもちゃんと認識しますがシロクマさんだけはダメみたいですね。
Amazonの置物だったのでシロクマはダメだったのかもしれません。
ちゃんとした写真だと

シロクマとして認識しています。

CPUファンの回転制御

前回導入したCPUファンの回転制御ですが画像処理の負荷時にちゃんと可変で動いてくれました。

温度 回転数
39.5 165 画像認識中
39.0 165
38.5 157
38.0 153
37.5 153
37.5 148
37.0 144
37.0 140
37.0 144
36.5 140
36.5 140 画像認識終了
36.5 136
36.0 136