运行实时摄像机识别演示
这个 imagenet.cpp
/ imagenet.py
我们以前使用的示例也可以用于实时相机流。支持的摄像机类型包括:
- MIPI CSI摄像机(
csi://0)
- V4L2摄像机(
/dev/video0
) - RTP/RTSP流(
rtsp://username:password@ip:port
)
有关视频流和协议的更多信息,请参阅“摄像头流和多媒体”页。
下面是在照相机提要上启动程序的一些典型场景(运行–help以获取更多选项):
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
注意:例子中要使用的相机,请参见Jetson Wiki 的以下部分:
- nano:https://eLinux.org/Jetson_Nano#Cameras
- Xavier: https://elinux.org/Jetson_AGX_Xavier#Ecosystem_Products_.26_Cameras
- TX1/TX2:开发工具包包括板载MIPI CSI传感器模块(0V5693 —— developer kits include an onboard MIPI CSI sensor module (0V5693)
在OpenGL窗口中显示的是实时摄像机流、分类对象名称、分类对象的可信度以及网络的帧率。在Jetson Nano上,GoogleNet和ResNet-18的帧速率应该高达约75帧/秒(在其他Jetson上更快)。
该应用程序可以识别多达1000种不同类型的对象,因为分类模型是在包含1000类对象的ILSVRC ImageNet数据集上训练的。1000种对象的名称映射,可以在repo的data/networks/ilsvrc12_synset_words.txt 找到。
这是Hello AI世界教程中关于图像分类的这一部分的结束。接下来,我们将开始使用对象检测网络,它为我们提供每帧多个对象的边界框坐标。