Jeston AGX Xavier相关知识及部分学习环境配置

本文档中若有部分库或安装包下载不下来,则可在如下链接中自取:

链接:https://pan.baidu.com/s/1teYSJX6FWLdvO_nZLkgo4g  提取码:qppf

  • 刷机过程
  1. 刷机准备

1、VMware软件安装(网上具有教程)

2、创建虚拟机(Ubuntu18.04)

①Ubuntu官网下载ubuntu-18.04.1-desktop-amd64

②按照以下步骤操作:

A.创建新的虚拟机

B.点击“下一步”

 C.点击“下一步”

 D.点击“下一步”

 E.自定义“虚拟机名称”,位置建议选择除C盘外的磁盘,点击“浏览”进行更改并下一步

 F.处理器数量与每个处理器的内核数量均选择2,避免后期卡顿,并点击“下一步”

 G.点击“下一步”

 H.点击“下一步”

 I.默认选项,点击“下一步”

 J.默认选项,点击“下一步”

 K.默认选项,点击“下一步”

 L.修改磁盘大小,建议设定大些,避免不够用,后期卡顿

 M.默认,点击“下一步”

 N.点击“完成”

 O.双击CD/DVD(SATA)进入设置

 P.选择使用ISO映像文件,浏览选择步骤1下载的ubuntu-18.04.1-desktop-amd64文件,并点击“完成”

 Q.点击“开启虚拟机”

 R.选择中文(简体),并点击右侧安装Ubuntu

 S.选择汉语,点击“继续”

 T.默认选项,点击“继续”

 U.默认选项,点击“现在安装”,出现如下界面,点击“继续”

 V.选择shanghai,点击“继续”,随后自定义设置设备名称和密码

W.点击“继续”就开始安装了,安装过程需要花费点时间,耐心等待

  1. 刷机操作(注:Xaiver处于关机状态)

1、连线图如下

  2、Nvidia官网下载SDKmanager.deb包,网站如下:NVIDIA SDK Manager | NVIDIA Developer(需注册账户下载)

3、虚拟机中打开终端,输入sudo apt install ./sdkmanager_[version]-[build#]_amd64.deb

4、安装成功后,在终端输入sdkmanager,打开sdkmanager软件

5、软件操作

①输入个人账户后,进入登录界面,如下

 ②登录成功后,界面如下。取消Host machine选项(此选项是在虚拟机本身装载),后点击“continue” 

③若需刷机(纯Ubuntu系统)+安装应用包,则两项均选;若后期想只刷机或安装应用包,则只选择一项。随后选择下方“I accept...”,“continue”点亮,进行点击

 ④等待一会时间会弹出如下窗口,选择Manual Setup,然后按住Xaiver的中间键保持不动,再按住开机键2秒后,同时松开,此时Xaiver侧边白色指示灯点亮。打开终端,输入lsusb,若输出有Nvidia Crop,则证明设备连接正常,就可点击Flash开始刷机。(等待漫长。。。) 

⑤随后Xaiver连接的显示屏会亮起,进一步进行Ubuntu系统设定(同虚拟机一样),过段时间,Sdkmanager弹出如下窗口,填写刚才Xaiver设定的账户及密码,点击“Install”,(又是漫长等待。。。)

  • 刷机后续工作

注:Jetson AGX Xavier是aarch架构,即arm架构,若安装软件或库时失败,则检查安装包是否为aarch的,大部分原因是由于这个。

(1)解决浏览器搜索失败问题

原因是因为浏览器搜索引擎默认是谷歌,其需你点开设置,对搜索引擎进行修改,可选择  百度。

(2)换源

按照如下步骤进行:

①sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak  #备份初始源

②sudo gedit /ect/apt/sources.list

③将初始源的全部内容删除,网上搜索阿里源(清华源、网易源等)进行复制粘贴更换,需特特别注重一点,在阿里源语句中的ubuntu后面加上-ports,如下图所示,否则会报错(花了老长时间)。

 ④sudo apt-get update

⑤sudo apt-get upgrade

(3)安装jetson-jtop(查看电脑状态)

①sudo apt install python3-pip(若已安装则跳至第②步)

②sudo -H pip3 install -U jetson-stats

③jtop (以后可直接在终端输入进行查看,按“5”至风扇控制界面,可按需调节)

(4)查看cuda、cudnn版本

①Cuda版本:nvcc -V

②Cudnn版本:cat /usr/local/cuda-10.2/include/cudnn.h | grep CUDNN_MAJOR -A 2则会出现报错,原因是虽然AGX xavier刷机过程中安装了Cudnn包,但是其位置并不在/usr/local/cuda-10.2/include路径下,而在/usr/include,故需运行如下命令:

cd /usr/include && sudo cp cudnn.h /usr/local/cuda-10.2/include

cd /usr/lib/aarch64-linux-gnu && sudo cp libcudnn* /usr/local/cuda-10.2/lib64

sudo chmod 777 /usr/local/cuda-10.2/include/cudnn.h /usr/local/cuda-10.2/lib64/libcudnn*

cd /usr/local/cuda-10.2/lib64

sudo ln -sf libcudnn.so.8.0.0 libcudnn.so.8

sudo ln -sf libcudnn_ops_train.so.8.0.0 libcudnn_ops_train.so.8

sudo ln -sf libcudnn_ops_infer.so.8.0.0 libcudnn_ops_infer.so.8

sudo ln -sf libcudnn_adv_infer.so.8.0.0 libcudnn_adv_infer.so.8

sudo ln -sf libcudnn_cnn_infer.so.8.0.0 libcudnn_cnn_infer.so.8

sudo ln -sf libcudnn_cnn_train.so.8.0.0 libcudnn_cnn_train.so.8

sudo ln -sf libcudnn_adv_train.so.8.0.0 libcudnn_adv_train.so.8

sudo ldconfig

随后输入命令可查看cudnn版本信息。

(5)安装Archiconda3 (注:与Anaconda相同,其原因是Jetson AGX Xaiver是aarch架构,安装不成Anaconda)

①网上可找资源,

②运行  sh archiconda-<Version>     (注:过程中均输入yes即可完成安装)

③给予conda添加更新源,输入下面命令:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

conda config --set show_channel_urls yes

④创建一个虚拟环境,则输入:

conda create -n name(任意定义) python==<Version>(创建的python版本)

   例如创建一个名为first,python版本为3.6.9的虚拟环境,则输入:

Conda create -n first python==3.6.9

注:若创建失败,则运行 conda update conda   或conda update --all

(6)安装Cmake(后续在DarkNet环境下跑yolov3或yolov4需要)

①官网下载Cmake压缩包,并进行解压;

②官网的安装步骤在此行不通,因为现在Cmake已编译完成,无bootstrap文件,只有bin doc man share 四个文件,我们只需将解压的cmake文件夹移动至usr/local/路径下;

③输入运行  sudo gedit ~/.bashrc

④在文件末尾添加   export PATH=/usr/local/cmake/bin:$PATH

⑤输入运行  source ~/.bashrc

⑥输入  cmake --version  可查看版本信息

(7)解决出现“illegal instruction (cpre dumped)”的方法

①输入 sudo gedit ~/.bashrc

②在末行添加  export OPENBLAS_CORETYPE=ARMV8 ,保存关闭

③输入 source ~/.bashrc ,更新环境变量

(8)在Darknet框架下,复现YOLO v3、4,并进行Tensorrt加速

  1. YOLO v3、4复现(Darknet框架搭建)

①conda activate <环境名>     注:建议在archiconda3/envs/<环境名>下打开终端,避免文件混乱

②git clone GitHub - AlexeyAB/darknet: YOLOv4 / Scaled-YOLOv4 / YOLO - Neural Networks for Object Detection (Windows and Linux version of Darknet )  注:若克隆失败,则直接去该网站下载压缩包

③cd darknet

④mkdir build_release

⑤cd build_release

⑥cmake ..

⑦make -j8

⑧在 GitHub - AlexeyAB/darknet: YOLOv4 / Scaled-YOLOv4 / YOLO - Neural Networks for Object Detection (Windows and Linux version of Darknet )下载所需的v3、4权重文件,将其放置在weights(自己创建)文件夹下;

⑨在make -j8之前,修改Makefile文件的GPU=1、CUDNN=1、CUDNN_HALF=1、OPENCV=1,文件中所有/usr/local/cuda改为/usr/local/cuda-10.2,文件中ARCH部分,注释掉初始的,将GPU==Xaiver的去掉注释            注:每修改一次,则需重新make -j8一次,具体详情参考上方网站

⑩配置opencv环境,将/usr/lib/python3.6/dist-packages/路径下的cv2复制至.../archiconda3/envs/<环境名>/lib/python3.6/site-packages文件下即可;

⑪测试图片、视频

图片

./darknet detector test ./cfg/coco.data ./cfg/yolov4.cfg ./weights/yolov4.weights <图片路径>

如:

./darknet detector test ./cfg/coco.data ./cfg/yolov4.cfg ./weights/yolov4.weights ./data/horses.jpg

视频

./darknet detector demo ./cfg/coco.data ./cfg/yolov4.cfg ./weights/yolov4.weights <视频路径>

如:

./darknet detector demo ./cfg/coco.data ./cfg/yolov4.cfg ./weights/yolov4.weights ./data/cw.mp4

  1. Tensorrt加速

为提高检测帧率,则进行了模型Tensorrt加速,实现实时检测,具体步骤如下:

①conda activate <环境名>     注:建议在archiconda3/envs/<环境名>下打开终端,避免文件混乱

②git clone https://github.com/jkjung-avt/tensorrt_demos 注:若克隆失败,则直接去该网站下载压缩包

③配置tensorrt环境,将/usr/lib/python3.6/dist-packages/路径下Tensorrt有关文件,复制至/archiconda3/envs/<环境名>/lib/python3.6/site-packages文件下即可;

④安装Pycuda,

方法1:在/tensorrt_demos/ssd/路径下打开终端,进入虚拟环境,键入 sudo apt-get install protobuf-compiler运行(这个不需事先知道,否则会报错,安装失败),然后运行 ./install_pycuda.sh 进行安装,若检验是否安装成功,则进入python解释器,键入

import pycuda;

print('pycuda version:', pycuda.VERSION)

方法:2:

下载pycuda压缩包,解压文件并进入终端。键入

python3 configure.py --cuda-root=/usr/local/cuda-10.2

sudo python3 setup.py install

可能随后import pycuda报错,但可以这样解决,

将生成的pycuda相关包放入虚拟环境下的python3.6/lib/sit-pakages/文件下,然后import pycuda应该不会报错。

⑤安装onnx,键入 sudo apt-get install onnx==1.4.1 运行  注:时间可能较为漫长,不要安装版本较高,否则可能安装失败

⑥进入 /tensorrt_demos/plugins/ 路径下,键入 make 运行;

⑦进入 /tensorrt_demos/yolo/ 路径下,将事先下载好的 yolov4.weights 和 上部分的/darknet/cfg/ 路径下的yolov4.cfg文件复制至此,编辑 download_yolo.sh 文件,结果如下图注:其他权重类似

 

 ⑧键入 ./download_yolo.sh 运行

⑨键入 python3 yolo_to_onnx.py -m yolov4-416 运行,花费一段时间

⑩键入 python3 onnx_to_tensorrt.py -m yolov4-416 运行,花费一段时间

⑪键入 cd .. 返回上一级

⑫键入 python3 trt_yolo.py --image <某路径下图片> -m yolov4-416 运行检测图片,

键入 python3 trt_yolo.py --usb 0 -m yolov4-416 运行摄像头检测,

键入 python3 trt_yolo.py --demo <某路径下视频> -m yolov4-416 运行视频检测

(9)Yolov5复现及Tensorrt加速检测

  1. yolov5复现(yolov5要求python>=3.8,但可创建3.6来运行)

①conda activate <环境名> 注:建议在archiconda3/envs/<环境名>下打开终端,避免文件混乱

②git clone https://github.com/ultralytics/yolov5  注:若克隆失败,则直接去该网站下载压缩包

③安装pytorch

1:在此网站https://elinux.org/Jetson_Zoo#PyTorch_.28Caffe2.29根据个人配置下载pytorch的whl文件 注:可能下载失败,可在csdn上寻找资源进行下载

2:在终端进入whl文件所在的路径下,键入运行 pip3 install <whl文件名>

3:启动python解释器,键入

import torch  , torch.__version__  ,torch.cuda.is_available() 运行查看是否安装成功

④安装torchvision

1:git clone -b v0.x.0 https://github.com/pytorch/vision  注:x是torch对应的torchvision版本

2:cd vision

3:sudo python3 setup.py install

4: 启动python解释器,键入 import torchvision  , torchvision.__version__  运行查看是否安装成功

⑤配置opencv环境,同上Darknet的做法相同

⑥根据网站 https://github.com/ultralytics/yolov5 下载权重文件,并放置在weights文件(自己创建)下,

⑦根据yolov5文件夹下的requirements.txt来安装所需库条件(建议单独安装,否则可能会出错):

pip3 install Cython matplotlib==3.2.2 numpy==1.18.5 Pillow PyYAML==5.4.1 scipy==1.5.4 thop tqdm==4.58.0 tensorboard==1.15.0 seaborn==0.11.0 pandaspycocotools==2.0.2

⑧若一切顺利,则现在可以进行测试(将终端路径变换至yolov5下):

摄像头检测:python3 detect.py --source 0 --weights weights/yolov5s.pt --conf 0.25

图片检测:python3 detect.py --source <图片路径> --weights weights/yolov5s.pt --conf 0.25

视频检测:python3 detect.py --source <视频路径> --weights weights/yolov5s.pt --conf 0.25

  1. Tensorrt复现

①git clone https://github.com/wang-xinyu/tensorrtx 注:若克隆失败,则直接去该网站下载压缩包

②将.../tensorrt/yolov5/gen_wts.py复制至.../yolov5文件下,打开终端键入 python gen_wts.py 运行,则会生成一个.wts文件

③在/tensorrt/yolov5文件下,再次打开终端,键入运行

mkdir build

cd build

cmake ..

make

④将生成的.wts文件复制至/tensorrt/yolov5/build/文件下,打开终端键入运行

sudo ./yolov5 -s yolov5s.wts yolov5s.engine s   注:生成.engine文件,需等待几分钟

sudo ./yolov5 -d yolov5s.engine <图片路径>       

注:由于yolov5在Tensorrt加速下生成的.engine文件是对图片的推理,而一般实时性项目均使用摄像头进行检测,故需对yolov5.cpp文件进行魔改,但由于本人能力有限,现阶段未能实现。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值