NVIDIA Jetson AGX Orin (四) 编写自己的图像识别程序(python)
在 Python 中从头开始创建一个名为 my_recognition.py
的图像识别新程序。此脚本将从磁盘加载任意图像并使用 imageNet
对象对其进行分类。
从终端运行以下这些命令以创建目录、源文件并下载一些测试映像:(我这里路径为~/myrive/my_recognition_python,路径可自定义)
cd mydrive
mkdir my_recognition_python
cd my_recognitio_python
touch my_recognition.py
chmod +x my_recognition.py
wget https://github.com/dusty-nv/jetson-inference/raw/master/data/images/black_bear.jpg
wget https://github.com/dusty-nv/jetson-inference/raw/master/data/images/brown_bear.jpg
wget https://github.com/dusty-nv/jetson-inference/raw/master/data/images/polar_bear.jpg
接下来,编辑python代码
在您选择的编辑器中打开vim my_recognition.py
首先,让我们在文件的最顶部添加一个 shebang 序列,以自动使用 Python 解释器:
#!/usr/bin/python3
接下来,我们将导入要在脚本中使用的 Python 模块。新增 import
语句,用于加载 jetson.inference
和 jetson.utils
模块,用于识别图像和加载图像。我们还将加载用于解析命令行的标准 argparse
包。
import jetson.inference
import jetson.utils
import argparse
接下来,添加一些样板代码来解析图像文件名和可选的 --network
参数:
# parse the command line
parser = argparse.ArgumentParser()
parser.add_argument("filename", type=str, help="filename of the image to process")
parser.add_argument("--network", type=str, default="googlenet", help="model to use, can be: googlenet, resnet-18, ect. (see --help for others)")
args = parser.parse_args()
添加以下行以使用从命令行指定的文件名加载图像:(返回的图像将是一个 jetson.utils.cudaImage
对象,其中包含 width、height 和像素格式等属性:)
img = jetson.utils.loadImage(args.filename)
所有可用的分类模型都在 ImageNet ILSVRC 数据集上进行了预训练,该数据集可以识别多达 1000 种不同类别的对象,如不同种类的水果和蔬菜、许多不同种类的动物,以及日常人造对象,如车辆、办公家具、运动器材等。
net = jetson.inference.imageNet(args.network)
接下来,将使用 imageNet.Classify()
函数通过识别网络对图像进行分类:(imageNet.Classify()
接受图像及其尺寸,并使用 TensorRT 执行推理。)
class_idx, confidence = net.Classify(img)
它返回一个元组,其中包含图像被识别为的对象类的整数索引,以及结果的浮点置信度值。
最后一步,让我们检索类描述并打印出分类的结果:
class_desc = net.GetClassDesc(class_idx)
print("image is recognized as '{:s}' (class #{:d}) with {:f}% confidence".format(class_desc, class_idx, confidence * 100))
imageNet.Classify()
返回已识别对象类的索引(对于在 ILSVRC 上训练的这些模型,索引介于 0
和 999
之间)。给定类索引,imageNet.GetClassDesc()
函数将返回包含该类的文本描述的字符串。这些描述是从 ilsvrc12_synset_words.txt
自动加载的。
下面来测试:
./my_recognition.py polar_bear.jpg
生成相关信息
另外两个图也是类似测试。
- 点赞
- 收藏
- 关注作者
评论(0)