zychen2016 / Stronger-yolo-pytorch

Pytorch implementation of Stronger-Yolo with channel-pruning.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Strongeryolo-pytorch

Introduction

This project is inspired by Stronger-Yolo. I reimplemented with Pytorch and continue improving yolov3 with latest papers.
This project will also try out some model-compression approaches(e.g. channel-pruning).
See reimplementation results in MODELZOO.

Environment

python3.6, pytorch1.2(1.0+ should be ok), ubuntu14/16/18 tested.

Quick Start

See Usage.md for details.

Improvement with latest papers(Using StrongerV3 as baseline)

model mAP50 mAP75 configs
baseline(with GIOU) 79.6 43.4 strongerv3.yaml
+ kl loss&&varvote 78.9 49.2 strongerv3_kl.yaml

Note:
1.Set EVAL.varvote=True to enable varvote in KL-loss. According to the paper, kl-loss(and varvote) can strongly boost the performance of mAP75(or higher), but decrease mAP50 slightly.

Performance on VOC2007 Test(mAP) after pruning

Model MAP Flops(G) Params(M)
strongerv3 79.6 4.33 6.775
strongerv3-sparsed 77.4 4.33 6.775
strongerv3-Pruned(30% pruned) 77.1 3.14 3.36

Note:
1.All experiments are trained for 60 epochs.
2.All experiments tested with threshold 0.1 in 512 resolution.

Supported backbone

  • MobileV2
  • DarkNet
    ...

Reference

Stronger-Yolo
focal-loss
kl-loss

About

Pytorch implementation of Stronger-Yolo with channel-pruning.


Languages

Language:Python 100.0%