グリーンチェック
クリップボードにコピーされたリンク

Ultralytics YOLO11 バッチ推論を実行する

様々なコンピュータビジョンアプリケーションにUltralytics YOLO11 使用する際の、リアルタイム推論とバッチ推論の違いをご覧ください。

自動運転車の動きを見たことがある人なら、リアルタイムのAI推論を目撃したことがあるだろう。自動運転車は通常、カメラ、センサー、AIを使って周囲の状況を処理し、ほぼ瞬時に判断を下す。しかし、迅速な応答が必要でない場合、リアルタイム推論はリソースを大量に消費する可能性がある。

このような場合、より良い選択肢はバッチ推論である。リアルタイムで連続的にデータを処理する代わりに、バッチ推論ではスケジュールされた間隔で大規模なデータセットを処理することができる。このアプローチは、リソースの節約、消費電力の削減、インフラコストの削減に役立つ。

例えば、コンピュータ・ビジョンのアプリケーションでは、次のようなモデルがあります。 Ultralytics YOLO11のようなモデルは、オブジェクト検出やインスタンス分割のようなリアルタイムタスクに使用できる。しかし、大量の視覚データをリアルタイムで処理するのは困難です。 

図1.YOLO11使った画像内のオブジェクトのセグメンテーションの例。

バッチ推論では、YOLO11 視覚データに対してバッチで実行できるため、システムの負担が軽減され、パフォーマンスを犠牲にすることなく効率が向上します。これにより、ハードウェアに負担をかけることなく、またコストを増加させることなく、Vision AIソリューションのスケール展開が容易になります。

この記事では、バッチ推論とその利点、そして YOLO11使ったバッチ推論がコンピュータ・ビジョン・アプリケーションにどのように応用できるかを探ります。それでは始めましょう!

コンピュータ・ビジョンにおけるバッチ推論について

バッチ推論とは、入ってきたデータを少しずつ処理するのではなく、一度に大きなタスクに取り組むことだと考えることができる。常にリアルタイムでデータを処理する代わりに、バッチ推論を使用することで、大きなデータ群を一定の間隔で処理することができます。このアプローチは、即時の応答が必要でない場合にはるかに効率的で、コンピューティング・リソースの節約、エネルギー使用量の削減、コスト削減に役立ちます。

コンピュータビジョンに関しては、低遅延が不可欠なアプリケーションがある。低遅延とは、入力(画像やビデオフレームなど)を受け取ってからシステムが応答するまでの遅延が最小であることを指します。例えば、リアルタイムのセキュリティ監視では、わずかな遅延でも安全上のリスクにつながります。

しかし、他の多くのコンピュータビジョンのシナリオでは、低レイテンシはそれほど重要ではありません。システムが即座に反応する必要がない場合、バッチ推論が威力を発揮します。バッチ推論は、視覚データをグループまたはバッチでコンピュータビジョンモデルに供給することで機能し、システムがリアルタイムで連続的に処理するのではなく、大規模なデータセットを一度に処理することを可能にします。

バッチ推論の仕組みを理解する

バッチ推論のステップを詳しく見てみよう:

  • データ収集:視覚データは一定期間にわたって収集される。用途に応じて、セキュリティ映像、製品画像、顧客データなどが含まれる。
  • バッチの準備: 収集されたデータはバッチにグループ化される。このステップで、データはモデルの要求に応じてフォーマットされる。例えば、画像はリサイズされたり、正規化されたり、モデルが処理するのに適切な形式に変換されたりする。
  • 予想: データが準備されると、バッチ全体がモデル(YOLO11)に投入され、モデル(YOLO1111など)はバッチ全体を一度に処理する。これにより、モデルはバッチ内の全データの予測を同時に行うことができ、各データポイントを個別に処理するよりも効率的な処理が可能になる。

バッチ推論はいつ使うのか?

さて、バッチ推論とは何か、リアルタイム推論との違いは何かを説明したところで、どのような場合にバッチ推論を使うのかを詳しく見ていこう。

バッチ推論は、過去のデータを分析するのに理想的です。例えば、過去1ヶ月間の地下鉄駅の監視カメラの映像があり、時間帯によって出入りする人の数など、特定のパターンを特定しようとしているとします。 

各フレームをリアルタイムで処理する代わりに、バッチ推論を使用すると、1ヶ月分の映像を一括で処理し、重要なイベントや傾向を特定することができます。こうすることで、大量のデータをより効率的に分析し、長期的なパターンに関する洞察を得ることができます。

バッチ推論は、システムリソースが限られている場合にも最適なソリューションです。オフピーク時(夜間など)に推論を実行することで、コンピューティングコストを節約し、使用ピーク時にシステムに過負荷がかからないようにすることができます。このため、大規模なデータセットを処理する必要があるが、リアルタイムの分析を必要としないビジネスやプロジェクトにとって、効率的で費用対効果の高いアプローチとなります。

Ultralytics YOLO11使ったバッチ推論

Ultralytics Python パッケージは、YOLO11ようなモデルのバッチ推論をサポートしています。YOLO11、'batch'引数を指定することで簡単にバッチ推論を実行することができる。 

バッチ推論プロセスでは、バッチ内のすべての画像に対して同時に予測が生成されます。デフォルトでは、バッチサイズは1に設定されていますが、任意の数に調整することができます。 

例えば、バッチサイズを5に設定すると、YOLO11 一度に5つの画像またはビデオフレームを処理し、一度に5つすべての予測を生成する。バッチサイズを大きくすると、複数の画像を個別に処理するよりもバッチで処理した方が効率的なため、通常、推論時間が速くなる。

バッチ推論が可能にするコンピュータ・ビジョン・アプリケーション

次に、バッチ推論の実際のコンピュータ・ビジョンの使用例をいくつか見てみましょう。

医療における診断と研究の強化

医学研究では、大量のビジュアルデータを扱うことが非常に多い。バッチ推論は、科学者が化学、生物学、遺伝学のような分野にわたってデータをより簡単に分析するのに役立ちます。一度に一つずつ分析するのではなく、データをバッチ処理することで、時間と労力を節約できる。

例えば、医療施設では、MRIやCTスキャンのような大規模な医療画像セットの分析に、バッチ推論が特に役立ちます。病院では、これらのスキャン画像を一日中収集し、夜間にバッチ処理することができます。 

このアプローチにより、病院はハードウェアとスタッフを有効活用し、運用コストを削減し、すべてのスキャンが一貫した均一な方法でレビューされることを保証することができる。また、膨大なデータを扱う必要がある大規模な研究プロジェクトや長期的な研究にも有益である。

図2.YOLO11使った医療用スキャンの検出。

シミュレーションによる自律走行車の改善

自動運転車は、コンピュータ・ビジョンのようなAI技術を使って周囲の世界を処理する。YOLO11ような高度なモデルの助けを借りて、車のオンボードシステムは他の車、車線、道路標識、道行く人を認識することができる。道路上ではリアルタイムの推論が重要だが、自動運転技術は舞台裏でのバッチ推論にも大きく依存している。 

図3.YOLO11 11は道路上の歩行者を簡単に検出できる。

自動車が走行を完了した後、何時間分ものカメラ映像、センサーの読み取り値、LIDARスキャンなど、自動車が収集したデータを後で大量にバッチ処理することができる。これにより、エンジニアは車のAIモデルを更新し、システムの安全性を高め、さまざまな運転状況に対応する能力を向上させることが可能になる。

バッチ推論は、交通量の多い交差点のナビゲートや予測不可能な歩行者の動きへの対応など、さまざまな状況で自動運転車がどのように反応するかをテストするための自律走行シミュレーションにも使用されています。このアプローチは時間を節約し、コストを削減し、実生活ですべてのシナリオをテストすることに伴うリスクを回避します。

バッチ推論による小売データ分析

同様に、小売店の場合、YOLO11 ようなコンピュータビジョンモデルを使ったバッチ推論は、業務効率を大幅に向上させることができる。例えば、店舗に設置されたカメラシステムは、一日を通して何千枚もの画像をキャプチャし、それを夜間にバッチ処理することができます。 

これにより店舗は、小規模店舗では困難なリアルタイム処理を必要とせずに、顧客の行動、トラフィック・パターン、商品とのやり取りなど、店舗で起きていることを分析できる。 

もう1つの興味深い例は、バッチ推論を使用してヒートマップを生成することです。これらのヒートマップを分析することで、小売業者は、どのエリアが最も多くの人の往来を集めているのか、店舗のどの部分にもっと注意を払う必要があるのか、または商品の配置を最適化する必要があるのかを特定することができます。このデータは、店舗レイアウト、商品ポジショニング、さらには顧客体験と売上を向上させるためのプロモーション戦略について、小売業者がより適切な判断を下すのに役立ちます。

図4.ヒートマップは、小売業者が店舗内の人気エリアを特定するのに役立つ。

バッチ推論の長所と短所

バッチ推論が様々な業界にもたらす主な利点のいくつかを紹介しよう:

  • 統合の容易さ: バッチ推論は既存のワークフローに簡単に統合でき、特に小売、セキュリ ティ、ヘルスケアなど、大量のデータを一括処理する必要がある業種に適してい る。
  • データ管理が容易に: 大量のデータを扱う場合、バッチ推論はデータを管理可能なチャンクにまとめ るため、データ管理を効率化できる。これにより、長期的なデータの追跡、レビュー、整理が容易になる。
  • ネットワーク負荷の軽減:データがバッチ処理されると、任意の瞬間に転送されるデータ量を最小限に抑えることができるため、クラウドベースのシステムや分散コンピューティング環境におけるネットワークリソースの負担を軽減することができる。

バッチ推論を使用することには多くの利点がありますが、考慮すべき制限もあります。以下に、留意すべき点をいくつか挙げる:

  • ストレージ要件:
    ‍ バッチ処理のために大規模なデータセットを保存すると、特に高解像度の画像やビデオ、大容量のデータでは、ストレージコストが大幅に増加する可能性がある。
  • バックログの可能性:データが急速に蓄積されたり、大量のバッチが時間通りに処理されなかったりすると、バックログが 発生する可能性がある。これは、洞察の提供や新しいデータのタイムリーな処理の遅れにつながる。
  • リソースの急増:大規模なバッチ、特に高解像度の画像を含むバッチは、メモリやコンピュート使用量が急増する可能性があります。適切に管理されない場合、このようなスパイクはシステムを圧迫し、速度低下やクラッシュにつながる可能性があります。

要点

バッチ推論は、すぐに結果を必要としない大量のビジュアルデータを処理する効率的な方法です。各画像をリアルタイムで分析するのではなく、夜間などのスケジュールされた時間にバッチ処理する。 

この方法はコスト効率が良く、計算負荷が軽減され、なおかつ正確な結果が得られます。店舗での在庫管理から、医師による医療スキャン解析の支援、自動運転車技術の強化に至るまで、バッチ推論はコンピュータ・ビジョンをより身近に、手頃な価格で、実世界のアプリケーションに実用的にします。

AIに深く飛び込む準備はできていますか?GitHubリポジトリを探索し、コミュニティとつながり、ライセンスオプションをチェックして、コンピュータビジョンの旅を始めましょう。製造業におけるAIや 物流業界におけるコンピュータビジョンなどのイノベーションについては、ソリューションページをご覧ください。

リンクトインのロゴツイッターのロゴFacebookのロゴコピー・リンク・シンボル

このカテゴリの続きを読む

AIの未来
を一緒に作りましょう!

機械学習の未来への旅を始めよう