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工具也是常用的软件,对于开发应用有很重要的作用。

相关推荐
未来和明天11 天前
领嵌iLeadE-588边缘计算盒子,兼容Modbus、DLT645、OPC UA等多种行业协议,支持第三方平台对接。
人工智能·边缘计算
ai产品老杨11 天前
突破安防碎片化:基于 Docker 与边缘计算的 AI 视频智能化中台,如何通过 GB28181/RTSP 统一接入与全套源码交付实现二次开发自由?
人工智能·docker·边缘计算
“码”力全开11 天前
解耦异构设备:基于 Docker 与边缘计算的 GB28181/RTSP 统一流媒体平台架构演进(全源码交付)
docker·架构·边缘计算
ai产品老杨11 天前
架构师视点:基于 Docker 与边缘计算的百路异构视频中台,如何实现 GB28181/RTSP 统一接入与源码交付?
docker·音视频·边缘计算
ai产品老杨11 天前
打破芯片壁垒:基于 Docker 与边缘计算的异构视频中台架构设计,如何通过 GB28181/RTSP 统一接入与源码交付节省 95% 开发成本?
docker·音视频·边缘计算
“码”力全开11 天前
解耦与重塑:基于 Docker 容器化与 GB28181/RTSP 统一接入的 AI 视频管理平台架构解析(支持源码交付与边缘计算)
人工智能·docker·边缘计算
不能只会打代码12 天前
边缘视频分析平台的架构设计与性能优化——从750ms到190ms的调优之路
java·spring boot·redis·性能优化·边缘计算·物联网竞赛
basketball61612 天前
AI Infra 硬件体系与编程模型:17. CUDA编程基础:底层驱动 API 调用
人工智能·microsoft·nvidia·cuda
未来和明天12 天前
领嵌iLeadE-588边缘计算盒子4路AHD、4路千兆网接多个摄像头多路AI视频分析
人工智能·边缘计算
拓朗工控14 天前
边缘计算对工控机性能要求有多高?
人工智能·边缘计算·工控机·工业电脑