Jetson 共用资料

图像分类推理

2023-07-25 admin

图像分类推理

1.ImageNet对图像进行分类

有多种类型的深度学习网络可用,包括识别、检测/定位和语义分割。我们在本教程中强调的第一个深度学习功能是图像识别,它使用在大型数据集上训练的分类网络来识别场景和对象。

imageNet对象接受输入图像并输出每个类别的概率。在1000个对象的ImageNet ILSVRC数据集上进行了训练后,GoogleNet和ResNet-18模型在构建步骤中自动下载。有关可以下载和使用的其他分类模型,我们提供了C++和Python的示例程序

Jetson上使用ImageNet程序:

首先,让我们尝试使用imagenet程序在一些示例图像上测试imagenet识别。它加载一个或多个图像,使用TensorRT和imageNet类进行推理,然后覆盖分类结果并保存输出图像。该项目在images/目录下提供了供您使用的示例图像。

构建项目后,请确保您的终端位于aarch64/bin目录中:

cd jetson-inference/build/aarch64/bin

接下来,让我们使用imagenet程序对示例图像进行分类,使用C++或Python变体。如果您使用的是Docker容器,建议将已分类的输出映像保存到images/test挂载的目录中。然后,这些图像将很容易从主机设备的jetson推理/data/images/test目录中查看

# C++

$ ./imagenet images/orange_0.jpg images/test/output_0.jpg     # (default network is googlenet)

# Python

$ ./imagenet.py images/orange_0.jpg images/test/output_0.jpg  # (default network is googlenet)

注意:第一次运行每个模型时,TensorRT将花费几分钟时间来优化网络。 这个经过优化的网络文件随后被缓存到磁盘上,因此将来使用该模型运行会更快地加载

除了加载单个图像外,您还可以加载其他图像的目录或视频文件。

2.下载其他分类模型

以下预先训练的图像分类模型可供使用,并将自动下载:

 

通常,更复杂的网络可以具有更高的分类精度,并增加了运行时间。

使用不同的分类模型:

您可以通过将命令行上的--network标志设置为上表中相应的CLI参数之一来指定要加载的模型。默认情况下,如果未指定可选的--network标志,则会加载GoogleNet。

构建项目后,请确保您的终端位于aarch64/bin目录中:

cd jetson-inference/build/aarch64/bin

下面是使用ResNet-18模型的一些示例:

# C++

$ ./imagenet --network=resnet-18 images/dog_2.jpg images/test/output_dog.jpg

# Python

$ ./imagenet.py --network=resnet-18 images/dog_2.jpg images/test/output_dog.jpg

3.运行实时摄像头识别演示

我们之前使用的imagenet.cpp/imagenet.py样本也可以用于实时相机流。支持的摄像机类型包括:

MIPI CSI cameras (csi://0)

V4L2 cameras (/dev/video0)

RTP/RTSP streams (rtsp://username:password@ip:port)

以下是在相机订阅源上启动程序的一些典型场景。

C++

$ ./imagenet csi://0                    # MIPI CSI camera

$ ./imagenet /dev/video0                # V4L2 camera

$ ./imagenet /dev/video0 output.mp4     # save to video file

python

$ ./imagenet.py csi://0                 # MIPI CSI camera

$ ./imagenet.py /dev/video0             # V4L2 camera

$ ./imagenet.py /dev/video0 output.mp4  # save to video file

OpenGL窗口中显示的是实时摄像机流、分类对象名称、分类对象的置信度以及网络的帧速率。该应用程序可以识别多达1000种不同类型的对象,因为分类模型是在包含1000类对象的ILSVRC ImageNet数据集上训练的。1000种类型对象的名称映射,可以在data/networks/ilsvrc12_synset_words.txt下的repo中找到

Hello AI World关于图像分类的教程的这一部分到此结束。接下来,我们将开始使用对象检测网络,它为我们提供每帧多个对象的边界框坐标。

 

 

 

 

 

 


首页
产品
案例
联系