web-dev-qa-db-ja.com

YOLOv3 SPPとYOLOv3の違いは?

YOLOv3よりmAPが優れているYOLOv3 SPPについての良い説明は見つかりませんでした。著者自身は、YOLOv3 SPPを次のように述べています。

空間ピラミッドプーリングなどを備えたYOLOv3

しかし、それでも私はそれを本当に理解していません。 yolov3-spp.cfgでは、いくつかの追加があることに気づきました

575 ### SPP ###
576 [maxpool]
577 stride=1
578 size=5
579 
580 [route]
581 layers=-2
582 
583 [maxpool]
584 stride=1
585 size=9
586 
587 [route]
588 layers=-4
589 
590 [maxpool]
591 stride=1
592 size=13
593 
594 [route]
595 layers=-1,-3,-5,-6
596 
597 ### End SPP ###
598 
599 [convolutional]
600 batch_normalize=1
601 filters=512
602 size=1
603 stride=1
604 pad=1
605 activation=leaky

誰でもYOLOv3 SPPがどのように機能するかについてさらに説明できますか?レイヤー[-2、-4および-1、-3、-5、-6が[route] layersで選択されているのはなぜですか?ありがとう。

2
gameon67

最後に、何人かの研究者がYoloでのSPPアプリケーションに関する論文を発表しました https://arxiv.org/abs/1903.08589

Yolov3-tiny、yolov3、yolov3-sppの違いの場合:

  • yolov3-tiny.cfgはMax-Poolingレイヤーでダウンサンプリング(stride = 2)を使用します
  • yolov3.cfgは、畳み込み層でダウンサンプリング(stride = 2)を使用します
  • yolov3-spp.cfgは、たたみ込み層でダウンサンプリング(stride = 2)を使用します+ Max-Pooling層で最高の機能を取得します

ただし、元のフレームワークでYolov3SPPモデルを使用したPascal VOC 2007テストでは、mAP = 79.6%しか得られませんでした。

しかし、alleyyABのリポジトリを使用することで、yolov3.cfgモデルを使用しても、より高い精度mAP = 82.1%を達成できます https://github.com/AlexeyAB/darknet/issues/ 2557#issuecomment-474187706

そして確かに、Alexeyのリポジトリを使用してyolov3-spp.cfgでさらに高いmAPを達成できます。 enter image description here

元のgithubの質問: https://github.com/AlexeyAB/darknet/issues/2859

5
gameon67

図3を参照してください。SPPの説明。

yolov3-spp.cfgでは、[route]を使用して、同じ画像に対して3つの異なるサイズの最大プールを使用します

その後、図3の「固定長表現」と呼ばれる作成された特徴マップを収集します。

enter image description here

2
Roy Lee