图像分类
在本快速指南中,我们从图像分类开始。图像分类是一种让计算机根据图像内容进行识别和标注的方法。例如,模型可以查看一张照片并判断其中是猫、狗还是汽车。
备注
如果您尚未配置开发板并安装示例,请参考快速入门。
信息
本快速指南兼容所有预装 OOBE 镜像且已安装 pip 和 python 的 Machina SL2600 系列开发套件,并针对以下配置进行了优化:
NPU(适用于 SL2610 系列)
MobileNet 模型
我们将使用 MobileNet,这是一个最初由 Google 于 2017 年专为移动端和嵌入式设备设计的视觉模型。
MobileNet v2 模型已预装在您的 Astra 开发板上。该模型在 ImageNet 数据库上完成预训练后,经过量化并编译至 Synaptics Astra 的 NPU,以实现更高的性能。
- 输入:224 x 224 的图像
- 输出:1000 个 ImageNet 类别的置信度分数——我们将选取最高分的类别作为分类结果
配置您的环境
如果尚未完成配置,请先设置您的环境。
克隆我们的 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
在边缘侧运行图像分类
使用以下 Torq 示例在 Synaptics Astra 上运行图像分类:
cd Image_classification/standalone_class
python3 classification.py \
--model mbv2.vmfb \
--image goldfish.jpg \
--labels labels.json \
--device torq

您应该会得到如下结果:
Classification Results:
1. goldfish, Carassius auratus : 0.921875
2. starfish, sea star : 0.675781
3. sea slug, nudibranch : 0.617188
4. rock beauty, Holocanthus tricolor : 0.613281
5. hummingbird : 0.582031
Top Prediction: goldfish, Carassius auratus
您可以在 ImageNet 类别列表中查找对应类别。模型应该能够正确识别出金鱼!
对另一张图像进行分类
我们可以修改命令行参数来对另一张图像进行分类。运行:
python3 classification.py \
--model mbv2.vmfb \
--image cat.jpg \
--labels labels.json \
--device torq

应该会输出以下结果:
Classification Results:
1. Persian cat : 0.800781
2. tabby, tabby cat : 0.714844
3. tiger cat : 0.691406
4. Egyptian cat : 0.683594
5. lynx, catamount : 0.671875
Top Prediction: Persian cat
MobileNet 正确地将其识别为一只猫。
输入来源
到目前为止,我们一直在对单张图像示例进行图像分类。不过,Astra 管道还可以接受 *.jpg 图像、*.mp4 视频以及 /dev/video 摄像头画面。
图像分类并非用于处理多个对象或识别对象在图像中的位置。要实现这些功能,我们需要目标检测。在下一篇快速指南中,您将学习目标检测。