Detection Head
検出ヘッドがリアルタイム物体検出を可能にする仕組みを学びます。Ultralytics YOLO26で高精度にバウンディングボックスとラベルを予測する役割を解説します。
検出ヘッドは、物体検出ニューラルネットワークアーキテクチャにおける最終的な意思決定層として機能します。モデルの前段の層が画像内の形状、テクスチャ、特徴の理解を担う一方で、検出ヘッドはこの情報を解釈し、どの物体が存在し、どこに位置しているかを正確に予測する特定のコンポーネントです。特徴抽出器が生成した抽象度の高いデータを実用的な結果に変換し、通常は、識別された物体を囲む一連のバウンディングボックスと、それに対応するクラスラベルおよび信頼度スコアを出力します。
ヘッド、バックボーン、ネックの違い#
検出ヘッドの機能を十分に理解するには、最新の検出器が3つの主要なステージで構成され、それぞれがコンピュータビジョン (CV)パイプライン内で異なる役割を果たしていると考えると分かりやすいです。
- バックボーン: ネットワークの初期部分であり、ResNetやCSPNetのような畳み込みニューラルネットワーク (CNN)がよく使われます。生の入力画像を処理し、視覚的パターンを表す特徴マップを生成します。
- ネック: バックボーンとヘッドの間に位置し、異なるスケールの特徴を精緻化して統合します。特徴ピラミッドネットワーク (FPN)のようなアーキテクチャは、コンテキストを集約することで、さまざまなサイズの物体をモデルが検出できるようにします。
- ヘッド: ネックから精緻化された特徴を受け取る最終コンポーネントです。分類(何であるか)と回帰(どこにあるか)という実際のタスクを実行します。
進化:アンカーベースとアンカーフリー#
検出ヘッドの設計は、特に従来の手法から最新のリアルタイム推論モデルへの移行に伴い、速度と精度を向上させるために大きく進化してきました。
- アンカーベースヘッド: 従来の1ステージ物体検出器は、さまざまなサイズの固定された基準形状である、あらかじめ定義されたアンカーボックスに依存していました。ヘッドは、物体に合わせるためにこれらのアンカーをどの程度伸縮または移動させるかを予測します。このアプローチは、Faster R-CNNに関する基礎的な研究で詳しく説明されています。
- アンカーフリーヘッド: 最新のYOLO26を含む最先端のモデルは、アンカーフリー検出器を利用します。これらのヘッドは、手動でアンカーを調整する必要をなくし、特徴マップ内のピクセルから物体の中心と寸法を直接予測します。これによりアーキテクチャが簡素化され、新しい物体形状に対するモデルの汎化能力が向上します。この技術は、完全畳み込み1ステージ物体検出 (FCOS)と関連付けられることが多いです。
実世界での利用例#
検出ヘッドの精度は、安全性が重要な環境や産業環境に人工知能 (AI)を導入するうえで重要です。Ultralytics Platformを使用すると、ユーザーはデータに簡単にアノテーションを付け、これらの特殊なヘッドをトレーニングできます。
- 自動運転: 自動車向けAIでは、検出ヘッドが歩行者、信号機、その他の車両をリアルタイムで区別します。高度に最適化されたヘッドにより、車両が即座に反応できるほど推論レイテンシを低く維持できます。
- 医療診断: 医用画像解析では、検出ヘッドを微調整して、MRIスキャン内の腫瘍などの異常箇所を特定します。回帰ブランチは病変の正確な境界を描くために極めて高い精度を必要とし、医師によるヘルスケアソリューションの活用を支援します。
コード例#
次の例では、YOLO26モデルを読み込み、その検出ヘッドの出力を確認する方法を示します。推論が実行されると、ヘッドは画像を処理し、座標とクラスIDを含む最終的な boxes を返します。
from ultralytics import YOLO
# Load the YOLO26n model (nano version)
model = YOLO("yolo26n.pt")
# Run inference on an image to utilize the detection head
results = model("https://ultralytics.com/images/bus.jpg")
# The detection head outputs are stored in results[0].boxes
for box in results[0].boxes:
# Print the bounding box coordinates and the predicted class
print(f"Class: {int(box.cls)}, Coordinates: {box.xywh.numpy()}")このやり取りから、検出ヘッドが複雑なニューラルネットワークのアクティベーションを、開発者が物体追跡やカウントなどの下流タスクに利用できる読み取り可能なデータへ変換する仕組みが分かります。









