yuyi1005 / yolov5-obb-psc

GNU General Public License v3.0
5 stars 1 forks source link

YOLOv5+PSC for Oriented Object Detection

The code is modified from yolov5_obb to support YOLOv5+PSC.

Files involved to replace CSL with PSC:

  1. models/yolo.py
  2. utils/general.py
  3. utils/loss.py

Publication

Phase-Shifting Coder: Predicting Accurate Orientation in Oriented Object Detection

Citation

@inproceedings{yu2023psc,
    author = {Yu, Yi and Da, Feipeng},
    title = {Phase-Shifting Coder: Predicting Accurate Orientation in Oriented Object Detection},
    booktitle = {IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
    year = {2023},
    url = {https://arxiv.org/abs/2211.06368}
}

Below are the instructions from the original repository (YOLOv5+CSL)

图片 train_batch0.jpg results.png

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.30 73.19 58.01 328.2 16.9 11.3 21.6 50.5
yolov5s [baidu] 1024 × 76.79 - - - 15.6 - 7.54 17.5
yolov5n [baidu] 1024 × 73.26 - - - 15.2 - 2.02 5.0
Table Notes (click to expand / **点我看更多**) * All checkpoints are trained to 300 epochs with [COCO pre-trained checkpoints](https://github.com/ultralytics/yolov5/releases/tag/v6.0), default settings and hyperparameters. * **mAPtest dota** values are for single-model single-scale on [DOTA](https://captain-whu.github.io/DOTA/index.html)(1024,1024,200,1.0) dataset.
Reproduce Example: ```shell 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 by `python val.py --data 'data/dotav15_poly.yaml' --img 1024 --task speed --batch 1`

Updates

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:

More detailed explanation

想要了解相关实现的细节和原理可以看我的知乎文章:

有问题反馈

在使用中有任何问题,建议先按照install.md检查环境依赖项,再按照GetStart.md检查使用流程是否正确,善用搜索引擎和github中的issue搜索框,可以极大程度上节省你的时间。

若遇到的是新问题,可以用以下联系方式跟我交流,为了提高沟通效率,请尽可能地提供相关信息以便我复现该问题。

关于作者


  Name  : "胡凯旋"
  describe myself:"咸鱼一枚"