【ルネサス技術コラム】KakipでAIアプリケーションを動かして物体検知を試してみた

近年、画像認識AIは製造現場や物流、店舗、オフィスなど様々な場所で活用されています。
例えば、

  • 人数カウント

  • 混雑度の可視化

  • ヘルメット着用確認

  • 部品検査

  • 駐車場監視

など、多くの用途が考えられます。

一方で、画像認識AIを実際に動かしてみようとすると、

  • AIモデルの準備

  • 推論環境の構築

  • カメラとの接続

  • 表示アプリの作成

など、さまざまな準備が必要になります。

そこで今回も、「エレクトロニクスを簡単に」をテーマに、ルネサスのRZ/V2Hが搭載されたKakip向けに公開されているAIアプリケーションサンプルを利用し、USBカメラによる物体検知を試してみました。

なお、Kakip本体のセットアップについては、公式マニュアルに従って完了している前提で進めます。

今回は、GitHubで公開されている物体検知サンプルアプリケーションを使用します。

目次

はじめに

AIカメラ活用の第一歩として、まずは既存の物体検知サンプルを動かし、画像認識AIの構成を理解することを目的とします。本記事では学習済みモデルを利用し、USBカメラ映像からリアルタイムに物体検知を行うPoCを実施します。

Kakipとは

Kakipは、ルネサスのRZ/Vシリーズを搭載したAI向けシングルボードコンピュータ (AI-SBC)です。
AI推論専用アクセラレータ 「DRP-AI」を活用することで、エッジ環境でも高速に画像認識AIを実行できます。

また、物体検知や人物検知などのサンプルアプリケーションが公開されており、画像認識AIを比較的手軽に試せる点も大きな特長です。
PoC(概念実証) から製品開発まで幅広く活用できるため、AIを使ったシステム開発を始めたい方にも適したプラットフォームとなっています。

Kakipを実行環境にした理由

今回のPoCでは、実行環境としてKakipを採用しました。
KakipはRenesas RZ/Vシリーズを搭載したAI向けシングルボードコンピュータであり、エッジ環境で画像認識AIを手軽に評価できる点が特長です。
特にDRP-AIアクセラレータを活用できるため、CPUのみで推論を行う場合と比較して高効率なAI推論が期待できます。
また、PoCで検証した内容を将来的にRZ/Vシリーズ搭載製品へ展開しやすい点も、Kakipを選定した理由の一つです。

今回使用するAIアプリケーション

今回使用するのは、GitHubで公開されている
R01_object_detection です。

このサンプルは、

  • USBカメラから映像を取得

  • YOLOv3で物体検知

  • HDMI画面へ結果を表示

するアプリケーションです。

画像認識AIを活用したアプリケーションがどのように構成されているのかを理解する入門用サンプルとしても活用できます。

システム構成

今回の構成は非常にシンプルです。

USBカメラ
  ↓
Kakip
  ↓
YOLOv3による物体検知
  ↓
HDMIディスプレイ

USBカメラから取得した映像に対してAI推論を実施し、検出結果をHDMIディスプレイへ表示します。

必要な機材

今回使用した機材は以下の通りです。

  • Kakip

  • Kakip用電源

    • DC12V/25W以上の出力

    • DCジャック(外径: φ5.5mm、ピン: φ2.1mm、センタープラス) 形状のもの

  • USBカメラ

  • USB TypeA Hub

  • USB TypeA - HDMI変換器

    • 今回はBuffalo GX-HDMI/U2を使用

  • HDMIディスプレイ

  • HDMIケーブル

  • キーボード

  • マウス

  • ネットワーク環境 (Ethernet接続)

サンプルアプリケーションの準備

必要なパッケージをインストールします。

sudo apt update
sudo apt install -y build-essential cmake wget git

※Chromiumブラウザをインストールしておくと、コマンドのコピーなどの作業がスムーズに行えます。

sudo apt install chromium -y

リポジトリをクローンします。
今回は /home/ubuntu/workspace/ へクローンしました。

mkdir /home/ubuntu/workspace/
cd /home/ubuntu/workspace/
git clone https://github.com/Kakip-ai/kakip_ai_apps --recursive

rzv_drp-ai_tvm の設定を行います。

cd kakip_ai_apps
cp 3rdparty/rzv_drp-ai_tvm/setup/include/* 3rdparty/rzv_drp-ai_tvm/tvm/include/tvm/runtime/

アプリケーションのビルド

次に、クローンしたディレクトリを環境変数に設定します。

export WORK=/home/ubuntu/workspace/kakip_ai_apps/

ビルドディレクトリを作成します。

cd $WORK/R01_object_detection
mkdir build && cd build

ビルドします。

cmake ../src
make -j$(nproc)

実行用ディレクトリに実行ファイルをコピーします。

cd $WORK/R01_object_detection/exe
cp $WORK/R01_object_detection/build/object_detection .

AIモデルの準備

READMEで公開されている最適化済みモデルを取得します。
TVMのコンパイル(最適化)済みファイル (deploy.so) を取得します。

wget https://github.com/Kakip-ai/kakip_ai_apps/releases/download/v1.0.0/R01_object_detection_deploy.so

物体検知アプリケーションの実行

予めUSBカメラをKakipに接続し、以下のように実行します。

cd $WORK/R01_object_detection/exe
./object_detection

正常に起動すると、USBカメラ映像と物体検知結果がHDMIディスプレイへ表示されます。

実装のポイント

今回のサンプルアプリケーションは、USBカメラから取得した映像をYOLOv3モデルへ入力し、推論結果をHDMIディスプレイへ重畳表示する構成です。
実装上のポイントは以下の通りです。

  • USBカメラからリアルタイムで映像を取得

  • DRP-AIを利用して推論処理を実行

  • 検出結果をバウンディングボックスとして表示

  • HDMI出力により結果を即座に確認可能

学習済みモデルの推論から画面表示までの一連の流れを確認できるため、画像認識AIアプリケーションの基本構造を理解する題材として適しています。

KakipでRZ/V2Hを使って物体検知を試すメリット

Raspberry PiはPoCには便利ですが、KakipでRenesasのRZ/V2Hを使うと、AIを試すだけでなく、そのまま実機向け開発につなげやすいのが大きなメリットです。

RZ/V2Hは、AI推論用のDRP-AI3に加え、Linux向けのCortex-A55、リアルタイム制御向けのCortex-R8、システム制御向けのCortex-M33を搭載しており、推論・画像処理・機器制御を並列に進めやすい構成になっています。さらに、OpenCV系の画像処理もアクセラレータで分担できるため、AIカメラやロボティクス用途を意識した開発と相性が良い点もRenesas製品の強みです。

また、RenesasはRZ/V2H AI Software Development Kitやサンプル環境を用意しているため、サンプル取得、ビルド、モデル配置、実行という流れで物体検知をすぐ試せます。USBカメラ入力から推論、描画、表示まで一通りそろっており、実装の手間を抑えながら、製品化を見据えた検証に入りやすいのも魅力です。

注意点

本サンプルは画像認識AIの基本動作を確認するためのPoC向けアプリケーションです。
実際の運用を想定する場合は、以下の点に注意が必要です。

  • カメラ位置や撮影角度によって検出精度が変化する

  • 被写体の重なりや遮蔽物によって誤検出が発生する場合がある

  • 照明条件や逆光環境で検出性能が低下することがある

  • モデルによって認識可能な対象や精度が異なる

まずはサンプルで基本動作を確認した上で、用途に応じてモデルや推論条件を最適化することが重要です。

今後の展開

今回のサンプルは物体検知の基本動作を確認するためのアプリケーションですが、実際の現場ではさまざまな用途へ応用できそうです。

例えば、

  • 人数カウントによる混雑度可視化

  • ヘルメットなどの保護具検知

  • 部品や製品の有無判定

  • 駐車場の空き状況確認

  • Webダッシュボードとの連携

などが考えられます。

まずは公開サンプルでAIアプリケーションの流れを理解し、その後、用途に合わせた独自アプリケーションへ発展させていくのが取り組みやすいと感じました。

まとめ

今回は、Kakip向けに公開されているAIアプリケーションを利用し、USBカメラによる物体検知を試してみました。

実施した内容はシンプルですが、

  • サンプルアプリケーションの取得

  • AIモデルの準備

  • USBカメラ接続

  • 物体検知実行

という流れを通して、画像認識AIアプリケーションの基本的な構成を確認することができました。

画像認識AIは難しく感じることがありますが、公開されているサンプルを活用することで、短時間で動作確認を行うことができます。

まずはサンプルを動かしてみる。
そこから用途に応じて機能を追加していく。
そんな「小さく始めて、大きく広げる」第一歩として、今回の物体検知サンプルは非常に良い題材だと感じました。

参考リンク