物体検出のための非最大抑制(NMS)をご覧ください。NMSがどのように結果を洗練させ、精度を高め、YOLOのようなAIアプリケーションを強化するかをご覧ください。
非最大抑制(NMS)は、コンピュータビジョン、特に物体検出タスクで使用される基本的な後処理アルゴリズムである。その主な目的は、冗長で重複するバウンディングボックスをフィルタリングすることによって検出モデルの出力をクリーンアップし、各オブジェクトが一度だけ識別されるようにすることです。Ultralytics YOLOのような物体検出モデルが予測を行う場合、同じ物体の周囲に複数の候補ボックスを生成することがよくあり、それぞれ信頼度スコアが異なります。NMSはインテリジェントに各オブジェクトに最適な1つのバウンディングボックスを選択し、非最大とみなされる他のすべてのオーバーラップするボックスを抑制、または排除します。
NMSアルゴリズムは、予測されたバウンディングボックスを反復し、2つの重要なメトリクス、すなわち信頼度スコアとIntersection over Union (IoU)しきい値に基づいて決定を下すことで動作する。プロセスは以下のステップに要約できる:
IoUしきい値は、ユーザー定義の重要なハイパーパラメータです。IoUしきい値を低く設定すると、わずかでも重なりがあるボックスが抑制されるため、検出数が少なくなり、一方、しきい値を高く設定すると、同じオブジェクトが複数検出される可能性があります。この閾値を微調整することは、特定のデータセットに対するモデルのパフォーマンスを最適化することの一部であることが多い。
NMSは、正確な物体検出に依存する多くの実世界のAIアプリケーションにおいて極めて重要なコンポーネントである。
NMSは特に、物体検出モデルが候補バウンディングボックスの初期セットを生成した後に適用される後処理ステップである。これは、アンカーベースの検出器と アンカーフリーの検出器の違いのような、検出アーキテクチャそのものと混同してはならない。これらのアーキテクチャは、候補となるボックスがどのように提案されるかを定義し、NMSはこれらの提案を洗練させる。
興味深いことに、NMSに関連する計算コストと潜在的なボトルネックが、NMSを使わない物体検出器の研究に拍車をかけている。YOLOv10のようなモデルは、推論の待ち時間を短縮し、真にエンドツーエンドの検出を可能にすることを目的として、冗長なボックスを予測することを本質的に回避するメカニズムを学習中に統合する。これは、Ultralytics YOLOv8や YOLOv5のような、NMSが推論パイプラインの標準的かつ不可欠な部分である従来のアプローチとは対照的です。YOLOv10とYOLOv8のような技術的な比較は、我々のドキュメントで調べることができる。Soft-NMSのようなバリエーションは、オーバーラップするボックスのスコアを完全に除去するのではなく、減衰させる代替アプローチを提供します。
NMSはUltralyticsのエコシステムにシームレスに統合されています。UltralyticsのYOLOモデルは、NMSを自動的に適用します。 予測predict
) そして バリデーションval
) モードは、デフォルトでクリーンで正確な検知出力を確実にユーザーに提供する。NMSの動作を制御するパラメータ(IoUしきい値や信頼度しきい値など)は、特定のアプリケーションのニーズに合わせて調整できることが多い。
Ultralytics HUBのようなプラットフォームは、これらの詳細をさらに抽象化し、最適化されたパイプラインの一部としてNMSが自動的に処理されるモデルをトレーニングし、デプロイすることを可能にします。この統合により、ユーザーはMLOpsの深い技術的専門知識の有無に関わらず、様々なコンピュータビジョンタスクで最先端の物体検出結果の恩恵を受けることができます。Ultralyticsフレームワーク内の具体的な実装の詳細については、Ultralyticsユーティリティリファレンスを参照してください。その他の定義については、Ultralytics用語集をご覧ください。