Two-Stage Object Detectors
リージョン提案と分類に焦点を当てた、2ステージ物体検出器のメカニズムを探ります。なぜUltralytics YOLO26のような最新モデルが現在リードしているのかを学びましょう。
2ステージ物体検出器は、コンピュータビジョンにおいて画像内のアイテムを特定・位置特定するために使用される、高度なディープラーニング(DL)アーキテクチャのクラスです。1回のパスで検出を行う1ステージ検出器とは異なり、これらのモデルはタスクを領域提案と物体分類という2つの明確なフェーズに分割します。この2段階のアプローチは、高い位置特定精度を優先するために先駆的に導入され、人工知能(AI)の進化において歴史的に重要な役割を果たしてきました。「どこにあるか」と「何であるか」を分離することで、2ステージ検出器は、特に小型の物体や遮蔽された物体に対して優れた精度を発揮することがよくありますが、通常、これには計算リソースの増加と推論レイテンシの増大というコストが伴います。
Link to this section2ステージプロセス#
2ステージ検出器のアーキテクチャは、人間がシーンを注意深く精査する様子を模倣した順次的なワークフローに依存しています。
-
領域提案: 第1ステージでは、モデルは入力画像をスキャンし、物体が存在する可能性のある領域を特定します。領域提案ネットワーク(RPN)として知られるコンポーネントが、関心領域(RoI)と呼ばれる一連の候補ボックスを生成します。このステージは背景の大部分をフィルタリングし、ネットワークが関連する領域に処理能力を集中できるようにします。
-
分類と洗練: 第2ステージでは、モデルは畳み込みニューラルネットワーク(CNN)を使用してこれらの候補領域から特徴を抽出します。次に、各領域に特定のクラスラベル(例:「人」、「車両」)を割り当て、バウンディングボックスの座標を調整して、物体を正確に囲むように洗練させます。
このアーキテクチャの代表的な例には、R-CNNファミリー、特にFaster R-CNNやMask R-CNNがあり、これらは数年間にわたり学術的ベンチマークの基準となりました。
Link to this section1ステージ検出器との比較#
2ステージモデルを、Single Shot MultiBox Detector (SSD) や Ultralytics YOLO シリーズのような1ステージ物体検出器と区別することは有益です。2ステージモデルが領域を個別に処理することで精度を優先するのに対し、1ステージモデルは検出を単一の回帰問題として捉え、画像ピクセルをバウンディングボックスの座標とクラス確率に直接マッピングします。
歴史的に、これにはトレードオフがありました。2ステージモデルはより正確ですが低速であり、1ステージモデルは高速ですが精度が低いというものです。しかし、現代の進歩によってこの境界は曖昧になっています。YOLO26のような最先端のモデルは現在、2ステージ検出器の精度に匹敵しながら、リアルタイム推論に必要な速度を維持するエンドツーエンドのアーキテクチャを活用しています。
Link to this section実社会での応用#
精度と再現率が重視されるため、生の処理速度よりも安全性や詳細が重要となるシナリオでは、2ステージ検出器がしばしば好まれます。
- 医療診断画像: ヘルスケアにおけるAIの分野では、診断の見落としが致命的になる可能性があります。2ステージアーキテクチャは、X線やMRIスキャンで腫瘍などの異常を検出するための医療画像解析に頻繁に使用されます。多段階のプロセスは、複雑な組織背景の中で小さな病変が見落とされないようにし、放射線科医に高い信頼性を持つ自動支援を提供します。
- 高精度な産業検査: スマートマニュファクチャリングにおいて、自動視覚検査システムはこれらのモデルを使用して、組立ライン上の微細な欠陥を特定します。例えば、タービンブレードの微細な亀裂を検出するには、2ステージ検出器が提供する高いIntersection over Union (IoU)精度が必要であり、欠陥のない部品のみが次の生産工程に進むことを保証します。
Link to this sectionモダンな検出の実装#
2ステージ検出器が高精度なビジョンの基盤を築きましたが、現代のエンジニアは、展開ワークフローが大幅に容易でありながら同等のパフォーマンスを提供する、高度な1ステージモデルを頻繁に利用しています。Ultralytics Platformは、これらのモデルの学習と展開を簡素化し、データセットと計算リソースを効率的に管理します。
以下の Python の例は、ultralytics を使用してモダンな物体検出ワークフローで推論をロードして実行する方法を示しており、従来の2ステージアプローチと同様の高精度な結果をより高い効率で実現します。
from ultralytics import YOLO
# Load the YOLO26 model, a modern high-accuracy detector
model = YOLO("yolo26n.pt")
# Run inference on an image to detect objects
results = model("https://ultralytics.com/images/bus.jpg")
# Process results (bounding boxes, classes, and confidence scores)
for result in results:
result.show() # Display the detection outcomes
print(result.boxes.conf) # Print confidence scores





