YOLOシリーズ ターゲット検出アルゴリズム - PP-YOLO

YOLOシリーズ ターゲット検出アルゴリズムカタログ -記事リンク


この記事の概要は次のとおりです。

  1. PP-YOLO は YOLOv3 に基づいて開発されており、速度はほとんど変わらないことを保証しながら、検出器の精度を可能な限り向上させるために、主にモデル パラメーターと FLOP をほとんど増加させないさまざまな既存のトリックを組み合わせようとしています。
  2. バックボーンは、YOLOv3 の DarkNet-53 を置き換えるために ResNet50-vd を使用します。バックボーンの置き換えによって引き起こされる可能性のある問題を解決し、効率とパフォーマンスのバランスをとるために、最後の段階でのみ、変形可能なコンボリューションを使用して 3x3 を置き換えます。畳み込み層。
  3. より大きなバッチ サイズ、EMA、DropBlock、IoU Loss、IoU Aware、Grid Sensitive、Matrix NMS、CoordConv、SPP、およびより優れた事前トレーニング モデルなど、他のさまざまなトリックを使用します。

ディープラーニングのナレッジポイントのまとめ

コラムリンク:
https://blog.csdn.net/qq_39707285/article/details/124005405

此专栏主要总结深度学习中的知识点,从各大数据集比赛开始,介绍历年冠军算法;同时总结深度学习中重要的知识点,包括损失函数、优化器、各种经典算法、各种算法的优化策略Bag of Freebies (BoF)等。



YOLOシリーズ ターゲット検出アルゴリズム - PP-YOLO

2020.7.23 PP-YOLO:《PP-YOLO: 物体検出器の効果的かつ効率的な実装》

1 はじめに

  ハードウェアの制限により、アルゴリズムの推論速度を確保するために精度を犠牲にすることが必要になることがよくあります。この論文の目的は、新しい検出モデルを提案するのではなく、実際のアプリケーションシナリオに直接適用できる、効果的かつ効率的な相対バランスを備えた物体検出器を実現することです。YOLOv3 に基づいて開発されており、速度はほとんど変わらないことを保証しながら、検出器の精度を可能な限り向上させるために、主にモデル パラメーターと FLOP をほとんど増加させないさまざまな既存のトリックを組み合わせることを試みます。この記事のすべての実験は PaddlePaddle に基づいているため、PP-YOLO と呼ばれます。

  YOLOv4 とは異なり、PP-YOLO は新しいバックボーンやデータ拡張方法を探索しません。また、ハイパーパラメータの検索に NAS を使用しません。バックボーンには ResNet を直接使用し、データ拡張には基本的な MixUp を直接使用します。したがって、より優れたバックボーン ネットワークを使用し、より効果的なデータ拡張方法を使用し、NAS を使用してハイパーパラメーターを検索すると、PP-YOLO のパフォーマンスをさらに向上させることができます。

  この記事では、パフォーマンスを向上させるために、効率にほとんど影響を与えずにいくつかの効果的なトリックを積み重ねる方法に焦点を当てます。これらのトリックは YOLOv3 のネットワーク構造に直接適用できないため、若干の変更が必要です。この文書では、新しい物体検出器を紹介するつもりはありません。これはクックブックに似ており、より優れた検出器を構築する方法を段階的に説明します。また、YOLOv3 検出器に有効に機能し、開発者の実験時間を節約するいくつかのトリックも発見しました。

2. アルゴリズム

  PP-YOLO は、バックボーン、ネック、ヘッドを含む 1 段階のアンカーベースのターゲット検出アルゴリズムです。このペーパーでは、まず YOLOv3 の構造を変更し、バックボーンを ResNet50-vd-d-dcn に置き換えた修正バージョンを紹介します。次に、効率をほとんど損なうことなく YOLOv3 のパフォーマンスを向上させるためのいくつかのトリックが紹介されます。

2.1 ネットワーク構造

ここに画像の説明を挿入

2.1.1 バックボーン

  YOLOv3 の全体構造を次の図に示します。オリジナルの YOLOv3 では、異なるスケールの特徴マップを抽出するために DarkNet-53 が最初に使用されました。ResNet は広く使用されており、より広範に研究されており、より多くの異なるバリエーションから選択でき、深層学習フレームワークによって最適化も強化されています。したがって、このホワイトペーパーでは、PP-YOLO は ResNet50-vd を使用して元のバックボーン DarkNet-53 を置き換えます。

  bacnbone を直接置き換えると元の検出器のパフォーマンスが低下する可能性があることを考慮すると、変形可能な畳み込みを使用して ResNet50-vd の畳み込み層の一部を置き換えることの有効性が確認されます (変形可能な畳み込みネットワーク (DCN) は多くの検出モデルでテストされています。で検証されています)。 。DCN 自体はモデルのパラメーターと FLOP の数を増加させませんが、実際のアプリケーションでは、DCN レイヤーが多すぎると推論時間が大幅に増加します。したがって、効率とパフォーマンスのバランスをとるために、最後の段階でのみ 3x3 畳み込み層が DCN に置き換えられます。この変更されたバックボーンを ResNet50-vd-dcn として示し、ステージ 3、4、および 5 の出力を C3、C4、および C5 として示します。

2.1.2 ネック

  次に、FPN を使用して、特徴マップ間の横方向の接続を持つ特徴ピラミッドを構築します。特徴マップ C3、C4、および C5 は FPN モジュールに入力され、ピラミッド レベル l の出力特徴マップはP l P_lとして示されます。Pl=3,4,5l=3,4,5=3 4 図 5 に示すように、入力サイズが W×H の画像の場合、Pl の解像度はW 2 l × H 2 l \frac{W}{2^l} × \frac{H}{2^l} となります。2W×2HFPN の詳細な構造を図に示します。

2.1.3 頭部

  YOLOv3 の検出ヘッドは非常にシンプルで、2 つの畳み込み層で構成され、3×3 畳み込み層と 1×1 畳み込み層を使用して最終予測を取得します。各最終予測の出力チャネルは3 × ( K + 5 ) 3 × (K + 5)です。3×( K+5 )、ここで K はカテゴリの数です。各最終予測マップ上の各位置は、3 つの異なるアンカーに関連付けられています。各アンカーについて、最初の K チャネルは K クラスの確率予測、次の 4 チャネルは境界ボックスの位置の予測、最後のチャネルはオブジェクト性スコアの予測です。分類と位置特定には、それぞれクロスエントロピー損失と L1 損失が使用され、物体の有無を識別するために使用される客観性スコアを監視するために物体性損失が使用されます。

2.2 トリックの選択

  この論文は新しい検出方法を提案するものではなく、既存のトリックを組み合わせて効果的かつ効率的な検出器を実現することにのみ焦点を当てています。多くのテクニックは YOLOv3 に直接適用できないため、この記事はその構造に応じて調整する必要があります。

  • より大きなバッチ サイズ
    より大きなバッチ サイズを使用すると、トレーニングの安定性が向上し、より良い結果が得られます。このペーパーでは、トレーニングのバッチ サイズが 64 から 192 に変更され、それに応じてトレーニング スケジュールと学習率が調整されます。

  • EMA
    モデルをトレーニングする場合、トレーニング パラメーターの移動平均を維持すると有益なことがよくあります。平均パラメータを使用した評価では、最終的なトレーニング値よりも大幅に優れた結果が得られることがあります。指数移動平均 (EMA) は、指数関数的減衰を使用してトレーニング パラメーターの移動平均を計算します。各パラメーター W に対して、シャドウ パラメーターを保持します:
    WEMA = λ WEMA + ( 1 − λ ) WEMA W_{EMA}=\lambda W_{EMA}+(1-\lambda)W_{EMA}WEM A=λW _EM A+( 1l ) WEM A
    ここで、λ \ラムダλは減衰率です。この論文では、λ を 0.9998 として EMA を使用し、シャドウ パラメーターWEMA W_{EMA}WEM A評価します。

  • DropBlock
    DropBlock はドロップアウトの一種で、フィーチャー マップの隣接する領域にある一部のユニットを破棄します。元の論文とは異なり、バックボーンに DropBlock を追加するとパフォーマンスの低下につながることが調査で判明したため、この論文では FPN にのみ DropBlock を適用しています。DropBlock の詳細な注入ポイントは、図中の「三角」でマークされています。

  • IoU 損失
    バウンディング ボックス回帰は、ターゲット検出の重要なステップです。YOLOv3 では、バウンディング ボックス回帰は L1 損失を使用します。これは、IoU (intersection-over-union) に大きく依存する mAP 評価メトリック用に調整されていません。この問題を解決するために、IoU 損失と、CIoU 損失や GIoU 損失などの他の変形が提案されています。YOLOv4 とは異なり、この記事では l1 損失を IoU 損失に直接置き換えませんが、IoU 損失を計算するための別のブランチを追加します。さまざまな IoU 損失のバリエーションは類似していることがわかっているため、この記事では最も基本的な IoU 損失を選択します。

  • IoU Aware
    YOLOv3 では、分類確率に物体スコアを乗じて最終的な検出信頼度を取得しますが、これには測位精度は考慮されません。この問題に対処するために、ローカリゼーションの精度を測定するための IoU 予測ブランチが追加されています。トレーニング中に、IoU 予測ブランチは IoU を認識した損失を使用してトレーニングされます。推論中に、予測された IoU に分類確率と物体性スコアが乗算されて、最終的な検出信頼度が計算されます。これは、位置特定の精度とより相関関係があります。最後に、最終的な検出信頼度は、後続の NMS の入力として使用されます。IoU 対応ブランチでは、追加の計算コストが追加されます。ただし、追加されるのはパラメーターの 0.01% と FLOP の 0.0001% だけであり、ほとんど無視できます。

  • Grid Sensitive
    Grid Sensitive は、YOLOv4 で導入された効果的なトリックです。元の YOLOv3 でバウンディング ボックスの中心 x および y の座標をデコードすると、次のようになります。
    ここに画像の説明を挿入
    ここで、 σ \sigmaσシグモイド シグモイドs i g mo i d関数gx g_xg×ジージーgはいは整数、sssはスケール係数です。明らかに、シグモイドシグモイドs i g mo i d は完全に 0 と 1 に等しいことは難しいので、xxxyyy をs ⋅ gxs \cdot g_xと正確に等しくすることはできません。sg×またはs ⋅ ( gx + 1 ) s \cdot (g_x+1)s( g×+1 )このため、グリッド境界上にのみある境界ボックスの中心を予測することが困難になります。この問題を解決するには、方程式を次のように変更します。
    ここに画像の説明を挿入
    この論文では、α \alphaαは 1.05 に設定されており、モデルはどの境界ボックスの中心がグリッド境界上にあるかを予測しやすくなります。Grid Sensitive によって追加される FLOP は非常に小さいため、完全に無視できます。

  • マトリックス NMS
    マトリックス NMS は Soft-NMS から変更されており、他の検出スコアを重複する単調減少関数に減衰させます。ただし、このプロセスは従来の貪欲 NMS と同様にシーケンシャルであり、並列的に実装することはできません。Matrix NMS は、このプロセスを別の角度から見て、並行して実装します。したがって、Matrix NMS は効率を損なうことなく、従来の NMS よりも高速です。

  • CoordConv
    CoordConv は、追加の座標チャネルを使用して、畳み込みに独自の入力座標へのアクセスを提供します。CoordConv を使用すると、ネットワークは完全なフリップ不変性またはさまざまな程度のフリップ依存関係を学習できます。CoordConv が畳み込み層に 2 つの入力チャネルを追加することを考慮すると、一部のパラメーターと FLOP が増加します。効率の損失をできるだけ減らすために、この論文ではバックボーンの畳み込み層を変更せず、FPN の 1x1 畳み込み層と検出ヘッドの最初の畳み込み層を CoordConv に置き換えるだけです。CoordConv の詳細な注入ポイントは、図の「四角」でマークされています。

  • SPP
    空間ピラミッド プーリング (SPP) は、ワード バッグ操作の代わりに最大プーリング操作を使用して、SPM を CNN に統合します。YOLOv4 は、max-pooling 出力をカーネル サイズ k×k と連結することによって SPP モジュールを適用します。ここで、k = {1,5,9,13}、ストライドは 1 です。この設計では、比較的大きな最大プーリングにより、バックボーン特徴の受容野が効果的に増加します。具体的には、図 2 の「アスタリスク」でマークされているように、SPP は最上位の機能マップにのみ適用されます。SPP自体はパラメータを導入していませんが、後続の畳み込み層の入力チャネル数が増加します。したがって、約 2% の追加パラメータと 1% の追加 FLOP が導入されます。

  • より優れた事前トレーニング モデル
    ImageNet でより高い分類精度を持つ事前トレーニング モデルを使用すると、より優れた検出パフォーマンスを実現できます。この論文では、バックボーンとして蒸留された ResNet50-vd モデルを使用していますが、これは明らかに検出器の効率に影響を与えません。

おすすめ

転載: blog.csdn.net/qq_39707285/article/details/128143064