Jetson nano配置环境、部署yolov5-seg全过程

目录

Jetson nano配置环境和部署yolov5-seg全过程:

 一、Jetson nano环境配置

 1.下载Jetpack镜像

 2.镜像烧录

3.安装jtop

4.配置中 文输入法

5.CUDA配置

6.修改nano的Swap内存

7.管理python 

 二、部署自己的yolov5-seg项目

 1.配置pytorch1.7、torchvision0.8 

2.配置yolov5环境 

 3.使用tensorrtx进行加速推理


Jetson nano配置环境和部署yolov5-seg全过程:

  1. 准备SD卡:Jetson nano要求最低配置16G的SD卡,整个系统刷完SD卡后被用了大概13G,后期还需要安装一些其他的机器学习框架,所以最低需要32G的SD卡,建议使用64G的SD卡。
  2. 烧写镜像:在烧写镜像前,需要先备份好SD卡中的数据,格式化SD卡后烧写镜像。
  3. 配置nano环境: 设置CUDA、修改显存、配置torch等。
  4. 配置yolov5环境,下载各种依赖包。
  5. 使用trnsorrts进行推理加速。

        文件下载

      (1)本文使用的jetpack包(4.6)和烧写软件:

        链接:https://pan.baidu.com/s/1ae8Iz7FoRTlRyE3yUJwpmg?pwd=ie8n 
        提取码:ie8n 

      (2)本文使用的torch、torchvision、matplotlib包:

        链接:https://pan.baidu.com/s/1R2eHjwkM1z7olhevoNw7eA 
        提取码:cdo7

 一、Jetson nano环境配置

 1.下载Jetpack镜像

        可以在官网选择所需的Jetpack版本镜像进行下载:JetPack Archive | NVIDIA Developericon-default.png?t=N7T8https://developer.nvidia.com/embedded/jetpack-archive

本文选择的是jetpack4.6版本进行试验(4.61-4.64版本未在官网上找到版本对应的torch包)

 2.镜像烧录

        准备工具:SD卡,读卡器。

        使用balenaEtcher软件进行镜像烧写(烧写前需要格式化),打开软件后选择文件和插了SD卡的读卡器即可进行烧写,该过程需要十几分钟左右。烧写成功后将SD卡直接插入到nano上,配置一些基本信息即可正常使用。

3.安装jtop

        Jtop可以实时监控jetson相关硬件使用情况的详情信息。在界面中可以显示CPU、GPU、内存、CUDA、Jetpack等的相关信息。

sudo apt install python3-pip
sudo -H pip3 install jetson-stats -i https://pypi.douban.com/simple/ 
sudo jtop 

4.配置中 文输入法

        (1)安装中文输入法软件

sudo apt-get update
sudo apt-get install fcitx fcitx-goolepinyin

        (2)配置中文输入法

  im-config -n fcitx # 配置
  sudo reboot        # 重启

        (3)输入法设置:语言设置上选择goole拼音作为中文输入法(ctrl+空格切换中英文)

5.CUDA配置

        Jetson nano在烧录镜像的时候使用的jetpack包中已经包含了CUDA、CUDNN、TensorRT环境,但是还需要我们将CUDA信息写入环境变量中。

 sudo gedit ~/.bashrc
 #文档末尾添加(cuda后面数字为cuda对应版本)
 export CUDA_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
 #保存退出 (配置成功可看出cuda版本信息)
 source ~/.bashrc
 nvcc  -V

6.修改nano的Swap内存

#(1)打开nvzramconfig.sh文件
	sudo gedit /etc/systemd/nvzramconfig.sh
#(2)修改nvzramconfig.sh文件内容 ( / 2 ==> * 2)
    修改mem = $((("${totalmem}"/2/"${NRDEVICES}")*1024))为mem = $((("${totalmem}"*2/"${NRDEVICES}")*1024))                               
    sudo reboot
    free -h     # swap已经变为7.7G

7.管理python 

         Jetpack自带了两个python版本,jetpack4.6版本自带的python版本是2.7和3.6,但是默认使用2.7版本,所以我们需要管理系统使用的python版本。

#(1)查看jetson自带python版本   (系统默认使用python2.7版本)
	ls  /usr/bin/python*
#(2)查看是否配置过python相关信息
	update-alternatives --list python
#(3)配置python相关信息
	sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
	sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2
#(4)查看配置信息
	update-alternatives --list python
#(5)切换python版本
	sudo update-alternatives --config python

 二、部署自己的yolov5-seg项目

 1.配置pytorch1.7、torchvision0.8 

        Jetson nano安装可使用cuda的torch需要在官方下载对应jetpack版本的torch文件包,如果版本不对应会安装不上(torch版本也需要和torchvision版本相对应)。由于属于境外网站,所以下载难度较大,且容易在安装过程出现文件包损坏的情况,这边通过网盘提供torch1.7和torchvision0.8版本的whl文件。

官方网址:

PyTorch for Jetson - Jetson & Embedded Systems / Announcements - NVIDIA Developer Forumsicon-default.png?t=N7T8https://forums.developer.nvidia.com/t/pytorch-for-jetson/72048

#(1)安装	
	sudo apt-get install libopenblas-base libopenmpi-dev libomp-dev
	pip install Cython
	pip install numpy xxx.whl	
#(2)验证
	import torch
	print(torch.__version__)
	print(torch.version.cuda)
	print(torch.backends.cudnn.version())

2.配置yolov5环境 

        (1)修改下载镜像

mkdir ~/.pip
sudo gedit ~/.pip/pip.conf

         (2)在空白文件中输入如下内容保存并退出:

[global]
index-url=http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com

        (3) 本文推荐将yolov5项目直接拉到Jetson nano中,然后安装yolov5的各种依赖包。有一些安装包会出现暗转失败的问题,可以直接下载符合版本的whl文件进行安装。笔者在实验过程中出现类似torch等一些文件已经安装的库在执行下面的指令后还会下载其他版本的包。解决方法注释掉requirements.txt中已经安装的包。

cd yolov5    
pip3 install -r requirements.txt       

python3 detect.py --source data/images/bus.jpg --weights yolov5n.pt --img 640    #图片测试

        (4)出现 “Illegal instruction(core dumped)”问题

sudo gedit ~/.bashrc
#末尾添加
export OPENBLAS_CORETYPE=ARMV8
#保存关闭
source ~/.bashrc

 3.使用tensorrtx进行加速推理

 (1)github官网下载的tensorrtx源码(注意:yolov5-v7版本的也需要选择tensorrtx中yolov5-v7版本进行下载,否则后续会报错,无法构建模型)

wang-xinyu/tensorrtx: Implementation of popular deep learning networks with TensorRT network definition API (github.com)icon-default.png?t=N7T8https://github.com/wang-xinyu/tensorrtx

(2) 将xxx.pt权重文件转化为xxx.wts文件

                将下载的tensorrtx项目中的yolov5/gen_wts.py复制到自己yolov5项目的文件下。打开终端:

#1 生成wts文件,把自己的权重文件xxx.pt文件放至此处执行
python3 gen_wts.py -w yolov5n.pt -o yolov5n.wts 

(3) 编译 

        1.回到tensorrtx/yolov5目录下

cd  ~/tensorrts/yolov5/
mkdir build
cd build

        2.将生成的wts文件移动到刚创建的build目录 

cmake ..
make -j4

        3.如果是自己的项目需要修改config文件的参数 ,将类别数修改自己项目的类别数

        4. 生成engine文件

        ./yolov5为前面指令生成的可执行文件,可能是yolov5_seg/yolov5_cls/yolov5_det        -s为序列化, n 代表yolov5n,s 为yolov5s。

sudo ./yolov5 -s xxx.wts xxx.engine n

        5.测试图片查看效果

          ./yolov5解释同上,-d为检查,../samples为待检查的图片路径, xx.txt为你的模型参数解释

sudo ./yolov5 -d xxx.engine ../samples  xx.txt

         执行结果如下所示,推理基本可以做到42ms一张图片。

 参考连接:

  1.   Jetson学习笔记(一):jetson 系列镜像下载、烧写、设置散热风扇、中文包、pip、中转英目录、软件源、显示CSI摄像头_jetsonxuexibiji-CSDN博客
  2. Jetson Nano配置YOLOv5并实现FPS=25_jetson nano 25fps实时检测-CSDN博客
  3. tensorrt中采用YOLOv5的pt文件生成engine中遇到问题_yolov5生成engine报错: [e] [trt] (unnamed layer* 18) [c-CSDN博客
  4. Jetson Nano刷机教程_jetson nano 刷机官方教程-CSDN博客

  • 24
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
以下是将 Jetson Nano 部署YOLOv4-tiny 的详细过程: 1. 安装 JetPack JetPack 是 NVIDIA 的软件套件,其中包含 Jetson Nano 的操作系统、CUDA、cuDNN、TensorRT 等组件。可以从 NVIDIA 官网下载并安装。安装过程中需要选择 CUDA 和 cuDNN 的版本,需要与 YOLOv4-tiny 使用的版本相匹配。 2. 克隆 YOLOv4-tiny 仓库 使用以下命令从 GitHub 克隆仓库: ``` git clone https://github.com/AlexeyAB/darknet.git ``` 3. 编译 YOLOv4-tiny 在克隆的仓库目录下,执行以下命令编译 YOLOv4-tiny: ``` cd darknet make ``` 编译过程可能需要较长时间,取决于 Jetson Nano 的性能。 4. 下载权重文件 从 YOLOv4-tiny 的官方仓库中下载权重文件,可以使用以下命令: ``` wget https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v4_pre/yolov4-tiny.weights ``` 将权重文件保存到 darknet 目录下。 5. 测试 YOLOv4-tiny 在 darknet 目录下,执行以下命令测试 YOLOv4-tiny: ``` ./darknet detector test cfg/coco.data cfg/yolov4-tiny.cfg yolov4-tiny.weights data/dog.jpg ``` 该命令会使用 YOLOv4-tiny 模型检测 data/dog.jpg 中的狗,并输出检测结果。 6. 部署Jetson Nano 将编译好的 darknet 目录复制到 Jetson Nano 上,使用以下命令测试 YOLOv4-tiny: ``` ./darknet detector test cfg/coco.data cfg/yolov4-tiny.cfg yolov4-tiny.weights data/dog.jpg -thresh 0.4 ``` 这里添加了 -thresh 0.4 参数,用于过滤置信度低于 0.4 的检测结果。 以上就是将 Jetson Nano 部署YOLOv4-tiny 的详细过程。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值