NVIDIA Jetson Nano B01 小型AIコンピュータで遊んでみる その5 物体検出

カメラで認識は出来た

前回、カメラでリアルタイム画像類推はやってみましたが、次は静止画の物体検出を続けてやってみます。
ありがたいことに、テスト用の画像とかも用意されているのでそいつを使ってみます。
基本的に先のリアルタイム画像類推が出来ている時点で特に難しいことは無いと思う。

初回はいろいろやるのでめっちゃ時間かかります。
しばらくするとimages/test配下に画像が保存されます…


これが


こんな感じで人物が認識され認識されているところも緑でマーキングされました。
一番左の人が70%と若干人認識が低いのは謎。

細かいこと

引数でいろいろ指定できるようなんですが、古いのか仕様が変わったのかうまくいかないみたいです。

detectnet.py 物体検知用プログラム

画像、映像を入力として学習済みの物体を検知してバウンディングボックス(四角い枠)で囲み、名称を推論する。

–network 指定できるネットワークは以下の通りで選択したものに適した動作が行われる。

ssd-mobilenet-v1 COCO MobilenetのVersion1
ssd-mobilenet-v2 COCO MobilenetのVersion2
ssd-inception-v2 SSD-Inception-v2
coco-dog dogs(犬)
coco-bottle bottles(ボトル)
coco-chair chairs(椅子)
coco-airplane airplanes(飛行機)
pednet pedestrians(歩行者)
multiped pedestrians, luggage(歩行者、荷物)
facenet faces(顔)

顔認識

いろいろあるなーと思い、顔認識をしようとしてみたところ…


エラーはきました。

if loading a built-in model, maybe it wasn’t downloaded before.

Run the Model Downloader tool again and select it for download:

$ cd <jetson-inference>/tools
$ ./download-models.sh

「tools」配下にある「download-models.sh」を実行して足りないものを持ってこいとのこと。

ふむ、と思いtoolsに行ってみるもそんなものはない!!
適当にググってみると「建成 / jetson-inference」にシェルが置いてあったのでとりあえずパクってきます。


起動してみると、とりあえず何とかなりそうな雰囲気です。


と思ったら、ことごとくエラー。
シェルが無いなりの理由があるんですね。
よくわからんのでいったんあきらめる。

動画の物体検出

先に進んで、カメラでリアルタイムの物体検出をやってみます。
ネットワークは指定をしないとデフォルトのCOCO MobilenetのVersion2が使用されるみたい。
ここでもやっぱりネットワーク指定ではエラーを吐いてしまいました。


おおおーーー。リアルタイムで物体を検出してくれます。
デフォルトなので全部認識しようとしてますね。

「/usr/share/visionworks/sources/data/」配下にサンプル動画もあるのでそちらも処理してみたいと思います。

こんな感じでできました。
続けてよく遊んでるDead by Daylightでやるとどうなるのか試してみました。

メインキャラの背中はちゃんと人間として認識するんですね…
ただ、少し先にいるゲームキャラは人間とは認識しないみたいでちょっと近づかないとダメみたいです。
一瞬だったからかもしれませんが、キラーであるナースは人間ではないようですw

とりあえずできた

デフォルトのネットワークしか使えなかったのはちょっと課題ですが、適当な物体認識は出来ましたね。
最近のリアル気味なゲームでもちゃんと認識できたのにはちょっと面白かったです。
もうちょっと遠くのものとか認識出来れば…なんか遊べるのかな??