Jetson Xaiver NX相关教程(详细版)

一、参考资料

Jetson nano/NX 部署Yolo v5过程记录

二、相关介绍

Jetson Xaiver NX相关教程(详细版)_第1张图片
Jetson Xaiver NX相关教程(详细版)_第2张图片
Jetson Xaiver NX相关教程(详细版)_第3张图片
Jetson Xaiver NX相关教程(详细版)_第4张图片
Jetson Xaiver NX相关教程(详细版)_第5张图片

三、软件安装

2.1 jetson-stats

2.1.1 相关介绍

jetson-stats是一个开源软件包,用于监测和控制Nvidia Jetson设备的运行状态。
Jetson-stats包含以下工具:

  • jtop
  • jetson_config
  • jetson_release
  • jetson_swap

    Jetson Xaiver NX相关教程(详细版)_第6张图片
    Jetson Xaiver NX相关教程(详细版)_第7张图片
    Jetson Xaiver NX相关教程(详细版)_第8张图片

2.2.2 安装jetson-stats

https://github.com/rbonghi/jetson_stats

sudo -H pip install -U jetson-stats

或者
sudo pip install -U jetson-stats

2.2 烧录系统镜像

Jetson Xavier NX 烧写系统镜像

  1. 使用SD Formatter格式化SD卡
  2. 用Win32 Diskimg写入镜像

2.3 安装输入法

在Jetson Xavier NX安装中文输入法(googlepinyin中文输入法)

Jetson Xavier NX安装中文输入法

Jetson Xavier NX是arm架构,而sougoupinyin只支持amd架构,不支持arm架构,因此可以使用采用googlepinyin。

sudo apt-get install fcitx-googlepinyin

E: Unable to locate package fcitx-googlepinyin

先执行: sudo apt install fcitx,然后再执行安装googlepinyin的命令。

sudo apt install fcitx
sudo apt install googlepinyin

Jetson Xaiver NX相关教程(详细版)_第9张图片
Jetson Xaiver NX相关教程(详细版)_第10张图片
Jetson Xaiver NX相关教程(详细版)_第11张图片
Jetson Xaiver NX相关教程(详细版)_第12张图片
Jetson Xaiver NX相关教程(详细版)_第13张图片

2.3 安装pip

wget https://bootstrap.pypa.io/pip/3.6/get-pip.py
python3 get-pip.py

四、重要说明

4.1 相关经验

  1. 自带的opencv4就别卸载了,安装其他版本很麻烦,且还原opencv4也麻烦。
  2. 系统自带的swap交换空间为4GB,如果出现编译C/C++程序卡死的情况,可以拓展4+8=12GB。
  3. jetson增加虚拟内存
    Jetson Nano 相关配置-安装中文输入法、增加虚拟内存、安装VS Code…

4.2 jetson系列性能对比

Jetson NX和Nano上使用TensorRT部署YOLOv4模型速度测试

Jetson CUDA 算力表

GPU 浮点算力(FP16) 整点算力(INT8) Compute Capability
Jetson AGX Xavier 11 TFLOPS 32 TOPS 7.2
Jetson Xavier NX 6 TFLOPS 21 TOPS 7.2
Jetson TX2 1.3 TFLOPS 不支持 6.2
Jetson Nano 0.5 TFLOPS 不支持 5.3

目标检测推荐的模型:yolov5s

NX性能果然非常强,轻松实现近百fps的性能。从数据可以看到,使用INT8精度和使用DLA都能提升推理性能。

以小目标检测数据集测试,实测IN8相比于FP16,精度下降了15-25%,影响相当大。按照经验,做项目的时候,如果时间紧、效果要求高,一般使用FP16精度推理。如果做产品并且研发时间充足,会考虑用INT8提升推理性能。

经过测试,NX的DLA即支持FP16精度,也支持INT8精度。不过DLA只支持Conv,Mul,MaxPool,Concat,Sigmoid等少量算子,并且需符合特定顺序,其余算子会Fallback到GPU,这会拖累性能提升幅度。

4.3 风扇控制

Xavier NX的风扇在系统内核中有一套自动控制温度和转速的算法,经过观察,大约在40度左右的时候会自动开启风扇进行散热,在核心温度大约低于39度时候会自动关闭散热风扇。

设置功率
Jetson 系列——jetson xavier nx和nano设置工作模式设置功率

4.4 SD卡镜像备份和复制

Jetson 系列——jetson nano制作SD卡备份镜像以及还原
经验:

  1. 将部署好的jetson nano复制到新机器上,需要SD卡的镜像和复制操作。
  2. 在jetson nano上将系统及环境配置好之后,在各种研究试验时,有可能将原环境破坏,工作内容丢失,所以很有必要将原始准备好的环境进行备份。备份好之后,可以恢复工作,也可以将备份好的环境用到新的机器上。工程上部署新机器,也可以通过这种方式部署。

4.5 Xaiver NX优化Tips

英伟达Xavier NX工业AI应用实战

  1. 提前做好设备散热测试,需要主动散热。在压力测试下,功耗轻松到达30W,芯片温度很容易达到75度。一旦超过80度,CPU会降频到350MHz,性能急剧下降造成系统运行不稳定。
  2. 8GB内存不够用。系统开机占用1.2GB内存,开个Docker占用1.5GB内存,Redis缓存占用1.2GB内存,TensorRT开1个模型占用1.2GB内存,开3G模型占用3.6GB内存。为此,NVIDIA特意发布了16GB Xavier NX,价格增加100美元。
  3. NX缺货和涨价令人头疼,好不容易开发完应用要批量出货,发现NX缺货厉害,设备成本都在5000+都不一定买到货。

五、相关项目

5.1 yolov5吸烟识别项目

Jetson 系列——基于yolov5对是否吸烟的检测,部属于jetson xavier nx,使用tensorrt、c++和int8加速,可用于边缘计算

5.2 yolov5安全帽检测

Jetson 系列——基于yolov5对反光衣和安全帽的检测,部属于jetson xavier nx,使用tensorrt、c++和int8加速,可用于边缘计算
Jetson 系列——基于yolov5对工地头盔的检测,部属于jetson xavier nx,使用tensorrt、c++和int8加速,可用于边缘计算

5.3 yolov5口罩检测

Jetson 系列——基于yolov5对是否带口罩的检测,部属于jetson xavier nx,使用tensorrt、c++和int8加速,可用于边缘计算

5.4 烟雾检测

Jetson 系列——基于yolov5对火源或者烟雾的检测,使用tensorrt、c++和int8加速

5.5 deepsort目标跟踪

Jetson 系列——基于deepsort的物体跟踪使用tensorrt和c++加速
Jetson 系列——基于yolov5和deepsort的多目标头部识别,跟踪,使用tensorrt和c++加速

5.6 Jeston TX2的GStreamer推流操作

Jetson 系列——nvidia jetson nano推流操作和 jetson xavier NX GStreamer 推流操作

六、可能出现的问题

6.1 找不到pip指令

WARNING: The scripts pip, pip3 and pip3.6 are installed in '/home/yoyo/.local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
yoyo@ubuntu:~/Downloads$ pip list
bash: pip: command not found
yoyo@ubuntu:~/Downloads$ pip3 list
bash: pip3: command not found
解决办法:
sudo gedit ~/.bashrc

export PATH=/home/yoyo/.local/bin:$PATH

source ~/.bashrc

6.2 sudo pip 找不到指令

【Linux】sudo pip 找不到命令解决方法

yoyo@ubuntu:~$ sudo -H pip install -U jetson-stats
sudo: pip:找不到命令
解决办法:
1. 编辑/etc/sudoers
sudo gedit /etc/sudoers

Defaults env_reset
修改为
Defaults !env_reset

2. 编辑配置文件~/.bashrc
sudo gedit ~/.bashrc

添加:
alias sudo='sudo env PATH=$PATH'

3. 使配置生效
source ~/.bashrc

你可能感兴趣的:(深度学习,Jetson,Xaiver,NX)