Yolov5 for Oriented Object Detection
The code for the implementation of “Yolov5 + Circular Smooth Label”.
Results and Models
The results on DOTA_subsize1024_gap200_rate1.0 test-dev set are shown in the table below. (password: yolo)
Model (download link) |
Size (pixels) |
TTA (multi-scale/ rotate testing) |
OBB mAPtest 0.5 DOTAv1.0 |
OBB mAPtest 0.5 DOTAv1.5 |
OBB mAPtest 0.5 DOTAv2.0 |
Speed CPU b1 (ms) |
Speed 2080Ti b1 (ms) |
Speed 2080Ti b16 (ms) |
params (M) |
FLOPs @640 (B) |
---|---|---|---|---|---|---|---|---|---|---|
yolov5m [baidu/google] | 1024 | × | 77.3 | 73.2 | 58.0 | 328.2 | 16.9 | 11.3 | 21.6 | 50.5 |
yolov5s [baidu] | 1024 | × | 76.8 | - | - | - | 15.6 | - | 7.5 | 17.5 |
yolov5n [baidu] | 1024 | × | 73.3 | - | - | - | 15.2 | - | 2.0 | 5.0 |
Table Notes (click to expand / **点我看更多**)
- All checkpoints are trained to 300 epochs with COCO pre-trained checkpoints, default settings and hyperparameters.
- mAPtest dota values are for single-model single-scale on DOTA(1024,1024,200,1.0) dataset.
Reproduce Example:
python val.py --data 'data/dotav15_poly.yaml' --img 1024 --conf 0.01 --iou 0.4 --task 'test' --batch 16 --save-json --name 'dotav15_test_split'
python tools/TestJson2VocClassTxt.py --json_path 'runs/val/dotav15_test_split/best_obb_predictions.json' --save_path 'runs/val/dotav15_test_split/obb_predictions_Txt'
python DOTA_devkit/ResultMerge_multi_process.py --scrpath 'runs/val/dotav15_test_split/obb_predictions_Txt' --dstpath 'runs/val/dotav15_test_split/obb_predictions_Txt_Merged'
zip the poly format results files and submit it to https://captain-whu.github.io/DOTA/evaluation.html
- Speed averaged over DOTAv1.5 val_split_subsize1024_gap200 images using a 2080Ti gpu. NMS + pre-process times is included.
Reproduce bypython val.py --data 'data/dotav15_poly.yaml' --img 1024 --task speed --batch 1
Updates
- [2022/1/7] : Faster and stronger, some bugs fixed, yolov5 base version updated.
Installation
Please refer to install.md for installation and dataset preparation.
Getting Started
This repo is based on yolov5.
And this repo has been rebuilt, Please see GetStart.md for the Oriented Detection latest basic usage.
Acknowledgements
I have used utility functions from other wonderful open-source projects. Espeicially thank the authors of:
- ultralytics/yolov5.
- Thinklab-SJTU/CSL_RetinaNet_Tensorflow.
- jbwang1997/OBBDetection
- CAPTAIN-WHU/DOTA_devkit
More detailed explanation
想要了解相关实现的细节和原理可以看我的知乎文章:
有问题反馈
在使用中有任何问题,建议先按照install.md检查环境依赖项,再按照GetStart.md检查使用流程是否正确,善用搜索引擎和github中的issue搜索框,可以极大程度上节省你的时间。
若遇到的是新问题,可以用以下联系方式跟我交流,为了提高沟通效率,请尽可能地提供相关信息以便我复现该问题。
- 知乎(@略略略)
- 代码问题提issues,其他问题请知乎上联系
关于作者
Name : "胡凯旋"
describe myself:"咸鱼一枚"