Jetson Orin Nano:安装Jetpack等基础工具并验证摄像头

前言

Jetson Orin Nano最重要的功能之一就是机器视觉方向的开发,调出摄像头预览画面是这一切工作的基础。通过Jetpack和其它工具,可以完成对摄像头的基础配置。


一、硬件准备

本文使用两个15针CSI接口的IMX219摄像头作为示例,通过22针转15针排线与Jetson Orin Nano的载板相连接。

两个摄像头均支持红外夜视,因此后面的成像效果可以看到是偏红的。

二、安装JetPack

JetPack是NVIDIA为Jetson系列边缘计算平台提供的综合性软件开发工具包(SDK),包含官方载板的全套板级支持驱动、开发者工具、计算加速工具等等,广义来说,Jetson Orin Nano运行的操作系统Jetson Linux(Linux for Tegra,简写作L4T)也是JetPack的一部分,因为这个特殊的Ubuntu系统本身就是专门为Jetson系列产品高度定制的。JetPack是Jetson Orin Nano开发的必备软件基础。

之前烧录的系统是不带Jetson SDK等组件的,需要自行安装。打开"终端",输入下面指令可以查看是否已经安装了JetPack组件:

bash 复制代码
dpkg -l | grep nvidia-jetpack

如果只装了系统就是没有输出的。但是输入查看L4T版本信息得命令可以看到系统内核版本:

bash 复制代码
cat /etc/nv_tegra_release

据此可了解其对应的JetPack版本信息:通过所包含的JetPack驱动层面的一些信息。

比如上图中R36为L4T的主版本号,对应JetPack 6.x系列;REVISION: 5.0为修订版本,即L4T的完整版本为36.5.0,对应JetPack版本6.2.2。

输入下面的指令安装JetPack:

bash 复制代码
sudo apt install nvidia-jetpack

出现输入,按"y"键确认即可。

等待安装完成即可。安装完成后,CUDA、cuDNN、TensorRT等组件就都装好了。

三、安装pip3

pip3是Python 3的包管理工具,用于安装、卸载、管理Python 3环境中的第三方库(如numpy、requests等,包括后面的jetson-stats)。在"终端中"输入下面的指令安装:

bash 复制代码
sudo apt install python3-pip

安装完成后可以通过版本号指令验证一下:

bash 复制代码
pip3 --version

如果出现版本号信息则说明安装成功了。

四、安装jetson-stats

jetson-stats是一个专为NVIDIA Jetson系列产品(如Orin, Xavier, Nano, TX等)设计的开源、多功能系统监控与控制工具包,由第三方开发者提供,并已得到NVIDIA开发者官方网站的推荐。它不仅仅是一个简单的监控程序,更是一套可以通过命令行和 Python 脚本灵活使用的强大开发伴侣。其最常用的组件为硬件资源监控器jtop。首先,在"终端"中输入下面的指令通过pip3来安装:

bash 复制代码
sudo pip3 install -U jetson-stats

安装完成后,将当前用户加入video组,防止产生权限问题:

bash 复制代码
sudo usermod -aG video $USER

需要重启机器才能生效。重启后,打开"终端",输入指令:

bash 复制代码
jtop

即可打开jtop监控界面:

可以看到jtop包含多个页面,直接输入前面的数字可以切换到具体硬件的页面。

此外,jtop还可以作为一个Python库直接导入到自己的脚本中,实现程序化访问Jetson的各项数据。对于自动化运维、数据采集和自定义监控面板等场景非常有用。例如下面的代码片段:

python 复制代码
from jtop import jtop

with jtop() as jetson:
    if jetson.ok():
        # jetson.stats 会返回一个包含所有硬件信息的字典
        print(jetson.stats)

这段代码可以使Jetson用户在自己的程序中获取设备的所有实时数据,输出的数据结构完整,可以方便地集成到任何项目中。

五、在jetson-io中配置摄像头

确保摄像头都已经连接正常,在终端中输入:

bash 复制代码
sudo /opt/nvidia/jetson-io/jetson-io.py

启动配置CSI Connector界面,选择配置Jetson 22pin CSI Connector,按回车键继续:

确认当前CSI Connector IO配置:由于这里使用的是默认载板,摄像头也是兼容默认载板的,所以也不用确认了,直接按回车键继续:

硬件连接了两个IMX219摄像头,选择对应的IMX219双摄即可:(注意后面选项中的A和C分别对应CSI0和CSI1接口。)

保存CSI Connector IO配置:

确认保存,并重启生效CSI Connector IO配置:

按任意键重启:

重启后,在终端输入指令查看是否识别到了这两个摄像头:

bash 复制代码
ls /dev/video*

硬件连接正常的话是可以识别到的:

输入指令测试摄像头0:

bash 复制代码
gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! 'video/x-raw(memory:NVMM),width=1920,height=1080,framerate=30/1' ! nvvidconv ! nv3dsink sync=false

可以看到弹出摄像头0的预览画面:

输入指令测试摄像头1:

bash 复制代码
gst-launch-1.0 nvarguscamerasrc sensor-id=1 ! 'video/x-raw(memory:NVMM),width=1920,height=1080,framerate=30/1' ! nvvidconv ! nv3dsink sync=false

可以看到弹出摄像头1的预览画面:

输入指令同时打开两个摄像头:

bash 复制代码
gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! 'video/x-raw(memory:NVMM),width=1920,height=1080,framerate=30/1' ! nvvidconv ! nv3dsink sync=false &
gst-launch-1.0 nvarguscamerasrc sensor-id=1 ! 'video/x-raw(memory:NVMM),width=1920,height=1080,framerate=30/1' ! nvvidconv ! nv3dsink sync=false

可以看到弹出两个摄像头的预览画面:

摄像头连接测试成功。

六、安装v4l

Video for Linux工具集,即v4l-utils,包含了诸多用于摄像头调试的实用程序。其安装命令如下:

bash 复制代码
sudo apt install -y v4l-utils

安装完成后可以使用版本指令测试是否安装成功:

bash 复制代码
v4l2-ctl --version

使用指令可以查看摄像头所支持的视频输出格式:

bash 复制代码
v4l2-ctl -d /dev/video0 --list-formats-ext

可以看到当前摄像头支持的全部输出格式:

也可以使用指令查看摄像头当前正在使用的格式信息:

bash 复制代码
v4l2-ctl -d /dev/video0 --get-fmt-video

可以看到输出信息:

v4l还支持很多其他功能,后续利用摄像头调试开发能够用上。


总结

JetPack和摄像头是Jetson Orin Nano最重要的应用场景之一,完成这一步是后续开发其他应用的基本前提。jtop、v4l工具也是常用的软件,对于开发应用有很重要的作用。

相关推荐
ishangy18 小时前
井下变电硐室杂物堆放识别,规范机电场所管理标准
边缘计算·智慧矿山·煤矿安全·ai视觉识别·变电硐室·井下智能监测
ishangy2 天前
井下烟雾明火 AI 识别算法,机电硐室消防监测标配
边缘计算·智慧矿山·ai视觉识别·矿山安全·防爆监控·机电硐室·井下火灾
头发够用的程序员2 天前
TensorRT 自定义算子插件实战(三):手搓 2×2 最大池化 customMaxpool
人工智能·pytorch·python·深度学习·神经网络·边缘计算·jetson
wflynn3 天前
GitHub 今日推荐|SCSKiller:游戏着色器预编译消除卡顿
开源·c#·github·nvidia·amd·directx12
杭州领祺科技5 天前
27 号令横向隔离落地清单:储能边缘计算网关 ≠ 电力专用网闸,算电协同中心安全分区/纵向加密/SPDnet 怎么配
人工智能·安全·网络安全·边缘计算·储能·电力·电力监控
kakakahahahaha6 天前
LoadLibrary failed with error 87 排查:ERROR_INVALID_PARAMETER、DLL路径、架构与显卡驱动
windows·电脑·笔记本电脑·nvidia·软件需求
这张生成的图像能检测吗8 天前
(综述)边缘计算 × IoT:从机器信号处理到低时延故障诊断
边缘计算·信号处理·故障诊断
悟天特斯8 天前
边缘计算:让智慧园区的治理能力“下沉“到最后一公里
人工智能·边缘计算
ishangy8 天前
智慧矿山井下风机运行状态视觉识别,通风系统智能监测场景
人工智能·边缘计算·智慧矿山·ai视觉识别·煤矿智能化
头发够用的程序员9 天前
TensorRT 自定义算子插件实战(一):从零手写 customScaledTanh
c++·人工智能·pytorch·python·深度学习·边缘计算·jetson