Add yolov8 model files
Browse files- README.md +196 -0
- prepare_model.py +276 -0
- yolov8m_config.yaml +146 -0
- yolov8n_config.yaml +146 -0
README.md
ADDED
|
@@ -0,0 +1,196 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: agpl-3.0
|
| 3 |
+
tags:
|
| 4 |
+
- vision
|
| 5 |
+
- image-detection
|
| 6 |
+
datasets:
|
| 7 |
+
- COCO
|
| 8 |
+
---
|
| 9 |
+
|
| 10 |
+
<div align="center">
|
| 11 |
+
|
| 12 |
+
# YOLOv8 for TI EdgeAI
|
| 13 |
+
|
| 14 |
+
### Real-Time Anchor-Free Object Detector
|
| 15 |
+
|
| 16 |
+
[](https://opensource.org/licenses/AGPL-3.0)
|
| 17 |
+
[](https://onnx.ai/)
|
| 18 |
+
[](https://github.com/TexasInstruments/edgeai)
|
| 19 |
+
[](https://cocodataset.org/)
|
| 20 |
+
|
| 21 |
+
</div>
|
| 22 |
+
|
| 23 |
+
---
|
| 24 |
+
|
| 25 |
+
## Overview
|
| 26 |
+
|
| 27 |
+
**YOLOv8** is Ultralytics' real-time object detector, building on the advancements of previous YOLO versions with an **anchor-free split Ultralytics head** design that improves accuracy and speeds up the detection process compared to earlier anchor-based approaches. It combines a state-of-the-art backbone and neck architecture for improved feature extraction with an optimized accuracy-speed trade-off, making it suitable for real-time detection across a wide range of applications.
|
| 28 |
+
|
| 29 |
+
YOLOv8 is offered in five size variants — n, s, m, l, x — spanning a wide accuracy-speed trade-off, from resource-constrained edge devices up to high-throughput deployments. This model is optimized for **Texas Instruments MPU (Microprocessor Unit) devices**, targeting edge computer vision use cases such as industrial automation, smart cameras, robotics, and IoT vision.
|
| 30 |
+
|
| 31 |
+
---
|
| 32 |
+
|
| 33 |
+
## Model Variants
|
| 34 |
+
|
| 35 |
+
| Model | Params (M) | Input Size | mAP[.5:.95]% | Validated Devices | Config |
|
| 36 |
+
|-------|------------|------------|--------------|--------------------|--------|
|
| 37 |
+
| `yolov8n` | 3.2 | 640×640 | 37.3 | TDA4VH, TDA4VL, TDA4AEN | [yolov8n_config.yaml](yolov8n_config.yaml) |
|
| 38 |
+
| `yolov8s` | 11.2 | 640×640 | 44.9 | N/A | N/A |
|
| 39 |
+
| `yolov8m` | 25.9 | 640×640 | 50.2 | TDA4VH, TDA4VL | [yolov8m_config.yaml](yolov8m_config.yaml) |
|
| 40 |
+
| `yolov8l` | 43.7 | 640×640 | 52.9 | N/A | N/A |
|
| 41 |
+
| `yolov8x` | 68.2 | 640×640 | 53.9 | N/A | N/A |
|
| 42 |
+
|
| 43 |
+
**Recommended for edge deployment:** `yolov8n` (best accuracy/compute trade-off, smallest footprint)
|
| 44 |
+
|
| 45 |
+
---
|
| 46 |
+
|
| 47 |
+
## Quick Start
|
| 48 |
+
|
| 49 |
+
### Prerequisites
|
| 50 |
+
|
| 51 |
+
```bash
|
| 52 |
+
pip install onnx>=1.22.0
|
| 53 |
+
pip install onnxruntime>=1.23.2
|
| 54 |
+
pip install ultralytics
|
| 55 |
+
```
|
| 56 |
+
|
| 57 |
+
For TI hardware deployment, also set up **[tidlrunner](https://github.com/TexasInstruments/edgeai-tidlrunner/blob/main/README.md)**.
|
| 58 |
+
|
| 59 |
+
If accessing this model from HuggingFace, clone the repository using the `hf` CLI:
|
| 60 |
+
|
| 61 |
+
```bash
|
| 62 |
+
hf download <REPO_ID> --local-dir <download_location>
|
| 63 |
+
```
|
| 64 |
+
|
| 65 |
+
### Export the Model
|
| 66 |
+
|
| 67 |
+
```bash
|
| 68 |
+
# Export the default model (yolov8n)
|
| 69 |
+
python prepare_model.py
|
| 70 |
+
|
| 71 |
+
# Export specific variants
|
| 72 |
+
python prepare_model.py --models yolov8n yolov8m
|
| 73 |
+
|
| 74 |
+
# Export all variants
|
| 75 |
+
python prepare_model.py --models all
|
| 76 |
+
|
| 77 |
+
# List all supported variants
|
| 78 |
+
python prepare_model.py --list-models
|
| 79 |
+
|
| 80 |
+
# Export with a custom output directory or export format
|
| 81 |
+
python prepare_model.py --models yolov8n --output-dir ./exports --format onnx
|
| 82 |
+
```
|
| 83 |
+
|
| 84 |
+
The script automatically:
|
| 85 |
+
- Installs required runtime dependencies (`onnx`, `ultralytics`, `onnxslim`, `onnxruntime`)
|
| 86 |
+
- Loads the requested Ultralytics YOLOv8 checkpoint (`.pt`), downloading it on first use
|
| 87 |
+
- Exports the model to ONNX (opset 19 by default, configurable via `--opset`)
|
| 88 |
+
- Supports alternate export formats (`torchscript`, `tflite`, `pb`, `saved_model`, `coreml`, and more) via `--format`
|
| 89 |
+
|
| 90 |
+
### Compile and Infer uing edgeai-tidlrunner
|
| 91 |
+
|
| 92 |
+
> **Note:** Run the commands below from inside the `tidlrunner` directory (the cloned [edgeai-tidlrunner](https://github.com/TexasInstruments/edgeai-tidlrunner) repository), with `--config_path` pointing to this model's config file.
|
| 93 |
+
|
| 94 |
+
**Compile using edgeai-tidlrunner - on PC**
|
| 95 |
+
|
| 96 |
+
```bash
|
| 97 |
+
cd /path/to/edgeai-tidlrunner
|
| 98 |
+
tidlrunner-cli compile --target_device J784S4 \
|
| 99 |
+
--config_path /path/to/yolov8n_config.yaml
|
| 100 |
+
```
|
| 101 |
+
|
| 102 |
+
**Run Inference Benchmark - on device**
|
| 103 |
+
|
| 104 |
+
```bash
|
| 105 |
+
cd /path/to/edgeai-tidlrunner
|
| 106 |
+
tidlrunner-cli infer --target_device J784S4 \
|
| 107 |
+
--config_path /path/to/yolov8n_config.yaml
|
| 108 |
+
```
|
| 109 |
+
|
| 110 |
+
To evaluate accuracy instead, replace `infer` with `evaluate` in the command above.
|
| 111 |
+
|
| 112 |
+
### Compile and Infer using edgeai-tidl-tools (Advanced):
|
| 113 |
+
|
| 114 |
+
Follow the instructions at https://github.com/TexasInstruments/edgeai-tidl-tools
|
| 115 |
+
|
| 116 |
+
### Deploy using edgeai-tidl-tools:
|
| 117 |
+
|
| 118 |
+
Deplyment can be done using **[edgeai-tidl-tools](https://github.com/TexasInstruments/edgeai-tidl-tools)**. For ONNX models, onnxruntime-tidl with TIDL acceleration can be used. Consult the documentation of edgeai-tidl-tools for more details.
|
| 119 |
+
|
| 120 |
+
---
|
| 121 |
+
|
| 122 |
+
## Citation
|
| 123 |
+
|
| 124 |
+
Ultralytics has not published a formal research paper for YOLOv8 due to the rapidly evolving nature of the models. If you use the YOLOv8 model or any other software from the Ultralytics repository in your work, please cite it using the following format:
|
| 125 |
+
|
| 126 |
+
```bibtex
|
| 127 |
+
@software{yolov8_ultralytics,
|
| 128 |
+
author = {Glenn Jocher and Ayush Chaurasia and Jing Qiu},
|
| 129 |
+
title = {Ultralytics YOLOv8},
|
| 130 |
+
version = {8.0.0},
|
| 131 |
+
year = {2023},
|
| 132 |
+
url = {https://github.com/ultralytics/ultralytics},
|
| 133 |
+
orcid = {0000-0001-5950-6979, 0000-0002-7603-6750, 0000-0003-3783-7069},
|
| 134 |
+
license = {AGPL-3.0}
|
| 135 |
+
}
|
| 136 |
+
```
|
| 137 |
+
|
| 138 |
+
---
|
| 139 |
+
|
| 140 |
+
## 🔗 Resources
|
| 141 |
+
|
| 142 |
+
| Resource | Link |
|
| 143 |
+
|----------|------|
|
| 144 |
+
| **Source Code** | [ultralytics/ultralytics](https://github.com/ultralytics/ultralytics) |
|
| 145 |
+
| **Documentation** | [YOLOv8 Docs](https://docs.ultralytics.com/models/yolov8/) |
|
| 146 |
+
| **edgeai-tidl-tools** | [GitHub](https://github.com/TexasInstruments/edgeai-tidl-tools) |
|
| 147 |
+
| **edgeai-tidlrunner** | [GitHub](https://github.com/TexasInstruments/edgeai-tidlrunner) |
|
| 148 |
+
| **EdgeAI SDK** | [Documentation](https://github.com/TexasInstruments/edgeai/blob/main/edgeai-mpu/readme_sdk.md) |
|
| 149 |
+
| **EdgeAI MPU Overview** | [GitHub](https://github.com/TexasInstruments/edgeai/tree/main/edgeai-mpu) |
|
| 150 |
+
| **TI EdgeAI Ecosystem** | [GitHub](https://github.com/TexasInstruments/edgeai) |
|
| 151 |
+
|
| 152 |
+
---
|
| 153 |
+
|
| 154 |
+
## Related Models
|
| 155 |
+
|
| 156 |
+
<table>
|
| 157 |
+
<tr>
|
| 158 |
+
<td align="center">
|
| 159 |
+
|
| 160 |
+
**YOLO11**
|
| 161 |
+
Newer Ultralytics generation
|
| 162 |
+
Improved accuracy/speed
|
| 163 |
+
|
| 164 |
+
</td>
|
| 165 |
+
<td align="center">
|
| 166 |
+
|
| 167 |
+
**YOLO26**
|
| 168 |
+
Latest Ultralytics generation
|
| 169 |
+
Unified, end-to-end detection
|
| 170 |
+
|
| 171 |
+
</td>
|
| 172 |
+
<td align="center">
|
| 173 |
+
|
| 174 |
+
**YOLOX**
|
| 175 |
+
Anchor-free YOLO variant
|
| 176 |
+
Decoupled head design
|
| 177 |
+
|
| 178 |
+
</td>
|
| 179 |
+
<td align="center">
|
| 180 |
+
|
| 181 |
+
**RTMDet**
|
| 182 |
+
CNN-based alternative
|
| 183 |
+
Real-time mmdetection model
|
| 184 |
+
|
| 185 |
+
</td>
|
| 186 |
+
</tr>
|
| 187 |
+
</table>
|
| 188 |
+
|
| 189 |
+
---
|
| 190 |
+
|
| 191 |
+
<div align="center">
|
| 192 |
+
|
| 193 |
+
**Maintained by:** Texas Instruments EdgeAI Team
|
| 194 |
+
**Last Updated:** August 2026
|
| 195 |
+
|
| 196 |
+
</div>
|
prepare_model.py
ADDED
|
@@ -0,0 +1,276 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright (c) 2018-2026, Texas Instruments
|
| 2 |
+
# All Rights Reserved.
|
| 3 |
+
#
|
| 4 |
+
# Redistribution and use in source and binary forms, with or without
|
| 5 |
+
# modification, are permitted provided that the following conditions are met:
|
| 6 |
+
#
|
| 7 |
+
# * Redistributions of source code must retain the above copyright notice, this
|
| 8 |
+
# list of conditions and the following disclaimer.
|
| 9 |
+
#
|
| 10 |
+
# * Redistributions in binary form must reproduce the above copyright notice,
|
| 11 |
+
# this list of conditions and the following disclaimer in the documentation
|
| 12 |
+
# and/or other materials provided with the distribution.
|
| 13 |
+
#
|
| 14 |
+
# * Neither the name of the copyright holder nor the names of its
|
| 15 |
+
# contributors may be used to endorse or promote products derived from
|
| 16 |
+
# this software without specific prior written permission.
|
| 17 |
+
#
|
| 18 |
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
| 19 |
+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
| 20 |
+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
| 21 |
+
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
| 22 |
+
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
| 23 |
+
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
| 24 |
+
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
| 25 |
+
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
| 26 |
+
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| 27 |
+
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| 28 |
+
|
| 29 |
+
|
| 30 |
+
# ---------------------------------------------------------------------------
|
| 31 |
+
# Script: prepare_model.py
|
| 32 |
+
#
|
| 33 |
+
# Purpose:
|
| 34 |
+
# Export one or more YOLOv8 model variants (n / s / m / l / x) to ONNX
|
| 35 |
+
# (or any other Ultralytics-supported format) using the Ultralytics Python
|
| 36 |
+
# API. Required packages (onnx, ultralytics) are installed automatically
|
| 37 |
+
# at runtime if they are not already present.
|
| 38 |
+
#
|
| 39 |
+
# Usage examples:
|
| 40 |
+
# # Export only yolov8n (default behaviour)
|
| 41 |
+
# python prepare_model.py
|
| 42 |
+
#
|
| 43 |
+
# # Export specific variants
|
| 44 |
+
# python prepare_model.py --models yolov8n yolov8s
|
| 45 |
+
#
|
| 46 |
+
# # Export all variants
|
| 47 |
+
# python prepare_model.py --models yolov8n yolov8s yolov8m yolov8l yolov8x
|
| 48 |
+
#
|
| 49 |
+
# # Export to a custom directory in TorchScript format
|
| 50 |
+
# python prepare_model.py --models yolov8n --format torchscript --output-dir ./exports
|
| 51 |
+
# ---------------------------------------------------------------------------
|
| 52 |
+
|
| 53 |
+
import argparse
|
| 54 |
+
from pathlib import Path
|
| 55 |
+
import sys
|
| 56 |
+
import subprocess
|
| 57 |
+
|
| 58 |
+
|
| 59 |
+
# ---------------------------------------------------------------------------
|
| 60 |
+
# Helper utilities
|
| 61 |
+
# ---------------------------------------------------------------------------
|
| 62 |
+
|
| 63 |
+
def install_package(package: str) -> None:
|
| 64 |
+
"""Install a Python package at runtime using pip.
|
| 65 |
+
|
| 66 |
+
This ensures that optional heavyweight dependencies (e.g. ``onnx``,
|
| 67 |
+
``ultralytics``) are available without requiring them to be listed in the
|
| 68 |
+
project's top-level requirements file.
|
| 69 |
+
|
| 70 |
+
Args:
|
| 71 |
+
package (str): Package name as accepted by ``pip install`` (e.g.
|
| 72 |
+
``'onnx'``, ``'ultralytics>=8.0'``).
|
| 73 |
+
"""
|
| 74 |
+
subprocess.check_call([sys.executable, "-m", "pip", "install", package])
|
| 75 |
+
|
| 76 |
+
|
| 77 |
+
# ---------------------------------------------------------------------------
|
| 78 |
+
# Core export logic
|
| 79 |
+
# ---------------------------------------------------------------------------
|
| 80 |
+
|
| 81 |
+
def export_model(checkpoint: str, output_format: str = 'onnx', output_dir: str = None, opset: int = None) -> str:
|
| 82 |
+
"""Export a YOLOv8 model checkpoint to the requested format.
|
| 83 |
+
|
| 84 |
+
The function loads the model via the Ultralytics ``YOLO`` class and calls
|
| 85 |
+
its ``export()`` method. When *checkpoint* is a bare filename such as
|
| 86 |
+
``'yolov8n.pt'``, Ultralytics will automatically download the pre-trained
|
| 87 |
+
weights from the official release page on first use.
|
| 88 |
+
|
| 89 |
+
Supported export formats (non-exhaustive):
|
| 90 |
+
``onnx``, ``torchscript``, ``tflite``, ``pb``, ``saved_model``,
|
| 91 |
+
``coreml``, ``paddle``, ``ncnn``.
|
| 92 |
+
|
| 93 |
+
Args:
|
| 94 |
+
checkpoint (str): Path to, or name of, the YOLO checkpoint file
|
| 95 |
+
(e.g. ``'yolov8n.pt'`` or ``'/path/to/custom_model.pt'``).
|
| 96 |
+
output_format (str): Target export format understood by Ultralytics.
|
| 97 |
+
Defaults to ``'onnx'``.
|
| 98 |
+
output_dir (str | None): Directory where the exported artefact will be
|
| 99 |
+
written. The directory is created automatically if it does not
|
| 100 |
+
exist. When ``None`` the Ultralytics default location (same
|
| 101 |
+
folder as the source ``.pt`` file) is used.
|
| 102 |
+
opset (int | None): ONNX opset version to use for export. Only applies
|
| 103 |
+
when output_format is 'onnx'. When ``None``, uses Ultralytics default.
|
| 104 |
+
|
| 105 |
+
Returns:
|
| 106 |
+
str: Absolute path to the exported model file as reported by
|
| 107 |
+
Ultralytics.
|
| 108 |
+
"""
|
| 109 |
+
# Import here so that the module can be imported without ultralytics
|
| 110 |
+
# being installed (the install happens in __main__ before any export call).
|
| 111 |
+
from ultralytics.models import YOLO
|
| 112 |
+
|
| 113 |
+
print(f"\n[export] Loading checkpoint: {checkpoint}")
|
| 114 |
+
model = YOLO(checkpoint)
|
| 115 |
+
|
| 116 |
+
# Build keyword arguments for model.export()
|
| 117 |
+
export_kwargs = {
|
| 118 |
+
'format': output_format,
|
| 119 |
+
}
|
| 120 |
+
|
| 121 |
+
# import torch
|
| 122 |
+
# dummy_input = torch.zeros(3, 640, 640, dtype=torch.float32)
|
| 123 |
+
# torch.onnx.export(
|
| 124 |
+
# model=
|
| 125 |
+
# )
|
| 126 |
+
|
| 127 |
+
if output_dir:
|
| 128 |
+
# Resolve and create the output directory tree as needed
|
| 129 |
+
output_dir = Path(output_dir)
|
| 130 |
+
output_dir.mkdir(parents=True, exist_ok=True)
|
| 131 |
+
export_kwargs['project'] = str(output_dir)
|
| 132 |
+
|
| 133 |
+
if opset is not None and output_format == 'onnx':
|
| 134 |
+
export_kwargs['opset'] = opset
|
| 135 |
+
|
| 136 |
+
print(f"[export] Exporting to format='{output_format}'"
|
| 137 |
+
+ (f", output_dir='{output_dir}'" if output_dir else "") + " …")
|
| 138 |
+
|
| 139 |
+
exported_path = model.export(**export_kwargs)
|
| 140 |
+
print(f"[export] Model exported successfully to: {exported_path}")
|
| 141 |
+
return exported_path
|
| 142 |
+
|
| 143 |
+
|
| 144 |
+
# ---------------------------------------------------------------------------
|
| 145 |
+
# CLI argument parsing
|
| 146 |
+
# ---------------------------------------------------------------------------
|
| 147 |
+
|
| 148 |
+
# All recognised YOLOv8 size variants in ascending order of complexity
|
| 149 |
+
ALL_MODELS = ['yolov8n', 'yolov8s', 'yolov8m', 'yolov8l', 'yolov8x']
|
| 150 |
+
|
| 151 |
+
# Default: export only the nano variant (smallest / fastest)
|
| 152 |
+
DEFAULT_MODELS = ['yolov8n']
|
| 153 |
+
|
| 154 |
+
|
| 155 |
+
def parse_args() -> argparse.Namespace:
|
| 156 |
+
"""Parse command-line arguments for the export script.
|
| 157 |
+
|
| 158 |
+
Returns:
|
| 159 |
+
argparse.Namespace: Parsed argument object with the following fields:
|
| 160 |
+
|
| 161 |
+
* ``models`` – list of model base-names to export (without ``.pt``)
|
| 162 |
+
* ``format`` – Ultralytics export format string
|
| 163 |
+
* ``output_dir`` – destination directory (``None`` → Ultralytics default)
|
| 164 |
+
"""
|
| 165 |
+
parser = argparse.ArgumentParser(
|
| 166 |
+
description=(
|
| 167 |
+
"Export YOLOv8 model variants to ONNX (or another format) "
|
| 168 |
+
"using the Ultralytics Python API."
|
| 169 |
+
),
|
| 170 |
+
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
|
| 171 |
+
)
|
| 172 |
+
|
| 173 |
+
parser.add_argument(
|
| 174 |
+
'--models',
|
| 175 |
+
nargs='+',
|
| 176 |
+
choices=ALL_MODELS + ['all'],
|
| 177 |
+
default=DEFAULT_MODELS,
|
| 178 |
+
metavar='MODEL',
|
| 179 |
+
help=(
|
| 180 |
+
"One or more YOLOv8 variants to export. "
|
| 181 |
+
f"Choices: {ALL_MODELS} or 'all'. "
|
| 182 |
+
f"Default: {DEFAULT_MODELS}."
|
| 183 |
+
),
|
| 184 |
+
)
|
| 185 |
+
parser.add_argument(
|
| 186 |
+
'--list-models',
|
| 187 |
+
action='store_true',
|
| 188 |
+
help='List all supported YOLOv8 model variants and exit.',
|
| 189 |
+
)
|
| 190 |
+
|
| 191 |
+
parser.add_argument(
|
| 192 |
+
'--format',
|
| 193 |
+
default='onnx',
|
| 194 |
+
metavar='FORMAT',
|
| 195 |
+
help=(
|
| 196 |
+
"Ultralytics export format. "
|
| 197 |
+
"Common values: onnx, torchscript, tflite, pb, saved_model, coreml."
|
| 198 |
+
),
|
| 199 |
+
)
|
| 200 |
+
|
| 201 |
+
parser.add_argument(
|
| 202 |
+
'--output-dir',
|
| 203 |
+
default=None,
|
| 204 |
+
metavar='DIR',
|
| 205 |
+
help=(
|
| 206 |
+
"Directory to save exported models. "
|
| 207 |
+
"Created automatically if it does not exist. "
|
| 208 |
+
"Defaults to the Ultralytics standard location when omitted."
|
| 209 |
+
),
|
| 210 |
+
)
|
| 211 |
+
|
| 212 |
+
parser.add_argument(
|
| 213 |
+
'--opset',
|
| 214 |
+
type=int,
|
| 215 |
+
default=19,
|
| 216 |
+
metavar='VERSION',
|
| 217 |
+
help=(
|
| 218 |
+
"ONNX opset version to use for export (e.g., 19). "
|
| 219 |
+
"Only applies when --format is 'onnx'. "
|
| 220 |
+
"Defaults to Ultralytics default opset when omitted."
|
| 221 |
+
),
|
| 222 |
+
)
|
| 223 |
+
|
| 224 |
+
return parser.parse_args()
|
| 225 |
+
|
| 226 |
+
|
| 227 |
+
# ---------------------------------------------------------------------------
|
| 228 |
+
# Entry point
|
| 229 |
+
# ---------------------------------------------------------------------------
|
| 230 |
+
|
| 231 |
+
if __name__ == '__main__':
|
| 232 |
+
# ------------------------------------------------------------------
|
| 233 |
+
# 1. Parse CLI arguments
|
| 234 |
+
# ------------------------------------------------------------------
|
| 235 |
+
args = parse_args()
|
| 236 |
+
|
| 237 |
+
if args.list_models:
|
| 238 |
+
print("Supported YOLOv8 model variants:")
|
| 239 |
+
for m in ALL_MODELS:
|
| 240 |
+
print(f" {m}")
|
| 241 |
+
sys.exit(0)
|
| 242 |
+
|
| 243 |
+
if 'all' in args.models:
|
| 244 |
+
args.models = list(ALL_MODELS)
|
| 245 |
+
|
| 246 |
+
# ------------------------------------------------------------------
|
| 247 |
+
# 2. Ensure runtime dependencies are available
|
| 248 |
+
# ------------------------------------------------------------------
|
| 249 |
+
# 'onnx' is required for ONNX export; 'ultralytics' provides the YOLO API;
|
| 250 |
+
# 'onnxslim' is used internally by ultralytics' export(simplify=True) (the
|
| 251 |
+
# default), which replaced the older 'onnxsim' package; 'onnxruntime' is
|
| 252 |
+
# used internally to validate/load the exported ONNX model. Installing
|
| 253 |
+
# these upfront avoids ultralytics' own AutoUpdate, which fails offline.
|
| 254 |
+
install_package('onnx')
|
| 255 |
+
install_package('ultralytics')
|
| 256 |
+
install_package('onnxslim')
|
| 257 |
+
install_package('onnxruntime')
|
| 258 |
+
|
| 259 |
+
print(f"Models to export : {args.models}")
|
| 260 |
+
print(f"Export format : {args.format}")
|
| 261 |
+
print(f"Output directory : {args.output_dir or '(Ultralytics default)'}")
|
| 262 |
+
|
| 263 |
+
# ------------------------------------------------------------------
|
| 264 |
+
# 3. Export each requested model variant
|
| 265 |
+
# ------------------------------------------------------------------
|
| 266 |
+
for model_name in args.models:
|
| 267 |
+
# Append the '.pt' extension expected by Ultralytics
|
| 268 |
+
checkpoint = f"{model_name}.pt"
|
| 269 |
+
export_model(
|
| 270 |
+
checkpoint=checkpoint,
|
| 271 |
+
output_format=args.format,
|
| 272 |
+
output_dir=args.output_dir,
|
| 273 |
+
opset=args.opset,
|
| 274 |
+
)
|
| 275 |
+
|
| 276 |
+
print("\n[done] All requested models exported.")
|
yolov8m_config.yaml
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
task_type: detection
|
| 2 |
+
input_dataset: coco
|
| 3 |
+
preprocess:
|
| 4 |
+
resize: 640
|
| 5 |
+
crop: 640
|
| 6 |
+
data_layout: NCHW
|
| 7 |
+
reverse_channels: false
|
| 8 |
+
backend: cv2
|
| 9 |
+
interpolation: null
|
| 10 |
+
resize_with_pad:
|
| 11 |
+
- true
|
| 12 |
+
- center
|
| 13 |
+
pad_color:
|
| 14 |
+
- 114
|
| 15 |
+
- 114
|
| 16 |
+
- 114
|
| 17 |
+
name: image_preprocess
|
| 18 |
+
session:
|
| 19 |
+
tidl_offload: true
|
| 20 |
+
input_optimization: false
|
| 21 |
+
input_data_layout: NCHW
|
| 22 |
+
input_mean:
|
| 23 |
+
- 0.0
|
| 24 |
+
- 0.0
|
| 25 |
+
- 0.0
|
| 26 |
+
input_scale:
|
| 27 |
+
- 0.003922
|
| 28 |
+
- 0.003922
|
| 29 |
+
- 0.003922
|
| 30 |
+
# runtime_options:
|
| 31 |
+
# advanced_options:output_feature_16bit_names_list: ''
|
| 32 |
+
# advanced_options:params_16bit_names_list: ''
|
| 33 |
+
# object_detection:meta_arch_type: 6
|
| 34 |
+
model_path: yolov8m.onnx
|
| 35 |
+
model_id: od-mh8001
|
| 36 |
+
input_details: null
|
| 37 |
+
output_details: null
|
| 38 |
+
num_inputs: 1
|
| 39 |
+
postprocess:
|
| 40 |
+
reshape_list: null
|
| 41 |
+
formatter:
|
| 42 |
+
name: DetectionXYWH2XYXYCenterXY
|
| 43 |
+
resize_with_pad:
|
| 44 |
+
- true
|
| 45 |
+
- center
|
| 46 |
+
normalized_detections: false
|
| 47 |
+
shuffle_indices: null
|
| 48 |
+
squeeze_axis: null
|
| 49 |
+
ignore_index: null
|
| 50 |
+
model_output_type: combined
|
| 51 |
+
transpose_indices: [0,2,1]
|
| 52 |
+
logits_bbox_to_bbox_ls:
|
| 53 |
+
score_fn: null
|
| 54 |
+
bbox_index: [0,4]
|
| 55 |
+
scores_index: [4,-1]
|
| 56 |
+
keypoint: false
|
| 57 |
+
object6dpose: false
|
| 58 |
+
name: detection_postprocess
|
| 59 |
+
metric:
|
| 60 |
+
label_offset_pred:
|
| 61 |
+
0: 1
|
| 62 |
+
1: 2
|
| 63 |
+
2: 3
|
| 64 |
+
3: 4
|
| 65 |
+
4: 5
|
| 66 |
+
5: 6
|
| 67 |
+
6: 7
|
| 68 |
+
7: 8
|
| 69 |
+
8: 9
|
| 70 |
+
9: 10
|
| 71 |
+
10: 11
|
| 72 |
+
11: 13
|
| 73 |
+
12: 14
|
| 74 |
+
13: 15
|
| 75 |
+
14: 16
|
| 76 |
+
15: 17
|
| 77 |
+
16: 18
|
| 78 |
+
17: 19
|
| 79 |
+
18: 20
|
| 80 |
+
19: 21
|
| 81 |
+
20: 22
|
| 82 |
+
21: 23
|
| 83 |
+
22: 24
|
| 84 |
+
23: 25
|
| 85 |
+
24: 27
|
| 86 |
+
25: 28
|
| 87 |
+
26: 31
|
| 88 |
+
27: 32
|
| 89 |
+
28: 33
|
| 90 |
+
29: 34
|
| 91 |
+
30: 35
|
| 92 |
+
31: 36
|
| 93 |
+
32: 37
|
| 94 |
+
33: 38
|
| 95 |
+
34: 39
|
| 96 |
+
35: 40
|
| 97 |
+
36: 41
|
| 98 |
+
37: 42
|
| 99 |
+
38: 43
|
| 100 |
+
39: 44
|
| 101 |
+
40: 46
|
| 102 |
+
41: 47
|
| 103 |
+
42: 48
|
| 104 |
+
43: 49
|
| 105 |
+
44: 50
|
| 106 |
+
45: 51
|
| 107 |
+
46: 52
|
| 108 |
+
47: 53
|
| 109 |
+
48: 54
|
| 110 |
+
49: 55
|
| 111 |
+
50: 56
|
| 112 |
+
51: 57
|
| 113 |
+
52: 58
|
| 114 |
+
53: 59
|
| 115 |
+
54: 60
|
| 116 |
+
55: 61
|
| 117 |
+
56: 62
|
| 118 |
+
57: 63
|
| 119 |
+
58: 64
|
| 120 |
+
59: 65
|
| 121 |
+
60: 67
|
| 122 |
+
61: 70
|
| 123 |
+
62: 72
|
| 124 |
+
63: 73
|
| 125 |
+
64: 74
|
| 126 |
+
65: 75
|
| 127 |
+
66: 76
|
| 128 |
+
67: 77
|
| 129 |
+
68: 78
|
| 130 |
+
69: 79
|
| 131 |
+
70: 80
|
| 132 |
+
71: 81
|
| 133 |
+
72: 82
|
| 134 |
+
73: 84
|
| 135 |
+
74: 85
|
| 136 |
+
75: 86
|
| 137 |
+
76: 87
|
| 138 |
+
77: 88
|
| 139 |
+
78: 89
|
| 140 |
+
79: 90
|
| 141 |
+
80: 91
|
| 142 |
+
model_info:
|
| 143 |
+
metric_reference:
|
| 144 |
+
accuracy_ap[.5:.95]%: 50.2
|
| 145 |
+
compact_name: yolov8m-coco-640x640
|
| 146 |
+
shortlisted: true
|
yolov8n_config.yaml
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
task_type: detection
|
| 2 |
+
input_dataset: coco
|
| 3 |
+
preprocess:
|
| 4 |
+
resize: 640
|
| 5 |
+
crop: 640
|
| 6 |
+
data_layout: NCHW
|
| 7 |
+
reverse_channels: false
|
| 8 |
+
backend: cv2
|
| 9 |
+
interpolation: null
|
| 10 |
+
resize_with_pad:
|
| 11 |
+
- true
|
| 12 |
+
- center
|
| 13 |
+
pad_color:
|
| 14 |
+
- 114
|
| 15 |
+
- 114
|
| 16 |
+
- 114
|
| 17 |
+
name: image_preprocess
|
| 18 |
+
session:
|
| 19 |
+
tidl_offload: true
|
| 20 |
+
input_optimization: false
|
| 21 |
+
input_data_layout: NCHW
|
| 22 |
+
input_mean:
|
| 23 |
+
- 0.0
|
| 24 |
+
- 0.0
|
| 25 |
+
- 0.0
|
| 26 |
+
input_scale:
|
| 27 |
+
- 0.003922
|
| 28 |
+
- 0.003922
|
| 29 |
+
- 0.003922
|
| 30 |
+
# runtime_options:
|
| 31 |
+
# advanced_options:output_feature_16bit_names_list: ''
|
| 32 |
+
# advanced_options:params_16bit_names_list: ''
|
| 33 |
+
# object_detection:meta_arch_type: 6
|
| 34 |
+
model_path: yolov8n.onnx
|
| 35 |
+
model_id: od-mh8000
|
| 36 |
+
input_details: null
|
| 37 |
+
output_details: null
|
| 38 |
+
num_inputs: 1
|
| 39 |
+
postprocess:
|
| 40 |
+
reshape_list: null
|
| 41 |
+
formatter:
|
| 42 |
+
name: DetectionXYWH2XYXYCenterXY
|
| 43 |
+
resize_with_pad:
|
| 44 |
+
- true
|
| 45 |
+
- center
|
| 46 |
+
normalized_detections: false
|
| 47 |
+
shuffle_indices: null
|
| 48 |
+
squeeze_axis: null
|
| 49 |
+
ignore_index: null
|
| 50 |
+
model_output_type: combined
|
| 51 |
+
transpose_indices: [0,2,1]
|
| 52 |
+
logits_bbox_to_bbox_ls:
|
| 53 |
+
score_fn: null
|
| 54 |
+
bbox_index: [0,4]
|
| 55 |
+
scores_index: [4,-1]
|
| 56 |
+
keypoint: false
|
| 57 |
+
object6dpose: false
|
| 58 |
+
name: detection_postprocess
|
| 59 |
+
metric:
|
| 60 |
+
label_offset_pred:
|
| 61 |
+
0: 1
|
| 62 |
+
1: 2
|
| 63 |
+
2: 3
|
| 64 |
+
3: 4
|
| 65 |
+
4: 5
|
| 66 |
+
5: 6
|
| 67 |
+
6: 7
|
| 68 |
+
7: 8
|
| 69 |
+
8: 9
|
| 70 |
+
9: 10
|
| 71 |
+
10: 11
|
| 72 |
+
11: 13
|
| 73 |
+
12: 14
|
| 74 |
+
13: 15
|
| 75 |
+
14: 16
|
| 76 |
+
15: 17
|
| 77 |
+
16: 18
|
| 78 |
+
17: 19
|
| 79 |
+
18: 20
|
| 80 |
+
19: 21
|
| 81 |
+
20: 22
|
| 82 |
+
21: 23
|
| 83 |
+
22: 24
|
| 84 |
+
23: 25
|
| 85 |
+
24: 27
|
| 86 |
+
25: 28
|
| 87 |
+
26: 31
|
| 88 |
+
27: 32
|
| 89 |
+
28: 33
|
| 90 |
+
29: 34
|
| 91 |
+
30: 35
|
| 92 |
+
31: 36
|
| 93 |
+
32: 37
|
| 94 |
+
33: 38
|
| 95 |
+
34: 39
|
| 96 |
+
35: 40
|
| 97 |
+
36: 41
|
| 98 |
+
37: 42
|
| 99 |
+
38: 43
|
| 100 |
+
39: 44
|
| 101 |
+
40: 46
|
| 102 |
+
41: 47
|
| 103 |
+
42: 48
|
| 104 |
+
43: 49
|
| 105 |
+
44: 50
|
| 106 |
+
45: 51
|
| 107 |
+
46: 52
|
| 108 |
+
47: 53
|
| 109 |
+
48: 54
|
| 110 |
+
49: 55
|
| 111 |
+
50: 56
|
| 112 |
+
51: 57
|
| 113 |
+
52: 58
|
| 114 |
+
53: 59
|
| 115 |
+
54: 60
|
| 116 |
+
55: 61
|
| 117 |
+
56: 62
|
| 118 |
+
57: 63
|
| 119 |
+
58: 64
|
| 120 |
+
59: 65
|
| 121 |
+
60: 67
|
| 122 |
+
61: 70
|
| 123 |
+
62: 72
|
| 124 |
+
63: 73
|
| 125 |
+
64: 74
|
| 126 |
+
65: 75
|
| 127 |
+
66: 76
|
| 128 |
+
67: 77
|
| 129 |
+
68: 78
|
| 130 |
+
69: 79
|
| 131 |
+
70: 80
|
| 132 |
+
71: 81
|
| 133 |
+
72: 82
|
| 134 |
+
73: 84
|
| 135 |
+
74: 85
|
| 136 |
+
75: 86
|
| 137 |
+
76: 87
|
| 138 |
+
77: 88
|
| 139 |
+
78: 89
|
| 140 |
+
79: 90
|
| 141 |
+
80: 91
|
| 142 |
+
model_info:
|
| 143 |
+
metric_reference:
|
| 144 |
+
accuracy_ap[.5:.95]%: 37.3
|
| 145 |
+
compact_name: yolov8n-coco-640x640
|
| 146 |
+
shortlisted: true
|