This project implements an object detection system using YOLOv8 on the VisDrone dataset. It includes data preprocessing, model training, evaluation, and visualization components.
project_root/
│
├── data_preprocessing.py
├── augmentation.py
├── model.py
├── evaluation.py
├── visualization.py
├── utils.py
├── config.py
├── main.py
├── requirements.txt
└── README.md
data_preprocessing.py
: Handles dataset preparation and annotation conversion.augmentation.py
: Implements data augmentation techniques.model.py
: Contains functions for loading, training, and running inference with the YOLOv8 model.evaluation.py
: Provides metrics calculation and model evaluation utilities.visualization.py
: Includes functions for visualizing results and metrics.utils.py
: Contains utility functions used across the project.config.py
: Stores configuration parameters and paths.main.py
: The entry point of the program, orchestrating the entire pipeline.
-
Clone the repository:
git clone https://github.com/realjules/drone_vision.git cd drone_vision
-
Create a virtual environment (optional but recommended):
python -m venv venv source venv/bin/activate # On Windows, use `venv\Scripts\activate`
-
Install the required dependencies:
pip install -r requirements.txt
-
Download the VisDrone dataset and place it in a
dataset
folder in the project root. The structure should be:dataset/ ├── train/ │ ├── annotations/ │ └── sequences/ └── val/ ├── annotations/ └── sequences/
-
Configure the parameters in
config.py
if needed. -
Run the main script:
python main.py
This will:
- Preprocess the dataset
- Train the YOLOv8 model
- Evaluate the model
- Generate visualizations
-
Check the
output
folder for results and visualizations.
- Modify
config.py
to change dataset paths, model parameters, or output locations. - Adjust augmentation techniques in
augmentation.py
. - Extend evaluation metrics or visualization options in their respective files.
Contributions to improve the project are welcome. Please follow these steps:
- Fork the repository
- Create a new branch (
git checkout -b feature-branch
) - Make your changes and commit (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin feature-branch
) - Create a new Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- VisDrone dataset: VisDrone Project
- YOLOv8: Ultralytics YOLOv8