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.
python3.6, pytorch1.2(1.0+ should be ok), ubuntu14/16/18 tested.
All checkpoints as well as converted darknet can be downloaded here.链接 提取码: i3pa
See Usage.md for details.
model | mAP50 | mAP75 | configs | baseline |
---|---|---|---|---|
baseline(with GIOU) | 79.6 | 43.4 | strongerv3.yaml | - |
+ kl loss&&varvote | 78.9 | 49.2 | strongerv3_kl.yaml | strongerv3.yaml |
+ ASFF | 80.6 | 46.6 | strongerv3_asff.yaml | strongerv3.yaml |
+ All improvement | 81.1 | 53.0 | strongerv3_all.yaml | strongerv3.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.
2.The details(e.g. channel number) of ASFF module is not completely the same as the original implementation.
3.The All version including other small tricks like removing relu in detection head. Check config file for details.
Model | Backbone | MAP | Flops(G) | Params(M) |
---|---|---|---|---|
strongerv3 | Mobilev2 | 79.6 | 4.33 | 6.775 |
strongerv3-sparsed | Mobilev2 | 77.4 | 4.33 | 6.775 |
strongerv3-Pruned(30% pruned) | Mobilev2 | 77.1 | 3.14 | 3.36 |
strongerv2 | Darknet53 | 80.2 | 49.8 | 61.6 |
strongerv2-sparsed | Darknet53 | 78.1 | 49.8 | 61.6 |
strongerv2-Pruned(20% pruned) | Darknet53 | 76.8 | 49.8 | 45.2 |
Note:
1.Tuning _C.Prune.sr can get better prune ratio, I picked the official number 0.01.
- MobileV2(Pruning suppoted)
- DarkNet(Pruning supported) ...