# Yolo 的简化转换

## 关于

我们创建了一个工具来简化 Yolo 目标检测器的导出过程。具体来说，我们的工具支持从 V5 到 V8 以及 Gold Yolo 的 Yolo 转换。您可以选择 RVC2 或 RVC3 转换。

上传预训练模型的权重（.pt 文件），设置输入图像形状，选择目标设备的 Robotics Vision Core 代数（了解更多参数信息，请参阅 [工具选项](#Options%20of%20Tools)），我们将编译出一个 blob 文件和一个 JSON
文件，其中包含 DepthAI 解码结果所需的信息。

## 示例

此示例展示了如何转换 YoloV6n R4 以及如何在 OAK 设备上运行编译好的模型。

 1. 首先，我们将下载模型权重。您可以从[此处](https://github.com/meituan/YOLOv6/releases/download/0.4.0/yolov6n.pt)下载。

 2. 在您选择的浏览器中打开[工具](https://tools.luxonis.com/)。然后上传下载的 yolov6n.pt 权重，并将 Input image shape 设置为 640 352（我们选择此输入图像形状，因为其宽高比接近
    16:9，且吞吐量和延迟仍然不错）。其余选项保持默认。

 3. 点击 Submit 按钮。模型将自动转换并下载到一个 zip 文件夹中（该 zip 文件夹将包含转换后的 blob 文件、JSON 文件以及用于生成输出 blob 文件的中间表示）。

 4. 要运行导出的模型，我们将使用 [OAK Examples](https://github.com/luxonis/oak-examples/tree/master/gen2-yolo/device-decoding)。首先克隆仓库并安装
    gen2-yolo/device-decoding 应用所需的包。

```bash
git clone https://github.com/luxonis/oak-examples.git
cd oak-examples
git switch master
cd gen2-yolo/device-decoding
python3 -m pip install -r requirements.txt
```

 1. 将 result.zip 中导出的模型文件解压到应用的 model 文件夹内，然后运行以下命令启动应用。

```bash
python3 main.py --config model/yolov6n.json
```

## 工具选项

 * Yolo Version - 必填，应使用哪个 Yolo 版本进行转换。工具内置了自动 Yolo 版本检测器，当您上传模型权重时，会自动检测 Yolo 版本并进行设置。
 * RVC2 or RVC3 - 必填，目标设备的 Robotics Vision Core 代数。
 * File - 必填，预训练模型的权重（.pt 文件），大小需小于 300Mb。
 * Input image shape - 必填，如果是正方形输入图像形状则为整数，或者用空格分隔的宽度和高度。必须能被 32（或 64，取决于步幅）整除。
 * Shaves - 可选，默认值为 6。使用的 Shave 数量。要了解更多关于 Shave 的信息，请参阅 [此处](https://docs.luxonis.com/software/ai-inference/conversion.md)。
 * Use OpenVINO 2021.4 - 可选，默认值为 true。此复选框控制编译为 IR 时是否使用旧版前端标志。如果关闭，则默认为 OpenVINO 2022.1。注意到 2022.1 版本有轻微的性能下降。因此，我们建议将其设置为 true。
