Jetson Nano 開発者キットで標識の検出してみた

投稿者:

みなさんこんにちは すみやです。
今回はJetson Nano 年末年始キャンペーンの一環として、Jetson Nano開発者キットを紹介します!

すでにご存知の方も多いと思いますが、Jetson Nanoは1万円代という低価格でAI学習や画像処理に強いシングルボードコンピュータです。人工知能や自動運転などで注目が高まるNVIDIA社より製造されています。弊社でも発売開始以来たくさんの台数を出荷させていただきました。

僕自身もある目的で発売当初に購入していましたが、AIや機械学習に関する知識がなかったので今の今までしまい込んでいました。今回記事の一環として、当初の目的に挑戦してみます!

Jetson Nano本体は株式会社マクニカ様よりお借りしました。カメラはスイッチサイエンスで発売中の「Arducam IMX477搭載 Jetson Nano/Xavier NX用電動式フォーカス HQ Camera」を使用します。記事の作成にあたり「Jetson Nano 超入門」を参考にさせていただきました。こちらの書籍「超入門」と名のつくだけあり、Jetson Nanoの初期設定やLinuxのコマンドの基本、電子工作としてGPIOの操作、物体検出についての基本的なデモンストレーションが可能です。

さて、僕はJetson Nanoでやりたかったことがあります。それは道路標識の認識です。

自動運転、画像認識という安直な発想なのですが、ドライブが好きな僕としてはJetson Nanoを交通安全につなげてみたいと思っていました。と言っても画像認識は初心者なので、今回は学習済みモデルはこちらの外国の学習モデルを使わせてもらいました。

試しにドライブレコーダーで録画した映像をJetson Nanoと物体検出アルゴリズムYolo v3を利用したdarknet(AlexeyAB)にて標識を識別してみました。外国の学習済みモデルを使っているため、標識の種類については分類できてませんが、標識の認識は行えました。

次に電子工作の一部として、画像認識を使ってみます。道路標識を発見したら、以前に使用した警報機を鳴らしてみたいと思います。プログラムは「Jetson Nano 超入門」を参考に標識を検知したときにJetson NanoのGPIOがHIGHになるようにしました。

ブレッドボードの配線はこの様になっています。Jetson Nanoから直接リレーを動作することもできるのですが、借り物のJetson Nanoを絶対に壊すわけにいかないので、念には念を入れ GPIOはフォトカプラで、電源は電池で完全に絶縁しました。ついでにArduinoでリレーのON時間を調整しています。今回使用したdarknetのコードとArduinoのスケッチはこちらです。

標識が出てくるたびにチャイムが鳴るようになりました!
…現時点で実用性はありませんが、学習モデルを向上させ、制限速度と自車速度を比べて警報を出すなどすれば、実際に有用になるかと思います。Jetson Nanoの小さなボード一枚で簡単に画像認識を利用することができました。

最近では踏切内での事故防止に画像認識が使われているようです。画像処理やGPUによる深層学習、これからさらに広がっていきそうですね。皆さまも年末年始の時間に余裕がある今こそ、Jetson Nanoで色々試してみてはいかがでしょうか!

今回の記事作成にあたり、NVIDIA様よりセーターをいただきました。また、友人の協力より公道上で安全に実験をすることができました。
皆さまありがとうございました!良いお年をお迎えください!