Table of Contents
- Description: contents the project description.
- Features: contents the descriptions of each features implemented and available on this software.
- Installation: contents the process of the installation for two plateforms.
- For Linux: here is the process of installation of this software on linux.
- OS dependences: Installation of your Linux OS dependences.
- Ubuntu: Choose this, if your OS is Ubuntu.
- Debian or Kali: Otherwise, choose this, if your OS is Debian or Kali.
- Project dependences: To install the dependences for this project.
- OS dependences: Installation of your Linux OS dependences.
- For Windows: here is the process of installation of this software on Windows.
- For Linux: here is the process of installation of this software on linux.
- Usage: all details of the use cases usefull to get starting this software.
- Tests: all details to run unittest.
- To contribute: usefull information for the person who want to contribute to this project.
- Licence: description of the license of this software.
- Contact: developers contacts.
This is an open source YOLO model implementation from scratch in PyTorch. The project provides a complete framework for object detection, allowing users to train, fine-tune, and deploy YOLO models on custom datasets. It is designed to be accessible, flexible, and production-ready.
- Training YOLO model from scratch on your own dataset formatted into YOLO format (cx, cy, w, h).
- Fine-tuning of pre-trained models on another dataset.
- Export pre-trained models for production environments.
- Test your model by running predictions on image files.
- Run inference in real-time via webcam.
To install the project, make sure you have Python 3.8 or later version
and pip installed on your machine. And then run the following command lines
to install directly this program.
# From main branch:
pip install git+https://github.com/cacybernetic/YOLO
# Or From develop branch:
pip install git+https://github.com/cacybernetic/YOLO@devor run the following command line to get project repository, install all dependencies manually and install this program in developer mode.
git clone https://github.com/cacybernetic/YOLO;
cd YOLO;
sudo rm -r .git;
git init; # To create a new instance of git repositoryOpen your terminal and run following command lines to add the deadsnakes PPA to your system:
sudo apt update;
sudo apt install software-properties-common -y;
sudo add-apt-repository ppa:deadsnakes/ppa -y
Refresh your package list to include the deadsnakes PPA and then install Python 3.10:
sudo apt update;
sudo apt install python3.10;
python3.10 --versionNOTE: Do not change the default Python version of Ubuntu, as it may break system tools that depend on it.
In first, install the following dependences on your computer.
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-devAnd then, we can run the following command to install pyenv
directly via APT on your computer.
sudo apt install pyenvOr run the following command lines, to clone and install
pyenv from its souce code.
git clone https://github.com/pyenv/pyenv.git ~/.pyenv;
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc;
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc;
echo 'eval "$(pyenv init --path)"' >> ~/.bashrc;
echo 'eval "$(pyenv init -)"' >> ~/.bashrc;
source ~/.bashrc;Now, runing the following command line, we can use pyenv
to install the version of Python what we want to install.
pyenv install 3.10.18; # Here, we install Python 3.10.18.
sudo ln -s $HOME/.pyenv/versions/3.10.18/bin/python3 /usr/local/bin/python3.10sudo apt install cmake python3-venvInstall Cmake and Virtual env;python3 -m venv .venvcreate a virtual env into directory namedenv;source .venv/bin/activateactivate the virtual environment named.venv;make installinstall the requirements of this package;make dev_installorpip install -e .install the package in dev mode in virtual environment;- Run
make testorpytestto execute the unit test scripts located attestsdirectory.
NOTE: If you run this program in a linux server, execute in first the following command line:
sudo apt-get install libgl1-mesa-glx libglib2.0-0
git clone https://github.com/cacybernetic/YOLOcd YOLOAnd then, delete the hidden directory named .git located at the root
of the directory project.
And then,
- Install python for windows;
- Open your command prompt;
- Run
python -m venv .venvto create a virtual env into directory named.venv; - Run
.venv\Scripts\activateto activate the virtual environment; - Run
pip install -r requirements.txtto install the requirements of this package or project; - Run
pip install -e .install the package in dev mode in virtual environment; pytestrun the unit test scripts located attestsdirectory.
- Train a YOLO model on your dataset:
yolo train train_data="datasets/train" test_data="datasets/val" shuffle=True epochs=10 batchs=4 optimizer=AdamW lr0=1e-4 weight_decay=5e-4 workers=2 gradient_accumulations=48 amp=False class_names="class1, class2" backbone_drop=0.2 neck_drop=0.3 head_drop=0.4 device=cudaDropout Integration Strategy:
- dropout_backbone: Applied to deep residual blocks in the backbone (≥ 4th block)
- dropout_neck: Applied before each prediction head (between features and detection)
- dropout_head: Applied in ScalePrediction before final convolutions
Recommendations:
- For medium datasets: dropout_backbone=0.1, dropout_neck=0.2, dropout_head=0.3
- For small datasets: dropout_backbone=0.2, dropout_neck=0.3, dropout_head=0.4
- For large datasets: dropout_backbone=0.0, dropout_neck=0.1, dropout_head=0.2
To export a YOLO model weight into ONNX format, you must install in first the following modules.
pip install onnx>=1.16.0 onnxsim>=0.4.33And then, according your device, do the following installations:
- On CPU device, install the ONNX package version for CPU running
pip install onnxruntime. - On GPU device (like CUDA), install the ONNX package version for GPU running
pip install onnxruntime-gpu.
NOTE:
onnxruntimeoronnxruntime-gpuallows to run the inference of ONNX model. The moduleonnxruntimeallows to run on CPU device, andonnxruntime-gpuallows to run on GPU device.
Finally, run the following command line to perform exportation.
yolo export saved_model output=export_foldersaved_modelis the name of folder containing the model weights saved as.pthor.ptformat accompanied by its config file.output=export_folderis the path to the directory in which you want to save the ONNX files that represents your exported model for production.
To execute the unittest, make sure you have pytest package installed,
and then run the following command line:
make test or
pytestContributions are welcome! Please follow these steps:
- Create a new branch for your feature (
git checkout -b feature/my-feature); - Commit your changes (
git commit -m 'Adding a new feature'); - Push toward the branch (
git push origin feature/my-feature); - Create a new Pull Request or Merge Request.
This project is licensed under the MIT License. See the file LICENSE for more details, contact me please.
For your question or suggestion, contact me please:
- Name : CONSOLE ART CYBERNETIC, DOCTOR MOKIRA
- Email : ca.cybernetic@gmail.com, dr.mokira@gmail.com
- GitHub : mokira3d48, cacybernetic,
