IDS社製 NXTカメラでAIを実践|株式会社 ティー・イー・エム

TECHNICAL INFORMATION

技術情報

2020.04.28

小型カメラ

IDS社製 NXTカメラでAIを実践

IDS社のNXTカメラrioとromeは、AIに対応したCPU搭載のカメラです。GenICam等で作成したアプリケーションをカメラ側で実行することができます。また、クラウドベースのAIソフトウェアであるIDS NXT lighthouseを使用してトレーニングしたAIをカメラ内のFPGA上で実行させることもできます。
ここでは、カメラ接続後からIDS NXT lighthouseでトレーニングしたAI(分類:Classification)を実践するまでの手順例をご紹介いたします。なお、本記事は、IDS NXT cockpit 2.0にて作成しております。

ステップ1 トレーニング用の画像の準備

NXTカメラ内のCrawlerアプリとIDS NXT cockpit 2.0と合わせてインストールされるIDS NXT crawlerを使用することで、トレーニング用の画像を簡単に準備することができます。
まず、 IDS NXT cockpit 2.0からNXTカメラを開き、「Crawler」アプリを起動します。
カメラにログイン後、「CONFIGURATION」⇒「Vapp Manager」⇒「Crawler」と選択し、「Status」項目が「NotRunning」の場合は、クリックして「Running」状態にします。選択及び確認する箇所を赤枠で示します。
IDS社製 NXTカメラでAIを実践01

「Running」状態の場合、左項目の中に「Crawler」が表示されます。
IDS社製 NXTカメラでAIを実践02

左項目の中の「Crawler」を選択し、「CAMERA」タブにてカメラのパラメータを設定します。パラメータ設定後、「Trigger」項目の設定を「Freerun」から「Software」等に変更しておくことを推奨します。また、ROIを使用してトレーニングに不要な範囲をあらかじめ取り除いておくことで、トレーニングを行う際に要する時間を削減することができます。ここではROIを使用しております。
IDS社製 NXTカメラでAIを実践03

ここでPC側の「IDS NXT crawler」を起動します。「Interface」項目で選択されているIPアドレスが、NXTカメラと同じネットワーク内か確認し、異なる場合は同じネットワーク内のIPアドレスを選択します。「Crawler path」項目にて、画像の保存先を選択します。ここではあらかじめ作成しておいたデスクトップ上の「training」フォルダを選択しています。
IDS社製 NXTカメラでAIを実践04

「URL」項目の「Run crawler」ボタンをクリックすると、ボタン名が「Stop crawler」に変わり、「URL」項目にURLが表示されます。表示されたURLをコピーします。
IDS社製 NXTカメラでAIを実践05

IDS NXT cockpit 2.0に戻り、「VAPP」タブを選択します。先ほどコピーしたURLを「Configurables」項目の「URL」欄に貼り付けます。
IDS社製 NXTカメラでAIを実践06

「Configurables」項目の「Class」に撮影する画像の名前を入力します。入力した名前が、これから撮影する画像の名前や画像が保存されるフォルダに反映されます。ここでは「CP_Rev.2」と入力しています。Actions項目の「Reset image counter」ボタンをクリックし、「Configurables」項目の「Save」を有効にすると画像保存の準備が整います。
IDS社製 NXTカメラでAIを実践07

「Camera」タブを選択し、「Trigger」項目の「Trigger」ボタンをクリックすると画像が撮影され、画面左下の「imagestransmitted」がカウントされます。
IDS社製 NXTカメラでAIを実践08

撮影対象の向きや角度を変えながら最低でも10枚以上の画像を撮影します。撮影を終えたら、「VAPP」タブの「Configurables」項目の「Save」を無効にします。
IDS社製 NXTカメラでAIを実践09

「Configurables」項目の「Class」に入力する名前を変更し、同様の手順で他の対象物の撮影を行います。全ての撮影を終えたら、トレーニング用の画像の準備は完了です。PC側の「IDS NXT crawler」は終了して問題ありません。本記事では、「CP_Rev.2」の他にもう1つ「XS」というClass名の画像を撮影しております。

ステップ2 AIのトレーニング

ウェブブラウザを起動し、IDS NXT lighthouse(https://www.ids-lighthouse.ai/login/)にログインします。ログインすると以下のような画面が表示されます。まずは「Data sets」を選択し、先ほど撮影した画像の登録を行います。
IDS社製 NXTカメラでAIを実践10

「+」ボタンをクリックし、「Title」欄に名前を入力します。ここでは「Cameras」と入力しています。入力後、「Create data set」ボタンをクリックします。
IDS社製 NXTカメラでAIを実践11

「images」タブをクリックし、「Add」項目をクリックします。
IDS社製 NXTカメラでAIを実践12

表示された「Add and label image data」ウィンドウの「Add」ボタンをクリックし、撮影した画像をClass単位で選択します。ここではまず、「CP_Rev.2」フォルダ内の画像全てを選択しています。画像選択後、「開く」ボタンをクリックします。
IDS社製 NXTカメラでAIを実践13

「Add and label image data」ウィンドウに選択した画像一覧が表示されます。「Labels assigned to all images」欄にラベル名を入力すると、画像アップロード時に画像にラベル付けが行われます。ラベル名を入力して、「Upload」ボタンをクリックします。ここではラベル名を「CP_Rev.2」としています。
IDS社製 NXTカメラでAIを実践16

アップロードされた画像を見ながら、トレーニングに使用しない画像を画像の右上をクリックして選択します。このとき、画像一覧上部のラベル名をクリックすると、そのラベル名が付けられた画像のみが表示されます。画像選択後、「Remove」ボタンをクリックし、開かれた「Remove selected files」ウィンドウの「Delete」ボタンをクリックして、画像を削除します。ここではラベル名「CP_Rev.2」選択後、対象物の全体が写っていないものを選択し、削除しています。
IDS社製 NXTカメラでAIを実践17

IDS社製 NXTカメラでAIを実践18 

撮影した他の画像に対しても同様の作業を行います。作業を終えたら「Projects」に移動します。
IDS社製 NXTカメラでAIを実践19

「+」ボタンをクリックし、「Title」欄に名前を入力します。ここでは「ClassificationCameras」と入力しています。入力後、「Create project」ボタンをクリックします。
IDS社製 NXTカメラでAIを実践20

「Basic settings」タブ下部の「Email address」欄にメールアドレスを入力しておくと、AIのトレーニングが完了した際に、入力したアドレス宛にトレーニング完了のお知らせが届きます。
IDS社製 NXTカメラでAIを実践21

「Data」タブをクリックし、先ほど「Data sets」で作成したデータセットを「+」ボタンをクリックして選択します。選択後、「Training」タブをクリックします。
IDS社製 NXTカメラでAIを実践22

IDS社製 NXTカメラでAIを実践23

「Training」タブでは、トレーニングに使用する画像を増やすことやトレーニングしたAIでの推論にかかる最大時間の設定等を行うことができます。デフォルトでも設定が行われているため、ここではデフォルトの設定でトレーニングを開始します。「Train neural network」ボタンをクリックするとトレーニングが開始されます。
IDS社製 NXTカメラでAIを実践24

「In queue」ゲージにてトレーニングの進捗度合いを確認できます。トレーニングが完了するとダウンロードが行えるようになります。ダウンロードボタンをクリックしてNXTカメラにアップロードするデータをダウンロードします。
IDS社製 NXTカメラでAIを実践25

IDS社製 NXTカメラでAIを実践26

「Training history」項目で、トレーニングしたAIの精度を確認できます。今回、「CP_Rev.2」ラベルの画像を12枚、「XS」ラベルの画像を14枚トレーニングに用いましたが、たったこれだけの画像でも83.33%の精度となっております。経験上、画像の枚数を増やしたり、対象物の向きを限定したりすることで、より高い精度が出るものと思います。
IDS社製 NXTカメラでAIを実践27

ステップ3 NXTカメラでAIを実践

IDS NXT cockpit 2.0に戻り、NXTカメラ内の「CNN manager」アプリを起動します。ここでは加えて「CAMERA」タブの「Trigger」項目の設定を「Freerun」に変更しております。
IDS社製 NXTカメラでAIを実践28

「VAPP」タブの「Files」欄の「Upload new CNN …」ボタンをクリックし、IDS NXT lighthouseからダウンロードした.cnnファイルを選択します。
IDS社製 NXTカメラでAIを実践29

「Configurables」欄の「CNN Package」項目からアップロードしたファイル名を選択します。例えば、「Clas00-2067_120ms_H_V_T70.cnn」というファイルをアップロードした場合は、「Clas00-2067」という名前を選択します。画面左下に推論の結果が表示されます。
IDS社製 NXTカメラでAIを実践30

推論の結果は確率で表示されます。今回、「CP_Rev.2」と「XS」の2種類でトレーニングを行ったため、この2種類のいずれかである確率が「Probability」に表示されています。ここでは「CP_Rev.2」が1.00(100%)、「XS」が0.00(0%)と推論結果が表示されています。また、「Inference Time」に推論時間が表示されており、今回の推論に107ms要したことが分かります。
IDS社製 NXTカメラでAIを実践31

もう1種類のカメラを撮影すると推論結果が変わるため、推論の機能が正常に動作していることが確認できます。
IDS社製 NXTカメラでAIを実践32

カメラの向きを変えていくと、推論が誤った結果(CP_Rev.2カメラに対して72%の確率でXSカメラと推論)となる向きもありました。もしこのような向きでの推論結果を向上させる場合は、同様の向きの画像をトレーニングに追加するといったことが必要となります。
IDS社製 NXTカメラでAIを実践33

以上のように、画像処理に関する知識を必要とせず、たった3ステップでカメラを分類することができました。NXTカメラやIDS NXT lighthouseでは、今回ご紹介した内容以外にも様々な機能をお使いいただけます。是非、色々な機能を駆使していただき、アプリケーションに最適なAI搭載アプリを開発いただけたらと思います。

お問い合わせ