Home

Awesome

SuperYOLO: Super Resolution Assisted Object Detection in Multimodal Remote Sensing Imagery

⭐ This code has been completely released ⭐

⭐ our article

⭐ We also finish the work about the quantization based on SuperYOLO: Guided Hybrid Quantization for Object Detection in Multimodal Remote Sensing Imagery via One-to-one Self-teaching!!!⭐

<p align="center"> <img src="Fig/framework.png" width="60%"> </p>

Requirements

pip install -r requirements.txt

Train

1. Prepare training data

SuperYOLO
├── dataset
│   ├── VEDAI
│   │   ├── images
│   │   ├── labels
│   │   ├── fold01.txt
│   │   ├── fold01test.txt
│   │   ├── fold02.txt
│   │   ├── .....
│   ├── VEDAI_1024
│   │   ├── images
│   │   ├── labels

2. Begin to train multi images

<!-- ```python python train.py --cfg models/SRyolo_noFocus_small.yaml --super --train_img_size 1024 --hr_input --data data/SRvedai.yaml --ch 4 --input_mode RGB+IR ``` new fusion method MF -->
python train.py --cfg models/SRyolo_MF.yaml --super --train_img_size 1024 --hr_input --data data/SRvedai.yaml --ch 64 --input_mode RGB+IR+MF

3. Begin to train RGB or IR images

python train.py --cfg models/SRyolo_noFocus_small.yaml --super --train_img_size 1024 --hr_input --data data/SRvedai.yaml --ch 3 --input_mode RGB
python train.py --cfg models/SRyolo_noFocus_small.yaml --super --train_img_size 1024 --hr_input --data data/SRvedai.yaml --ch 3 --input_mode IR

4. Begin to train multi images without SR branch

<!-- ```python python train.py --cfg models/SRyolo_noFocus_small.yaml --train_img_size 512 --data data/SRvedai.yaml --ch 4 --input_mode RGB+IR ``` new fusion method MF -->
python train.py --cfg models/SRyolo_MF.yaml --train_img_size 512 --data data/SRvedai.yaml --ch 64 --input_mode RGB+IR+MF

5. Begin to train RGB or IR images without SR branch

python train.py --cfg models/SRyolo_noFocus_small.yaml --train_img_size 512 --data data/SRvedai.yaml --ch 3 --input_mode RGB
python train.py --cfg models/SRyolo_noFocus_small.yaml --train_img_size 512 --data data/SRvedai.yaml --ch 3 --input_mode IR

Test

1. Pretrained Checkpoints

You can use our pretrained checkpoints for test process. Download pre-trained model and put it in here.

2. Begin to test

<!-- ```python python test.py --weights runs/train/exp/best.pt --input_mode RGB+IR ``` new fusion method MF -->
python test.py --weights runs/train/exp/best.pt --input_mode RGB+IR+MF

Results

MethodModalityCarPickupCampingTruckOtherTractorBoatVanmAP50Params. $\downarrow$GFLOPs $\downarrow$
YOLOv3IR80.2167.0365.5547.7825.8640.1132.6753.3351.5461.5351M49.55
YOLOv3RGB83.0671.5469.1459.3048.9367.3433.4855.6761.0661.5351M49.55
YOLOv3Multi84.5772.6867.1361.9643.0465.2437.1058.2961.2661.5354M49.68
YOLOv4IR80.4567.8868.8453.6630.0244.2325.4051.4152.7552.5082M38.16
YOLOv4RGB83.7373.4371.1759.0951.6665.8634.2860.3262.4352.5082M38.16
YOLOv4Multi85.4672.8472.3862.8248.9468.9934.2854.6662.5552.5085M38.23
YOLOv5sIR77.3165.2766.4751.5625.8742.3621.8848.8849.947.0728M5.24
YOLOv5sRGB80.0768.0166.1251.5245.7664.3821.6240.9354.827.0728M5.24
YOLOv5sMulti80.8168.4869.0654.7146.7664.2924.2545.9656.797.0739M5.32
YOLOv5mIR79.2367.3265.4351.7526.6644.2826.6456.1452.1921.0659M16.13
YOLOv5mRGB81.1470.2665.5353.9846.7866.6936.2449.8758.8021.0659M16.13
YOLOv5mMulti82.5372.3268.4159.2546.2066.2333.5157.1160.6921.0677M16.24
YOLOv5lIR80.1468.5765.3753.4530.3345.5927.2461.8754.0646.6383M36.55
YOLOv5lRGB81.3671.7068.2557.4545.7770.6835.8955.4260.8146.6383M36.55
YOLOv5lMulti82.8372.3269.9263.9448.4863.0740.1256.4662.1646.6046M36.70
YOLOv5xIR79.0166.7265.9358.4931.3941.3831.5858.9854.1887.2458M69.52
YOLOv5xRGB81.6672.2368.2959.0748.4766.0139.1561.8562.0987.2458M69.52
YOLOv5xMulti84.3372.9570.0961.1549.9467.3538.7156.6562.6587.2487M69.71
SuperYOLOIR87.9081.3976.9061.5639.3960.5646.0871.0065.604.8256M16.61
SuperYOLORGB90.3082.6676.6968.5553.8679.4858.0870.3072.494.8256M16.61
SuperYOLOMulti91.1385.6679.3070.1857.3380.4160.2476.5075.094.8451M17.98

Time

2024.4 SuperYOLO won the Highly Cited Paper and Hot paper !!!!!

<p align="center"> <img src="https://github.com/icey-zhang/SuperYOLO/assets/54712081/97d18c2c-4388-4662-801b-ab296dbfb912" alt="SuperYOLO" width="40%"/> </p>

2023.2.14 open the train.py

2023.2.14 update the new fusion method (MF)

<p align="center"> <img src="Fig/Fusion_se.png" width="60%"></p>

2023.2.16 update the test.py for visualization of detection results

Visualization of results

<p align="center"> <img src="Fig/results.png" width="60%"> </p>

Acknowledgements

This code is built on YOLOv5 (PyTorch). We thank the authors for sharing the codes.

Licencing

Copyright (C) 2020 Jiaqing Zhang

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 of the License.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program.

Contact

If you have any questions, please contact me by email (jqzhang_2@stu.xidian.edu.cn).

Citation

If our code is helpful to you, please cite:

@ARTICLE{10075555,
  author={Zhang, Jiaqing and Lei, Jie and Xie, Weiying and Fang, Zhenman and Li, Yunsong and Du, Qian},
  journal={IEEE Transactions on Geoscience and Remote Sensing}, 
  title={SuperYOLO: Super Resolution Assisted Object Detection in Multimodal Remote Sensing Imagery}, 
  year={2023},
  volume={61},
  number={},
  pages={1-15},
  doi={10.1109/TGRS.2023.3258666}}

@article{zhang2023guided,
  title={Guided Hybrid Quantization for Object Detection in Remote Sensing Imagery via One-to-one Self-teaching},
  author={Zhang, Jiaqing and Lei, Jie and Xie, Weiying and Li, Yunsong and Yang, Geng and Jia, Xiuping},
  journal={IEEE Transactions on Geoscience and Remote Sensing},
  year={2023},
  publisher={IEEE}
}