ディープラーニングは、人間の知的なふるまいをコンピューターに実行させることができる、ディープニューラルネットワークを使用した人工知能(AI)技術のひとつで、画像分類、物体検出、自然言語処理のように様々な応用例が研究されています。その中でも物体検出は非常ホットな話題として、様々な業種で研究開発が進んでいます。
開発に着手される方は、NVIDIA Jetson開発者キットを調達し、NVIDIA社が提供するSDKに初めて触れながらWEBに点在する情報をかき集めて、まずは推論のサンプルアプリケーションを動作させることまでたどり着きます。そこで実際にお客様からこんなお声をいただきます。
「このデモでは実際裏でどんなツールが動いているのか?理解するには時間がかかりそう」
「これからアプリケーションレベルで開発を進めるにはどんなステップが必要なのか?」
サンプルアプリケーションをダウンロードして動作させてからが本番であるものの、その段階で止まってしまう方が多くいます。たとえG検定取得者であってもこのハードルを越えるには非常に苦労をされています。 よくある物体検知サンプルアプリケーションにある推論処理だけでなく、絵を追加したりパラメーターの調整により学習フローを増やすなど、実際の学習モデルを作る体験をしていただきたい。さらに作ったモデルを使ってカメラの映像で検出できる、アプリケーションレベルでトレーニングをしていただきたい。
そんな想いで弊社エンジニアの経験を本コンテンツに凝縮しました。ご興味のある方はぜひ読み進めて頂けると幸いです。
[物体検出アプリ開発に必要な知識]
第1話 NVIDIA Jetsonで人物検知アプリの動作確認
第2話 NVIDIA TAO TOOLKITとは、ジェスチャー識別アプリの動作確認
第3話 データセットの準備
第4話 転移学習
第5話 推論モデル作成
第6話 アプリケーション作成
物体検出とは?
物体検出とは、一言でいうと画像内の物体を検出する技術です。具体的には、クラス(識別名)とその物体を含む矩形(バウンディングボックスの座標)をニューラルネットワークで推論し、結果を表示する仕組みを備えています。(物体検出に関してはこちらのリンクも併せてご参照ください。)
物体検出アプリを動作させてみる
NVIDIA社は物体検出のサンプルプログラムをGitHubにて公開しており、Jetsonで動作させることができます。
今回はGitHubに公開されているサンプルプログラムを用いて、Jetson Xavier NX Developer Kitにて動作を確認してみます。以下のステップで方法をご紹介していきます。
1:Jetsonの準備
2:ソフトウェアの準備
3:デモの実行
1:Jetsonの準備
こちらのリンクを参考に起動用のSDカードを作成し、Jetsonを起動します。
起動後、以下のコマンドでJetPackのバージョンをご確認ください。
(今回はJetPack4.5.1を使用した実行例となります。)
$ sudo apt update
$ sudo apt show nvidia-jetpack
以下のように、version情報(4.5.1)が確認できます。
2:ソフトウェアの準備
こちらのリンクを参考に、以下のようなコマンドでソフトウェアと画像ファイルを準備します。
$ git clone --recursive https://github.com/dusty-nv/jetson-inference
$ cp /usr/share/visionworks/sources/data/pedestrians.mp4 ~/jetson-inference/data/
$ cd jetson-inference
$ docker/run.sh
3:デモの実行
Dockerが起動していますので、こちらのリンクを参考にデモを実行します。Dockerについて知りたい方はこちらもご覧ください。
root@usr-desktop:/jetson-inference/build/aarch64/bin# ./detectnet.py /jetson-inference/data/pedestrians.mp4 images/test/pedestrians_ssd.mp4
作成されたoutput画像ファイルをクリックし、動画を確認します。
以下のように物体検出のバウンディングボックスが追加された動画が確認できました。
カメラの映像を使用した動作確認も可能
JetsonにUSBカメラを接続し以下のコマンドを実行すると、カメラで撮影した映像を使用した物体検出のデモ動作を確認することもできます。(参考リンク)
root@usr-desktop:/jetson-inference/build/aarch64/bin# ./detectnet /dev/video0
次回、2段階の推論処理によるジェスチャー識別アプリを動作させてみます!
本記事では、Jetson上で人物検知アプリケーションの動作確認をする方法をご紹介しましたが、いかがでしたでしょうか。
NVIDIA社ではこのような物体検出アプリ作成を支援するツールとして、NVIDIA TAO TOOLKITをご提供しており、さらに学習から推論までの一連の流れで開発するときの一助となるサンプルアプリケーションも公開しています。
次回はNVIDIA TAO TOOLKITの理解と、手を検出しその手で表現されるジェスチャーを識別するアプリケーションを実行してみます。
ご興味がございましたら、以下のボタンをクリックして連載記事の続きをご覧いただけたら幸いです。
AI導入をご検討の方は、ぜひお問い合わせください
AI導入に向けて、弊社ではハードウェアのNVIDIA GPUカードやGPUワークステーションの選定やサポート、また顔認証、導線分析、骨格検知のアルゴリズム、さらに学習環境構築サービスなどを取り揃えています。お困りの際は、ぜひお問い合わせください。
※記事でご紹介した実行例は、今後のソフトウェア、ハードウェアのアップデートにより変更される可能性があります。
またサンプルプログラム、ソースコード上の細かなお問い合わせは、お受け致しかねます。あらかじめご了承ください。