COLUMN技術コラム
[No.57] 物体検知AIを用いたAIカーの自動追従技術
2021.08.31
AI
AI技術の応用先の一つとして、モビリティ領域が挙げられます。中でも自動車は、公道で完全自動運転を実施・検証する企業も出るなど技術革新が目覚ましく、今回はAI技術を用いてAIカーJetBotを使用し、「移動する人を検知し、自動で追従する技術」について紹介します。
1.JetBotのハードウェア構成
使用するAIカーはFaBo社から発売されている「JetBot」[1]です。筐体キットを購入すると必要機材が一式同梱されていますが、今回、JetBotに移動する人をカメラで検知し自動で追従させるにあたり、人の検知および人までの距離の測定、JetBot自身の移動方向や移動速度の判断など高い演算能力が求められるため、コンピューターボードは「Jetson Nano」[2]よりも高性能な「Jetson Xavier NX」[3]を、カメラは人までの距離を測定する深度センサー機能を備えた「RealSense D455」を選定しています(最小深度距離0.4m、最大レンジ20m、視野角86°)。なお、RealSense D455は初期設定のカメラよりも重くなるため、カメラ用の雲台を専用設計し3Dプリンターで作成しました。
2.走行アプリケーションの開発環境
環境構築の再現性を高めるため、Dockerを採用しています。Dockerコンテナ内に各種ライブラリをインストールし、人の動きを補足し続けるトラッキング機能と走行制御アプリケーション(Python)を配置します。
- Ubuntu
Linux母体のオペレーションシステム - JetPack
Jetson用ソフトウェア開発キット。AI開発に必要となるソフトウェアツールがパッケージ化されている - JetBot Docker Container
JetBot用のアプリケーションを動作させるのに必要なライブラリなどのインストールや設定、実行などの一連動作をパッケージ化した実行環境 - User Tracking & Driving Control Application
弊社が作成したトラッキング機能と走行アプリケーションプログラム - OpenCV
画像処理を扱うライブラリ - Jetson Inference
NVIDIADIGITSを使用してNVIDIAJetsonで推論するためのトレーニングガイドで、画像分類や物体検出等のDeep Learningモデルが扱える - Librealsense, PyRealsense2
深度カメラRealSenseをPythonで扱うためのラッパープログラム - Numpy
数値計算を効率的に行うためのライブラリ
3.物体検出AIと深度判定の手法
人の検出には、Deep Neural Networkからなる物体検出AIモデル「SSD (Single Shot Multibox Detector)」を用います。SSDは、1度のCNN演算で物体の「領域候補検出」と「クラス分類」の両方を行います。これにより物体検出処理の高速化を可能にします。なお、カメラが複数の人を捉えた場合、JetBotに最も近い人を追従対象者と判断するよう設計しています
4.JetBotの走行可否判定
以下の「状態遷移図」に基づき、JetBotが走行可否を判断するよう設計します。5つの状態で構成されます。
状態遷移図(画像は開発当初の設計のため、各状態への遷移条件が現在のものと異なります)
①未検出:
物体検出で人を検出できていない状態
②検出:
人を1人以上検出した状態
③対象捕捉:
追尾対象者として登録後に対象捕捉し、追従走行する状態
④対象遠距離:
対象が遠いため、意図的に走行停止させる状態
⑤対象補完:
物体検出でロストした際に前フレームで補完する状態
5.JetBotの走行制御
右図に示す通り、JetBotと追従対象者の位置関係をもとに走行制御を行います。
直進・回転速度は距離に応じて加減速させ、3m以上離れた際にJetBotは最高速度(約2km/h)を出力します。
特に追従対象者と近い距離では、物体検出AIが対象者を見失わないよう速度を落とし直進・回転するよう制御します。
6.走行デモ動画
追従対象者の登録とJetBotが追尾走行する様子を紹介します。
7.最後に
本コラムでは、AIカーJetBotを人に追従させる技術をご紹介しました。この技術は、過疎地域における移動手段や高齢者の運転問題といった、通称「ラストワンマイル問題」の解決策としても注目されてます。交通業界だけでなく物流業界も含め、AI技術により自律移動するモビリティを世界中で目にする日が近づいています。
[1] JetBot:NVIDIAが発売するAI開発用キット
[2] Jetson Nano:NVIDIAが発売するエッジAI開発用小型コンピュータボード。サイズが小さくロボットやドローンなどに内蔵可能
[3] Jetson Xavier NX:Jetson Nano同様、小型AIコンピュータボードでNanoよりも演算能力が優れる