https://github.com/jahongir7174/yolov8
YOLOv8 implementation without DFL using PyTorch
https://github.com/jahongir7174/yolov8
object-detection opencv-python python pytorch yolov8
Last synced: about 2 months ago
JSON representation
YOLOv8 implementation without DFL using PyTorch
- Host: GitHub
- URL: https://github.com/jahongir7174/yolov8
- Owner: jahongir7174
- License: agpl-3.0
- Created: 2023-07-23T05:07:30.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2024-07-22T23:25:28.000Z (11 months ago)
- Last Synced: 2025-03-31T18:51:36.698Z (3 months ago)
- Topics: object-detection, opencv-python, python, pytorch, yolov8
- Language: Python
- Homepage:
- Size: 16.5 MB
- Stars: 9
- Watchers: 0
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
YOLOv8 implementation without [DFL](https://ieeexplore.ieee.org/document/9792391) using PyTorch
### Installation
```
conda create -n YOLO python=3.8
conda activate YOLO
conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch-lts
pip install opencv-python==4.5.5.64
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.0 | [model](./weights/best.pt) |
| v8_n* | 500 | 37.3 | - |
| v8_s | 500 | - | - |
| v8_s* | 500 | 44.9 | - |
| v8_m | 500 | - | - |
| v8_m* | 500 | 50.2 | - |
| v8_l | 500 | - | - |
| v8_l* | 500 | 52.9 | - |
| v8_x | 500 | - | - |
| v8_x* | 500 | 53.9 | - |```
Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.370
Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.529
Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.401
Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.188
Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.408
Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.522
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.315
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.529
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.585
Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.371
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.764
```* `*` 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