Yolo 深圳
深セン
今すぐ参加

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

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

自動運転車の動作を見たことがあるなら、リアルタイムAI推論を目の当たりにしたことになります。自動運転車は通常、カメラ、センサー、AIを使用して周囲の状況を処理し、ほぼ瞬時に意思決定を行います。ただし、迅速な応答が必要ない場合、リアルタイム推論はリソースを大量に消費する可能性があります。

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

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

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

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

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

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

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

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

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

バッチ推論の仕組みの理解

バッチ推論に含まれるステップについて詳しく見ていきましょう。

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

バッチ推論はいつ使用すべきですか?

バッチ推論とは何か、そしてリアルタイム推論とどう違うのかを説明しましたので、次はいつバッチ推論を使用すべきかについて詳しく見ていきましょう。

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

リアルタイムで各フレームを処理する代わりに、バッチ推論を使用すると、1か月分の映像全体をバッチで処理し、即時の結果を必要とせずに、主要なイベントや傾向を特定できます。これにより、システムに過負荷をかけたり、継続的な監視を必要としたりすることなく、大量のデータをより効率的に分析し、長期的なパターンに関する洞察を得ることができます。

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

Ultralytics YOLO11使ったバッチ推論

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

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

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

バッチ推論によって実現されるコンピュータビジョンアプリケーション

次に、バッチ推論の実際のコンピュータビジョンのユースケースをいくつか見ていきましょう。

ヘルスケアにおける診断と研究の強化

医学研究では、大量の視覚データを扱うことが非常に一般的です。ここで、バッチ推論は、科学者が化学、生物学、遺伝学などの分野でより簡単にデータを分析するのに役立ちます。データを1つずつ分析する代わりに、バッチで処理することで、時間と労力を節約できます。

例えば、医療施設では、MRIやCTスキャンなどの大量の医療画像を分析する際に、バッチ推論が特に役立ちます。病院はこれらのスキャンを1日を通して収集し、夜間にまとめて処理できます。 

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

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

シミュレーションを用いた自動運転車の改善

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

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

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

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

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

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

これにより、小規模店舗では困難なリアルタイム処理を必要とせずに、顧客の行動、トラフィックパターン、製品とのインタラクションなど、店舗内で何が起こっているかを分析できます。 

もう一つの興味深い例は、バッチ推論を使用してヒートマップを生成し、店舗内の顧客の活動が活発なエリアとそうでないエリアを可視化することです。これらのヒートマップを分析することで、小売業者は最も多くの人が行き交うエリアや、より注意や製品配置の最適化が必要な店舗内の場所を特定できます。このデータは、小売業者が店舗レイアウト、製品の配置、さらにはプロモーション戦略に関して、顧客体験と売上を向上させるためのより良い意思決定を行うのに役立ちます。

__wf_reserved_inherit
Fig 4. ヒートマップは、小売店が店舗内の人気エリアを特定するのに役立ちます。

バッチ推論のメリットとデメリット

以下に、バッチ推論がさまざまな業界にもたらす主な利点をいくつか示します。

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

バッチ推論の利用には多くの利点がある一方で、考慮すべきいくつかの制限事項も存在します。留意すべきいくつかの要素を以下に示します。

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

主なポイント

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

この方法は費用対効果が高く、計算負荷を軽減し、それでも正確な結果を提供します。店舗が在庫を管理するのを支援することから、医師が医療スキャン分析を支援すること、自動運転車の技術を強化することまで、バッチ推論はコンピュータビジョンをよりアクセスしやすく、手頃な価格で、実際のアプリケーションに実用的にします。

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

AIの未来を
共に築きましょう!

未来の機械学習で、新たな一歩を踏み出しましょう。

無料ではじめる