Object Detection Architectures
バックボーンからヘッドまで、物体検出アーキテクチャを確認します。Ultralytics YOLO26がリアルタイムコンピュータービジョンで卓越した速度と精度を実現する方法を学びます。
物体検出アーキテクチャは、ビジュアルデータ内の対象を識別して位置を特定するために使用されるニューラルネットワークの構造的な設計図です。より広い分野であるコンピュータビジョン(CV)において、これらのアーキテクチャは、生のピクセルデータを意味のある洞察へと処理することで、機械がどのように「見る」かを定義します。画像に単純にラベルを付ける基本的な分類モデルとは異なり、物体検出アーキテクチャは、検出した個々の物体ごとに、クラスラベルおよび信頼度スコアとともにバウンディングボックスを出力するように設計されています。この構造設計は、モデルの速度、精度、計算効率を決定するため、リアルタイム推論や高精度分析に使用するモデルを選択する際の重要な要素となります。
アーキテクチャの主要コンポーネント#
具体的な設計は異なりますが、現代の多くのアーキテクチャは、バックボーン、ネック、ヘッドという3つの基本コンポーネントを共有しています。バックボーンは主要な特徴抽出器として機能します。通常は、ImageNetのような大規模データセットで事前学習された畳み込みニューラルネットワーク(CNN)であり、基本的な形状、エッジ、テクスチャの識別を担います。バックボーンとしてよく選ばれるものには、ResNetやCSPDarknetがあります。
ネックは、バックボーンと最終出力レイヤーを接続します。その役割は、バックボーンの異なる段階から得られる特徴を混合・統合し、モデルがさまざまなサイズの物体を検出できるようにすることです。これはマルチスケール特徴融合と呼ばれる概念です。アーキテクチャでは、この部分に特徴ピラミッドネットワーク(FPN)やPath Aggregation Network(PANet)を利用し、予測レイヤーに渡される意味情報を強化することがよくあります。最後に、検出ヘッドがこれらの融合された特徴を処理し、各物体の具体的なクラスと座標位置を予測します。
進化:2段階方式と1段階方式#
従来、アーキテクチャは主に2つのカテゴリに分けられていました。2段階検出器は、R-CNNファミリーのように、まず物体が存在する可能性のある関心領域(RoIs)を提案し、次に2段階目でそれらの領域を分類します。一般的に精度は高い一方で、エッジデバイスで使用するには計算負荷が大きすぎることがよくあります。
一方、1段階検出器は、検出を単純な回帰問題として扱い、1回の処理で画像のピクセルをバウンディングボックスの座標とクラス確率に直接マッピングします。YOLO(見れば一度でわかる)ファミリーが先駆けとなったこのアプローチは、リアルタイム性能を実現し、業界に革新をもたらしました。現代の進歩はYOLO26のようなモデルへと結実しており、優れた速度を提供するだけでなく、エンドツーエンドのNMS非依存アーキテクチャも採用しています。非最大抑制(NMS)の後処理を不要にすることで、これらの新しいアーキテクチャはレイテンシーの変動を抑えます。これは、安全性が重要なシステムにおいて不可欠です。
実世界での利用例#
アーキテクチャの選択は、さまざまな業界におけるAIソリューションの成否に直接影響します。
- 小売自動化: スマートスーパーマーケットでは、効率的な1段階アーキテクチャにより、ベルトコンベアやショッピングカート上の商品を即座に認識する自動レジシステムを実現し、待ち時間と人的ミスを削減できます。
- 医療診断: 高精度アーキテクチャは、医療画像分析で使用され、X線画像やMRIスキャンから腫瘍などの異常を検出します。この場合、生の処理速度よりも、細部の情報を保持するアーキテクチャの能力が重要です。
関連用語との違い#
検出アーキテクチャと、類似するコンピュータビジョンタスクを区別することが重要です。
- 画像分類との比較: 画像分類アーキテクチャ(VGGやEfficientNetなど)は、画像全体に単一のラベル(例:「猫」)を割り当てます。猫がどこにいるのか、または複数の猫がいるのかは示しません。これを行うことが検出アーキテクチャの主な機能です。
- インスタンスセグメンテーションとの比較: 検出では物体をボックスで囲むのに対し、インスタンスセグメンテーションでは、各物体のピクセル単位で正確な輪郭(マスク)を特定します。セグメンテーションアーキテクチャは、多くの場合、検出アーキテクチャを拡張したものです(例:検出ヘッドにマスクブランチを追加します)。
Ultralyticsを使用した実装#
現代のフレームワークは、これらのアーキテクチャの複雑さを抽象化しており、開発者は最小限のコードで最先端の設計を活用できます。ultralyticsパッケージを使用すると、事前学習済みのYOLO26モデルを読み込み、すぐに推論を実行できます。データセットを管理し、クラウド上でカスタムアーキテクチャをトレーニングしたいチーム向けに、Ultralytics PlatformがMLOpsパイプライン全体を簡素化します。
from ultralytics import YOLO
# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")
# Run inference on an image source
# This uses the model's architecture to detect objects
results = model("https://ultralytics.com/images/bus.jpg")
# Display the results
results[0].show()








