神戸のデータ活用塾!KDL Data Blog

KDLが誇るデータ活用のプロフェッショナル達が書き連ねるブログです。

AITRIOS™とIMX500で物体検出① モデル作成とデプロイ編

株式会社神戸デジタル・ラボ DataIntelligenceチームの畑です。
このブログではAITRIOSとIMX500を使った物体検出に挑戦します。

「AITRIOS(アイトリオス)」は、ソニーセミコンダクタソリューションズ株式会社のエッジAIセンシングプラットフォームのことで、2022年11月よりサービスが開始されています。 今回はAITRIOS と接続可能なエッジAIセンサー(インテリジェントビジョンセンサー)IMX500を使って物体検出に取り組みます。

AITRIOSとIMX500について

物体検出を始める前に、今回の主役であるAITRIOSとIMX500の概要と特徴を説明します。

概要

AITRIOSは映像(写真)×AIの様々なソリューションに活用が可能なサービスです。Microsoft Azureの画像認識サービスである「Custom Vision」が標準搭載されており、物体検出や画像分類はAITRIOS上で学習が行え、AIモデルの開発を効率的に実施できます。外部のAIモデルをデプロイすることも可能(制限あり)です。
IMX500は、ソニーが開発したAI処理機能を搭載したインテリジェントビジョンセンサーです。

特徴

AITRIOSとIMX500には、以下3つの特徴があります。

1. センサー内でのAI処理とメタデータの出力が可能
通常、多くの計算量が必要なAI処理はクラウド上で行います。一方、IMX500ではAI処理をデバイス内で行うので、データをクラウドに出力しません。結果、データを送る通信コストや消費電力、遅延時間などを削減できる優れものです!検出結果だけを出力できるため、プライバシーに配慮が必要な案件でも活躍が期待できます。

2. リアルタイムAI処理が可能
AI処理をデバイス内で行っているにもかかわらずIMX500ではリアルタイム推論も可能です。後ほど紹介しますが、デバイス自体非常にコンパクトで、このデバイスでリアルタイム推論ができるのは驚きです。

3. 使用環境・用途に応じたAIモデルの選択・改善が可能
一つのデバイスに最大4つのAIモデルを載せることができて、再学習も可能でした。用途や環境に合わせてモデルの選択ができるのも便利です。大型ショッピングモールを例に紹介すると、利用者数の予測や、行動分析、欠品の検知など、幅広い活用が見込まれます!

詳しくはこちら

物体検出をやってみよう

では、さっそく物体検出をやっていきましょう。 大きく以下の流れです。

1. AIモデルの開発
2. IMX500へAIモデルをデプロイ
3. 撮影と検出結果の確認(次回)

もしAITRIOSのアカウント作成やデバイスの各種設定がまだの場合は、以下を参考に設定してから始めましょう。
アカウント登録
ハードウェア設定

1. AIモデルの開発

検出したい物体が映った写真を15枚以上準備します。色々な角度から撮影した写真をたくさん用意すると精度があがります。 今回は、手元にあった紙コップ、ボールペン、コードを検知するAIモデルを作ってみます!

1-1. プロジェクトの作成

まずは、サイドメニューの”Create model”から”+ Create”をクリックして、新しいプロジェクトを作成します。 “Name”は任意で設定し、”Model Type”は今回物体検出を行うので”CustomVision-ObjectDetection”を選択します。

1-2. 画像のインポート

次に進むと画像のインポート画面に進むので、データリンクもしくはローカルからデータをアップロードします。

1-3. ラベルの作成(アノテーション)

続いて検出したい物体にラベルをつけ(アノテーション)、データを学習します。 ”Labeling&Training”をクリックすると先ほどアップロードした写真の一覧が出てくるので選択してラベルを付けていきます。下の例では紙コップを囲って”papercup”とラベルを付けています。左上の”RegionProposal”をONにしておくと勝手に物体を四角で囲ってくれます。うまく動作しないときはOFFにして自分で囲うことも可能です。

1-4. 学習

全ての画像にタグをつけられたら、いよいよ学習開始です。右上の”Train”ボタンから”Quick Train”を選択して学習を開始します。しばらくすると学習が終わるので、”Model Name”を記入して”Finish”ボタンを押せば物体検出のAIモデル開発完了です。今回は詳しく説明しませんが、”Performance”タブで精度の確認もでき、必要に応じて再学習も可能です。

2. IMX500へAIモデルをデプロイ

2-1. デバイスの接続

モデルをデプロイするので、IMX500を搭載したカメラを準備して、給電ケーブルと有線LANに接続しましょう。 こんな感じです。接続がうまくいくと緑色に光ります。

2-2. モデルの変換

続いて作成したモデルがエッジデバイス上で使えるように、モデルの変換を行います。作成したモデルを選択して右に出てくる詳細画面の下から”Convert”を実行しましょう。

2-3. Configファイルの作成

Convertが完了したら、Configファイルの作成に移ります。サイドメニューの”Deploy device”から”New Config”を作成しましょう。任意の”Name”を記入して、”Select DNN Model”で先ほど作成したモデルを選択して完了です。

2-4. デプロイ

作成したAIモデルと検出用のアプリケーションをカメラにデプロイします。
モデルのデプロイ
サイドメニューの”Deploy device”から作成したモデル(configファイル)を選択し、右の詳細から”Deploy”をクリックします。デプロイには5~20分程度かかるので完了したかどうかは、サイドメニューの”Manage device”から確認します。デプロイしたデバイスを選択し、右の詳細から”Status”→”Deployment”を確認すると現状を確認できます。
アプリケーションのデプロイ
"Application"のタブから”ppl_objectdetectionssd”を選択して右の詳細から"Deploy"をクリックします。 "Status"が"Success"になればデプロイ完了です。

以上、AIモデルを作成してデバイスにデプロイするところまでできました。
次回は、実際にモデルで物体検出をして、検出結果を可視化するところを実施します。

この記事でAITRIOSを使った業務改善に興味を持たれた方はお気軽にお問合せください。 また、AITRIOSに限らず画像AIモデル構築のPoC支援も行っています。
詳しくは下記をご覧ください!

※AITRIOS、およびそのロゴは、ソニーグループ(株)またはその関連会社の登録商標または商標です。

畑加奈子

データインテリジェンスチーム所属
元製造メーカー勤務。製品の不良検知を担当したことがきっかけとなり、データサイエンスに興味を持ちKDLへ。クラウドを利用したデータ活用に関してのトピックを中心に発信していきます。