跳到主要内容

图像分类

在本快速指南中,我们从图像分类开始。图像分类是计算机根据图像内容识别和标记图像的一种方式。例如,模型可以查看照片并判断它是猫、狗还是汽车。

备注

本指南假设您已经熟悉 Astra 开发板的设置。如果还没有,请参考设置教程

信息

本快速指南适用于所有 Machina SL16xx 开发板,需要预装 pippythonOOBE 镜像,并针对以下硬件进行了优化:

NPU 用于 SL1680 和 SL1640

GPU 用于 SL1620

MobileNet 模型

我们将使用 MobileNet,这是一个由 Google 在 2017 年专门为移动和嵌入式设备开发的视觉模型。

MobileNet v2 模型已预装在您的 Astra 开发板上。它已在 ImageNet 数据库上进行了预训练,然后进行了量化并编译到 Synaptics Astra 的 NPU 上以获得更高的性能。

  • 输入:224 x 224 图像
  • 输出:1000 个 ImageNet 类别的置信度分数 - 我们将选择得分最高的类别作为分类结果

边缘设备上的图像分类

让我们使用下面的 SynapRT 示例在 Synaptics Astra 上运行图像分类。完成先决条件后,在图像上运行 MobileNet v2 图像分类模型:

python -m vision.image_class './samples/fish.jpg'
Use Case Image

您应该得到以下结果:

Class Score Label ----------------------------- 1 0.41 goldfish, Carassius auratus 0 0.18 tench, Tinca tinca 392 0.09 rock beauty, Holocanthus tricolor 395 0.05 gar, garfish, garpike, billfish, Lepisosteus osseus 29 0.04 axolotl, mud puppy, Ambystoma mexicanum

Inference time: 14.79ms

您可以在 ImageNet 类别 列表中查找类别。它应该已经识别出了金鱼!

分类另一张图片

我们可以更改命令行参数来分类另一张图片。运行:

python -m vision.image_class  './samples/mountains.jpg' 
Use Case Image

应该输出以下结果:

Class Score Label ----------------------------- 980 0.34 volcano 970 0.22 alp 34 0.14 leatherback turtle, leatherback, leathery turtle, Dermochelys coriacea 807 0.07 solar dish, solar collector, solar furnace 915 0.06 yurt

Inference time: 14.75ms

ImageNet 正确地将此识别为火山。(这是智利的奥霍斯德尔萨拉多火山,世界上最高的火山。)

输入源

到目前为止,我们一直在单张图像示例上运行图像分类。但是,SyanpRT 管道可以接受 *.jpg 图像、*.mp4 视频、/dev/video 相机输入或 RTSP IP 相机。

图像分类不是设计用来处理多个主体或识别它们在图像中的位置的。为此,我们需要目标检测。在下一个快速指南中,您将进行目标检测。