組み込みプラットフォームのディープラーニング
Becks Simpson(マウザー・エレクトロニクスへの寄稿)
ディープラーニング(DL)手法によってマシンビジョンが進歩を続けるなか、オートメーションと欠陥検出の領域に大きな可能性が広がっています。特に、ロボット、自律走行車、産業プロセスなどのシナリオでは、ディープラーニングを組み込みシステムに統合することで変革の可能性が生まれます。スマートドアベルのような自律的な動作から、ドローンを使用した欠陥検出のような複雑なタスクまで、より高度なマシンビジョン手法を取り入れることで、スマートデバイスのインテリジェンスがこれまで以上に強化されます。ただし、この融合には遅延、電力効率、セキュリティ、プライバシーといった独自の課題が伴います。これらの要件に対応するためには、適切なアルゴリズムの慎重な選択、組み込みシステムへの適応、そしてよりスマートで応答性の高い世界への道を切り拓く展開戦略が必要です。
組み込みマシンビジョンにディープラーニングを使用する
マシンビジョンが向上し、ディープラーニング(DL)の手法がオートメーションと欠陥検出に取り入れられるなか、多くのアプリケーションが DL の統合から恩恵を受けています。産業オートメーションとホームオートメーションプロセス(特にロボットアーム、車両、その他のロボット要素)では、環境を見て理解し、それに応じて一連の作業を完了させる能力が役立っています。スマートデバイスと組み込みシステムの動作環境は複雑で変化しやすいため、ディープラーニングはマシンビジョンにますます欠かせない存在となっています。この強化されたインテリジェンスは、配送、敷地の保守管理、スマートドアベルや建物へのアクセス、掃除、製造、倉庫の梱包などの自律的な作業を実行できます。こうしたアプリケーションのサブセットには、監視と欠陥の検出も含まれます。ドローンや小型自律走行車を使って、パイプ、送電線、通信塔などのアセットの欠陥を検出するアプリケーションも、DLベースのマシンビジョンを追加することで改善できます。十分なデータがあれば、こうしたモデルは脆弱性が低くなり、さまざまな条件下でも従来のマシンビジョンモデルよりも堅牢に動作します。
ただし、マシンビジョンのプロセスにディープラーニングを導入するには費用がかかります。また、コンピューティング要件とハードウェア要件に影響を与える要素がいくつもあり、これを考慮しなければ成功は見込めません。こうしたアプリケーションは、オートメーションプロセス内の欠陥やその他の対象物をリアルタイムで検出・分類し、応答する必要があるため、結果を得るためにネットワークでデータを送信する時間は、多くの場合限られています。したがって、モデルがデバイスに展開された後の DL 推論の遅延が低いハードウェアを選択する必要があります。加えて、特にドローンや探査車のように自己電源で調査を行う自律走行車など、アプリケーションによっては電力効率にも考慮が必要です。充電せずに稼働できる時間が長いほど、作業効率は向上します。ディープラーニングプロセスは負荷の高い計算機能を必要とするため、効率的に実行し、使用するハードウェアを低消費電力に最適化することが重要です。
NXP Semiconductors i.MX 8M Plus評価キットのような組み込みシステムは、こうした要件を特別に考慮して設計されており、電力効率を妥協することなく、強力な人工知能アクセラレーション機能を設計に組み込んでいます。こうしたアプリケーションではセキュリティとプライバシーも重要な要件です。例えば、ホームオートメーションやアセットでの欠陥検出では、多くの場合、データを(クラウドに共有せずに)デバイス上に保持したり、ネットワーク上のデータや通信を完全に暗号化したりする必要があります。また、自律型ロボットや自律走行車でこうしたアルゴリズムをリアルタイムで実行する場合、良質で低遅延の安定したセンサデータをビジョン用に容易に統合できることも極めて重要です。ハードウェアの選択にはこの点を考慮する必要があります。
組み込みシステムに適したアルゴリズムを選択する
マシンビジョンのアプリケーションに選択すべきディープラーニング・アルゴリズムは、先ほど述べた要件に大きく左右されます。設計者は特にディスク上のモデルサイズ、メモリ、推論の遅延に注意する必要があります。カメラストリームからの物体検出(欠陥、人間、車、動物など)を含むものについては、ほとんどの視覚入力を幅広く理解した事前トレーニング済みモデル、または「基本」モデルが存在する可能性があります。こうしたモデルは、膨大な量のデータにさらされたオープンソースのモデルであり、微妙に異なるアプリケーションに拡張するために利用可能です。ただし、意図するタスクがそのモデルのトレーニングに使われたものと大きく異なる場合は、性能をテストすることが重要です。例えば、送電線やパイプ内の欠陥を特定するタスクには、人や自動車を特定するタスクとは異なる対象物とデータが含まれます。
また、設計者は事前にトレーニングしたモデルアーキテクチャを確実に組み込みデバイスに最適化する必要があります。具体的には、(ギガバイトではなく)メガバイトサイズのモデルを目指す場合は、デバイス上で存続できる程度に小さいモデルアーキテクチャを選ぶべきです。大きいモデルにありがちなことですが、モデルの読み込みと利用に途方もなく時間がかかるようではいけません。こうしたアーキテクチャとモデルの重さを最適化するには、例えばウェイトプルーニングや量子化といった手法が通常使用されています。これらはパフォーマンスを維持しながらサイズと複雑さを低減することができます。
また、組み込みディープラーニングのビジョンモデルを選択するには、デバイスのニーズに合わせて変換できるように、フォーマットが比較的標準的(TensorFlow Liteなど)であることも必要です。幸い、今は幅広いオープンソースのビジョンモデルが幅広く提供されているため、DLモデルをゼロから設計してトレーニングする必要はほとんどありません。
モデルをアプリケーションに適応する
組み込みモデルのマシンビジョンへの適合性を評価するとき、その性能が特定のアプリケーションに適さない場合があります。収集デバイスや条件など、最初のトレーニングデータの分布が、ユースケースに予期される実世界のデータと異なることが原因かもしれません。また、アプリケーションには基礎モデルが存在する場合がありますが、それらが検出できる対象物の種類が目的の対象物と完全に一致していない可能性があります。例えば、物体検出を実行する標準モデルは、欠陥や一般的でない対象物の特定のクラスを用意していないかもしれません。いずれの場合でも、設計者は微調整と再トレーニングを行ってモデルを適応し、性能を上げるか、目的のタスクに必要なクラスを適応する必要があります。これには、そのユースケースの識別と分類のニーズに応じて、新しいデータにラベル付けを行う必要があります。これらは、その分野に期待されるデータ、またはリアルアセットから取得され必要に応じてラベル付けされたカスタムデータに類似する、またはそれに合わせて調整されたオープンソースデータセット形式です。LabelboxやLabel Studioなど、適切なデータラベリングプラットフォームを探せば、このプロセスを簡単に実行し、ディープラーニングの標準形式で注釈を維持できます。更新済みモデルが必要なレベルで機能すれば、すぐに展開できます。
組み込みモデルを展開する
組み込みシステムのモデルフォーマットは豊富にありますが、重要なのは、モデルを簡単に移植できるソフトウェアが統合されたハードウェアを選ぶことです。モデル移植の第1ステップでは、データの前処理に必要なコードを書くか、画像処理アプリケーションにこうしたコードを組み込み済みのシステムを利用します。例えば、NXP i.MX 8M Plus評価キットの場合、NXP eIQ® MLソフトウェアと連携し、ディープラーニングソフトウェアの一部として組み込まれたマシンビジョン前処理パイプラインがボードに展開されています。多くの場合、こうした前処理ステップには、生のピクセルストリームからRGBへの変換、フレームのサイズ変更やトリミングが含まれます。同様にモデル推論後も液晶画面などに表示するために、カメラ入力での境界ボックスのオーバーレイなど、いくらか後処理が必要になるかもしれません。
次のステップでは、リアルタイム推論を行うために、モデルを組み込みデバイスで実行できるフォーマットに変換します。一般にこうした変換にはOpen Neural Network Exchange(ONNX)などの標準フォーマットへの変換が含まれ、これによってハードウェア最適化を容易に利用できるようになります。次に、バンドルを生成する前に、モデルと隣接コードをターゲットデバイスの機械実行可能なバイナリにバンドルします。このタスクには、FacebookのGlowなど、いくつかのオープンソースコンパイラを利用できます。このステップの出力は、所定のアプリケーションに使用する組み込みシステムに展開可能です。モデル移植のプロセスには先に述べたような各パーツのサブステップが多数あり複雑なので、一般に、移植プロセスを迅速かつ容易に進められるソフトウェアを搭載した組み込みプラットフォームを選ぶことをおすすめします。例えば、NXP i.MX 8M Plus評価キットはeIQソフトウェアパッケージを使ってプログラミングできるため、クリックするだけですべてのステップを処理できます。また、モデル推論エンジンを実行すれば、出力を欠陥検出、産業オートメーションなどのアプリケーションに利用できます。
まとめ
ディープラーニングを組み込みシステムのコンピュータービジョンに統合すれば、可能性の世界が広がります。その世界は、従来の方法だけで築く世界よりも複雑で革新的です。その可能性の恩恵はホームオートメーションや産業オートメーションだけでなく、さまざまな分野の欠陥検出にも及びます。ただし、遅延、電力効率、セキュリティ、プライバシーといった課題はあるため、特にハードウェアの選定にあたっては入念な検討が必要です。所定のアプリケーションに性能を最適化するプロセスでは、アルゴリズムの選択と適応も欠かせません。組み込みモデルの展開でも、能率的に変換するには、細心の注意の下で適切なハードウェアとソフトウェアを使用する必要があります。最終的にこれが統合されれば、コンピュータービジョンを必要とする組み込みアプリケーションに新しい効率性とイノベーションの時代が訪れるでしょう。