テクノロジーの進歩に伴い、エッジ・デバイスはますます一般的になりつつある。心拍数を追跡するスマートウォッチから、街路を監視する空撮ドローンまで、エッジシステムはデバイス自体の中でリアルタイムにデータを処理することができる。
この方法は、特にナンバープレートの検出やジェスチャーの追跡など、個人データを含むアプリケーションでは、クラウドにデータを送信するよりも高速で安全な場合が多い。これらはコンピュータービジョンの一例であり、機械が視覚情報を解釈し理解することを可能にする人工知能(AI)の一分野である。
しかし、このようなアプリケーションでは、重い計算を処理し、最小限のリソースを使用し、独立して動作できるビジョンAIモデルが必要であることが重要な考慮点である。ほとんどのコンピュータ・ビジョン・モデルは高性能システム用に開発されているため、エッジ・デバイスに直接展開するのには適していません。
このギャップを埋めるために、開発者はしばしば、より小さなハードウェアで効率的に動作するようにモデルを適応させるターゲット最適化を適用する。このような調整は、メモリや処理能力が限られている現実世界のエッジ展開には不可欠である。
興味深いことに、Ultralytics YOLO11のようなコンピュータビジョンモデルは、すでにエッジ効率を考慮して設計されており、リアルタイムタスクに最適です。しかし、その性能は、プルーニングや量子化などのモデル最適化技術を用いてさらに向上させることができ、制約のあるデバイス上で、さらに高速な推論と低リソース使用を可能にします。
この記事では、刈り込みと量子化とは何か、どのように機能するのか、そしてYOLOモデルが実際のエッジ・デプロイメントでどのように役立つのかを詳しく見ていこう。始めよう!
ビジョンAIモデルをエッジデバイスに展開するために準備する場合、重要な目標の1つは、パフォーマンスを犠牲にすることなくモデルを軽量化し、信頼性を高めることです。これには多くの場合、メモリ、電力、または処理能力に制限のあるハードウェア上で効率的に動作できるように、モデルのサイズと計算要求を削減することが含まれます。このための一般的な方法は、プルーニングと量子化の2つです。
プルーニングは、ニューラルネットワークをより小さく、より効率的にするのに役立つAIモデルの最適化技術である。多くの場合、特定の接続やノードなど、モデルの一部は最終的な予測にあまり寄与しない。プルーニングは、このような重要度の低い部分を特定して削除することで、モデルのサイズを小さくし、パフォーマンスを高速化する。
一方、量子化とは、モデルが使用する数値の精度を下げる最適化技術である。高精度の32ビット浮動小数点数に頼る代わりに、モデルは8ビット整数のような、より小さく効率的な形式に切り替えます。この変更はメモリ使用量を減らし、推論(モデルが予測を行うプロセス)を高速化するのに役立つ。
さて、刈り込みと量子化とは何かについて理解を深めたところで、両者がどのように機能するのかを説明しよう。
刈り込みは感度分析として知られるプロセスを用いて行われる。これは、特定の重み、ニューロン、チャンネルなど、ニューラルネットワークモデルのどの部分が最終的な出力予測に最も寄与しないかを特定するものである。これらの部分は、精度への影響を最小限に抑えながら削除することができる。刈り込み後、モデルは通常再トレーニングされ、性能を微調整する。このサイクルを繰り返すことで、サイズと精度の適切なバランスを見つけることができる。
一方、モデルの量子化は、モデルがどのようにデータを処理するかに焦点を当てる。キャリブレーションから始まり、モデルはサンプルデータ上で実行され、処理に必要な値の範囲を学習する。その後、これらの値は32ビット浮動小数点から8ビット整数のような低精度フォーマットに変換される。
実際のAIプロジェクトで刈り込みや量子化を簡単に利用できるツールがいくつかあります。PyTorchやTensorFlowのようなほとんどのAIフレームワークには、これらの最適化手法のサポートが組み込まれており、開発者はモデルのデプロイプロセスに直接組み込むことができます。
モデルが最適化されると、ONNX Runtimeのようなツールは、サーバー、デスクトップ、エッジデバイスのような様々なハードウェアプラットフォームで効率的に実行するのに役立ちます。また、Ultralyticsは、YOLOモデルを量子化に適したフォーマットでエクスポートできる統合機能を提供しており、モデルサイズの縮小とパフォーマンスの向上が容易になります。
YOLO11のようなUltralytics YOLOモデルは、高速でシングルステップの物体検出で広く認知されており、リアルタイムのビジョンAIタスクに理想的です。YOLO11のようなYOLOモデルは、高速なシングルステップ物体検出が広く認知されており、リアルタイムのビジョンAIタスクに最適である。しかし、畳み込み層と呼ばれる視覚的特徴の処理を担当する層は、推論中にかなりのコンピューティング・パワーを要求することがあります。
YOLO11がすでにエッジでの使用に最適化されているのなら、なぜさらなる最適化が必要なのか?簡単に言えば、すべてのエッジ・デバイスが同じというわけではない。標準的なLED電球よりも消費電力が少ない小さな組み込みプロセッサのように、非常に最小限のハードウェアで動作するものもある。
このような場合、YOLO11のような合理的なモデルであっても、スムーズで信頼性の高いパフォーマンスを保証するために、さらなる最適化が必要となる。枝刈りや量子化のようなテクニックは、精度に大きな影響を与えることなく、モデルのサイズを小さくし、推論を高速化するのに役立ち、このような制約のある環境に理想的です。
これらの最適化技術を簡単に適用できるように、Ultralyticsは、YOLOモデルをONNX、TensorRT、OpenVINO、CoreML、PaddlePaddleなどの複数のフォーマットにエクスポートするために使用できるさまざまな統合をサポートしています。各フォーマットは、特定の種類のハードウェアやデプロイ環境でうまく動作するように設計されています。
例えば、ONNXは、幅広いツールやプラットフォームとの互換性があるため、量子化ワークフローでよく使用される。一方TensorRTは、NVIDIAデバイスに高度に最適化されており、INT8を使用した低精度推論をサポートしているため、エッジGPUでの高速展開に最適です。
コンピュータビジョンが様々な実世界アプリケーションに拡大し続ける中、最適化されたYOLOモデルにより、オブジェクト検出、インスタンス分割、オブジェクト追跡などのタスクを、より小型で高速なハードウェアで実行することが可能になります。次に、プルーニングと量子化によってこれらのコンピュータビジョンタスクがより効率的かつ実用的になるユースケースについて説明します。
公共エリアだけでなく、多くの産業スペースは、安全でセキュアな状態を維持するためにリアルタイムの監視に依存しています。交通機関の駅、製造現場、大規模な屋外施設などでは、人や車両を迅速かつ正確に検知できるVision AIシステムが必要です。このような場所では、限られた接続性とハードウェアの制約の中で運用されていることが多く、大規模なモデルの導入は困難です。
このような場合、YOLO11のような最適化されたVision AIモデルが最適なソリューションとなる。そのコンパクトなサイズと高速性能は、組み込みカメラやスマートセンサーなどの低消費電力エッジデバイスで実行するのに最適です。これらのモデルは、デバイス上で視覚データを直接処理できるため、クラウドへの常時アクセスに依存することなく、安全違反や不正アクセス、異常行動をリアルタイムで検知することができる。
建設現場は、重機、移動する作業員、絶え間ない活動で満たされた、ペースの速い予測不可能な環境です。スケジュールがずれたり、機材が動いたり、あるいは天候が急変したりと、状況は目まぐるしく変化します。このようなダイナミックな環境では、作業員の安全確保が絶え間ない課題のように感じられることもある。
リアルタイムのモニタリングは重要な役割を果たすが、従来のシステムはクラウドへのアクセスや高価なハードウェアに依存することが多く、オンサイトでは実用的でない場合がある。そこで、YOLO11のようなモデルが威力を発揮する。YOLO11は、インターネット接続を必要とせず、現場で直接動作する小型で効率的なエッジ・デバイス上で動作するように最適化することができる。
例えば、高速道路の拡張工事など、数エーカーに及ぶ大規模な建設現場を考えてみよう。このような現場では、すべての車両や機材を手動で追跡することは困難で時間がかかる。カメラと最適化されたYOLO11モデルを搭載したドローンがあれば、自動的に車両を検知して追跡し、交通の流れを監視し、不正アクセスや危険な運転行動などの安全上の問題を特定することができる。
ここでは、刈り込みや量子化のようなコンピュータビジョンモデルの最適化手法がもたらす主な利点をいくつか紹介する:
刈り込みと量子化には多くの利点があるが、モデルを最適化する際に開発者が考慮すべきトレードオフもある。以下に留意すべき制限をいくつか挙げる:
プルーニングと量子化は、YOLOモデルがエッジデバイス上でより良いパフォーマンスを発揮するのに役立つテクニックです。これらは、モデルのサイズを小さくし、計算の必要性を下げ、予測を高速化するもので、すべて精度を顕著に落とすことなく行うことができる。
また、これらの最適化手法により、開発者はモデルを完全に作り直すことなく、異なるタイプのハードウェアに柔軟に対応することができる。いくつかのチューニングとテストを行うことで、Vision AIを実世界の状況に適用することが容易になります。
成長中のコミュニティに参加しよう!GitHubリポジトリでAIについてもっと学びましょう。コンピュータビジョンプロジェクトを始める準備はできましたか?ライセンスオプションをご覧ください。農業におけるAIとヘルスケアにおけるビジョンAIについては、ソリューションのページをご覧ください!