https://github.com/jahongir7174/yolov8-dfl
YOLOv8 implementation with DFL using PyTorch
https://github.com/jahongir7174/yolov8-dfl
object-detection python pytorch yolo yolov8
Last synced: 5 months ago
JSON representation
YOLOv8 implementation with DFL using PyTorch
- Host: GitHub
- URL: https://github.com/jahongir7174/yolov8-dfl
- Owner: jahongir7174
- Created: 2024-07-08T23:00:08.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-12-31T00:47:55.000Z (10 months ago)
- Last Synced: 2025-03-31T18:51:23.238Z (7 months ago)
- Topics: object-detection, python, pytorch, yolo, yolov8
- Language: Python
- Homepage:
- Size: 11.2 MB
- Stars: 10
- Watchers: 0
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
YOLOv8 implementation with [DFL](https://ieeexplore.ieee.org/document/9792391) using PyTorch
### Installation
```
conda create -n YOLO python=3.10.10
conda activate YOLO
conda install python=3.10.10 pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
pip install opencv-python
pip install PyYAML
pip install tqdm
```### Train
* Configure your dataset path in `main.py` for training
* Run `bash main.sh $ --train` for training, `$` is number of GPUs### Test
* Configure your dataset path in `main.py` for testing
* Run `python main.py --test` for testing### Results
| Version | Epochs | Box mAP | Download |
|:-------:|:------:|--------:|---------------------------:|
| v8_n | 500 | 37.2 | [model](./weights/best.pt) |
| v8_n* | 500 | 37.3 | - |
| v8_s* | 500 | 44.9 | - |
| v8_m* | 500 | 50.2 | - |
| v8_l* | 500 | 52.9 | - |
| v8_x* | 500 | 53.9 | - |```
Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.372
Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.528
Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.402
Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.187
Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.407
Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.534
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.313
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.530
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.587
Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.363
Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.646
Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.773
```* `*` means that it is from original repository, see reference
* In the official YOLOv8 code, mask annotation information is used, which leads to higher performance### Dataset structure
├── COCO
├── images
├── train2017
├── 1111.jpg
├── 2222.jpg
├── val2017
├── 1111.jpg
├── 2222.jpg
├── labels
├── train2017
├── 1111.txt
├── 2222.txt
├── val2017
├── 1111.txt
├── 2222.txt#### Reference
* https://github.com/ultralytics/yolov5
* https://github.com/ultralytics/ultralytics