Reformat Docs and YAMLs (#12806)
Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
This commit is contained in:
parent
d25dd182d6
commit
e8e434fe48
26 changed files with 325 additions and 324 deletions
74
.github/workflows/merge-main-into-prs.yml
vendored
74
.github/workflows/merge-main-into-prs.yml
vendored
|
|
@ -15,44 +15,44 @@ jobs:
|
||||||
if: github.repository == 'ultralytics/ultralytics'
|
if: github.repository == 'ultralytics/ultralytics'
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
ref: main
|
ref: main
|
||||||
- uses: actions/setup-python@v5
|
- uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
python-version: "3.11"
|
python-version: "3.11"
|
||||||
cache: "pip" # caching pip dependencies
|
cache: "pip" # caching pip dependencies
|
||||||
- name: Install requirements
|
- name: Install requirements
|
||||||
run: |
|
run: |
|
||||||
pip install pygithub
|
pip install pygithub
|
||||||
- name: Merge main into PRs
|
- name: Merge main into PRs
|
||||||
shell: python
|
shell: python
|
||||||
run: |
|
run: |
|
||||||
from github import Github
|
from github import Github
|
||||||
import os
|
import os
|
||||||
|
|
||||||
# Authenticate with the GitHub Token
|
# Authenticate with the GitHub Token
|
||||||
g = Github(os.getenv('GITHUB_TOKEN'))
|
g = Github(os.getenv('GITHUB_TOKEN'))
|
||||||
|
|
||||||
# Get the repository dynamically
|
# Get the repository dynamically
|
||||||
repo = g.get_repo(os.getenv('GITHUB_REPOSITORY'))
|
repo = g.get_repo(os.getenv('GITHUB_REPOSITORY'))
|
||||||
|
|
||||||
# List all open pull requests
|
# List all open pull requests
|
||||||
open_pulls = repo.get_pulls(state='open', sort='created')
|
open_pulls = repo.get_pulls(state='open', sort='created')
|
||||||
|
|
||||||
for pr in open_pulls:
|
for pr in open_pulls:
|
||||||
try:
|
try:
|
||||||
# Compare PR head with main to see if it's behind
|
# Compare PR head with main to see if it's behind
|
||||||
comparison = repo.compare(pr.base.ref, pr.head.ref) # ensure correct order of base and head
|
comparison = repo.compare(pr.base.ref, pr.head.ref) # ensure correct order of base and head
|
||||||
if comparison.behind_by > 0:
|
if comparison.behind_by > 0:
|
||||||
# Merge main into the PR branch
|
# Merge main into the PR branch
|
||||||
success = pr.update_branch()
|
success = pr.update_branch()
|
||||||
assert success, "Branch update failed"
|
assert success, "Branch update failed"
|
||||||
print(f"Merged 'main' into PR #{pr.number} ({pr.head.ref}) successfully.")
|
print(f"Merged 'main' into PR #{pr.number} ({pr.head.ref}) successfully.")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Could not merge 'main' into PR #{pr.number} ({pr.head.ref}): {e}")
|
print(f"Could not merge 'main' into PR #{pr.number} ({pr.head.ref}): {e}")
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
|
||||||
GITHUB_REPOSITORY: ${{ github.repository }}
|
GITHUB_REPOSITORY: ${{ github.repository }}
|
||||||
|
|
|
||||||
|
|
@ -93,12 +93,16 @@ sudo docker pull $t
|
||||||
## Running Ultralytics in Docker Container
|
## Running Ultralytics in Docker Container
|
||||||
|
|
||||||
Here's how to execute the Ultralytics Docker container:
|
Here's how to execute the Ultralytics Docker container:
|
||||||
|
|
||||||
### Using only the CPU
|
### Using only the CPU
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Run with all GPUs
|
# Run with all GPUs
|
||||||
sudo docker run -it --ipc=host $t
|
sudo docker run -it --ipc=host $t
|
||||||
```
|
```
|
||||||
|
|
||||||
### Using GPUs
|
### Using GPUs
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Run with all GPUs
|
# Run with all GPUs
|
||||||
sudo docker run -it --ipc=host --gpus all $t
|
sudo docker run -it --ipc=host --gpus all $t
|
||||||
|
|
@ -109,7 +113,6 @@ sudo docker run -it --ipc=host --gpus '"device=2,3"' $t
|
||||||
|
|
||||||
The `-it` flag assigns a pseudo-TTY and keeps stdin open, allowing you to interact with the container. The `--ipc=host` flag enables sharing of host's IPC namespace, essential for sharing memory between processes. The `--gpus` flag allows the container to access the host's GPUs.
|
The `-it` flag assigns a pseudo-TTY and keeps stdin open, allowing you to interact with the container. The `--ipc=host` flag enables sharing of host's IPC namespace, essential for sharing memory between processes. The `--gpus` flag allows the container to access the host's GPUs.
|
||||||
|
|
||||||
|
|
||||||
## Running Ultralytics in Docker Container
|
## Running Ultralytics in Docker Container
|
||||||
|
|
||||||
Here's how to execute the Ultralytics Docker container:
|
Here's how to execute the Ultralytics Docker container:
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ NVIDIA Jetson is a series of embedded computing boards designed to bring acceler
|
||||||
[Jetson Orin](https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-orin/) is the latest iteration of the NVIDIA Jetson family based on NVIDIA Ampere architecture which brings drastically improved AI performance when compared to the previous generations. Below table compared few of the Jetson devices in the ecosystem.
|
[Jetson Orin](https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-orin/) is the latest iteration of the NVIDIA Jetson family based on NVIDIA Ampere architecture which brings drastically improved AI performance when compared to the previous generations. Below table compared few of the Jetson devices in the ecosystem.
|
||||||
|
|
||||||
| | Jetson AGX Orin 64GB | Jetson Orin NX 16GB | Jetson Orin Nano 8GB | Jetson AGX Xavier | Jetson Xavier NX | Jetson Nano |
|
| | Jetson AGX Orin 64GB | Jetson Orin NX 16GB | Jetson Orin Nano 8GB | Jetson AGX Xavier | Jetson Xavier NX | Jetson Nano |
|
||||||
| ----------------- | ---------------------------------------------------------------- | --------------------------------------------------------------- | ------------------------------------------------------------- | ----------------------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------- |
|
|-------------------|------------------------------------------------------------------|-----------------------------------------------------------------|---------------------------------------------------------------|-------------------------------------------------------------|--------------------------------------------------------------|---------------------------------------------|
|
||||||
| AI Performance | 275 TOPS | 100 TOPS | 40 TOPs | 32 TOPS | 21 TOPS | 472 GFLOPS |
|
| AI Performance | 275 TOPS | 100 TOPS | 40 TOPs | 32 TOPS | 21 TOPS | 472 GFLOPS |
|
||||||
| GPU | 2048-core NVIDIA Ampere architecture GPU with 64 Tensor Cores | 1024-core NVIDIA Ampere architecture GPU with 32 Tensor Cores | 1024-core NVIDIA Ampere architecture GPU with 32 Tensor Cores | 512-core NVIDIA Volta architecture GPU with 64 Tensor Cores | 384-core NVIDIA Volta™ architecture GPU with 48 Tensor Cores | 128-core NVIDIA Maxwell™ architecture GPU |
|
| GPU | 2048-core NVIDIA Ampere architecture GPU with 64 Tensor Cores | 1024-core NVIDIA Ampere architecture GPU with 32 Tensor Cores | 1024-core NVIDIA Ampere architecture GPU with 32 Tensor Cores | 512-core NVIDIA Volta architecture GPU with 64 Tensor Cores | 384-core NVIDIA Volta™ architecture GPU with 48 Tensor Cores | 128-core NVIDIA Maxwell™ architecture GPU |
|
||||||
| GPU Max Frequency | 1.3 GHz | 918 MHz | 625 MHz | 1377 MHz | 1100 MHz | 921MHz |
|
| GPU Max Frequency | 1.3 GHz | 918 MHz | 625 MHz | 1377 MHz | 1100 MHz | 921MHz |
|
||||||
|
|
|
||||||
|
|
@ -166,10 +166,10 @@ keywords: Ultralytics, YOLOv8, Object Detection, Object Tracking, IDetection, Vi
|
||||||
|
|
||||||
### `visioneye` Arguments
|
### `visioneye` Arguments
|
||||||
|
|
||||||
| Name | Type | Default | Description |
|
| Name | Type | Default | Description |
|
||||||
|---------------|---------|------------------|--------------------------------------------------|
|
|-------------|---------|------------------|--------------------------------|
|
||||||
| `color` | `tuple` | `(235, 219, 11)` | Line and object centroid color |
|
| `color` | `tuple` | `(235, 219, 11)` | Line and object centroid color |
|
||||||
| `pin_color` | `tuple` | `(255, 0, 255)` | VisionEye pinpoint color |
|
| `pin_color` | `tuple` | `(255, 0, 255)` | VisionEye pinpoint color |
|
||||||
|
|
||||||
## Note
|
## Note
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -62,5 +62,5 @@ We hope that the resources here will help you get the most out of HUB. Please br
|
||||||
- [**Teams**](teams.md): Collaborate effortlessly with your team.
|
- [**Teams**](teams.md): Collaborate effortlessly with your team.
|
||||||
- [**Integrations**](integrations.md): Explore different integration options.
|
- [**Integrations**](integrations.md): Explore different integration options.
|
||||||
- [**Ultralytics HUB App**](app/index.md): Learn about the Ultralytics HUB App, which allows you to run models directly on your mobile device.
|
- [**Ultralytics HUB App**](app/index.md): Learn about the Ultralytics HUB App, which allows you to run models directly on your mobile device.
|
||||||
- [**iOS**](app/ios.md): Explore CoreML acceleration on iPhones and iPads.
|
- [**iOS**](app/ios.md): Explore CoreML acceleration on iPhones and iPads.
|
||||||
- [**Android**](app/android.md): Explore TFLite acceleration on Android devices.
|
- [**Android**](app/android.md): Explore TFLite acceleration on Android devices.
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@ curl -X POST "https://api.ultralytics.com/v1/predict/MODEL_ID" \
|
||||||
See the table below for a full list of available inference arguments.
|
See the table below for a full list of available inference arguments.
|
||||||
|
|
||||||
| Argument | Default | Type | Description |
|
| Argument | Default | Type | Description |
|
||||||
| ------------ | ------- | ------- | -------------------------------------- |
|
|--------------|---------|---------|----------------------------------------|
|
||||||
| `image` | | `image` | image file |
|
| `image` | | `image` | image file |
|
||||||
| `url` | | `str` | URL of the image if not passing a file |
|
| `url` | | `str` | URL of the image if not passing a file |
|
||||||
| `size` | `640` | `int` | valid range `32` - `1280` pixels |
|
| `size` | `640` | `int` | valid range `32` - `1280` pixels |
|
||||||
|
|
@ -91,10 +91,10 @@ The [Ultralytics HUB](https://bit.ly/ultralytics_hub) Inference API returns a JS
|
||||||
from ultralytics import YOLO
|
from ultralytics import YOLO
|
||||||
|
|
||||||
# Load model
|
# Load model
|
||||||
model = YOLO('yolov8n-cls.pt')
|
model = YOLO("yolov8n-cls.pt")
|
||||||
|
|
||||||
# Run inference
|
# Run inference
|
||||||
results = model('image.jpg')
|
results = model("image.jpg")
|
||||||
|
|
||||||
# Print image.jpg results in JSON format
|
# Print image.jpg results in JSON format
|
||||||
print(results[0].tojson())
|
print(results[0].tojson())
|
||||||
|
|
@ -159,10 +159,10 @@ The [Ultralytics HUB](https://bit.ly/ultralytics_hub) Inference API returns a JS
|
||||||
from ultralytics import YOLO
|
from ultralytics import YOLO
|
||||||
|
|
||||||
# Load model
|
# Load model
|
||||||
model = YOLO('yolov8n.pt')
|
model = YOLO("yolov8n.pt")
|
||||||
|
|
||||||
# Run inference
|
# Run inference
|
||||||
results = model('image.jpg')
|
results = model("image.jpg")
|
||||||
|
|
||||||
# Print image.jpg results in JSON format
|
# Print image.jpg results in JSON format
|
||||||
print(results[0].tojson())
|
print(results[0].tojson())
|
||||||
|
|
@ -231,10 +231,10 @@ The [Ultralytics HUB](https://bit.ly/ultralytics_hub) Inference API returns a JS
|
||||||
from ultralytics import YOLO
|
from ultralytics import YOLO
|
||||||
|
|
||||||
# Load model
|
# Load model
|
||||||
model = YOLO('yolov8n-obb.pt')
|
model = YOLO("yolov8n-obb.pt")
|
||||||
|
|
||||||
# Run inference
|
# Run inference
|
||||||
results = model('image.jpg')
|
results = model("image.jpg")
|
||||||
|
|
||||||
# Print image.jpg results in JSON format
|
# Print image.jpg results in JSON format
|
||||||
print(results[0].tojson())
|
print(results[0].tojson())
|
||||||
|
|
@ -305,10 +305,10 @@ The [Ultralytics HUB](https://bit.ly/ultralytics_hub) Inference API returns a JS
|
||||||
from ultralytics import YOLO
|
from ultralytics import YOLO
|
||||||
|
|
||||||
# Load model
|
# Load model
|
||||||
model = YOLO('yolov8n-seg.pt')
|
model = YOLO("yolov8n-seg.pt")
|
||||||
|
|
||||||
# Run inference
|
# Run inference
|
||||||
results = model('image.jpg')
|
results = model("image.jpg")
|
||||||
|
|
||||||
# Print image.jpg results in JSON format
|
# Print image.jpg results in JSON format
|
||||||
print(results[0].tojson())
|
print(results[0].tojson())
|
||||||
|
|
@ -374,10 +374,10 @@ The [Ultralytics HUB](https://bit.ly/ultralytics_hub) Inference API returns a JS
|
||||||
from ultralytics import YOLO
|
from ultralytics import YOLO
|
||||||
|
|
||||||
# Load model
|
# Load model
|
||||||
model = YOLO('yolov8n-pose.pt')
|
model = YOLO("yolov8n-pose.pt")
|
||||||
|
|
||||||
# Run inference
|
# Run inference
|
||||||
results = model('image.jpg')
|
results = model("image.jpg")
|
||||||
|
|
||||||
# Print image.jpg results in JSON format
|
# Print image.jpg results in JSON format
|
||||||
print(results[0].tojson())
|
print(results[0].tojson())
|
||||||
|
|
|
||||||
|
|
@ -87,19 +87,19 @@ We also support a variety of model export formats for deployment in different en
|
||||||
|
|
||||||
| Format | `format` Argument | Model | Metadata | Arguments |
|
| Format | `format` Argument | Model | Metadata | Arguments |
|
||||||
|---------------------------------------------------|-------------------|---------------------------|----------|----------------------------------------------------------------------|
|
|---------------------------------------------------|-------------------|---------------------------|----------|----------------------------------------------------------------------|
|
||||||
| [PyTorch](https://pytorch.org/) | - | `yolov8n.pt` | ✅ | - |
|
| [PyTorch](https://pytorch.org/) | - | `yolov8n.pt` | ✅ | - |
|
||||||
| [TorchScript](../integrations/torchscript.md) | `torchscript` | `yolov8n.torchscript` | ✅ | `imgsz`, `optimize`, `batch` |
|
| [TorchScript](../integrations/torchscript.md) | `torchscript` | `yolov8n.torchscript` | ✅ | `imgsz`, `optimize`, `batch` |
|
||||||
| [ONNX](../integrations/onnx.md) | `onnx` | `yolov8n.onnx` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `opset`, `batch` |
|
| [ONNX](../integrations/onnx.md) | `onnx` | `yolov8n.onnx` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `opset`, `batch` |
|
||||||
| [OpenVINO](../integrations/openvino.md) | `openvino` | `yolov8n_openvino_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
| [OpenVINO](../integrations/openvino.md) | `openvino` | `yolov8n_openvino_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
||||||
| [TensorRT](../integrations/tensorrt.md) | `engine` | `yolov8n.engine` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `workspace`, `int8`, `batch` |
|
| [TensorRT](../integrations/tensorrt.md) | `engine` | `yolov8n.engine` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `workspace`, `int8`, `batch` |
|
||||||
| [CoreML](../integrations/coreml.md) | `coreml` | `yolov8n.mlpackage` | ✅ | `imgsz`, `half`, `int8`, `nms`, `batch` |
|
| [CoreML](../integrations/coreml.md) | `coreml` | `yolov8n.mlpackage` | ✅ | `imgsz`, `half`, `int8`, `nms`, `batch` |
|
||||||
| [TF SavedModel](../integrations/tf-savedmodel.md) | `saved_model` | `yolov8n_saved_model/` | ✅ | `imgsz`, `keras`, `int8`, `batch` |
|
| [TF SavedModel](../integrations/tf-savedmodel.md) | `saved_model` | `yolov8n_saved_model/` | ✅ | `imgsz`, `keras`, `int8`, `batch` |
|
||||||
| [TF GraphDef](../integrations/tf-graphdef.md) | `pb` | `yolov8n.pb` | ❌ | `imgsz`, `batch` |
|
| [TF GraphDef](../integrations/tf-graphdef.md) | `pb` | `yolov8n.pb` | ❌ | `imgsz`, `batch` |
|
||||||
| [TF Lite](../integrations/tflite.md) | `tflite` | `yolov8n.tflite` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
| [TF Lite](../integrations/tflite.md) | `tflite` | `yolov8n.tflite` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
||||||
| [TF Edge TPU](../integrations/edge-tpu.md) | `edgetpu` | `yolov8n_edgetpu.tflite` | ✅ | `imgsz`, `batch` |
|
| [TF Edge TPU](../integrations/edge-tpu.md) | `edgetpu` | `yolov8n_edgetpu.tflite` | ✅ | `imgsz`, `batch` |
|
||||||
| [TF.js](../integrations/tfjs.md) | `tfjs` | `yolov8n_web_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
| [TF.js](../integrations/tfjs.md) | `tfjs` | `yolov8n_web_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
||||||
| [PaddlePaddle](../integrations/paddlepaddle.md) | `paddle` | `yolov8n_paddle_model/` | ✅ | `imgsz`, `batch` |
|
| [PaddlePaddle](../integrations/paddlepaddle.md) | `paddle` | `yolov8n_paddle_model/` | ✅ | `imgsz`, `batch` |
|
||||||
| [NCNN](../integrations/ncnn.md) | `ncnn` | `yolov8n_ncnn_model/` | ✅ | `imgsz`, `half`, `batch` |
|
| [NCNN](../integrations/ncnn.md) | `ncnn` | `yolov8n_ncnn_model/` | ✅ | `imgsz`, `half`, `batch` |
|
||||||
|
|
||||||
Explore the links to learn more about each integration and how to get the most out of them with Ultralytics. See full `export` details in the [Export](../modes/export.md) page.
|
Explore the links to learn more about each integration and how to get the most out of them with Ultralytics. See full `export` details in the [Export](../modes/export.md) page.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -123,7 +123,7 @@ When processing implicitly quantized networks TensorRT uses INT8 opportunistical
|
||||||
|
|
||||||
The arguments provided when using [export](../modes/export.md) for an Ultralytics YOLO model will **greatly** influence the performance of the exported model. They will also need to be selected based on the device resources available, however the default arguments _should_ work for most [Ampere (or newer) NVIDIA discrete GPUs](https://developer.nvidia.com/blog/nvidia-ampere-architecture-in-depth/). The calibration algorithm used is `"ENTROPY_CALIBRATION_2"` and you can read more details about the options available [in the TensorRT Developer Guide](https://docs.nvidia.com/deeplearning/tensorrt/developer-guide/index.html#enable_int8_c). Ultralytics tests found that `"ENTROPY_CALIBRATION_2"` was the best choice and exports are fixed to using this algorithm.
|
The arguments provided when using [export](../modes/export.md) for an Ultralytics YOLO model will **greatly** influence the performance of the exported model. They will also need to be selected based on the device resources available, however the default arguments _should_ work for most [Ampere (or newer) NVIDIA discrete GPUs](https://developer.nvidia.com/blog/nvidia-ampere-architecture-in-depth/). The calibration algorithm used is `"ENTROPY_CALIBRATION_2"` and you can read more details about the options available [in the TensorRT Developer Guide](https://docs.nvidia.com/deeplearning/tensorrt/developer-guide/index.html#enable_int8_c). Ultralytics tests found that `"ENTROPY_CALIBRATION_2"` was the best choice and exports are fixed to using this algorithm.
|
||||||
|
|
||||||
- `workspace` : Controls the size (in GiB) of the device memory allocation while converting the model weights.
|
- `workspace` : Controls the size (in GiB) of the device memory allocation while converting the model weights.
|
||||||
|
|
||||||
- Aim to use the <u>minimum</u> `workspace` value required as this prevents testing algorithms that require more `workspace` from being considered by the TensorRT builder. Setting a higher value for `workspace` may take **considerably longer** to calibrate and export.
|
- Aim to use the <u>minimum</u> `workspace` value required as this prevents testing algorithms that require more `workspace` from being considered by the TensorRT builder. Setting a higher value for `workspace` may take **considerably longer** to calibrate and export.
|
||||||
|
|
||||||
|
|
@ -135,7 +135,7 @@ The arguments provided when using [export](../modes/export.md) for an Ultralytic
|
||||||
|
|
||||||
- <u><b>Remember</b> calibration for INT8 is specific to each device</u>, borrowing a "high-end" GPU for calibration, might result in poor performance when inference is run on another device.
|
- <u><b>Remember</b> calibration for INT8 is specific to each device</u>, borrowing a "high-end" GPU for calibration, might result in poor performance when inference is run on another device.
|
||||||
|
|
||||||
- `batch` : The maximum batch-size that will be used for inference. During inference smaller batches can be used, but inference will not accept batches any larger than what is specified.
|
- `batch` : The maximum batch-size that will be used for inference. During inference smaller batches can be used, but inference will not accept batches any larger than what is specified.
|
||||||
|
|
||||||
!!! note
|
!!! note
|
||||||
|
|
||||||
|
|
@ -182,7 +182,6 @@ Experimentation by NVIDIA led them to recommend using at least 500 calibration i
|
||||||
yolo predict model=yolov8n.engine source='https://ultralytics.com/images/bus.jpg'
|
yolo predict model=yolov8n.engine source='https://ultralytics.com/images/bus.jpg'
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
???+ warning "Calibration Cache"
|
???+ warning "Calibration Cache"
|
||||||
|
|
||||||
TensorRT will generate a calibration `.cache` which can be re-used to speed up export of future model weights using the same data, but this may result in poor calibration when the data is vastly different or if the `batch` value is changed drastically. In these circumstances, the existing `.cache` should be renamed and moved to a different directory or deleted entirely.
|
TensorRT will generate a calibration `.cache` which can be re-used to speed up export of future model weights using the same data, but this may result in poor calibration when the data is vastly different or if the `batch` value is changed drastically. In these circumstances, the existing `.cache` should be renamed and moved to a different directory or deleted entirely.
|
||||||
|
|
@ -467,7 +466,6 @@ Having successfully exported your Ultralytics YOLOv8 models to TensorRT format,
|
||||||
|
|
||||||
- **[GitHub Repository for NVIDIA TensorRT:](https://github.com/NVIDIA/TensorRT)**: This is the official GitHub repository that contains the source code and documentation for NVIDIA TensorRT.
|
- **[GitHub Repository for NVIDIA TensorRT:](https://github.com/NVIDIA/TensorRT)**: This is the official GitHub repository that contains the source code and documentation for NVIDIA TensorRT.
|
||||||
|
|
||||||
|
|
||||||
## Summary
|
## Summary
|
||||||
|
|
||||||
In this guide, we focused on converting Ultralytics YOLOv8 models to NVIDIA's TensorRT model format. This conversion step is crucial for improving the efficiency and speed of YOLOv8 models, making them more effective and suitable for diverse deployment environments.
|
In this guide, we focused on converting Ultralytics YOLOv8 models to NVIDIA's TensorRT model format. This conversion step is crucial for improving the efficiency and speed of YOLOv8 models, making them more effective and suitable for diverse deployment environments.
|
||||||
|
|
|
||||||
|
|
@ -89,18 +89,18 @@ Benchmarks will attempt to run automatically on all possible export formats belo
|
||||||
|
|
||||||
| Format | `format` Argument | Model | Metadata | Arguments |
|
| Format | `format` Argument | Model | Metadata | Arguments |
|
||||||
|---------------------------------------------------|-------------------|---------------------------|----------|----------------------------------------------------------------------|
|
|---------------------------------------------------|-------------------|---------------------------|----------|----------------------------------------------------------------------|
|
||||||
| [PyTorch](https://pytorch.org/) | - | `yolov8n.pt` | ✅ | - |
|
| [PyTorch](https://pytorch.org/) | - | `yolov8n.pt` | ✅ | - |
|
||||||
| [TorchScript](../integrations/torchscript.md) | `torchscript` | `yolov8n.torchscript` | ✅ | `imgsz`, `optimize`, `batch` |
|
| [TorchScript](../integrations/torchscript.md) | `torchscript` | `yolov8n.torchscript` | ✅ | `imgsz`, `optimize`, `batch` |
|
||||||
| [ONNX](../integrations/onnx.md) | `onnx` | `yolov8n.onnx` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `opset`, `batch` |
|
| [ONNX](../integrations/onnx.md) | `onnx` | `yolov8n.onnx` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `opset`, `batch` |
|
||||||
| [OpenVINO](../integrations/openvino.md) | `openvino` | `yolov8n_openvino_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
| [OpenVINO](../integrations/openvino.md) | `openvino` | `yolov8n_openvino_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
||||||
| [TensorRT](../integrations/tensorrt.md) | `engine` | `yolov8n.engine` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `workspace`, `int8`, `batch` |
|
| [TensorRT](../integrations/tensorrt.md) | `engine` | `yolov8n.engine` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `workspace`, `int8`, `batch` |
|
||||||
| [CoreML](../integrations/coreml.md) | `coreml` | `yolov8n.mlpackage` | ✅ | `imgsz`, `half`, `int8`, `nms`, `batch` |
|
| [CoreML](../integrations/coreml.md) | `coreml` | `yolov8n.mlpackage` | ✅ | `imgsz`, `half`, `int8`, `nms`, `batch` |
|
||||||
| [TF SavedModel](../integrations/tf-savedmodel.md) | `saved_model` | `yolov8n_saved_model/` | ✅ | `imgsz`, `keras`, `int8`, `batch` |
|
| [TF SavedModel](../integrations/tf-savedmodel.md) | `saved_model` | `yolov8n_saved_model/` | ✅ | `imgsz`, `keras`, `int8`, `batch` |
|
||||||
| [TF GraphDef](../integrations/tf-graphdef.md) | `pb` | `yolov8n.pb` | ❌ | `imgsz`, `batch` |
|
| [TF GraphDef](../integrations/tf-graphdef.md) | `pb` | `yolov8n.pb` | ❌ | `imgsz`, `batch` |
|
||||||
| [TF Lite](../integrations/tflite.md) | `tflite` | `yolov8n.tflite` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
| [TF Lite](../integrations/tflite.md) | `tflite` | `yolov8n.tflite` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
||||||
| [TF Edge TPU](../integrations/edge-tpu.md) | `edgetpu` | `yolov8n_edgetpu.tflite` | ✅ | `imgsz`, `batch` |
|
| [TF Edge TPU](../integrations/edge-tpu.md) | `edgetpu` | `yolov8n_edgetpu.tflite` | ✅ | `imgsz`, `batch` |
|
||||||
| [TF.js](../integrations/tfjs.md) | `tfjs` | `yolov8n_web_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
| [TF.js](../integrations/tfjs.md) | `tfjs` | `yolov8n_web_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
||||||
| [PaddlePaddle](../integrations/paddlepaddle.md) | `paddle` | `yolov8n_paddle_model/` | ✅ | `imgsz`, `batch` |
|
| [PaddlePaddle](../integrations/paddlepaddle.md) | `paddle` | `yolov8n_paddle_model/` | ✅ | `imgsz`, `batch` |
|
||||||
| [NCNN](../integrations/ncnn.md) | `ncnn` | `yolov8n_ncnn_model/` | ✅ | `imgsz`, `half`, `batch` |
|
| [NCNN](../integrations/ncnn.md) | `ncnn` | `yolov8n_ncnn_model/` | ✅ | `imgsz`, `half`, `batch` |
|
||||||
|
|
||||||
See full `export` details in the [Export](../modes/export.md) page.
|
See full `export` details in the [Export](../modes/export.md) page.
|
||||||
|
|
|
||||||
|
|
@ -97,16 +97,16 @@ Available YOLOv8 export formats are in the table below. You can export to any fo
|
||||||
|
|
||||||
| Format | `format` Argument | Model | Metadata | Arguments |
|
| Format | `format` Argument | Model | Metadata | Arguments |
|
||||||
|---------------------------------------------------|-------------------|---------------------------|----------|----------------------------------------------------------------------|
|
|---------------------------------------------------|-------------------|---------------------------|----------|----------------------------------------------------------------------|
|
||||||
| [PyTorch](https://pytorch.org/) | - | `yolov8n.pt` | ✅ | - |
|
| [PyTorch](https://pytorch.org/) | - | `yolov8n.pt` | ✅ | - |
|
||||||
| [TorchScript](../integrations/torchscript.md) | `torchscript` | `yolov8n.torchscript` | ✅ | `imgsz`, `optimize`, `batch` |
|
| [TorchScript](../integrations/torchscript.md) | `torchscript` | `yolov8n.torchscript` | ✅ | `imgsz`, `optimize`, `batch` |
|
||||||
| [ONNX](../integrations/onnx.md) | `onnx` | `yolov8n.onnx` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `opset`, `batch` |
|
| [ONNX](../integrations/onnx.md) | `onnx` | `yolov8n.onnx` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `opset`, `batch` |
|
||||||
| [OpenVINO](../integrations/openvino.md) | `openvino` | `yolov8n_openvino_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
| [OpenVINO](../integrations/openvino.md) | `openvino` | `yolov8n_openvino_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
||||||
| [TensorRT](../integrations/tensorrt.md) | `engine` | `yolov8n.engine` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `workspace`, `int8`, `batch` |
|
| [TensorRT](../integrations/tensorrt.md) | `engine` | `yolov8n.engine` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `workspace`, `int8`, `batch` |
|
||||||
| [CoreML](../integrations/coreml.md) | `coreml` | `yolov8n.mlpackage` | ✅ | `imgsz`, `half`, `int8`, `nms`, `batch` |
|
| [CoreML](../integrations/coreml.md) | `coreml` | `yolov8n.mlpackage` | ✅ | `imgsz`, `half`, `int8`, `nms`, `batch` |
|
||||||
| [TF SavedModel](../integrations/tf-savedmodel.md) | `saved_model` | `yolov8n_saved_model/` | ✅ | `imgsz`, `keras`, `int8`, `batch` |
|
| [TF SavedModel](../integrations/tf-savedmodel.md) | `saved_model` | `yolov8n_saved_model/` | ✅ | `imgsz`, `keras`, `int8`, `batch` |
|
||||||
| [TF GraphDef](../integrations/tf-graphdef.md) | `pb` | `yolov8n.pb` | ❌ | `imgsz`, `batch` |
|
| [TF GraphDef](../integrations/tf-graphdef.md) | `pb` | `yolov8n.pb` | ❌ | `imgsz`, `batch` |
|
||||||
| [TF Lite](../integrations/tflite.md) | `tflite` | `yolov8n.tflite` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
| [TF Lite](../integrations/tflite.md) | `tflite` | `yolov8n.tflite` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
||||||
| [TF Edge TPU](../integrations/edge-tpu.md) | `edgetpu` | `yolov8n_edgetpu.tflite` | ✅ | `imgsz`, `batch` |
|
| [TF Edge TPU](../integrations/edge-tpu.md) | `edgetpu` | `yolov8n_edgetpu.tflite` | ✅ | `imgsz`, `batch` |
|
||||||
| [TF.js](../integrations/tfjs.md) | `tfjs` | `yolov8n_web_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
| [TF.js](../integrations/tfjs.md) | `tfjs` | `yolov8n_web_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
||||||
| [PaddlePaddle](../integrations/paddlepaddle.md) | `paddle` | `yolov8n_paddle_model/` | ✅ | `imgsz`, `batch` |
|
| [PaddlePaddle](../integrations/paddlepaddle.md) | `paddle` | `yolov8n_paddle_model/` | ✅ | `imgsz`, `batch` |
|
||||||
| [NCNN](../integrations/ncnn.md) | `ncnn` | `yolov8n_ncnn_model/` | ✅ | `imgsz`, `half`, `batch` |
|
| [NCNN](../integrations/ncnn.md) | `ncnn` | `yolov8n_ncnn_model/` | ✅ | `imgsz`, `half`, `batch` |
|
||||||
|
|
|
||||||
|
|
@ -403,18 +403,18 @@ YOLOv8 supports various image and video formats, as specified in [ultralytics/da
|
||||||
|
|
||||||
The below table contains valid Ultralytics image formats.
|
The below table contains valid Ultralytics image formats.
|
||||||
|
|
||||||
| Image Suffixes | Example Predict Command | Reference |
|
| Image Suffixes | Example Predict Command | Reference |
|
||||||
|----------------|----------------------------------|-------------------------------------------------------------------------------|
|
|----------------|----------------------------------|----------------------------------------------------------------------------|
|
||||||
| `.bmp` | `yolo predict source=image.bmp` | [Microsoft BMP File Format](https://en.wikipedia.org/wiki/BMP_file_format) |
|
| `.bmp` | `yolo predict source=image.bmp` | [Microsoft BMP File Format](https://en.wikipedia.org/wiki/BMP_file_format) |
|
||||||
| `.dng` | `yolo predict source=image.dng` | [Adobe DNG](https://helpx.adobe.com/camera-raw/digital-negative.html) |
|
| `.dng` | `yolo predict source=image.dng` | [Adobe DNG](https://helpx.adobe.com/camera-raw/digital-negative.html) |
|
||||||
| `.jpeg` | `yolo predict source=image.jpeg` | [JPEG](https://en.wikipedia.org/wiki/JPEG) |
|
| `.jpeg` | `yolo predict source=image.jpeg` | [JPEG](https://en.wikipedia.org/wiki/JPEG) |
|
||||||
| `.jpg` | `yolo predict source=image.jpg` | [JPEG](https://en.wikipedia.org/wiki/JPEG) |
|
| `.jpg` | `yolo predict source=image.jpg` | [JPEG](https://en.wikipedia.org/wiki/JPEG) |
|
||||||
| `.mpo` | `yolo predict source=image.mpo` | [Multi Picture Object](https://fileinfo.com/extension/mpo) |
|
| `.mpo` | `yolo predict source=image.mpo` | [Multi Picture Object](https://fileinfo.com/extension/mpo) |
|
||||||
| `.png` | `yolo predict source=image.png` | [Portable Network Graphics](https://en.wikipedia.org/wiki/PNG) |
|
| `.png` | `yolo predict source=image.png` | [Portable Network Graphics](https://en.wikipedia.org/wiki/PNG) |
|
||||||
| `.tif` | `yolo predict source=image.tif` | [Tag Image File Format](https://en.wikipedia.org/wiki/TIFF) |
|
| `.tif` | `yolo predict source=image.tif` | [Tag Image File Format](https://en.wikipedia.org/wiki/TIFF) |
|
||||||
| `.tiff` | `yolo predict source=image.tiff` | [Tag Image File Format](https://en.wikipedia.org/wiki/TIFF) |
|
| `.tiff` | `yolo predict source=image.tiff` | [Tag Image File Format](https://en.wikipedia.org/wiki/TIFF) |
|
||||||
| `.webp` | `yolo predict source=image.webp` | [WebP](https://en.wikipedia.org/wiki/WebP) |
|
| `.webp` | `yolo predict source=image.webp` | [WebP](https://en.wikipedia.org/wiki/WebP) |
|
||||||
| `.pfm` | `yolo predict source=image.pfm` | [Portable FloatMap](https://en.wikipedia.org/wiki/Netpbm#File_formats) |
|
| `.pfm` | `yolo predict source=image.pfm` | [Portable FloatMap](https://en.wikipedia.org/wiki/Netpbm#File_formats) |
|
||||||
|
|
||||||
### Videos
|
### Videos
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -164,18 +164,18 @@ Available YOLOv8-cls export formats are in the table below. You can export to an
|
||||||
|
|
||||||
| Format | `format` Argument | Model | Metadata | Arguments |
|
| Format | `format` Argument | Model | Metadata | Arguments |
|
||||||
|---------------------------------------------------|-------------------|-------------------------------|----------|----------------------------------------------------------------------|
|
|---------------------------------------------------|-------------------|-------------------------------|----------|----------------------------------------------------------------------|
|
||||||
| [PyTorch](https://pytorch.org/) | - | `yolov8n-cls.pt` | ✅ | - |
|
| [PyTorch](https://pytorch.org/) | - | `yolov8n-cls.pt` | ✅ | - |
|
||||||
| [TorchScript](../integrations/torchscript.md) | `torchscript` | `yolov8n-cls.torchscript` | ✅ | `imgsz`, `optimize`, `batch` |
|
| [TorchScript](../integrations/torchscript.md) | `torchscript` | `yolov8n-cls.torchscript` | ✅ | `imgsz`, `optimize`, `batch` |
|
||||||
| [ONNX](../integrations/onnx.md) | `onnx` | `yolov8n-cls.onnx` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `opset`, `batch` |
|
| [ONNX](../integrations/onnx.md) | `onnx` | `yolov8n-cls.onnx` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `opset`, `batch` |
|
||||||
| [OpenVINO](../integrations/openvino.md) | `openvino` | `yolov8n-cls_openvino_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
| [OpenVINO](../integrations/openvino.md) | `openvino` | `yolov8n-cls_openvino_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
||||||
| [TensorRT](../integrations/tensorrt.md) | `engine` | `yolov8n-cls.engine` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `workspace`, `int8`, `batch` |
|
| [TensorRT](../integrations/tensorrt.md) | `engine` | `yolov8n-cls.engine` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `workspace`, `int8`, `batch` |
|
||||||
| [CoreML](../integrations/coreml.md) | `coreml` | `yolov8n-cls.mlpackage` | ✅ | `imgsz`, `half`, `int8`, `nms`, `batch` |
|
| [CoreML](../integrations/coreml.md) | `coreml` | `yolov8n-cls.mlpackage` | ✅ | `imgsz`, `half`, `int8`, `nms`, `batch` |
|
||||||
| [TF SavedModel](../integrations/tf-savedmodel.md) | `saved_model` | `yolov8n-cls_saved_model/` | ✅ | `imgsz`, `keras`, `int8`, `batch` |
|
| [TF SavedModel](../integrations/tf-savedmodel.md) | `saved_model` | `yolov8n-cls_saved_model/` | ✅ | `imgsz`, `keras`, `int8`, `batch` |
|
||||||
| [TF GraphDef](../integrations/tf-graphdef.md) | `pb` | `yolov8n-cls.pb` | ❌ | `imgsz`, `batch` |
|
| [TF GraphDef](../integrations/tf-graphdef.md) | `pb` | `yolov8n-cls.pb` | ❌ | `imgsz`, `batch` |
|
||||||
| [TF Lite](../integrations/tflite.md) | `tflite` | `yolov8n-cls.tflite` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
| [TF Lite](../integrations/tflite.md) | `tflite` | `yolov8n-cls.tflite` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
||||||
| [TF Edge TPU](../integrations/edge-tpu.md) | `edgetpu` | `yolov8n-cls_edgetpu.tflite` | ✅ | `imgsz`, `batch` |
|
| [TF Edge TPU](../integrations/edge-tpu.md) | `edgetpu` | `yolov8n-cls_edgetpu.tflite` | ✅ | `imgsz`, `batch` |
|
||||||
| [TF.js](../integrations/tfjs.md) | `tfjs` | `yolov8n-cls_web_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
| [TF.js](../integrations/tfjs.md) | `tfjs` | `yolov8n-cls_web_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
||||||
| [PaddlePaddle](../integrations/paddlepaddle.md) | `paddle` | `yolov8n-cls_paddle_model/` | ✅ | `imgsz`, `batch` |
|
| [PaddlePaddle](../integrations/paddlepaddle.md) | `paddle` | `yolov8n-cls_paddle_model/` | ✅ | `imgsz`, `batch` |
|
||||||
| [NCNN](../integrations/ncnn.md) | `ncnn` | `yolov8n-cls_ncnn_model/` | ✅ | `imgsz`, `half`, `batch` |
|
| [NCNN](../integrations/ncnn.md) | `ncnn` | `yolov8n-cls_ncnn_model/` | ✅ | `imgsz`, `half`, `batch` |
|
||||||
|
|
||||||
See full `export` details in the [Export](../modes/export.md) page.
|
See full `export` details in the [Export](../modes/export.md) page.
|
||||||
|
|
|
||||||
|
|
@ -165,18 +165,18 @@ Available YOLOv8 export formats are in the table below. You can export to any fo
|
||||||
|
|
||||||
| Format | `format` Argument | Model | Metadata | Arguments |
|
| Format | `format` Argument | Model | Metadata | Arguments |
|
||||||
|---------------------------------------------------|-------------------|---------------------------|----------|----------------------------------------------------------------------|
|
|---------------------------------------------------|-------------------|---------------------------|----------|----------------------------------------------------------------------|
|
||||||
| [PyTorch](https://pytorch.org/) | - | `yolov8n.pt` | ✅ | - |
|
| [PyTorch](https://pytorch.org/) | - | `yolov8n.pt` | ✅ | - |
|
||||||
| [TorchScript](../integrations/torchscript.md) | `torchscript` | `yolov8n.torchscript` | ✅ | `imgsz`, `optimize`, `batch` |
|
| [TorchScript](../integrations/torchscript.md) | `torchscript` | `yolov8n.torchscript` | ✅ | `imgsz`, `optimize`, `batch` |
|
||||||
| [ONNX](../integrations/onnx.md) | `onnx` | `yolov8n.onnx` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `opset`, `batch` |
|
| [ONNX](../integrations/onnx.md) | `onnx` | `yolov8n.onnx` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `opset`, `batch` |
|
||||||
| [OpenVINO](../integrations/openvino.md) | `openvino` | `yolov8n_openvino_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
| [OpenVINO](../integrations/openvino.md) | `openvino` | `yolov8n_openvino_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
||||||
| [TensorRT](../integrations/tensorrt.md) | `engine` | `yolov8n.engine` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `workspace`, `int8`, `batch` |
|
| [TensorRT](../integrations/tensorrt.md) | `engine` | `yolov8n.engine` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `workspace`, `int8`, `batch` |
|
||||||
| [CoreML](../integrations/coreml.md) | `coreml` | `yolov8n.mlpackage` | ✅ | `imgsz`, `half`, `int8`, `nms`, `batch` |
|
| [CoreML](../integrations/coreml.md) | `coreml` | `yolov8n.mlpackage` | ✅ | `imgsz`, `half`, `int8`, `nms`, `batch` |
|
||||||
| [TF SavedModel](../integrations/tf-savedmodel.md) | `saved_model` | `yolov8n_saved_model/` | ✅ | `imgsz`, `keras`, `int8`, `batch` |
|
| [TF SavedModel](../integrations/tf-savedmodel.md) | `saved_model` | `yolov8n_saved_model/` | ✅ | `imgsz`, `keras`, `int8`, `batch` |
|
||||||
| [TF GraphDef](../integrations/tf-graphdef.md) | `pb` | `yolov8n.pb` | ❌ | `imgsz`, `batch` |
|
| [TF GraphDef](../integrations/tf-graphdef.md) | `pb` | `yolov8n.pb` | ❌ | `imgsz`, `batch` |
|
||||||
| [TF Lite](../integrations/tflite.md) | `tflite` | `yolov8n.tflite` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
| [TF Lite](../integrations/tflite.md) | `tflite` | `yolov8n.tflite` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
||||||
| [TF Edge TPU](../integrations/edge-tpu.md) | `edgetpu` | `yolov8n_edgetpu.tflite` | ✅ | `imgsz`, `batch` |
|
| [TF Edge TPU](../integrations/edge-tpu.md) | `edgetpu` | `yolov8n_edgetpu.tflite` | ✅ | `imgsz`, `batch` |
|
||||||
| [TF.js](../integrations/tfjs.md) | `tfjs` | `yolov8n_web_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
| [TF.js](../integrations/tfjs.md) | `tfjs` | `yolov8n_web_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
||||||
| [PaddlePaddle](../integrations/paddlepaddle.md) | `paddle` | `yolov8n_paddle_model/` | ✅ | `imgsz`, `batch` |
|
| [PaddlePaddle](../integrations/paddlepaddle.md) | `paddle` | `yolov8n_paddle_model/` | ✅ | `imgsz`, `batch` |
|
||||||
| [NCNN](../integrations/ncnn.md) | `ncnn` | `yolov8n_ncnn_model/` | ✅ | `imgsz`, `half`, `batch` |
|
| [NCNN](../integrations/ncnn.md) | `ncnn` | `yolov8n_ncnn_model/` | ✅ | `imgsz`, `half`, `batch` |
|
||||||
|
|
||||||
See full `export` details in the [Export](../modes/export.md) page.
|
See full `export` details in the [Export](../modes/export.md) page.
|
||||||
|
|
|
||||||
|
|
@ -186,18 +186,18 @@ Available YOLOv8-obb export formats are in the table below. You can export to an
|
||||||
|
|
||||||
| Format | `format` Argument | Model | Metadata | Arguments |
|
| Format | `format` Argument | Model | Metadata | Arguments |
|
||||||
|---------------------------------------------------|-------------------|-------------------------------|----------|----------------------------------------------------------------------|
|
|---------------------------------------------------|-------------------|-------------------------------|----------|----------------------------------------------------------------------|
|
||||||
| [PyTorch](https://pytorch.org/) | - | `yolov8n-obb.pt` | ✅ | - |
|
| [PyTorch](https://pytorch.org/) | - | `yolov8n-obb.pt` | ✅ | - |
|
||||||
| [TorchScript](../integrations/torchscript.md) | `torchscript` | `yolov8n-obb.torchscript` | ✅ | `imgsz`, `optimize`, `batch` |
|
| [TorchScript](../integrations/torchscript.md) | `torchscript` | `yolov8n-obb.torchscript` | ✅ | `imgsz`, `optimize`, `batch` |
|
||||||
| [ONNX](../integrations/onnx.md) | `onnx` | `yolov8n-obb.onnx` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `opset`, `batch` |
|
| [ONNX](../integrations/onnx.md) | `onnx` | `yolov8n-obb.onnx` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `opset`, `batch` |
|
||||||
| [OpenVINO](../integrations/openvino.md) | `openvino` | `yolov8n-obb_openvino_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
| [OpenVINO](../integrations/openvino.md) | `openvino` | `yolov8n-obb_openvino_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
||||||
| [TensorRT](../integrations/tensorrt.md) | `engine` | `yolov8n-obb.engine` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `workspace`, `int8`, `batch` |
|
| [TensorRT](../integrations/tensorrt.md) | `engine` | `yolov8n-obb.engine` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `workspace`, `int8`, `batch` |
|
||||||
| [CoreML](../integrations/coreml.md) | `coreml` | `yolov8n-obb.mlpackage` | ✅ | `imgsz`, `half`, `int8`, `nms`, `batch` |
|
| [CoreML](../integrations/coreml.md) | `coreml` | `yolov8n-obb.mlpackage` | ✅ | `imgsz`, `half`, `int8`, `nms`, `batch` |
|
||||||
| [TF SavedModel](../integrations/tf-savedmodel.md) | `saved_model` | `yolov8n-obb_saved_model/` | ✅ | `imgsz`, `keras`, `int8`, `batch` |
|
| [TF SavedModel](../integrations/tf-savedmodel.md) | `saved_model` | `yolov8n-obb_saved_model/` | ✅ | `imgsz`, `keras`, `int8`, `batch` |
|
||||||
| [TF GraphDef](../integrations/tf-graphdef.md) | `pb` | `yolov8n-obb.pb` | ❌ | `imgsz`, `batch` |
|
| [TF GraphDef](../integrations/tf-graphdef.md) | `pb` | `yolov8n-obb.pb` | ❌ | `imgsz`, `batch` |
|
||||||
| [TF Lite](../integrations/tflite.md) | `tflite` | `yolov8n-obb.tflite` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
| [TF Lite](../integrations/tflite.md) | `tflite` | `yolov8n-obb.tflite` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
||||||
| [TF Edge TPU](../integrations/edge-tpu.md) | `edgetpu` | `yolov8n-obb_edgetpu.tflite` | ✅ | `imgsz`, `batch` |
|
| [TF Edge TPU](../integrations/edge-tpu.md) | `edgetpu` | `yolov8n-obb_edgetpu.tflite` | ✅ | `imgsz`, `batch` |
|
||||||
| [TF.js](../integrations/tfjs.md) | `tfjs` | `yolov8n-obb_web_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
| [TF.js](../integrations/tfjs.md) | `tfjs` | `yolov8n-obb_web_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
||||||
| [PaddlePaddle](../integrations/paddlepaddle.md) | `paddle` | `yolov8n-obb_paddle_model/` | ✅ | `imgsz`, `batch` |
|
| [PaddlePaddle](../integrations/paddlepaddle.md) | `paddle` | `yolov8n-obb_paddle_model/` | ✅ | `imgsz`, `batch` |
|
||||||
| [NCNN](../integrations/ncnn.md) | `ncnn` | `yolov8n-obb_ncnn_model/` | ✅ | `imgsz`, `half`, `batch` |
|
| [NCNN](../integrations/ncnn.md) | `ncnn` | `yolov8n-obb_ncnn_model/` | ✅ | `imgsz`, `half`, `batch` |
|
||||||
|
|
||||||
See full `export` details in the [Export](../modes/export.md) page.
|
See full `export` details in the [Export](../modes/export.md) page.
|
||||||
|
|
|
||||||
|
|
@ -180,18 +180,18 @@ Available YOLOv8-pose export formats are in the table below. You can export to a
|
||||||
|
|
||||||
| Format | `format` Argument | Model | Metadata | Arguments |
|
| Format | `format` Argument | Model | Metadata | Arguments |
|
||||||
|---------------------------------------------------|-------------------|--------------------------------|----------|----------------------------------------------------------------------|
|
|---------------------------------------------------|-------------------|--------------------------------|----------|----------------------------------------------------------------------|
|
||||||
| [PyTorch](https://pytorch.org/) | - | `yolov8n-pose.pt` | ✅ | - |
|
| [PyTorch](https://pytorch.org/) | - | `yolov8n-pose.pt` | ✅ | - |
|
||||||
| [TorchScript](../integrations/torchscript.md) | `torchscript` | `yolov8n-pose.torchscript` | ✅ | `imgsz`, `optimize`, `batch` |
|
| [TorchScript](../integrations/torchscript.md) | `torchscript` | `yolov8n-pose.torchscript` | ✅ | `imgsz`, `optimize`, `batch` |
|
||||||
| [ONNX](../integrations/onnx.md) | `onnx` | `yolov8n-pose.onnx` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `opset`, `batch` |
|
| [ONNX](../integrations/onnx.md) | `onnx` | `yolov8n-pose.onnx` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `opset`, `batch` |
|
||||||
| [OpenVINO](../integrations/openvino.md) | `openvino` | `yolov8n-pose_openvino_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
| [OpenVINO](../integrations/openvino.md) | `openvino` | `yolov8n-pose_openvino_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
||||||
| [TensorRT](../integrations/tensorrt.md) | `engine` | `yolov8n-pose.engine` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `workspace`, `int8`, `batch` |
|
| [TensorRT](../integrations/tensorrt.md) | `engine` | `yolov8n-pose.engine` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `workspace`, `int8`, `batch` |
|
||||||
| [CoreML](../integrations/coreml.md) | `coreml` | `yolov8n-pose.mlpackage` | ✅ | `imgsz`, `half`, `int8`, `nms`, `batch` |
|
| [CoreML](../integrations/coreml.md) | `coreml` | `yolov8n-pose.mlpackage` | ✅ | `imgsz`, `half`, `int8`, `nms`, `batch` |
|
||||||
| [TF SavedModel](../integrations/tf-savedmodel.md) | `saved_model` | `yolov8n-pose_saved_model/` | ✅ | `imgsz`, `keras`, `int8`, `batch` |
|
| [TF SavedModel](../integrations/tf-savedmodel.md) | `saved_model` | `yolov8n-pose_saved_model/` | ✅ | `imgsz`, `keras`, `int8`, `batch` |
|
||||||
| [TF GraphDef](../integrations/tf-graphdef.md) | `pb` | `yolov8n-pose.pb` | ❌ | `imgsz`, `batch` |
|
| [TF GraphDef](../integrations/tf-graphdef.md) | `pb` | `yolov8n-pose.pb` | ❌ | `imgsz`, `batch` |
|
||||||
| [TF Lite](../integrations/tflite.md) | `tflite` | `yolov8n-pose.tflite` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
| [TF Lite](../integrations/tflite.md) | `tflite` | `yolov8n-pose.tflite` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
||||||
| [TF Edge TPU](../integrations/edge-tpu.md) | `edgetpu` | `yolov8n-pose_edgetpu.tflite` | ✅ | `imgsz`, `batch` |
|
| [TF Edge TPU](../integrations/edge-tpu.md) | `edgetpu` | `yolov8n-pose_edgetpu.tflite` | ✅ | `imgsz`, `batch` |
|
||||||
| [TF.js](../integrations/tfjs.md) | `tfjs` | `yolov8n-pose_web_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
| [TF.js](../integrations/tfjs.md) | `tfjs` | `yolov8n-pose_web_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
||||||
| [PaddlePaddle](../integrations/paddlepaddle.md) | `paddle` | `yolov8n-pose_paddle_model/` | ✅ | `imgsz`, `batch` |
|
| [PaddlePaddle](../integrations/paddlepaddle.md) | `paddle` | `yolov8n-pose_paddle_model/` | ✅ | `imgsz`, `batch` |
|
||||||
| [NCNN](../integrations/ncnn.md) | `ncnn` | `yolov8n-pose_ncnn_model/` | ✅ | `imgsz`, `half`, `batch` |
|
| [NCNN](../integrations/ncnn.md) | `ncnn` | `yolov8n-pose_ncnn_model/` | ✅ | `imgsz`, `half`, `batch` |
|
||||||
|
|
||||||
See full `export` details in the [Export](../modes/export.md) page.
|
See full `export` details in the [Export](../modes/export.md) page.
|
||||||
|
|
|
||||||
|
|
@ -170,18 +170,18 @@ Available YOLOv8-seg export formats are in the table below. You can export to an
|
||||||
|
|
||||||
| Format | `format` Argument | Model | Metadata | Arguments |
|
| Format | `format` Argument | Model | Metadata | Arguments |
|
||||||
|---------------------------------------------------|-------------------|-------------------------------|----------|----------------------------------------------------------------------|
|
|---------------------------------------------------|-------------------|-------------------------------|----------|----------------------------------------------------------------------|
|
||||||
| [PyTorch](https://pytorch.org/) | - | `yolov8n-seg.pt` | ✅ | - |
|
| [PyTorch](https://pytorch.org/) | - | `yolov8n-seg.pt` | ✅ | - |
|
||||||
| [TorchScript](../integrations/torchscript.md) | `torchscript` | `yolov8n-seg.torchscript` | ✅ | `imgsz`, `optimize`, `batch` |
|
| [TorchScript](../integrations/torchscript.md) | `torchscript` | `yolov8n-seg.torchscript` | ✅ | `imgsz`, `optimize`, `batch` |
|
||||||
| [ONNX](../integrations/onnx.md) | `onnx` | `yolov8n-seg.onnx` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `opset`, `batch` |
|
| [ONNX](../integrations/onnx.md) | `onnx` | `yolov8n-seg.onnx` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `opset`, `batch` |
|
||||||
| [OpenVINO](../integrations/openvino.md) | `openvino` | `yolov8n-seg_openvino_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
| [OpenVINO](../integrations/openvino.md) | `openvino` | `yolov8n-seg_openvino_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
||||||
| [TensorRT](../integrations/tensorrt.md) | `engine` | `yolov8n-seg.engine` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `workspace`, `int8`, `batch` |
|
| [TensorRT](../integrations/tensorrt.md) | `engine` | `yolov8n-seg.engine` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `workspace`, `int8`, `batch` |
|
||||||
| [CoreML](../integrations/coreml.md) | `coreml` | `yolov8n-seg.mlpackage` | ✅ | `imgsz`, `half`, `int8`, `nms`, `batch` |
|
| [CoreML](../integrations/coreml.md) | `coreml` | `yolov8n-seg.mlpackage` | ✅ | `imgsz`, `half`, `int8`, `nms`, `batch` |
|
||||||
| [TF SavedModel](../integrations/tf-savedmodel.md) | `saved_model` | `yolov8n-seg_saved_model/` | ✅ | `imgsz`, `keras`, `int8`, `batch` |
|
| [TF SavedModel](../integrations/tf-savedmodel.md) | `saved_model` | `yolov8n-seg_saved_model/` | ✅ | `imgsz`, `keras`, `int8`, `batch` |
|
||||||
| [TF GraphDef](../integrations/tf-graphdef.md) | `pb` | `yolov8n-seg.pb` | ❌ | `imgsz`, `batch` |
|
| [TF GraphDef](../integrations/tf-graphdef.md) | `pb` | `yolov8n-seg.pb` | ❌ | `imgsz`, `batch` |
|
||||||
| [TF Lite](../integrations/tflite.md) | `tflite` | `yolov8n-seg.tflite` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
| [TF Lite](../integrations/tflite.md) | `tflite` | `yolov8n-seg.tflite` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
||||||
| [TF Edge TPU](../integrations/edge-tpu.md) | `edgetpu` | `yolov8n-seg_edgetpu.tflite` | ✅ | `imgsz`, `batch` |
|
| [TF Edge TPU](../integrations/edge-tpu.md) | `edgetpu` | `yolov8n-seg_edgetpu.tflite` | ✅ | `imgsz`, `batch` |
|
||||||
| [TF.js](../integrations/tfjs.md) | `tfjs` | `yolov8n-seg_web_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
| [TF.js](../integrations/tfjs.md) | `tfjs` | `yolov8n-seg_web_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
||||||
| [PaddlePaddle](../integrations/paddlepaddle.md) | `paddle` | `yolov8n-seg_paddle_model/` | ✅ | `imgsz`, `batch` |
|
| [PaddlePaddle](../integrations/paddlepaddle.md) | `paddle` | `yolov8n-seg_paddle_model/` | ✅ | `imgsz`, `batch` |
|
||||||
| [NCNN](../integrations/ncnn.md) | `ncnn` | `yolov8n-seg_ncnn_model/` | ✅ | `imgsz`, `half`, `batch` |
|
| [NCNN](../integrations/ncnn.md) | `ncnn` | `yolov8n-seg_ncnn_model/` | ✅ | `imgsz`, `half`, `batch` |
|
||||||
|
|
||||||
See full `export` details in the [Export](../modes/export.md) page.
|
See full `export` details in the [Export](../modes/export.md) page.
|
||||||
|
|
|
||||||
|
|
@ -172,19 +172,19 @@ Available YOLOv8 export formats are in the table below. You can export to any fo
|
||||||
|
|
||||||
| Format | `format` Argument | Model | Metadata | Arguments |
|
| Format | `format` Argument | Model | Metadata | Arguments |
|
||||||
|---------------------------------------------------|-------------------|---------------------------|----------|----------------------------------------------------------------------|
|
|---------------------------------------------------|-------------------|---------------------------|----------|----------------------------------------------------------------------|
|
||||||
| [PyTorch](https://pytorch.org/) | - | `yolov8n.pt` | ✅ | - |
|
| [PyTorch](https://pytorch.org/) | - | `yolov8n.pt` | ✅ | - |
|
||||||
| [TorchScript](../integrations/torchscript.md) | `torchscript` | `yolov8n.torchscript` | ✅ | `imgsz`, `optimize`, `batch` |
|
| [TorchScript](../integrations/torchscript.md) | `torchscript` | `yolov8n.torchscript` | ✅ | `imgsz`, `optimize`, `batch` |
|
||||||
| [ONNX](../integrations/onnx.md) | `onnx` | `yolov8n.onnx` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `opset`, `batch` |
|
| [ONNX](../integrations/onnx.md) | `onnx` | `yolov8n.onnx` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `opset`, `batch` |
|
||||||
| [OpenVINO](../integrations/openvino.md) | `openvino` | `yolov8n_openvino_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
| [OpenVINO](../integrations/openvino.md) | `openvino` | `yolov8n_openvino_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
||||||
| [TensorRT](../integrations/tensorrt.md) | `engine` | `yolov8n.engine` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `workspace`, `int8`, `batch` |
|
| [TensorRT](../integrations/tensorrt.md) | `engine` | `yolov8n.engine` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `workspace`, `int8`, `batch` |
|
||||||
| [CoreML](../integrations/coreml.md) | `coreml` | `yolov8n.mlpackage` | ✅ | `imgsz`, `half`, `int8`, `nms`, `batch` |
|
| [CoreML](../integrations/coreml.md) | `coreml` | `yolov8n.mlpackage` | ✅ | `imgsz`, `half`, `int8`, `nms`, `batch` |
|
||||||
| [TF SavedModel](../integrations/tf-savedmodel.md) | `saved_model` | `yolov8n_saved_model/` | ✅ | `imgsz`, `keras`, `int8`, `batch` |
|
| [TF SavedModel](../integrations/tf-savedmodel.md) | `saved_model` | `yolov8n_saved_model/` | ✅ | `imgsz`, `keras`, `int8`, `batch` |
|
||||||
| [TF GraphDef](../integrations/tf-graphdef.md) | `pb` | `yolov8n.pb` | ❌ | `imgsz`, `batch` |
|
| [TF GraphDef](../integrations/tf-graphdef.md) | `pb` | `yolov8n.pb` | ❌ | `imgsz`, `batch` |
|
||||||
| [TF Lite](../integrations/tflite.md) | `tflite` | `yolov8n.tflite` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
| [TF Lite](../integrations/tflite.md) | `tflite` | `yolov8n.tflite` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
||||||
| [TF Edge TPU](../integrations/edge-tpu.md) | `edgetpu` | `yolov8n_edgetpu.tflite` | ✅ | `imgsz`, `batch` |
|
| [TF Edge TPU](../integrations/edge-tpu.md) | `edgetpu` | `yolov8n_edgetpu.tflite` | ✅ | `imgsz`, `batch` |
|
||||||
| [TF.js](../integrations/tfjs.md) | `tfjs` | `yolov8n_web_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
| [TF.js](../integrations/tfjs.md) | `tfjs` | `yolov8n_web_model/` | ✅ | `imgsz`, `half`, `int8`, `batch` |
|
||||||
| [PaddlePaddle](../integrations/paddlepaddle.md) | `paddle` | `yolov8n_paddle_model/` | ✅ | `imgsz`, `batch` |
|
| [PaddlePaddle](../integrations/paddlepaddle.md) | `paddle` | `yolov8n_paddle_model/` | ✅ | `imgsz`, `batch` |
|
||||||
| [NCNN](../integrations/ncnn.md) | `ncnn` | `yolov8n_ncnn_model/` | ✅ | `imgsz`, `half`, `batch` |
|
| [NCNN](../integrations/ncnn.md) | `ncnn` | `yolov8n_ncnn_model/` | ✅ | `imgsz`, `half`, `batch` |
|
||||||
|
|
||||||
See full `export` details in the [Export](../modes/export.md) page.
|
See full `export` details in the [Export](../modes/export.md) page.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,36 +3,36 @@
|
||||||
# 654 layers, 27897120 parameters, 159.4 GFLOPs
|
# 654 layers, 27897120 parameters, 159.4 GFLOPs
|
||||||
|
|
||||||
# parameters
|
# parameters
|
||||||
nc: 80 # number of classes
|
nc: 80 # number of classes
|
||||||
|
|
||||||
# gelan backbone
|
# gelan backbone
|
||||||
backbone:
|
backbone:
|
||||||
- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
|
- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
|
||||||
- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
|
- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
|
||||||
- [-1, 1, RepNCSPELAN4, [256, 128, 64, 1]] # 2
|
- [-1, 1, RepNCSPELAN4, [256, 128, 64, 1]] # 2
|
||||||
- [-1, 1, ADown, [256]] # 3-P3/8
|
- [-1, 1, ADown, [256]] # 3-P3/8
|
||||||
- [-1, 1, RepNCSPELAN4, [512, 256, 128, 1]] # 4
|
- [-1, 1, RepNCSPELAN4, [512, 256, 128, 1]] # 4
|
||||||
- [-1, 1, ADown, [512]] # 5-P4/16
|
- [-1, 1, ADown, [512]] # 5-P4/16
|
||||||
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 1]] # 6
|
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 1]] # 6
|
||||||
- [-1, 1, ADown, [512]] # 7-P5/32
|
- [-1, 1, ADown, [512]] # 7-P5/32
|
||||||
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 1]] # 8
|
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 1]] # 8
|
||||||
- [-1, 1, SPPELAN, [512, 256]] # 9
|
- [-1, 1, SPPELAN, [512, 256]] # 9
|
||||||
|
|
||||||
head:
|
head:
|
||||||
- [-1, 1, nn.Upsample, [None, 2, 'nearest']]
|
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
||||||
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
|
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
|
||||||
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 1]] # 12
|
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 1]] # 12
|
||||||
|
|
||||||
- [-1, 1, nn.Upsample, [None, 2, 'nearest']]
|
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
||||||
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
|
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
|
||||||
- [-1, 1, RepNCSPELAN4, [256, 256, 128, 1]] # 15 (P3/8-small)
|
- [-1, 1, RepNCSPELAN4, [256, 256, 128, 1]] # 15 (P3/8-small)
|
||||||
|
|
||||||
- [-1, 1, ADown, [256]]
|
- [-1, 1, ADown, [256]]
|
||||||
- [[-1, 12], 1, Concat, [1]] # cat head P4
|
- [[-1, 12], 1, Concat, [1]] # cat head P4
|
||||||
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 1]] # 18 (P4/16-medium)
|
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 1]] # 18 (P4/16-medium)
|
||||||
|
|
||||||
- [-1, 1, ADown, [512]]
|
- [-1, 1, ADown, [512]]
|
||||||
- [[-1, 9], 1, Concat, [1]] # cat head P5
|
- [[-1, 9], 1, Concat, [1]] # cat head P5
|
||||||
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 1]] # 21 (P5/32-large)
|
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 1]] # 21 (P5/32-large)
|
||||||
|
|
||||||
- [[15, 18, 21], 1, Segment, [nc, 32, 256]] # Segment(P3, P4, P5)
|
- [[15, 18, 21], 1, Segment, [nc, 32, 256]] # Segment(P3, P4, P5)
|
||||||
|
|
|
||||||
|
|
@ -3,36 +3,36 @@
|
||||||
# 618 layers, 25590912 parameters, 104.0 GFLOPs
|
# 618 layers, 25590912 parameters, 104.0 GFLOPs
|
||||||
|
|
||||||
# parameters
|
# parameters
|
||||||
nc: 80 # number of classes
|
nc: 80 # number of classes
|
||||||
|
|
||||||
# gelan backbone
|
# gelan backbone
|
||||||
backbone:
|
backbone:
|
||||||
- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
|
- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
|
||||||
- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
|
- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
|
||||||
- [-1, 1, RepNCSPELAN4, [256, 128, 64, 1]] # 2
|
- [-1, 1, RepNCSPELAN4, [256, 128, 64, 1]] # 2
|
||||||
- [-1, 1, ADown, [256]] # 3-P3/8
|
- [-1, 1, ADown, [256]] # 3-P3/8
|
||||||
- [-1, 1, RepNCSPELAN4, [512, 256, 128, 1]] # 4
|
- [-1, 1, RepNCSPELAN4, [512, 256, 128, 1]] # 4
|
||||||
- [-1, 1, ADown, [512]] # 5-P4/16
|
- [-1, 1, ADown, [512]] # 5-P4/16
|
||||||
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 1]] # 6
|
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 1]] # 6
|
||||||
- [-1, 1, ADown, [512]] # 7-P5/32
|
- [-1, 1, ADown, [512]] # 7-P5/32
|
||||||
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 1]] # 8
|
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 1]] # 8
|
||||||
- [-1, 1, SPPELAN, [512, 256]] # 9
|
- [-1, 1, SPPELAN, [512, 256]] # 9
|
||||||
|
|
||||||
head:
|
head:
|
||||||
- [-1, 1, nn.Upsample, [None, 2, 'nearest']]
|
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
||||||
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
|
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
|
||||||
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 1]] # 12
|
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 1]] # 12
|
||||||
|
|
||||||
- [-1, 1, nn.Upsample, [None, 2, 'nearest']]
|
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
||||||
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
|
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
|
||||||
- [-1, 1, RepNCSPELAN4, [256, 256, 128, 1]] # 15 (P3/8-small)
|
- [-1, 1, RepNCSPELAN4, [256, 256, 128, 1]] # 15 (P3/8-small)
|
||||||
|
|
||||||
- [-1, 1, ADown, [256]]
|
- [-1, 1, ADown, [256]]
|
||||||
- [[-1, 12], 1, Concat, [1]] # cat head P4
|
- [[-1, 12], 1, Concat, [1]] # cat head P4
|
||||||
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 1]] # 18 (P4/16-medium)
|
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 1]] # 18 (P4/16-medium)
|
||||||
|
|
||||||
- [-1, 1, ADown, [512]]
|
- [-1, 1, ADown, [512]]
|
||||||
- [[-1, 9], 1, Concat, [1]] # cat head P5
|
- [[-1, 9], 1, Concat, [1]] # cat head P5
|
||||||
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 1]] # 21 (P5/32-large)
|
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 1]] # 21 (P5/32-large)
|
||||||
|
|
||||||
- [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5)
|
- [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5)
|
||||||
|
|
|
||||||
|
|
@ -3,20 +3,20 @@
|
||||||
# 1261 layers, 60512800 parameters, 248.4 GFLOPs
|
# 1261 layers, 60512800 parameters, 248.4 GFLOPs
|
||||||
|
|
||||||
# parameters
|
# parameters
|
||||||
nc: 80 # number of classes
|
nc: 80 # number of classes
|
||||||
|
|
||||||
# gelan backbone
|
# gelan backbone
|
||||||
backbone:
|
backbone:
|
||||||
- [-1, 1, Silence, []]
|
- [-1, 1, Silence, []]
|
||||||
- [-1, 1, Conv, [64, 3, 2]] # 1-P1/2
|
- [-1, 1, Conv, [64, 3, 2]] # 1-P1/2
|
||||||
- [-1, 1, Conv, [128, 3, 2]] # 2-P2/4
|
- [-1, 1, Conv, [128, 3, 2]] # 2-P2/4
|
||||||
- [-1, 1, RepNCSPELAN4, [256, 128, 64, 2]] # 3
|
- [-1, 1, RepNCSPELAN4, [256, 128, 64, 2]] # 3
|
||||||
- [-1, 1, ADown, [256]] # 4-P3/8
|
- [-1, 1, ADown, [256]] # 4-P3/8
|
||||||
- [-1, 1, RepNCSPELAN4, [512, 256, 128, 2]] # 5
|
- [-1, 1, RepNCSPELAN4, [512, 256, 128, 2]] # 5
|
||||||
- [-1, 1, ADown, [512]] # 6-P4/16
|
- [-1, 1, ADown, [512]] # 6-P4/16
|
||||||
- [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 7
|
- [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 7
|
||||||
- [-1, 1, ADown, [1024]] # 8-P5/32
|
- [-1, 1, ADown, [1024]] # 8-P5/32
|
||||||
- [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 9
|
- [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 9
|
||||||
|
|
||||||
- [1, 1, CBLinear, [[64]]] # 10
|
- [1, 1, CBLinear, [[64]]] # 10
|
||||||
- [3, 1, CBLinear, [[64, 128]]] # 11
|
- [3, 1, CBLinear, [[64, 128]]] # 11
|
||||||
|
|
@ -24,38 +24,38 @@ backbone:
|
||||||
- [7, 1, CBLinear, [[64, 128, 256, 512]]] # 13
|
- [7, 1, CBLinear, [[64, 128, 256, 512]]] # 13
|
||||||
- [9, 1, CBLinear, [[64, 128, 256, 512, 1024]]] # 14
|
- [9, 1, CBLinear, [[64, 128, 256, 512, 1024]]] # 14
|
||||||
|
|
||||||
- [0, 1, Conv, [64, 3, 2]] # 15-P1/2
|
- [0, 1, Conv, [64, 3, 2]] # 15-P1/2
|
||||||
- [[10, 11, 12, 13, 14, -1], 1, CBFuse, [[0, 0, 0, 0, 0]]] # 16
|
- [[10, 11, 12, 13, 14, -1], 1, CBFuse, [[0, 0, 0, 0, 0]]] # 16
|
||||||
- [-1, 1, Conv, [128, 3, 2]] # 17-P2/4
|
- [-1, 1, Conv, [128, 3, 2]] # 17-P2/4
|
||||||
- [[11, 12, 13, 14, -1], 1, CBFuse, [[1, 1, 1, 1]]] # 18
|
- [[11, 12, 13, 14, -1], 1, CBFuse, [[1, 1, 1, 1]]] # 18
|
||||||
- [-1, 1, RepNCSPELAN4, [256, 128, 64, 2]] # 19
|
- [-1, 1, RepNCSPELAN4, [256, 128, 64, 2]] # 19
|
||||||
- [-1, 1, ADown, [256]] # 20-P3/8
|
- [-1, 1, ADown, [256]] # 20-P3/8
|
||||||
- [[12, 13, 14, -1], 1, CBFuse, [[2, 2, 2]]] # 21
|
- [[12, 13, 14, -1], 1, CBFuse, [[2, 2, 2]]] # 21
|
||||||
- [-1, 1, RepNCSPELAN4, [512, 256, 128, 2]] # 22
|
- [-1, 1, RepNCSPELAN4, [512, 256, 128, 2]] # 22
|
||||||
- [-1, 1, ADown, [512]] # 23-P4/16
|
- [-1, 1, ADown, [512]] # 23-P4/16
|
||||||
- [[13, 14, -1], 1, CBFuse, [[3, 3]]] # 24
|
- [[13, 14, -1], 1, CBFuse, [[3, 3]]] # 24
|
||||||
- [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 25
|
- [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 25
|
||||||
- [-1, 1, ADown, [1024]] # 26-P5/32
|
- [-1, 1, ADown, [1024]] # 26-P5/32
|
||||||
- [[14, -1], 1, CBFuse, [[4]]] # 27
|
- [[14, -1], 1, CBFuse, [[4]]] # 27
|
||||||
- [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 28
|
- [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 28
|
||||||
- [-1, 1, SPPELAN, [512, 256]] # 29
|
- [-1, 1, SPPELAN, [512, 256]] # 29
|
||||||
|
|
||||||
# gelan head
|
# gelan head
|
||||||
head:
|
head:
|
||||||
- [-1, 1, nn.Upsample, [None, 2, 'nearest']]
|
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
||||||
- [[-1, 25], 1, Concat, [1]] # cat backbone P4
|
- [[-1, 25], 1, Concat, [1]] # cat backbone P4
|
||||||
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 2]] # 32
|
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 2]] # 32
|
||||||
|
|
||||||
- [-1, 1, nn.Upsample, [None, 2, 'nearest']]
|
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
||||||
- [[-1, 22], 1, Concat, [1]] # cat backbone P3
|
- [[-1, 22], 1, Concat, [1]] # cat backbone P3
|
||||||
- [-1, 1, RepNCSPELAN4, [256, 256, 128, 2]] # 35 (P3/8-small)
|
- [-1, 1, RepNCSPELAN4, [256, 256, 128, 2]] # 35 (P3/8-small)
|
||||||
|
|
||||||
- [-1, 1, ADown, [256]]
|
- [-1, 1, ADown, [256]]
|
||||||
- [[-1, 32], 1, Concat, [1]] # cat head P4
|
- [[-1, 32], 1, Concat, [1]] # cat head P4
|
||||||
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 2]] # 38 (P4/16-medium)
|
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 2]] # 38 (P4/16-medium)
|
||||||
|
|
||||||
- [-1, 1, ADown, [512]]
|
- [-1, 1, ADown, [512]]
|
||||||
- [[-1, 29], 1, Concat, [1]] # cat head P5
|
- [[-1, 29], 1, Concat, [1]] # cat head P5
|
||||||
- [-1, 1, RepNCSPELAN4, [512, 1024, 512, 2]] # 41 (P5/32-large)
|
- [-1, 1, RepNCSPELAN4, [512, 1024, 512, 2]] # 41 (P5/32-large)
|
||||||
|
|
||||||
- [[35, 38, 41], 1, Segment, [nc, 32, 256]] # Segment (P3, P4, P5)
|
- [[35, 38, 41], 1, Segment, [nc, 32, 256]] # Segment (P3, P4, P5)
|
||||||
|
|
|
||||||
|
|
@ -3,20 +3,20 @@
|
||||||
# 1225 layers, 58206592 parameters, 193.0 GFLOPs
|
# 1225 layers, 58206592 parameters, 193.0 GFLOPs
|
||||||
|
|
||||||
# parameters
|
# parameters
|
||||||
nc: 80 # number of classes
|
nc: 80 # number of classes
|
||||||
|
|
||||||
# gelan backbone
|
# gelan backbone
|
||||||
backbone:
|
backbone:
|
||||||
- [-1, 1, Silence, []]
|
- [-1, 1, Silence, []]
|
||||||
- [-1, 1, Conv, [64, 3, 2]] # 1-P1/2
|
- [-1, 1, Conv, [64, 3, 2]] # 1-P1/2
|
||||||
- [-1, 1, Conv, [128, 3, 2]] # 2-P2/4
|
- [-1, 1, Conv, [128, 3, 2]] # 2-P2/4
|
||||||
- [-1, 1, RepNCSPELAN4, [256, 128, 64, 2]] # 3
|
- [-1, 1, RepNCSPELAN4, [256, 128, 64, 2]] # 3
|
||||||
- [-1, 1, ADown, [256]] # 4-P3/8
|
- [-1, 1, ADown, [256]] # 4-P3/8
|
||||||
- [-1, 1, RepNCSPELAN4, [512, 256, 128, 2]] # 5
|
- [-1, 1, RepNCSPELAN4, [512, 256, 128, 2]] # 5
|
||||||
- [-1, 1, ADown, [512]] # 6-P4/16
|
- [-1, 1, ADown, [512]] # 6-P4/16
|
||||||
- [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 7
|
- [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 7
|
||||||
- [-1, 1, ADown, [1024]] # 8-P5/32
|
- [-1, 1, ADown, [1024]] # 8-P5/32
|
||||||
- [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 9
|
- [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 9
|
||||||
|
|
||||||
- [1, 1, CBLinear, [[64]]] # 10
|
- [1, 1, CBLinear, [[64]]] # 10
|
||||||
- [3, 1, CBLinear, [[64, 128]]] # 11
|
- [3, 1, CBLinear, [[64, 128]]] # 11
|
||||||
|
|
@ -24,38 +24,38 @@ backbone:
|
||||||
- [7, 1, CBLinear, [[64, 128, 256, 512]]] # 13
|
- [7, 1, CBLinear, [[64, 128, 256, 512]]] # 13
|
||||||
- [9, 1, CBLinear, [[64, 128, 256, 512, 1024]]] # 14
|
- [9, 1, CBLinear, [[64, 128, 256, 512, 1024]]] # 14
|
||||||
|
|
||||||
- [0, 1, Conv, [64, 3, 2]] # 15-P1/2
|
- [0, 1, Conv, [64, 3, 2]] # 15-P1/2
|
||||||
- [[10, 11, 12, 13, 14, -1], 1, CBFuse, [[0, 0, 0, 0, 0]]] # 16
|
- [[10, 11, 12, 13, 14, -1], 1, CBFuse, [[0, 0, 0, 0, 0]]] # 16
|
||||||
- [-1, 1, Conv, [128, 3, 2]] # 17-P2/4
|
- [-1, 1, Conv, [128, 3, 2]] # 17-P2/4
|
||||||
- [[11, 12, 13, 14, -1], 1, CBFuse, [[1, 1, 1, 1]]] # 18
|
- [[11, 12, 13, 14, -1], 1, CBFuse, [[1, 1, 1, 1]]] # 18
|
||||||
- [-1, 1, RepNCSPELAN4, [256, 128, 64, 2]] # 19
|
- [-1, 1, RepNCSPELAN4, [256, 128, 64, 2]] # 19
|
||||||
- [-1, 1, ADown, [256]] # 20-P3/8
|
- [-1, 1, ADown, [256]] # 20-P3/8
|
||||||
- [[12, 13, 14, -1], 1, CBFuse, [[2, 2, 2]]] # 21
|
- [[12, 13, 14, -1], 1, CBFuse, [[2, 2, 2]]] # 21
|
||||||
- [-1, 1, RepNCSPELAN4, [512, 256, 128, 2]] # 22
|
- [-1, 1, RepNCSPELAN4, [512, 256, 128, 2]] # 22
|
||||||
- [-1, 1, ADown, [512]] # 23-P4/16
|
- [-1, 1, ADown, [512]] # 23-P4/16
|
||||||
- [[13, 14, -1], 1, CBFuse, [[3, 3]]] # 24
|
- [[13, 14, -1], 1, CBFuse, [[3, 3]]] # 24
|
||||||
- [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 25
|
- [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 25
|
||||||
- [-1, 1, ADown, [1024]] # 26-P5/32
|
- [-1, 1, ADown, [1024]] # 26-P5/32
|
||||||
- [[14, -1], 1, CBFuse, [[4]]] # 27
|
- [[14, -1], 1, CBFuse, [[4]]] # 27
|
||||||
- [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 28
|
- [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 28
|
||||||
- [-1, 1, SPPELAN, [512, 256]] # 29
|
- [-1, 1, SPPELAN, [512, 256]] # 29
|
||||||
|
|
||||||
# gelan head
|
# gelan head
|
||||||
head:
|
head:
|
||||||
- [-1, 1, nn.Upsample, [None, 2, 'nearest']]
|
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
||||||
- [[-1, 25], 1, Concat, [1]] # cat backbone P4
|
- [[-1, 25], 1, Concat, [1]] # cat backbone P4
|
||||||
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 2]] # 32
|
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 2]] # 32
|
||||||
|
|
||||||
- [-1, 1, nn.Upsample, [None, 2, 'nearest']]
|
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
||||||
- [[-1, 22], 1, Concat, [1]] # cat backbone P3
|
- [[-1, 22], 1, Concat, [1]] # cat backbone P3
|
||||||
- [-1, 1, RepNCSPELAN4, [256, 256, 128, 2]] # 35 (P3/8-small)
|
- [-1, 1, RepNCSPELAN4, [256, 256, 128, 2]] # 35 (P3/8-small)
|
||||||
|
|
||||||
- [-1, 1, ADown, [256]]
|
- [-1, 1, ADown, [256]]
|
||||||
- [[-1, 32], 1, Concat, [1]] # cat head P4
|
- [[-1, 32], 1, Concat, [1]] # cat head P4
|
||||||
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 2]] # 38 (P4/16-medium)
|
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 2]] # 38 (P4/16-medium)
|
||||||
|
|
||||||
- [-1, 1, ADown, [512]]
|
- [-1, 1, ADown, [512]]
|
||||||
- [[-1, 29], 1, Concat, [1]] # cat head P5
|
- [[-1, 29], 1, Concat, [1]] # cat head P5
|
||||||
- [-1, 1, RepNCSPELAN4, [512, 1024, 512, 2]] # 41 (P5/32-large)
|
- [-1, 1, RepNCSPELAN4, [512, 1024, 512, 2]] # 41 (P5/32-large)
|
||||||
|
|
||||||
- [[35, 38, 41], 1, Detect, [nc]] # Detect(P3, P4, P5)
|
- [[35, 38, 41], 1, Detect, [nc]] # Detect(P3, P4, P5)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue