在 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 |
结论
只需几个命令,您就可以轻松运行基准测试并评估模型性能。祝您基准测试愉快!