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」状態にします。選択及び確認する箇所を赤枠で示します。
「Running」状態の場合、左項目の中に「Crawler」が表示されます。
左項目の中の「Crawler」を選択し、「CAMERA」タブにてカメラのパラメータを設定します。パラメータ設定後、「Trigger」項目の設定を「Freerun」から「Software」等に変更しておくことを推奨します。また、ROIを使用してトレーニングに不要な範囲をあらかじめ取り除いておくことで、トレーニングを行う際に要する時間を削減することができます。ここではROIを使用しております。
ここでPC側の「IDS NXT crawler」を起動します。「Interface」項目で選択されているIPアドレスが、NXTカメラと同じネットワーク内か確認し、異なる場合は同じネットワーク内のIPアドレスを選択します。「Crawler path」項目にて、画像の保存先を選択します。ここではあらかじめ作成しておいたデスクトップ上の「training」フォルダを選択しています。
「URL」項目の「Run crawler」ボタンをクリックすると、ボタン名が「Stop crawler」に変わり、「URL」項目にURLが表示されます。表示されたURLをコピーします。
IDS NXT cockpit 2.0に戻り、「VAPP」タブを選択します。先ほどコピーしたURLを「Configurables」項目の「URL」欄に貼り付けます。
「Configurables」項目の「Class」に撮影する画像の名前を入力します。入力した名前が、これから撮影する画像の名前や画像が保存されるフォルダに反映されます。ここでは「CP_Rev.2」と入力しています。Actions項目の「Reset image counter」ボタンをクリックし、「Configurables」項目の「Save」を有効にすると画像保存の準備が整います。
「Camera」タブを選択し、「Trigger」項目の「Trigger」ボタンをクリックすると画像が撮影され、画面左下の「imagestransmitted」がカウントされます。
撮影対象の向きや角度を変えながら最低でも10枚以上の画像を撮影します。撮影を終えたら、「VAPP」タブの「Configurables」項目の「Save」を無効にします。
「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」を選択し、先ほど撮影した画像の登録を行います。
「+」ボタンをクリックし、「Title」欄に名前を入力します。ここでは「Cameras」と入力しています。入力後、「Create data set」ボタンをクリックします。
「images」タブをクリックし、「Add」項目をクリックします。
表示された「Add and label image data」ウィンドウの「Add」ボタンをクリックし、撮影した画像をClass単位で選択します。ここではまず、「CP_Rev.2」フォルダ内の画像全てを選択しています。画像選択後、「開く」ボタンをクリックします。
「Add and label image data」ウィンドウに選択した画像一覧が表示されます。「Labels assigned to all images」欄にラベル名を入力すると、画像アップロード時に画像にラベル付けが行われます。ラベル名を入力して、「Upload」ボタンをクリックします。ここではラベル名を「CP_Rev.2」としています。
アップロードされた画像を見ながら、トレーニングに使用しない画像を画像の右上をクリックして選択します。このとき、画像一覧上部のラベル名をクリックすると、そのラベル名が付けられた画像のみが表示されます。画像選択後、「Remove」ボタンをクリックし、開かれた「Remove selected files」ウィンドウの「Delete」ボタンをクリックして、画像を削除します。ここではラベル名「CP_Rev.2」選択後、対象物の全体が写っていないものを選択し、削除しています。
撮影した他の画像に対しても同様の作業を行います。作業を終えたら「Projects」に移動します。
「+」ボタンをクリックし、「Title」欄に名前を入力します。ここでは「ClassificationCameras」と入力しています。入力後、「Create project」ボタンをクリックします。
「Basic settings」タブ下部の「Email address」欄にメールアドレスを入力しておくと、AIのトレーニングが完了した際に、入力したアドレス宛にトレーニング完了のお知らせが届きます。
「Data」タブをクリックし、先ほど「Data sets」で作成したデータセットを「+」ボタンをクリックして選択します。選択後、「Training」タブをクリックします。
「Training」タブでは、トレーニングに使用する画像を増やすことやトレーニングしたAIでの推論にかかる最大時間の設定等を行うことができます。デフォルトでも設定が行われているため、ここではデフォルトの設定でトレーニングを開始します。「Train neural network」ボタンをクリックするとトレーニングが開始されます。
「In queue」ゲージにてトレーニングの進捗度合いを確認できます。トレーニングが完了するとダウンロードが行えるようになります。ダウンロードボタンをクリックしてNXTカメラにアップロードするデータをダウンロードします。
「Training history」項目で、トレーニングしたAIの精度を確認できます。今回、「CP_Rev.2」ラベルの画像を12枚、「XS」ラベルの画像を14枚トレーニングに用いましたが、たったこれだけの画像でも83.33%の精度となっております。経験上、画像の枚数を増やしたり、対象物の向きを限定したりすることで、より高い精度が出るものと思います。
ステップ3 NXTカメラでAIを実践
IDS NXT cockpit 2.0に戻り、NXTカメラ内の「CNN manager」アプリを起動します。ここでは加えて「CAMERA」タブの「Trigger」項目の設定を「Freerun」に変更しております。
「VAPP」タブの「Files」欄の「Upload new CNN …」ボタンをクリックし、IDS NXT lighthouseからダウンロードした.cnnファイルを選択します。
「Configurables」欄の「CNN Package」項目からアップロードしたファイル名を選択します。例えば、「Clas00-2067_120ms_H_V_T70.cnn」というファイルをアップロードした場合は、「Clas00-2067」という名前を選択します。画面左下に推論の結果が表示されます。
推論の結果は確率で表示されます。今回、「CP_Rev.2」と「XS」の2種類でトレーニングを行ったため、この2種類のいずれかである確率が「Probability」に表示されています。ここでは「CP_Rev.2」が1.00(100%)、「XS」が0.00(0%)と推論結果が表示されています。また、「Inference Time」に推論時間が表示されており、今回の推論に107ms要したことが分かります。
もう1種類のカメラを撮影すると推論結果が変わるため、推論の機能が正常に動作していることが確認できます。
カメラの向きを変えていくと、推論が誤った結果(CP_Rev.2カメラに対して72%の確率でXSカメラと推論)となる向きもありました。もしこのような向きでの推論結果を向上させる場合は、同様の向きの画像をトレーニングに追加するといったことが必要となります。
以上のように、画像処理に関する知識を必要とせず、たった3ステップでカメラを分類することができました。NXTカメラやIDS NXT lighthouseでは、今回ご紹介した内容以外にも様々な機能をお使いいただけます。是非、色々な機能を駆使していただき、アプリケーションに最適なAI搭載アプリを開発いただけたらと思います。
◆ティー・イー・エムでは定期的に産業用カメラの無料紹介セミナーを開催しております。産業用カメラの一般的な内容についても説明しておりますので、是非ご参加ください。詳細は以下のURLよりご覧ください。
https://www.tem-inc.co.jp/news/detail-104.php
関連記事
-
2021.05.13
Vision規格対応カメラ(IDS社製)のセットアップ方法
-
2021.09.07
Vision規格対応カメラ(IDS社製)のファームウェアのアップデート方法
-
2022.04.28
画像認識AI(分類:Classification)のアーキテクチャの種類と違いについて
-
2021.03.02
IDS産業用カメラの販売と周辺機器及びサービス
-
2019.06.25
カメラのフィルターの役割について
-
2022.06.29
ビンピッキング(3DカメラEnsenso:アプリケーション例)
-
2019.08.01
uEye Hotpixel Editorについて
-
2019.10.29
設定したパラメータでuEyeカメラを使用する方法