ホームページ > テクノロジー周辺機器 > AI > Pytorchを使用して、Yolov11モデルの構築に関するガイド

Pytorchを使用して、Yolov11モデルの構築に関するガイド

Lisa Kudrow
リリース: 2025-03-07 09:42:10
オリジナル
223 人が閲覧しました

Yolov11:最先端のオブジェクト検出モデルのアーキテクチャと実装に深く飛び込みます

yolo(1回だけを見る)モデルは、オブジェクトの検出、セグメンテーション、ポーズ推定など、コンピュータービジョンタスクの効率と精度で有名です。 この記事では、Pytorchを使用した最新のイテレーションYolov11のアーキテクチャと実装に焦点を当てています。 クリエイターである超低分類学は、正式な研究論文よりも実用的なアプリケーションに優先順位を付けますが、その設計を分析し、機能モデルを構築します。

Yolov11のアーキテクチャを理解するYolov11は、その前任者と同様に、バックボーン、ネック、ヘッドの3部構成のアーキテクチャを採用しています。

バックボーン:
    効率的なボトルネックベースのブロック(C3K2、Yolov8のC2Fの改良)を使用して機能を抽出します。 DarknetとDarkFPNを活用するこのバックボーンは、さまざまなレベルの詳細を表す3つの機能マップ(P3、P4、P5)を生成します。
  • ネック:

    バックボーンの出力を処理し、アップサンプリングと連結を使用して、スケール全体で特徴を融合します。 重要なコンポーネントはC2PSAブロックで、部分空間的注意(PSA)モジュールを組み込んで、低レベルの機能に関連する空間情報に焦点を当てることを強化します。
  • head:タスク固有の予測を処理します。 オブジェクトの検出には、が含まれます

  • dfl(分布焦点損失):

    境界ボックスの予測を改良します。

    ボックスの検出:
      境界ボックス座標を予測します。
    • クラスの検出:
    • オブジェクトクラスを予測します。 このモデルは、セグメンテーションとキーポイント検出ヘッドもサポートしています
    • コアビルディングブロック:畳み込みとボトルネック層
モデルは次のように大きく依存しています

Guide on YOLOv11 Model Building from Scratch using PyTorch

畳み込みレイヤー:

入力データから特徴を抽出します。

ボトルネックレイヤー:

ショートカット接続を備えた2つの畳み込みレイヤーを使用して、効率と学習を改善します(連結または残留追加)。

    C3KおよびC3K2モジュール:効率的な特徴抽出のための最適化された畳み込みブロック。
  • sppf(空間ピラミッドプーリング速い):さまざまなサイズのオブジェクトを検出するモデルの能力を強化します。
  • コード実装ハイライト(pytorch)
  • 次のコードスニペットは、主要なコンポーネントを示しています:

    (簡潔にするために簡略化された;完全なコードについては、元の記事を参照してください。)

    # 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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート