跳到主要内容

在 Astra 上进行 YOLO 模型基准测试

本教程将指导您在 Synaptics Astra™ Machina™ 开发板上对预训练的 YOLO 模型进行基准测试,以评估它们在推理速度方面的性能。我们的 SyNAP 工具包支持最新的 YOLOv11 版本,让您能够轻松进行基准测试和部署模型。您可以运行 Ultralytics 的预训练模型,甚至是您自己微调的模型。由于 Ultralytics 在创建最先进的 YOLO 模型方面一直处于领先地位,让我们使用他们的 YOLOv8 Nano 作为示例,展示如何在 SL1680 的 NPU 上评估其性能。

基准测试应用程序

Machina 开发板附带了一些命令行应用程序,可以轻松地对 Astra Machina 的已编译 .synap 模型进行基准测试或运行推理。您可以在这里了解更多关于这些应用程序的信息:推理

使用 synap_cli 应用程序,您可以轻松地对任何利用 Astra NPU 的模型在合成数据上进行基准测试。 对于其他任务,如目标检测、图像分类或图像处理,您可以使用特定的应用程序。

Ultralytics 预训练 YOLO 模型

首先在您的主机上,下载 Ultralytics YOLOv8 Nano 模型的 TFlite Float 32 格式。

!pip install ultralytics

import ultralytics
from ultralytics import YOLO
model = YOLO("yolov8n.pt") # 加载 YOLOv8 模型
model.export(format="tflite" , imgsz=(640,640) , opset=12) # 将模型导出为 TFLite Float 格式

获得 TFLite 模型后,建议使用 TFLite Float32 模型,之后可以使用我们的 SyNAP 工具包将其量化为 int8。

为 Astra NPU 编译

现在使用 meta.yaml 和 bus.jpg(或任何用于量化的图像)为 Astra SL1680 编译上述模型,比如 yolov8_float32.tflite。

元文件:synap.yaml

inputs:
- scale: 255
format: rgb keep_proportions=1
name: inputs_0
shape: [1, 640, 640, 3]
outputs:
- format: yolov8 w_scale=640 h_scale=640 bb_normalized=1
quantization:
data_type: uint8
scheme: asymmetric_affine
dataset:
- ./bus.jpg

然后,使用 SyNAP 工具包进行编译:

synap convert --model yolov8_float32.tflite --target SL1680 --meta synap.yaml --out-dir yolov8n

这将生成 model.synap,它是 uint8 量化并针对 Astra SL1680 的 NPU 优化的。

现在您可以将这个 model.synap 复制到 Astra Machina 开发板并在 Machina 上运行:

进行基准测试:

synap_cli -m model.synap -r 5 random

进行图像推理基准测试和目标检测:

synap_cli_od -m model.synap bus.jpg

基准测试结果

SL1680基准测试bus.jpg 上的图像推理
YOLOv8 Nano推理时间:33.48 ms推理时间:39.90 ms
YOLOv8 Small推理时间:58.27 ms推理时间:64.38 ms

结论

只需几个命令,您就可以轻松运行基准测试并评估模型性能。祝您基准测试愉快!