这个教程详细记录了我配置Jetson Xavier NX过程,自用,踩了很多坑所以贴出来分享给大家。这个教程有时效性,可能你装的时候,界面不完全一样,只要不报错,每一步就是没问题的,这个文档有结合Jetson群里一些文档,与GPUS公司的一些教程,我会在文后或者文中贴出来
PS:再次强调我没说明的步骤,只要你执行完不报错,就是没问题的!!!
一.刷机
安装xavier官方OS映像,这个网上一堆刷机教程,这里附一个链接,若失效,可自行百度
1.刷机教程:https://blog.csdn.net/u013963960/article/details/106194620
2.官方下载jetpack链接:https://developer.nvidia.com/embedded/downloads
二.关于更新源
使用 Jetson Nano 的默认源进行更新。更新过程很漫长,大家可以执行完命令,做其他事吧。以下两个操作建议一定在做 AI 的项目前执行,否则安装一些库会找不到安装地址,导致后面频繁出错。依次输入以下两个命令:
sudo apt-get update
sudo apt-get full-upgrade
在过程中输入 Y 确认更新。第二个过程时间根据网络情况可能会花 2 个小时左右,请耐心等待(这个地方我装的很快,因人而异)
三.检查已经安装的系统组件
Jetson Xavier NX 的 OS 镜像已经自带了 JetPack,cuda,cudnn,opencv 等都已经安装好,并有例子
(1) 检查 CUDA
Jetson Xavier NX 中已经安装了 CUDA10.2 版本,但是此时你如果运行 nvcc -V 是不会成功的, 需要你把 CUDA 的路径写入环境变量中。OS 中自带 Vim 工具 ,所以运行下面的命令编辑环境变量
sudo vim ~/.bashrc
在最后添加下面三行(这里需要你对linux命令有一点点了解,小白可以百度练习,改错了就再重新来,楼主就是这样开始):
export CUDA_HOME=/usr/local/cuda-10.0
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-10.0/bin:$PATH
注意:如果添加上面三句还是显示 nvcc not found,首先,查看 cuda 的 bin 目录下是否有 nvcc: cd /usr/local/cuda/bin ,如果存在,vim ~/.bashrc 进入配置文件,把上面三句减少为下面两句(我得经验是,第一步一般不行,直接错了就改成两行)
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
然后保存退出(长按esc,再按:wq!)
然后需要 source 下生效下。
source ~/.bashrc (这里如果报错,就自己手动输入,不要复制粘贴那两行代码)
source 后,此时再执行 nvcc -V 执行后界面应该这样
2)检查 OpenCV
Jetson Xavier NX 中已经安装了 OpenCV4.1.1 版本,可以使用命令检查 OpenCV 是否安装就绪 :pkg-config opencv --modversion
如果 OpenCv 安装就绪,会显示版本号
注意:如果此条命令无法查看,可以在终端输入 python 进入 python 编程环境,然后添加输入一下两段代码极客查看 opencv 版本
import cv2
cv2.__version__
(3)检查 cuDNN(这一步其实也可以略过,如果cuda没问题,这个一般也没问题)
Jetson-nano 中已经安装好了 cuDNN,并有例子可供运行,我们运行一下例子,也正好验证上面的 CUDA
cd /usr/src/cudnn_samples_v8/mnistCUDNN/ #进入例子目录
sudo make #编译一下例子
./mnistCUDNN # 执行
如果以上无法运行可添加权限: sudo chmod a+x mnistCUDNN
四.USB外接摄像头(一般默认接CSI摄像头,如果你是接CSI摄像头此步可以跳过)
(1)输入: ls /dev/video*
如果没有插 CSI 摄像头则应该是 video0
(2)测试摄像头:使用应用程序茄子(cheese)
输入:sudo apt-get install cheese
装好后,用命令: cheese #打开摄像头
五.安装各种包和GPU
(1)安装pip
因为 Jetson Xavier NX 中已经安装了 Python3.6 版本,所以安装 pip 还是比较简单的 ,输入命令:sudo apt-get install python3-pip python3-dev
安装后 pip 是 9.01 版本,需要把它升级到最新版,输入命令:
python3 -m pip install --upgrade pip #升级 pip
升级后 pip 版本为 20.2.4。这里面升级后会有一个小 Bug,需要手动改一下
sudo vim /usr/bin/pip3 #打开 pip3 文件
将原来的
from pip import main
if __name__ == '__main__':
sys.exit(main())
改成(两个下划线,如果修改后有问题,看看是不是你修改错了,这里对按这个对几遍)
from pip import __main__
if __name__ == '__main__':
sys.exit(__main__._main())
修改结束后保存。运行 pip3 -V 成功后显示
(2)安装那些机器学习领域非常重要的包(报错是网络问题,多尝试)
sudo apt-get install python3-numpy #numpy
sudo apt-get install python3-scipy #scipy
sudo apt-get install python3-pandas #pandas
sudo apt-get install python3-matplotlib #matplotlib(这里中途需要输入一个Y)
sudo apt-get install python3-sklearn #sklearn(这里中途需要输入一个Y)
a确认 CUDA 已经被正常安装,输入命令 :nvcc -V
如果能看到 CUDA 版本号,即为正确安装
b安装所需要的包
sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev gfortran
如果按y还是一直报错,那就修改命令行如下,在后面加个-y
sudo apt-getinstalllibhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev gfortran -y
如果还有错误,请手动输入,复制粘贴可能存在错误。
(3)安装 TensorFlow GPU 版 (不建议在线,会出很多错误)
1.在线安装:
sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v44 tensorflow
2.离线安装(我上传资源在我主页,可以找到)
可以自行百度下载tensorflow的whl文件,也可以找我要百度云链接,下载后放入home文件夹下,然后输入指令:
pip3 install tensorflow-2.2.0+nv20.6-cp36-cp36m-linux_aarch64.whl
(这里的版本号按你下载的版本修改,下载途中可能也会需要在线安装一些软件包直接Y通过,如果出现一动不动的情况,多试几次,可能是网络问题,或者出现报错,大概率也是网络原因,不厌其烦多试几次总能成功的)
(4)安装 Keras
sudo pip3 install keras
(报错多尝试几次,可能是网络原因)
六.配置DEMO运行环境并运行。实行实时监测【这一节我是参考GPUS公司网站,链接会贴在文末,配置环境可参考,调用摄像头命令不是那个】
(1)安装 git 和 cmake
sudo apt-get install libpython3-dev python3-numpy
sudo apt-get install git cmake
接着git 上克隆 jetson-inference 库:
git clone https://github.com/dusty-nv/jetson-inference
注意:可能会出现 error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function.这个原因是由于 git 默认缓存大小不足导致的,使用下面的命令增加缓存大小
git config --global http.postBuffer 5242880000
如果还是不行可能是网速慢,配置 git 的最低速度和最低速度时间
git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 999999
(2)安装jetson-inference
cd jetson-inference #进入jetson-inference
git submodule update --init #取得代码更新版本
在进入cmake前,需要调整镜像,输入下面两行命令:(这里其实是换源,不然无法下载)
sed -in-place -e 's@https://nvidia.box.com/shared/static@https://bbs.gpuworld.cn/mirror@g' tools/download-models.sh
sed -in-place -e 's@https://nvidia.box.com/shared/static@https://bbs.gpuworld.cn/mirror@g' tools/install-pytorch.sh
接着进行cmake
mkdir build #创建 build 文件夹
cd build #进入 build
cmake ../ #运行 cmake
正常情况下会下载很多模型,这里如果没能*,请手动下载然后放到上面提到的路径 data/networks
注意:可能会出现个弹框出现说时候安装 pytorch,这个根据个人需要选择。(一直按yes就好,这里如果报错,也是网络原因,多试几次,如果你愿意,半夜装最好)
如果环境备注正确的话,最后会出现下图最后一行“Build files have been written to: xxxxx/build” 的信息,否则就会出现错误信息。如果出现错误,建议把 build 目录产生的内容全部清空(在 build 目录下执行 rm -rf *),然后重新 cmake ..(建议直接从home里删除jetson-inference文件夹全部重新开始)下面是配置好的界面。
配置好后继续执行以下命令:
make -j4 #使用 4 个 CPU 核同时编译
sudo make install #要写入系统目录去
这就完成了所有配置过程,过程会将执行档存在jetson-inference/buidl/aarch64/bin 下,请自行更换到该目录,然后执行调用命令./imagenet-console ./images/bird_0.jpg output.jpg
找到对应目录下查看 output.jpg 如下,会在图片上端显示识别结果(建议直接实时检测,这个命令用的时候我第二次有问题了,可以自行查jetson-inference文件夹下的代码说明)
(3)调用摄像头实时检测(记得在前面提供的bin目录下执行命令)
命令:
./detectnet.py /dev/video0
说明:这个命令你看到的时候,不一定就是这个了,楼主第三次重刷系统时,之前那个命令就没法用了,如果你这里输入命令出现报错,就去readme文件里查看每个功能的说明文件,这里楼主是在detect net-camera.md文件里找到了说明。这里我调用的python代码
GPUS运行Demo:http://www.gpus.cn/gpus_list_page_techno_support_content?id=52
jetson群号:725916205(群主跟群里的人都很友好,欢迎大家加入交流)