前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Jetson上调用多个USB摄像头的方法

Jetson上调用多个USB摄像头的方法

作者头像
GPUS Lady
发布2022-05-12 22:44:13
2.5K0
发布2022-05-12 22:44:13
举报
文章被收录于专栏:GPUS开发者GPUS开发者

日前有朋友在 Xavier Orion 上要调用3个USB摄像头,发现只能正常启动2个,感到有些困扰,是否Jetson设备有数量限制?

其实问题的症结在于这位朋友使用OpenCV的方式调用,这种方式虽然上手容易,但是对资源消耗程度比较大,也需要开发者对摄像头一些硬件参数有足够深入的掌握,否则出错率较高。

为了协助更多开发者能有效用起Jetson上的计算资源,这里提供两种能同时调用4个不同规格USB摄像头的方法:

1. 使用英伟达”Hello AI World” 项目的videoSource()函数:

项目开源仓在https://github.com/dusty-nv/jetson-inference ,请自行根据项目“Building the Project from Source”安装说明进行编译,然后就能使用这个项目的videoSource()函数。

接下来撰写4个内容一致的Python代码,各自调用1个USB摄像头,代码内容如下:

代码语言:javascript
复制
import jetson.utilssource = jetson.utils.videoSource('/dev/videoN')  #请根据要调用的摄像头编号修改N值output = jetson.utils.videoOutput("display://0") while output.IsStreaming():frame = source.Capture() output.Render(frame)

然后分别执行 python3 xxx.py 就能启动4个USB摄像头。(如下视频)

2. 使用DeepStream:

请先自行在Jetson设备上安装DeepStream 6.0开发套件,然后将工作位置移动到

/opt /nvidia/deepstream/deepstream/samples/configs/deepstream-app/ 下,以

source1_usb_dec_infer_resnet_int8.txt 配置文件为基础,建议复制成myDs.txt再进行修改。

为了满足四个摄像头同时启动,需要修改以下两部分:

(1) 将 [tiled-display] 下的 rows 与 columns 都设为 2

(2) 将 [source0] 设置组内容再复制3份,修改设置组名为 [source1]、[source2]、[source3] ,并将每个设置组最后一行“camera-v4l2-dev-node=”的参数,对应到1、2、3的摄像头编号,这样就有4组数据源。

修改完毕之后,执行以下指令即可:

代码语言:javascript
复制
$ deepstream-app -c myDs.txt

就能启动4个USB摄像头

以上两种方法能顺利启动4个USB摄像头,关键因素在于这两种方法都是使用比较节省资源的底层gstreamer接口,建议开发者未来实际开发应用时,最好使用gstreamer调用方式,也可以将Hello AI World项目直接变成系统底层库,使用videoSource()函数来操作,当然也能直接使用DeepStream作为开发平台。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GPUS开发者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档