https://github.com/chenjie04/dynamic-yolo
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.1%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: chenjie04
- Language: Python
- Default Branch: main
- Size: 1.34 MB
Statistics
- Stars: 8
- Watchers: 1
- Forks: 2
- Open Issues: 1
- Releases: 0
Metadata Files
README.md
Dynamic YOLO for Small Underwater Object Detection
Underwater object detection is one of the most essential methods for marine exploration. However, small objects in underwater environments pose a crucial challenge that degrades detection performance dramatically. In this paper, a dynamic YOLO detector is presented as a solution to alleviate this problem. First, a light-weight backbone network is built based on deformable convolution v3 with some specialized designs for small object detection. Second, a unified feature fusion framework based on channel-, scale-, and spatial-aware attention is proposed to fuse feature maps from different scales. It can fully utilize the increased capability of the proposed backbone. Lastly, a simple but effective detection head is designed to deal with the conflict between classification and localization by disentangling and aligning the two tasks. With the alignment, our dynamic YOLO obtains the ability for robust localization. Extensive experiments are conducted on benchmark datasets to demonstrate the effectiveness of the proposed model. Without bells and whistles, dynamic YOLO outperforms the recent state-of-the-art methods by a large margin of $+1.2 \ mAP$, and $+1.8 \ AP_{S}$ on $\textit{DUO}$ dataset. Experimental results on $\textit{Pascal VOC}$ and $\textit{MS COCO}$ detasets also demonstrate the superiority of the proposed method. At last, ablation studies on $\textit{DUO}$ dataset are conducted to validate the effectiveness and efficiency of each design.

Usage
Our detection code is developed on top of MMDetection v3.0.
Install
- Clone this repo:
bash
git clone https://github.com/chenjie04/Dynamic-YOLO.git
cd Dynamic-YOLO
- Create a conda virtual environment and activate it:
bash
conda create -n Dynamic-YOLO python=3.8 -y
conda activate Dynamic-YOLO
- Install PyTorch following official instructions, e.g.
bash
conda install pytorch==2.0.0 torchvision==0.15.0 torchaudio==2.0.0 pytorch-cuda=11.8 -c pytorch -c nvidia
- Install MMEngine, MMCV and mmdet using MIM.
bash
pip install -U openmim
mim install mmengine
mim install "mmcv>=2.0.0"
mim install mmdet
- Install and configre wandb:
bash
pip install wandb
wandb login
Provide your API key when prompted.
- Install other requirements:
bash
pip install timm # For stochastic depth
pip install ninja # For the compilation of DCN v3
- Compile DCN v3 CUDA operators:
```bash cd ./ops_dcnv3 sh ./make.sh
unit test (should see all checking is True)
python test.py ```
Data Preparation
Download Detecting Underwater Objects (DUO). It is recommended to download and extract the dataset somewhere outside the project directory. The folder structure is like follow:
bash
|--data
| |--coco
| |--DUO
| |--VOCdevkit
|
|--Dynamic-YOLO
| |--config
| .....
Training
- Multi-gpu training
bash
bash dist_train.sh configs/dynamic_yolo/dynamic_yolo_s_300e_DUO.py 2
- Single-gpu Training
bash
python train.py configs/dynamic_yolo/dynamic_yolo_s_300e_DUO.py
Testing
bash
python test.py configs/dynamic_yolo/dynamic_yolo_s_300e_DUO.py work_dirs/dynamic_yolo_s_300e_DUO/epoch_300.pth
Citation
If you find this project useful in your research, please consider cite:
@article{chen2024dynamic,
title={Dynamic YOLO for small underwater object detection},
author={Chen, Jie and Er, Meng Joo},
journal={Artificial Intelligence Review},
volume={57},
number={7},
pages={1--23},
year={2024},
publisher={Springer}
}
Owner
- Login: chenjie04
- Kind: user
- Repositories: 4
- Profile: https://github.com/chenjie04
GitHub Events
Total
- Issues event: 5
- Watch event: 10
- Issue comment event: 13
- Push event: 2
- Fork event: 2
Last Year
- Issues event: 5
- Watch event: 10
- Issue comment event: 13
- Push event: 2
- Fork event: 2