技術情報の1例として、弊社で行った開発事例を紹介します。
―GPUを活用したDeep Learningによる熱情報からの物体認識―
サーマルセンサーから取得できる熱情報により物体をリアルタイムに検出することができます。
この開発を進める中で、多くの苦労した点や工夫した点があります。
先ず工夫した点は、人を映した時に人と判断できるように人以外を含めた20種類のカテゴリー学習だけでなく、人の一部のみ移った画像も学習させることで人の特徴抽出に特化できるようにしたことです。
学習データの撮影は社員に手伝っていただき作成しましたが、人の画像だけでも1,000枚を超えるデータを作成しました。
次に苦労した点は、物体認識の学習済みモデルをサーマル画像用に転移学習させる際、GPUメモリが足りなかったことです。急遽クラウドのGPUインスタンスを活用して先に進めることができました。
また、用意していたサーマルセンサーがWindows専用であり、Linux(Ubuntu)に対応していなかったため、ドライバを作りこむ必要がありました。
しかしここでまた問題が発生しました。当初V4LからはRGB値でセンサーの値が取得できると考えていたのですが、RGBモードに対応していませんでした。そのため、センサーのレンジ情報を加工しました。
テストでは冷凍食品をセンサーの前に持ってきてみたり、ライターで火を撮ったり、熱湯の入れたカップを撮ったりするというような地道な作業もありましたが、無事に開発することができて達成感を感じることができました。
~ 参考動画 ~
参考として、実際に撮影した動画を公開します。
赤色で囲まれた枠の左上に人なら”Person”、車なら”car”と表示されます。
情報の1例として、弊社で行った開発事例を紹介します。
昨今では、システム自体の複雑化、ステークホルダーの多様化、ユーザーニーズの変化によって、システム設計の重要性が高まっています。
システム設計のフェーズでは、QCDSE(品質、コスト、納期、安全、環境)のバランスを取ることを目的とします。
「メカ」「エレキ」「ソフト(制御)」のドメイン設計に依存せず、システムを「サービス」として捉え、全体最適を目指した検討が必要です。
システムを表現するためには、効率的な表記方法とコミュニケーション方法が必要となります。複雑なシステムでの検討を効率的に行うには、「モデル」を活用する事が求められます。
「モデル」は、関係者間のコミュニケーションを円滑にするための共通言語です。自然言語による曖昧さを排除し、関係者の共通理解を担保することを目的とします。
昨今では深層学習=AI というピックアップが多くされています。
それは事実の一部ではありますが、深層学習の強みは「ある関数を近似出来る」事です。
ある関数とは既存の関数(アルゴリズム)であったり、人間が作ることが困難な未知の関数であったりと様々で、それら関数を近似し、その推定を行うことが可能です。
前述の通りある関数を近似することが強みですが、それを現実化する為の特徴が大きく分けて3つ存在します。
深層学習は計算量が膨大な既存アルゴリズムに対しても高速化が有効であり、また人間が開発することが困難な未知の関数に対しても有効です。今回の展示会では、強化学習の中でもQ学習と呼ばれる既存アルゴリズムの膨大な計算量を深層学習により近似・超高速で推論することで、リアルタイムでの処理を可能としています。
また入力が画像データとなりますが、推定結果が各アクションのQ値と出来る柔軟な点も深層学習の面白い特徴です。
実際の開発では、NVIDIA DRIVE PX2、Intel Goなどの自動運転開発プラットフォームや、NVIDIA JETSON TX2、Intel Cyclone V FPGAといったSoCを活用するのが望ましくあります。
デモ開発ではブースの規模等を鑑みて、認知、判断、制御間は無線通信を用いる構成としています。
認知はRCカーへ搭載したRaspberryPiにより実施し、判断は深層強化学習によって学習されたモデルの推論をDRIVE PX2で行います。
RCカーの制御はプロポへの可変抵抗を制御することで間接的に制御することにしました。