Add Dockerfiles and update Docs README (#124)
Co-authored-by: Ayush Chaurasia <ayush.chaurarsia@gmail.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>single_channel
parent
df4fc14c10
commit
a9b9fe7618
@ -0,0 +1,57 @@
|
||||
# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
|
||||
# Builds ultralytics/ultralytics:latest images on DockerHub https://hub.docker.com/r/ultralytics
|
||||
|
||||
name: Publish Docker Images
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ none ] # TODO: replace with main
|
||||
|
||||
jobs:
|
||||
docker:
|
||||
if: github.repository == 'ultralytics/ultralytics'
|
||||
name: Push Docker image to Docker Hub
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Build and push arm64 image
|
||||
uses: docker/build-push-action@v3
|
||||
continue-on-error: true
|
||||
with:
|
||||
context: .
|
||||
platforms: linux/arm64
|
||||
file: docker/Dockerfile-arm64
|
||||
push: true
|
||||
tags: ultralytics/ultralytics:latest-arm64
|
||||
|
||||
- name: Build and push CPU image
|
||||
uses: docker/build-push-action@v3
|
||||
continue-on-error: true
|
||||
with:
|
||||
context: .
|
||||
file: docker/Dockerfile-cpu
|
||||
push: true
|
||||
tags: ultralytics/ultralytics:latest-cpu
|
||||
|
||||
- name: Build and push GPU image
|
||||
uses: docker/build-push-action@v3
|
||||
continue-on-error: true
|
||||
with:
|
||||
context: .
|
||||
file: docker/Dockerfile
|
||||
push: true
|
||||
tags: ultralytics/ultralytics:latest
|
@ -0,0 +1,64 @@
|
||||
# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
|
||||
# Builds ultralytics/ultralytics:latest image on DockerHub https://hub.docker.com/r/ultralytics/ultralytics
|
||||
# Image is CUDA-optimized for YOLOv5 single/multi-GPU training and inference
|
||||
|
||||
# Start FROM NVIDIA PyTorch image https://ngc.nvidia.com/catalog/containers/nvidia:pytorch
|
||||
FROM nvcr.io/nvidia/pytorch:22.12-py3
|
||||
RUN rm -rf /opt/pytorch # remove 1.2GB dir
|
||||
|
||||
# Downloads to user config dir
|
||||
ADD https://ultralytics.com/assets/Arial.ttf https://ultralytics.com/assets/Arial.Unicode.ttf /root/.config/Ultralytics/
|
||||
|
||||
# Install linux packages
|
||||
RUN apt update && apt install --no-install-recommends -y zip htop screen libgl1-mesa-glx
|
||||
|
||||
# Create working directory
|
||||
RUN mkdir -p /usr/src/ultralytics
|
||||
WORKDIR /usr/src/ultralytics
|
||||
|
||||
# Copy contents
|
||||
# COPY . /usr/src/app (issues as not a .git directory)
|
||||
RUN git clone https://github.com/ultralytics/ultralytics /usr/src/ultralytics
|
||||
|
||||
# Install pip packages
|
||||
RUN python -m pip install --upgrade pip wheel
|
||||
RUN pip uninstall -y Pillow torchtext # torch torchvision
|
||||
RUN pip install --no-cache ultralytics albumentations comet gsutil notebook Pillow>=9.1.0 \
|
||||
'opencv-python<4.6.0.66' \
|
||||
--extra-index-url https://download.pytorch.org/whl/cu113
|
||||
|
||||
# Set environment variables
|
||||
ENV OMP_NUM_THREADS=1
|
||||
|
||||
|
||||
# Usage Examples -------------------------------------------------------------------------------------------------------
|
||||
|
||||
# Build and Push
|
||||
# t=ultralytics/ultralytics:latest && sudo docker build -f utils/docker/Dockerfile -t $t . && sudo docker push $t
|
||||
|
||||
# Pull and Run
|
||||
# t=ultralytics/ultralytics:latest && sudo docker pull $t && sudo docker run -it --ipc=host --gpus all $t
|
||||
|
||||
# Pull and Run with local directory access
|
||||
# t=ultralytics/ultralytics:latest && sudo docker pull $t && sudo docker run -it --ipc=host --gpus all -v "$(pwd)"/datasets:/usr/src/datasets $t
|
||||
|
||||
# Kill all
|
||||
# sudo docker kill $(sudo docker ps -q)
|
||||
|
||||
# Kill all image-based
|
||||
# sudo docker kill $(sudo docker ps -qa --filter ancestor=ultralytics/ultralytics:latest)
|
||||
|
||||
# DockerHub tag update
|
||||
# t=ultralytics/ultralytics:latest tnew=ultralytics/ultralytics:v6.2 && sudo docker pull $t && sudo docker tag $t $tnew && sudo docker push $tnew
|
||||
|
||||
# Clean up
|
||||
# docker system prune -a --volumes
|
||||
|
||||
# Update Ubuntu drivers
|
||||
# https://www.maketecheasier.com/install-nvidia-drivers-ubuntu/
|
||||
|
||||
# DDP test
|
||||
# python -m torch.distributed.run --nproc_per_node 2 --master_port 1 train.py --epochs 3
|
||||
|
||||
# GCP VM from Image
|
||||
# docker.io/ultralytics/ultralytics:latest
|
@ -0,0 +1,45 @@
|
||||
# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
|
||||
# Builds ultralytics/ultralytics:latest-arm64 image on DockerHub https://hub.docker.com/r/ultralytics/ultralytics
|
||||
# Image is aarch64-compatible for Apple M1 and other ARM architectures i.e. Jetson Nano and Raspberry Pi
|
||||
|
||||
# Start FROM Ubuntu image https://hub.docker.com/_/ubuntu
|
||||
FROM arm64v8/ubuntu:20.04
|
||||
|
||||
# Downloads to user config dir
|
||||
ADD https://ultralytics.com/assets/Arial.ttf https://ultralytics.com/assets/Arial.Unicode.ttf /root/.config/Ultralytics/
|
||||
|
||||
# Install linux packages
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
RUN apt update
|
||||
RUN TZ=Etc/UTC apt install -y tzdata
|
||||
RUN apt install --no-install-recommends -y python3-pip git zip curl htop gcc libgl1-mesa-glx libglib2.0-0 libpython3-dev
|
||||
# RUN alias python=python3
|
||||
|
||||
# Create working directory
|
||||
RUN mkdir -p /usr/src/ultralytics
|
||||
WORKDIR /usr/src/ultralytics
|
||||
|
||||
# Copy contents
|
||||
# COPY . /usr/src/app (issues as not a .git directory)
|
||||
RUN git clone https://github.com/ultralytics/ultralytics /usr/src/ultralytics
|
||||
|
||||
# Install pip packages
|
||||
COPY requirements.txt .
|
||||
RUN python3 -m pip install --upgrade pip wheel
|
||||
RUN pip install --no-cache ultralytics gsutil notebook \
|
||||
tensorflow-aarch64
|
||||
# tensorflowjs \
|
||||
# onnx onnx-simplifier onnxruntime \
|
||||
# coremltools openvino-dev \
|
||||
|
||||
# Cleanup
|
||||
ENV DEBIAN_FRONTEND teletype
|
||||
|
||||
|
||||
# Usage Examples -------------------------------------------------------------------------------------------------------
|
||||
|
||||
# Build and Push
|
||||
# t=ultralytics/ultralytics:latest-arm64 && sudo docker build --platform linux/arm64 -f utils/docker/Dockerfile-arm64 -t $t . && sudo docker push $t
|
||||
|
||||
# Pull and Run
|
||||
# t=ultralytics/ultralytics:latest-arm64 && sudo docker pull $t && sudo docker run -it --ipc=host -v "$(pwd)"/datasets:/usr/src/datasets $t
|
@ -0,0 +1,44 @@
|
||||
# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
|
||||
# Builds ultralytics/ultralytics:latest-cpu image on DockerHub https://hub.docker.com/r/ultralytics/ultralytics
|
||||
# Image is CPU-optimized for ONNX, OpenVINO and PyTorch YOLOv5 deployments
|
||||
|
||||
# Start FROM Ubuntu image https://hub.docker.com/_/ubuntu
|
||||
FROM ubuntu:20.04
|
||||
|
||||
# Downloads to user config dir
|
||||
ADD https://ultralytics.com/assets/Arial.ttf https://ultralytics.com/assets/Arial.Unicode.ttf /root/.config/Ultralytics/
|
||||
|
||||
# Install linux packages
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
RUN apt update
|
||||
RUN TZ=Etc/UTC apt install -y tzdata
|
||||
RUN apt install --no-install-recommends -y python3-pip git zip curl htop libgl1-mesa-glx libglib2.0-0 libpython3-dev gnupg
|
||||
# RUN alias python=python3
|
||||
|
||||
# Create working directory
|
||||
RUN mkdir -p /usr/src/ultralytics
|
||||
WORKDIR /usr/src/ultralytics
|
||||
|
||||
# Copy contents
|
||||
# COPY . /usr/src/app (issues as not a .git directory)
|
||||
RUN git clone https://github.com/ultralytics/ultralytics /usr/src/ultralytics
|
||||
|
||||
# Install pip packages
|
||||
COPY requirements.txt .
|
||||
RUN python3 -m pip install --upgrade pip wheel
|
||||
RUN pip install --no-cache ultralytics albumentations gsutil notebook \
|
||||
coremltools onnx onnx-simplifier onnxruntime tensorflow-cpu tensorflowjs \
|
||||
# openvino-dev \
|
||||
--extra-index-url https://download.pytorch.org/whl/cpu
|
||||
|
||||
# Cleanup
|
||||
ENV DEBIAN_FRONTEND teletype
|
||||
|
||||
|
||||
# Usage Examples -------------------------------------------------------------------------------------------------------
|
||||
|
||||
# Build and Push
|
||||
# t=ultralytics/ultralytics:latest-cpu && sudo docker build -f utils/docker/Dockerfile-cpu -t $t . && sudo docker push $t
|
||||
|
||||
# Pull and Run
|
||||
# t=ultralytics/ultralytics:latest-cpu && sudo docker pull $t && sudo docker run -it --ipc=host -v "$(pwd)"/datasets:/usr/src/datasets $t
|
@ -1,7 +1,85 @@
|
||||
## To serve docs
|
||||
* Install ultralytics repo in Dev mode:
|
||||
# Ultralytics Docs
|
||||
|
||||
Deployed to https://docs.ultralytics.com
|
||||
|
||||
### Install Ultralytics package
|
||||
|
||||
To install the ultralytics package in developer mode, you will need to have Git and Python 3 installed on your system.
|
||||
Then, follow these steps:
|
||||
|
||||
1. Clone the ultralytics repository to your local machine using Git:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/ultralytics/ultralytics.git
|
||||
```
|
||||
|
||||
2. Navigate to the root directory of the repository:
|
||||
|
||||
```bash
|
||||
cd ultralytics
|
||||
```
|
||||
|
||||
3. Install the package in developer mode using pip:
|
||||
|
||||
```bash
|
||||
pip install -e '.[dev]'
|
||||
```
|
||||
* Run `mkdocs serve`
|
||||
|
||||
This will install the ultralytics package and its dependencies in developer mode, allowing you to make changes to the
|
||||
package code and have them reflected immediately in your Python environment.
|
||||
|
||||
Note that you may need to use the pip3 command instead of pip if you have multiple versions of Python installed on your
|
||||
system.
|
||||
|
||||
### Building and Serving Locally
|
||||
|
||||
The `mkdocs serve` command is used to build and serve a local version of the MkDocs documentation site. It is typically
|
||||
used during the development and testing phase of a documentation project.
|
||||
|
||||
```bash
|
||||
mkdocs serve
|
||||
```
|
||||
|
||||
Here is a breakdown of what this command does:
|
||||
|
||||
- `mkdocs`: This is the command-line interface (CLI) for the MkDocs static site generator. It is used to build and serve
|
||||
MkDocs sites.
|
||||
- `serve`: This is a subcommand of the `mkdocs` CLI that tells it to build and serve the documentation site locally.
|
||||
- `-a`: This flag specifies the hostname and port number to bind the server to. The default value is `localhost:8000`.
|
||||
- `-t`: This flag specifies the theme to use for the documentation site. The default value is `mkdocs`.
|
||||
- `-s`: This flag tells the `serve` command to serve the site in silent mode, which means it will not display any log
|
||||
messages or progress updates.
|
||||
When you run the `mkdocs serve` command, it will build the documentation site using the files in the `docs/` directory
|
||||
and serve it at the specified hostname and port number. You can then view the site by going to the URL in your web
|
||||
browser.
|
||||
|
||||
While the site is being served, you can make changes to the documentation files and see them reflected in the live site
|
||||
immediately. This is useful for testing and debugging your documentation before deploying it to a live server.
|
||||
|
||||
To stop the serve command and terminate the local server, you can use the `CTRL+C` keyboard shortcut.
|
||||
|
||||
### Deploying Your Documentation Site
|
||||
|
||||
To deploy your MkDocs documentation site, you will need to choose a hosting provider and a deployment method. Some
|
||||
popular options include GitHub Pages, GitLab Pages, and Amazon S3.
|
||||
|
||||
Before you can deploy your site, you will need to configure your `mkdocs.yml` file to specify the remote host and any
|
||||
other necessary deployment settings.
|
||||
|
||||
Once you have configured your `mkdocs.yml` file, you can use the `mkdocs deploy` command to build and deploy your site.
|
||||
This command will build the documentation site using the files in the `docs/` directory and the specified configuration
|
||||
file and theme, and then deploy the site to the specified remote host.
|
||||
|
||||
For example, to deploy your site to GitHub Pages using the gh-deploy plugin, you can use the following command:
|
||||
|
||||
```bash
|
||||
mkdocs gh-deploy
|
||||
```
|
||||
|
||||
If you are using GitHub Pages, you can set a custom domain for your documentation site by going to the "Settings" page
|
||||
for your repository and updating the "Custom domain" field in the "GitHub Pages" section.
|
||||
|
||||
![196814117-fc16e711-d2be-4722-9536-b7c6d78fd167](https://user-images.githubusercontent.com/26833433/210150206-9e86dcd7-10af-43e4-9eb2-9518b3799eac.png)
|
||||
|
||||
For more information on deploying your MkDocs documentation site, see
|
||||
the [MkDocs documentation](https://www.mkdocs.org/user-guide/deploying-your-docs/).
|
||||
|
@ -1,109 +0,0 @@
|
||||
## Ultralytics YOLO
|
||||
|
||||
Default training settings and hyperparameters for medium-augmentation COCO training
|
||||
|
||||
### Setting the operation type
|
||||
???+ note "Operation"
|
||||
|
||||
| Key | Value | Description |
|
||||
|--------|----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| task | `detect` | Set the task via CLI. See Tasks for all supported tasks like - `detect`, `segment`, `classify`.<br> - `init` is a special case that creates a copy of default.yaml configs to the current working dir |
|
||||
| mode | `train` | Set the mode via CLI. It can be `train`, `val`, `predict` |
|
||||
| resume | `False` | Resume last given task when set to `True`. <br> Resume from a given checkpoint is `model.pt` is passed |
|
||||
| model | null | Set the model. Format can differ for task type. Supports `model_name`, `model.yaml` & `model.pt` |
|
||||
| data | null | Set the data. Format can differ for task type. Supports `data.yaml`, `data_folder`, `dataset_name`|
|
||||
|
||||
### Training settings
|
||||
??? note "Train"
|
||||
| Key | Value | Description |
|
||||
|------------------|--------|---------------------------------------------------------------------------------|
|
||||
| device | '' | cuda device, i.e. 0 or 0,1,2,3 or cpu. `''` selects available cuda 0 device |
|
||||
| epochs | 100 | Number of epochs to train |
|
||||
| workers | 8 | Number of cpu workers used per process. Scales automatically with DDP |
|
||||
| batch_size | 16 | Batch size of the dataloader |
|
||||
| imgsz | 640 | Image size of data in dataloader |
|
||||
| optimizer | SGD | Optimizer used. Supported optimizer are: `Adam`, `SGD`, `RMSProp` |
|
||||
| single_cls | False | Train on multi-class data as single-class |
|
||||
| image_weights | False | Use weighted image selection for training |
|
||||
| rect | False | Enable rectangular training |
|
||||
| cos_lr | False | Use cosine LR scheduler |
|
||||
| lr0 | 0.01 | Initial learning rate |
|
||||
| lrf | 0.01 | Final OneCycleLR learning rate |
|
||||
| momentum | 0.937 | Use as `momentum` for SGD and `beta1` for Adam |
|
||||
| weight_decay | 0.0005 | Optimizer weight decay |
|
||||
| warmup_epochs | 3.0 | Warmup epochs. Fractions are ok. |
|
||||
| warmup_momentum | 0.8 | Warmup initial momentum |
|
||||
| warmup_bias_lr | 0.1 | Warmup initial bias lr |
|
||||
| box | 0.05 | Box loss gain |
|
||||
| cls | 0.5 | cls loss gain |
|
||||
| cls_pw | 1.0 | cls BCELoss positive_weight |
|
||||
| obj | 1.0 | bj loss gain (scale with pixels) |
|
||||
| obj_pw | 1.0 | obj BCELoss positive_weight |
|
||||
| iou_t | 0.20 | IOU training threshold |
|
||||
| anchor_t | 4.0 | anchor-multiple threshold |
|
||||
| fl_gamma | 0.0 | focal loss gamma |
|
||||
| label_smoothing | 0.0 | |
|
||||
| nbs | 64 | nominal batch size |
|
||||
| overlap_mask | `True` | **Segmentation**: Use mask overlapping during training |
|
||||
| mask_ratio | 4 | **Segmentation**: Set mask downsampling |
|
||||
| dropout | `False`| **Classification**: Use dropout while training |
|
||||
### Prediction Settings
|
||||
??? note "Prediction"
|
||||
| Key | Value | Description |
|
||||
|----------------|----------------------|----------------------------------------------------|
|
||||
| source | `ultralytics/assets` | Input source. Accepts image, folder, video, url |
|
||||
| view_img | `False` | View the prediction images |
|
||||
| save_txt | `False` | Save the results in a txt file |
|
||||
| save_conf | `False` | Save the condidence scores |
|
||||
| save_crop | `Fasle` | |
|
||||
| hide_labels | `False` | Hide the labels |
|
||||
| hide_conf | `False` | Hide the confidence scores |
|
||||
| vid_stride | `False` | Input video frame-rate stride |
|
||||
| line_thickness | `3` | Bounding-box thickness (pixels) |
|
||||
| visualize | `False` | Visualize model features |
|
||||
| augment | `False` | Augmented inference |
|
||||
| agnostic_nms | `False` | Class-agnostic NMS |
|
||||
| retina_masks | `False` | **Segmentation:** High resolution masks |
|
||||
|
||||
|
||||
### Validation settings
|
||||
??? note "Validation"
|
||||
| Key | Value | Description |
|
||||
|-------------|---------|-----------------------------------|
|
||||
| noval | `False` | ??? |
|
||||
| save_json | `False` | |
|
||||
| save_hybrid | `False` | |
|
||||
| conf_thres | `0.001` | Confidence threshold |
|
||||
| iou_thres | `0.6` | IoU threshold |
|
||||
| max_det | `300` | Maximum number of detections |
|
||||
| half | `True` | Use .half() mode. |
|
||||
| dnn | `False` | Use OpenCV DNN for ONNX inference |
|
||||
| plots | `False` | |
|
||||
|
||||
### Augmentation settings
|
||||
??? note "Augmentation"
|
||||
|
||||
| hsv_h | 0.015 | Image HSV-Hue augmentation (fraction) |
|
||||
|-------------|-------|-------------------------------------------------|
|
||||
| hsv_s | 0.7 | Image HSV-Saturation augmentation (fraction) |
|
||||
| hsv_v | 0.4 | Image HSV-Value augmentation (fraction) |
|
||||
| degrees | 0.0 | Image rotation (+/- deg) |
|
||||
| translate | 0.1 | Image translation (+/- fraction) |
|
||||
| scale | 0.5 | Image scale (+/- gain) |
|
||||
| shear | 0.0 | Image shear (+/- deg) |
|
||||
| perspective | 0.0 | Image perspective (+/- fraction), range 0-0.001 |
|
||||
| flipud | 0.0 | Image flip up-down (probability) |
|
||||
| fliplr | 0.5 | Image flip left-right (probability) |
|
||||
| mosaic | 1.0 | Image mosaic (probability) |
|
||||
| mixup | 0.0 | Image mixup (probability) |
|
||||
| copy_paste | 0.0 | Segment copy-paste (probability) |
|
||||
|
||||
### Logging, checkpoints, plotting and file management
|
||||
??? note "files"
|
||||
| Key | Value | Description |
|
||||
|-----------|---------|---------------------------------------------------------------------------------------------|
|
||||
| project: | 'runs' | The project name |
|
||||
| name: | 'exp' | The run name. `exp` gets automatically incremented if not specified, i.e, `exp`, `exp2` ... |
|
||||
| exist_ok: | `False` | ??? |
|
||||
| plots | `False` | **Validation**: Save plots while validation |
|
||||
| nosave | `False` | Don't save any plots, models or files |
|
@ -0,0 +1,202 @@
|
||||
YOLO settings and hyperparameters play a critical role in the model's performance, speed, and accuracy. These settings
|
||||
and hyperparameters can affect the model's behavior at various stages of the model development process, including
|
||||
training, validation, and prediction.
|
||||
|
||||
Properly setting and tuning these parameters can have a significant impact on the model's ability to learn effectively
|
||||
from the training data and generalize to new data. For example, choosing an appropriate learning rate, batch size, and
|
||||
optimization algorithm can greatly affect the model's convergence speed and accuracy. Similarly, setting the correct
|
||||
confidence threshold and non-maximum suppression (NMS) threshold can affect the model's performance on detection tasks.
|
||||
|
||||
It is important to carefully consider and experiment with these settings and hyperparameters to achieve the best
|
||||
possible performance for a given task. This can involve trial and error, as well as using techniques such as
|
||||
hyperparameter optimization to search for the optimal set of parameters.
|
||||
|
||||
In summary, YOLO settings and hyperparameters are a key factor in the success of a YOLO model, and it is important to
|
||||
pay careful attention to them to achieve the desired results.
|
||||
|
||||
### Setting the operation type
|
||||
|
||||
YOLO models can be used for a variety of tasks, including detection, segmentation, and classification. These tasks
|
||||
differ in the type of output they produce and the specific problem they are designed to solve.
|
||||
|
||||
- Detection: Detection tasks involve identifying and localizing objects or regions of interest in an image or video.
|
||||
YOLO models can be used for object detection tasks by predicting the bounding boxes and class labels of objects in an
|
||||
image.
|
||||
- Segmentation: Segmentation tasks involve dividing an image or video into regions or pixels that correspond to
|
||||
different objects or classes. YOLO models can be used for image segmentation tasks by predicting a mask or label for
|
||||
each pixel in an image.
|
||||
- Classification: Classification tasks involve assigning a class label to an input, such as an image or text. YOLO
|
||||
models can be used for image classification tasks by predicting the class label of an input image.
|
||||
|
||||
YOLO models can be used in different modes depending on the specific problem you are trying to solve. These modes
|
||||
include train, val, and predict.
|
||||
|
||||
- Train: The train mode is used to train the model on a dataset. This mode is typically used during the development and
|
||||
testing phase of a model.
|
||||
- Val: The val mode is used to evaluate the model's performance on a validation dataset. This mode is typically used to
|
||||
tune the model's hyperparameters and detect overfitting.
|
||||
- Predict: The predict mode is used to make predictions with the model on new data. This mode is typically used in
|
||||
production or when deploying the model to users.
|
||||
|
||||
| Key | Value | Description |
|
||||
|--------|----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| task | `detect` | Set the task via CLI. See Tasks for all supported tasks like - `detect`, `segment`, `classify`.<br> - `init` is a special case that creates a copy of default.yaml configs to the current working dir |
|
||||
| mode | `train` | Set the mode via CLI. It can be `train`, `val`, `predict` |
|
||||
| resume | `False` | Resume last given task when set to `True`. <br> Resume from a given checkpoint is `model.pt` is passed |
|
||||
| model | null | Set the model. Format can differ for task type. Supports `model_name`, `model.yaml` & `model.pt` |
|
||||
| data | null | Set the data. Format can differ for task type. Supports `data.yaml`, `data_folder`, `dataset_name` |
|
||||
|
||||
### Training settings
|
||||
|
||||
Training settings for YOLO models refer to the various hyperparameters and configurations used to train the model on a
|
||||
dataset. These settings can affect the model's performance, speed, and accuracy. Some common YOLO training settings
|
||||
include the batch size, learning rate, momentum, and weight decay. Other factors that may affect the training process
|
||||
include the choice of optimizer, the choice of loss function, and the size and composition of the training dataset. It
|
||||
is important to carefully tune and experiment with these settings to achieve the best possible performance for a given
|
||||
task.
|
||||
|
||||
| Key | Value | Description |
|
||||
|-----------------|---------|-----------------------------------------------------------------------------|
|
||||
| device | '' | cuda device, i.e. 0 or 0,1,2,3 or cpu. `''` selects available cuda 0 device |
|
||||
| epochs | 100 | Number of epochs to train |
|
||||
| workers | 8 | Number of cpu workers used per process. Scales automatically with DDP |
|
||||
| batch_size | 16 | Batch size of the dataloader |
|
||||
| imgsz | 640 | Image size of data in dataloader |
|
||||
| optimizer | SGD | Optimizer used. Supported optimizer are: `Adam`, `SGD`, `RMSProp` |
|
||||
| single_cls | False | Train on multi-class data as single-class |
|
||||
| image_weights | False | Use weighted image selection for training |
|
||||
| rect | False | Enable rectangular training |
|
||||
| cos_lr | False | Use cosine LR scheduler |
|
||||
| lr0 | 0.01 | Initial learning rate |
|
||||
| lrf | 0.01 | Final OneCycleLR learning rate |
|
||||
| momentum | 0.937 | Use as `momentum` for SGD and `beta1` for Adam |
|
||||
| weight_decay | 0.0005 | Optimizer weight decay |
|
||||
| warmup_epochs | 3.0 | Warmup epochs. Fractions are ok. |
|
||||
| warmup_momentum | 0.8 | Warmup initial momentum |
|
||||
| warmup_bias_lr | 0.1 | Warmup initial bias lr |
|
||||
| box | 0.05 | Box loss gain |
|
||||
| cls | 0.5 | cls loss gain |
|
||||
| cls_pw | 1.0 | cls BCELoss positive_weight |
|
||||
| obj | 1.0 | bj loss gain (scale with pixels) |
|
||||
| obj_pw | 1.0 | obj BCELoss positive_weight |
|
||||
| iou_t | 0.20 | IOU training threshold |
|
||||
| anchor_t | 4.0 | anchor-multiple threshold |
|
||||
| fl_gamma | 0.0 | focal loss gamma |
|
||||
| label_smoothing | 0.0 | |
|
||||
| nbs | 64 | nominal batch size |
|
||||
| overlap_mask | `True` | **Segmentation**: Use mask overlapping during training |
|
||||
| mask_ratio | 4 | **Segmentation**: Set mask downsampling |
|
||||
| dropout | `False` | **Classification**: Use dropout while training |
|
||||
|
||||
### Prediction Settings
|
||||
|
||||
Prediction settings for YOLO models refer to the various hyperparameters and configurations used to make predictions
|
||||
with the model on new data. These settings can affect the model's performance, speed, and accuracy. Some common YOLO
|
||||
prediction settings include the confidence threshold, non-maximum suppression (NMS) threshold, and the number of classes
|
||||
to consider. Other factors that may affect the prediction process include the size and format of the input data, the
|
||||
presence of additional features such as masks or multiple labels per box, and the specific task the model is being used
|
||||
for. It is important to carefully tune and experiment with these settings to achieve the best possible performance for a
|
||||
given task.
|
||||
|
||||
| Key | Value | Description |
|
||||
|----------------|----------------------|-------------------------------------------------|
|
||||
| source | `ultralytics/assets` | Input source. Accepts image, folder, video, url |
|
||||
| view_img | `False` | View the prediction images |
|
||||
| save_txt | `False` | Save the results in a txt file |
|
||||
| save_conf | `False` | Save the condidence scores |
|
||||
| save_crop | `Fasle` | |
|
||||
| hide_labels | `False` | Hide the labels |
|
||||
| hide_conf | `False` | Hide the confidence scores |
|
||||
| vid_stride | `False` | Input video frame-rate stride |
|
||||
| line_thickness | `3` | Bounding-box thickness (pixels) |
|
||||
| visualize | `False` | Visualize model features |
|
||||
| augment | `False` | Augmented inference |
|
||||
| agnostic_nms | `False` | Class-agnostic NMS |
|
||||
| retina_masks | `False` | **Segmentation:** High resolution masks |
|
||||
|
||||
### Validation settings
|
||||
|
||||
Validation settings for YOLO models refer to the various hyperparameters and configurations used to
|
||||
evaluate the model's performance on a validation dataset. These settings can affect the model's performance, speed, and
|
||||
accuracy. Some common YOLO validation settings include the batch size, the frequency with which validation is performed
|
||||
during training, and the metrics used to evaluate the model's performance. Other factors that may affect the validation
|
||||
process include the size and composition of the validation dataset and the specific task the model is being used for. It
|
||||
is important to carefully tune and experiment with these settings to ensure that the model is performing well on the
|
||||
validation dataset and to detect and prevent overfitting.
|
||||
|
||||
| Key | Value | Description |
|
||||
|-------------|---------|-----------------------------------|
|
||||
| noval | `False` | ??? |
|
||||
| save_json | `False` | |
|
||||
| save_hybrid | `False` | |
|
||||
| conf_thres | `0.001` | Confidence threshold |
|
||||
| iou_thres | `0.6` | IoU threshold |
|
||||
| max_det | `300` | Maximum number of detections |
|
||||
| half | `True` | Use .half() mode. |
|
||||
| dnn | `False` | Use OpenCV DNN for ONNX inference |
|
||||
| plots | `False` | |
|
||||
|
||||
### Export settings
|
||||
|
||||
Export settings for YOLO models refer to the various configurations and options used to save or
|
||||
export the model for use in other environments or platforms. These settings can affect the model's performance, size,
|
||||
and compatibility with different systems. Some common YOLO export settings include the format of the exported model
|
||||
file (e.g. ONNX, TensorFlow SavedModel), the device on which the model will be run (e.g. CPU, GPU), and the presence of
|
||||
additional features such as masks or multiple labels per box. Other factors that may affect the export process include
|
||||
the specific task the model is being used for and the requirements or constraints of the target environment or platform.
|
||||
It is important to carefully consider and configure these settings to ensure that the exported model is optimized for
|
||||
the intended use case and can be used effectively in the target environment.
|
||||
|
||||
### Augmentation settings
|
||||
|
||||
Augmentation settings for YOLO models refer to the various transformations and modifications
|
||||
applied to the training data to increase the diversity and size of the dataset. These settings can affect the model's
|
||||
performance, speed, and accuracy. Some common YOLO augmentation settings include the type and intensity of the
|
||||
transformations applied (e.g. random flips, rotations, cropping, color changes), the probability with which each
|
||||
transformation is applied, and the presence of additional features such as masks or multiple labels per box. Other
|
||||
factors that may affect the augmentation process include the size and composition of the original dataset and the
|
||||
specific task the model is being used for. It is important to carefully tune and experiment with these settings to
|
||||
ensure that the augmented dataset is diverse and representative enough to train a high-performing model.
|
||||
|
||||
| hsv_h | 0.015 | Image HSV-Hue augmentation (fraction) |
|
||||
|-------------|-------|-------------------------------------------------|
|
||||
| hsv_s | 0.7 | Image HSV-Saturation augmentation (fraction) |
|
||||
| hsv_v | 0.4 | Image HSV-Value augmentation (fraction) |
|
||||
| degrees | 0.0 | Image rotation (+/- deg) |
|
||||
| translate | 0.1 | Image translation (+/- fraction) |
|
||||
| scale | 0.5 | Image scale (+/- gain) |
|
||||
| shear | 0.0 | Image shear (+/- deg) |
|
||||
| perspective | 0.0 | Image perspective (+/- fraction), range 0-0.001 |
|
||||
| flipud | 0.0 | Image flip up-down (probability) |
|
||||
| fliplr | 0.5 | Image flip left-right (probability) |
|
||||
| mosaic | 1.0 | Image mosaic (probability) |
|
||||
| mixup | 0.0 | Image mixup (probability) |
|
||||
| copy_paste | 0.0 | Segment copy-paste (probability) |
|
||||
|
||||
### Logging, checkpoints, plotting and file management
|
||||
|
||||
Logging, checkpoints, plotting, and file management are important considerations when training a YOLO model.
|
||||
|
||||
- Logging: It is often helpful to log various metrics and statistics during training to track the model's progress and
|
||||
diagnose any issues that may arise. This can be done using a logging library such as TensorBoard or by writing log
|
||||
messages to a file.
|
||||
- Checkpoints: It is a good practice to save checkpoints of the model at regular intervals during training. This allows
|
||||
you to resume training from a previous point if the training process is interrupted or if you want to experiment with
|
||||
different training configurations.
|
||||
- Plotting: Visualizing the model's performance and training progress can be helpful for understanding how the model is
|
||||
behaving and identifying potential issues. This can be done using a plotting library such as matplotlib or by
|
||||
generating plots using a logging library such as TensorBoard.
|
||||
- File management: Managing the various files generated during the training process, such as model checkpoints, log
|
||||
files, and plots, can be challenging. It is important to have a clear and organized file structure to keep track of
|
||||
these files and make it easy to access and analyze them as needed.
|
||||
|
||||
Effective logging, checkpointing, plotting, and file management can help you keep track of the model's progress and make
|
||||
it easier to debug and optimize the training process.
|
||||
|
||||
| Key | Value | Description |
|
||||
|-----------|---------|---------------------------------------------------------------------------------------------|
|
||||
| project: | 'runs' | The project name |
|
||||
| name: | 'exp' | The run name. `exp` gets automatically incremented if not specified, i.e, `exp`, `exp2` ... |
|
||||
| exist_ok: | `False` | ??? |
|
||||
| plots | `False` | **Validation**: Save plots while validation |
|
||||
| nosave | `False` | Don't save any plots, models or files |
|
@ -1,3 +1,40 @@
|
||||
# Welcome to Ultralytics YOLO
|
||||
|
||||
TODO
|
||||
Welcome to the Ultralytics YOLO documentation landing page! Ultralytics YOLOv8 is the latest version of the YOLO (You
|
||||
Only Look Once) object detection and image segmentation model developed by Ultralytics. This page serves as the starting
|
||||
point for exploring the various resources available to help you get started with YOLOv8 and understand its features and
|
||||
capabilities.
|
||||
|
||||
The YOLOv8 model is designed to be fast, accurate, and easy to use, making it an excellent choice for a wide range of
|
||||
object detection and image segmentation tasks. It can be trained on large datasets and is capable of running on a
|
||||
variety of hardware platforms, from CPUs to GPUs.
|
||||
|
||||
Whether you are a seasoned machine learning practitioner or new to the field, we hope that the resources on this page
|
||||
will help you get the most out of YOLOv8. Please feel free to browse the documentation and reach out to us with any
|
||||
questions or feedback.
|
||||
|
||||
### A Brief History of YOLO
|
||||
|
||||
YOLO (You Only Look Once) is a popular object detection and image segmentation model developed by Joseph Redmon and Ali
|
||||
Farhadi at the University of Washington. The first version of YOLO was released in 2015 and quickly gained popularity
|
||||
due to its high speed and accuracy.
|
||||
|
||||
YOLOv2 was released in 2016 and improved upon the original model by incorporating batch normalization, anchor boxes, and
|
||||
dimension clusters. YOLOv3 was released in 2018 and further improved the model's performance by using a more efficient
|
||||
backbone network, adding a feature pyramid, and making use of focal loss.
|
||||
|
||||
In 2020, YOLOv4 was released which introduced a number of innovations such as the use of Mosaic data augmentation, a new
|
||||
anchor-free detection head, and a new loss function.
|
||||
|
||||
In 2021, Ultralytics released YOLOv5, which further improved the model's performance and added new features such as
|
||||
support for panoptic segmentation and object tracking.
|
||||
|
||||
YOLO has been widely used in a variety of applications, including autonomous vehicles, security and surveillance, and
|
||||
medical imaging. It has also been used to win several competitions, such as the COCO Object Detection Challenge and the
|
||||
DOTA Object Detection Challenge.
|
||||
|
||||
For more information about the history and development of YOLO, you can refer to the following references:
|
||||
|
||||
- Redmon, J., & Farhadi, A. (2015). You only look once: Unified, real-time object detection. In Proceedings of the IEEE
|
||||
conference on computer vision and pattern recognition (pp. 779-788).
|
||||
- Redmon, J., & Farhadi, A. (2016). YOLO9000: Better, faster, stronger. In Proceedings
|
@ -0,0 +1,5 @@
|
||||
All task Predictors are inherited from `BasePredictors` class that contains the model validation routine boilerplate. You can override any function of these Trainers to suit your needs.
|
||||
|
||||
---
|
||||
### BasePredictor API Reference
|
||||
:::ultralytics.yolo.engine.predictor.BasePredictor
|
@ -0,0 +1,5 @@
|
||||
All task Validators are inherited from `BaseValidator` class that contains the model validation routine boilerplate. You can override any function of these Trainers to suit your needs.
|
||||
|
||||
---
|
||||
### BaseValidator API Reference
|
||||
:::ultralytics.yolo.engine.validator.BaseValidator
|
@ -0,0 +1,2 @@
|
||||
### Exporter API Reference
|
||||
:::ultralytics.yolo.engine.exporter.Exporter
|
Loading…
Reference in new issue