跳到主要内容

目标检测

目标检测是一种帮助计算机在图像中定位并标注多个对象的技术,例如检测照片中的人、汽车或动物。 与图像分类为整张图像关联单一标签不同,目标检测会在图像中各个独立对象周围绘制边界框,从而实现对场景中对象位置和行为的追踪。

YOLO(You Only Look Once)模型

YOLO 模型,全称"You Only Look Once",是一种用于实时目标检测的计算机视觉模型。它通过单次处理图像来识别并定位其中的对象,即只需"看"一次图像便能完成检测,因此与需要多次处理的方法相比,速度极快。

YOLO 最初由 Joseph Redmon 于 2016 年创建,后来演变为社区模型,Ultralytics 为其做出了重要贡献,其最新版本为 YOLO11。

yolo 来源:Ultralytics

在 Astra 上运行目标检测

备注

本示例假设您已熟悉 Astra 开发板的配置流程。如果尚未完成,请参考配置教程

信息

本快速指南兼容所有预装 OOBE 镜像且已安装 pippython 的 Machina SL2600 系列开发套件,并针对以下配置进行了优化:

NPU(适用于 SL2610 系列)

要在 Astra 上运行示例,首先需要完成前提条件中的步骤,将 GitHub 示例仓库克隆到您的开发板上。

配置您的环境

如果尚未完成配置,请先设置您的环境。

克隆我们的 Examples GitHub 仓库并进入仓库目录:

git clone https://github.com/synaptics-astra-demos/sl2610-examples
cd sl2610-examples

配置 Python 虚拟环境,确保所有必要依赖已安装在虚拟环境中:

python3 -m venv .venv --system-site-packages
source .venv/bin/activate
pip install -r requirements.txt

配置显示环境(视觉输出所必需)。

export XDG_RUNTIME_DIR=/var/run/user/0
export WAYLAND_DISPLAY=wayland-1

在边缘侧运行目标检测

cd Object_detection/standalone/

python3 object_detection.py \
--model yolov8_od.vmfb \
--image dog_bike_car.jpg \
--labels labels.json \
--device torq

您应该会看到如下格式的结果:

Detections:
dog Conf: 0.9186 Box: [133 219 177 315]
car Conf: 0.5663 Box: [468 79 254 86]
bicycle Conf: 0.5663 Box: [151 137 412 280]
Use Case Image

Python 代码解析

上面的 Python 示例使用 Torq 平台直接从 Python 执行 NPU 加速推理。查看代码 ./Object_detection/standalone/object_detection.py 了解其工作原理。

Torq GitHub 上了解更多关于 Torq 的信息。

该应用程序调用 IREE 运行时,同时传入设备类型(本例中为 torq)、模型路径、输入和输出。

    executable = "iree-run-module"

cmd = [
executable,
f"--device={device}",
f"--module={model_path}",
"--function=main",
f"--input=@{input_npy_path}",
f"--output=@{output_bin_path}"
]

延伸阅读

您可以查阅为 Synaptics Astra NPU 编译 YOLO的教程。