http://www.realtimes.cn/cn/product/product-21-889.html realtimes2022 官方资料
使用版本:R32.5.1_for TX2_Xavier NX_Xavier
上位机环境搭建及烧录步骤按照官方文档《艾达系统烧录备份恢复点对点.docx》
emmc启动方法按照《6002E从板载EMMC启动系统BSP32.4.3以上-V1.1.pdf》
CUDA、cuDNN、TensorRT与Pytorch环境配置(引用https://www.jianshu.com/p/33cd8368b2ca,加入了自己作为新手的一点感悟)
torch与vision源码安装包下载
链接: https://pan.baidu.com/s/1j3SS7LDMhHEeoUFd57XeTw 提取码: p7ab 复制这段内容后打开百度网盘手机App,操作更方便哦
1. Cuda、CuDNN和TensorRT
在Jetson Xavier Nx控制台中执行指令
# 更新软件源
sudo apt update
# 安装JetPack组件包,其中包括了Cuda、CuDNN和TensorRT
sudo apt install nvidia-jetpack
# 使用vim打开~/.bashrc
vim ~/.bashrc
打开~/.bashrc 在末尾添加以下内容,将CUDA加入环境变量
export CUBA_HOME=/usr/local/cuda-10.2
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-10.2/bin:$PATH
保存退出后,在控制台执行如下指令
# 执行以下命令使环境变量生效。
source ~/.bashrc
# 安装pip3
sudo apt install python3-pip
# 安装Jtop工具
sudo -H pip3 install -U jetson-stats
# 启动jtop
sudo jtop
启动后界面如下,可以查看到开发板资源使用情况,接着点击info
![](https://i-blog.csdnimg.cn/blog_migrate/e92bd0a31c153ef6d025f76d92f185a4.png)
如果安装成功,可以查看到CUDA、cuDNN和TensorRT版本信息
![](https://i-blog.csdnimg.cn/blog_migrate/e87a90a78632f560dda0ae1217dfc6cd.png)
2. Pytorch和Vision安装
2.1 Pytorch安装
# 更新软件源
sudo apt-get update
//sudo apt-get upgrade#原作者更新了这个,个人感觉这个最好不更新。
# 安装torch依赖
sudo apt-get install libopenblas-base libopenmpi-dev
在官网下载torch1.8版本安装包 https://forums.developer.nvidia.com/t/pytorch-for-jetson-version-1-10-now-available/72048(上面的百度网盘已经下载好了,网盘速度快点。)
![](https://i-blog.csdnimg.cn/blog_migrate/a4d09717d20cf35fb57ac07a3f8b6259.png)
![](https://i-blog.csdnimg.cn/blog_migrate/4b71afdbf47d3a7f6136436ed4eb869e.png)
安装Cython、numpy和pytorch
pip3 install Cython
pip3 install numpy torch-1.8.0-cp36-cp36m-linux_aarch64.whl //这里numpy很难下载
//建议添加源使用下面的命令,使用清华源进行下载 -i就是指定源,后面的地址百度很多其他的源也可以
pip3 install numpy torch-1.8.0-cp36-cp36m-linux_aarch64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple
安装成功后执行python3,输入红框中代码执行,验证torch是否安装成功,如果返回值为True则表示安装成功。
![](https://i-blog.csdnimg.cn/blog_migrate/65c8387692bc7665ccfbad1efc2cf2a9.png)
2.2 torchvision安装
下载 vision-0.9.0(可通过下面的原版地址或上面的网盘里面有)
![](https://i-blog.csdnimg.cn/blog_migrate/ab1006a2d7b4f4809b37b5b19ddd6852.png)
git clone --branch v0.9.0 https://github.com/pytorch/vision torchvision
解压vision-0.9.0,进入vision-0.9.0文件夹,打开控制台
执行以下命令编译安装torchvision(时间比较长)
export BUILD_VERSION=0.9.0
sudo python3 setup.py install –user
安装成功如下图
![](https://i-blog.csdnimg.cn/blog_migrate/b9ef574a0ed8deaecaea1272db538b6c.png)
升级pillow
pip3 install –upgrade pillow -I [https://pypi.tuna.tsinghua.edu.cn/simple](https://pypi.tuna.tsinghua.edu.cn/simple)
切换到非vision-0.9.0目录,尝试导入python库
![](https://i-blog.csdnimg.cn/blog_migrate/a0f971fa4dda45bf1333b70f9327e04c.png)
成功导入,则安装成功。
这个板子使用各种摄像头最好使用gstream方式,cheese以及ffmpeg播放摄像头可能播放不出来。
二、Gstreamer 简介
gstreamer是一种多媒体库,GStreamer采用基于插件(plugin)和管道(pipeline)的体系结构,其内部提供了许多组件,可以按照我们需要的功能在我们设计的管道中添加我们需要的组件,然后进行连接起来,最后就可以控制这个管道的工作,具体原理可以自己查找下相关资料。
1.显示MJPG格式,1280*720@30fps视频
gst-launch-1.0 v4l2src device=/dev/video0 ! image/jpeg,width=1280,height=720,framerate=30/1 ! jpegdec ! videoconvert ! xvimagesink
2.显示YUV格式,1280*720@15fps视频,容易卡顿
备注:这个性能主要看USB接口是2.0还是3.0、YUV传输图像fps以及主机的性能。
gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,format=YUY2,width=1280,height=720,framerate=15/1 ! videorate ! videoscale ! videoconvert ! xvimagesink
3. 显示MJPG格式,1280*720@30fps视频并同时抓拍(通过回调函数的方式)
gst-lanuch-1.0 v4l2src device=/dev/video0 ! image/jpeg,width=1280,height=720 ! jpegdec ! tee name=srctee srctee. ! queue2 ! xvimagesink srctee. ! queue2 ! videoconvert ! capsfilter video/x-raw,format=RGB ! fsink
4.显示MJPG格式,1280*720@30fps视频并同时抓拍(通过回调函数的方式),此外并进行录像功能
gst-launch-1.0 v4l2src device=/dev/video0 ! image/jpeg,width=1280,height=720 ! jpegdec ! videoconvert ! tee name=srctee srctee. ! queue2 ! xvimagesink srctee. ! queue2 ! x264enc threads=4 sliced-threads=TRUE tune=zerolatency ! matroskamux ! filesink location = output.mp4 srctee. ! queue2 ! videoconvert ! video/x-raw,format=RGB ! fakesink
回放录像的视频(该命令不能直接执行,而是代码中实现的基本原理)
gst-launch-1.0 filesrc location=test.mp4 ! qtdemux ! queue ! avdec_h264 ! videoconvert ! xvimagesink
opecv收UVC图像
cv::VideoCapture cap("v4l2src device=/dev/video1 ! videoscale ! videorate ! video/x-raw, width=640, height=360, framerate=30/1 ! videoconvert ! appsink");