本文简单介绍了我在NVIDIA Jetson Xavier Nx上从装机到基于自带opencv4的简单demo过程,有些网上已有的仅给出参考链接及简单注意项。本文也是我的一个简单备忘,以便后续如果重新装机所需
这个很简单照着下面转载的链接下载最新官方镜像进行操作即可,下载时建议复制下载链接使用迅雷下载,个人感觉速度会快一些。
转载链接:NVIDIA Jetson Xavier NX 开发套件刷机教程
这一步非必须,没必要特地买SSD
我是因为正好有多余的固态硬盘,就顺便装上去了,提升一下速度和容量。主板背面Wi-Fi模块旁边还有一个卡槽,将固态硬盘插上去即可,配置可以参照下面转载的链接进行。
注意:如果已经配置过swap大小,请先禁用并去除,否则swfile文件会储存在TF卡中。等切换成SSD之后,再分配swap空间并启用
转载链接:仅两步,把JETSON XAVIER NX的系统移动到nvme硬盘上
jtop中的Dsk仅能显示当前磁盘状态,而不是整机,即换成SSD之后就只能显示SSD,不再显示TF或是两者相加。

这一步也比较简单,照着下面转载的链接做就行了。
转载链接:带你玩转Jetson Xavier NX系列教程 | Xavier NX 环境变量配置,风扇控制以及Jtop安装
我的jtop配置如下图,仅供参考。
我配置了最大15G的swap空间并使能

我这边配置启用jetson时钟并且开机自动使能,风扇模式使用system,使得风扇在每次开机后可以自动控制风量,功耗改为15瓦6核的最大功耗以提升性能。

硬件不多说,注意正反,插进去就行,我使用的是"Raspberry Pi Camera Module v2可见光"摄像头,但是该摄像头在 NX 上会出现一些白色小亮点,暂时不知道怎么解决,如果有哪位同学清楚,请不吝赐教,谢谢!
关于摄像头可以参看下面转载的链接。
注意:我这边树莓派摄像头开流是通过nvgstcapture-1.0,且opencv中并非nvcamerasrc,而是使用nvarguscamerasrc这个插件
转载链接:CSI vs USB camera on JetsonTX2
之前看有些博客说自带的不支持使用Gstreamer的VideoCapture,需要自己编译别的 opencv 版本,当前实际情况并非如此,也可能是后来自带版本支持了吧。废话不多说,直接上源码。
#include <stdio.h>
#include <opencv2/opencv.hpp>
int main(int argc, char * argv[])
{
cv::VideoCapture cap("nvarguscamerasrc ! video/x-raw(memory:NVMM), width=640, height=480, format=NV12, framerate=30/1 ! nvvidconv flip-method=2 ! video/x-raw, width=640, height=480, format=BGRx ! videoconvert ! video/x-raw, format=BGR ! appsink");
if (!cap.isOpened())
{
std::cout << "Failed to open camera." << std::endl;
return -1;
}
while(1)
{
cv::Mat frame;
cap >> frame;
cv::imshow("opencv4-demo", frame);
if((char)cv::waitKey(1) == 'q')
break;
}
return 0;
}
编译命令如下:
g++ `pkg-config opencv4 --cflags` opencv_gstreamer.cpp -o opencv_gstreamer_test `pkg-config opencv4 --libs`
注意:一个是cv中不再使用"nvcamerasrc",而是使用"nvarguscamerasrc"。第二个是"pkg-config"命令后面请指定"opencv4"
最终效果如下图,当前只是初步跑通简单demo。

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删