Yolov11:最先端のオブジェクト検出モデルのアーキテクチャと実装に深く飛び込みます
yolo(1回だけを見る)モデルは、オブジェクトの検出、セグメンテーション、ポーズ推定など、コンピュータービジョンタスクの効率と精度で有名です。 この記事では、Pytorchを使用した最新のイテレーションYolov11のアーキテクチャと実装に焦点を当てています。 クリエイターである超低分類学は、正式な研究論文よりも実用的なアプリケーションに優先順位を付けますが、その設計を分析し、機能モデルを構築します。
Yolov11のアーキテクチャを理解するYolov11は、その前任者と同様に、バックボーン、ネック、ヘッドの3部構成のアーキテクチャを採用しています。
バックボーン:ネック:
バックボーンの出力を処理し、アップサンプリングと連結を使用して、スケール全体で特徴を融合します。 重要なコンポーネントはC2PSAブロックで、部分空間的注意(PSA)モジュールを組み込んで、低レベルの機能に関連する空間情報に焦点を当てることを強化します。head:
境界ボックスの予測を改良します。
ボックスの検出:
入力データから特徴を抽出します。
ボトルネックレイヤー:ショートカット接続を備えた2つの畳み込みレイヤーを使用して、効率と学習を改善します(連結または残留追加)。
(簡潔にするために簡略化された;完全なコードについては、元の記事を参照してください。)
# Simplified Conv Block class Conv(nn.Module): def __init__(self, in_ch, out_ch, activation, ...): # ... (Initialization code) ... def forward(self, x): return activation(self.norm(self.conv(x))) # Simplified Bottleneck Block (Residual) class Residual(nn.Module): def __init__(self, ch, e=0.5): # ... (Initialization code) ... def forward(self, x): return x + self.conv2(self.conv1(x)) # Simplified SPPF class SPPF(nn.Module): def __init__(self, c1, c2, k=5): # ... (Initialization code) ... def forward(self, x): # ... (MaxPooling and concatenation) ... return self.cv2(torch.cat((x, y1, y2, self.m(y2)), 1)) # ... (Other key blocks: C3K, C3K2, PSA, Attention, PSABlock, DFL) ...
モデルの構築とテスト
完全なYolov11モデルは、バックボーン、ネック、ヘッドを組み合わせることで構築されます。 さまざまなモデルサイズ(ナノ、小、中、大、Xlarge)は、深さや幅などのパラメーターを調整することで実現されます。 提供されたコードには、これを容易にするためのYOLOv11
クラスが含まれています。
ランダム入力テンソルによるモデルテストは、出力構造を示しています(トレーニングモードの特徴マップ、評価モードでの連結予測)。 最終的なオブジェクト検出を取得するには、さらなる処理(非最大抑制)が必要です。
結論
Yolov11は、オブジェクト検出の大幅な進歩を表しており、強力で効率的なアーキテクチャを提供します。 その設計は、実用的なアプリケーションに優先順位を付け、現実世界のAIプロジェクトにとって貴重なツールとなっています。 詳細なアーキテクチャとコードスニペットは、理解とさらなる開発のための強固な基盤を提供します。完全な実行可能なコードについては、元の記事を参照してください。
以上がPytorchを使用して、Yolov11モデルの構築に関するガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。