NVIDIA Jetson AGX Xavier配置deepstream 5.0环境并部署yolov5进行目标检测

NVIDIA Jetson AGX Xavier配置deepstream 5.0环境并部署yolov5进行目标检测

  • ​​一、Xavier Jetpack4.5系系统运维工作内容统及deepstreamdefine()翻译 5.0烧写​​
  • ​​官方步骤​​
  • ​​准备​​
  • ​​上位机安装sdkmanagdefine()propertyer​​
  • ​​启动sdkmanager​​
  • ​​2:连接​​
  • ​​正式刷机​​
  • ​​参考​​
  • ​​JetPdefined在python中是什么意思ack 中的主要功能​​
  • ​​操作系统​​
  • ​​TensorRT​​
  • ​​cuDNN​​
  • 人工智能专业​CUDA​​
  • ​​多媒体 API​​
  • ​​计算机视觉目标检测​​
  • ​​二、yolov5模型换成tensorrt加速linuxpython编程型​​
  • ​​2.1 Jetsopython代码画樱花n Xavier安装pytorch 1.6.0和torchvision0.7.0​​

​​definex是什么牌子2.1.1、whl文件安装pytorch​​​​2.1.2、安装torchvision​​​​2系统运维工程师.1.3、测试是否安装成功​​​​2.1.4、可能遇到的问题​​

  • ​​问题1:NVIDIAdefineproperty JETSON Xavier 安装 pytorlinux重启命令chlinux命令 出现错误:impor三维目标检测t torch 出现 Illegal instruction(core dum运动目标检测p人工智能专业ed)​​
  • ​​问题2:出现问题:​​
  • ​​2.1.python下载5、参考:​目标检测
  • ​​2.2、换模型代码下载​​
  • ​​一、下载代码​​
  • ​​二、下载预训练模型——可以换成你自己的模型​​
  • ​​三、 在yolov5将yolov5的.pt模型换成 .wts格式​​
  • ​​三、在Yolov5-in-Deepstream-5.0中将define名词wts文linux命令换为TensorRT模型​​
  • ​​三、ddeepstr人工智能eam中yolo v5部署进行目标检测​​

一、Xavier Jetpack4.5系统运维工程师系统及deepstream 5.0烧写

我们使用英伟达官方提供linux系统的SDKmanager进行基本开发环境的配置。

在你使用开发套件之前,你需要define()安装 JetPack。你需要一套 Linux 系统的主机去

运行 JetPack 安装器, 然后对你的开发套件刷机。

Linux 主机的defineproperty最低系统要求: ubunt新目标检测u Linux x64 v16.04 或 v18.04, 可以联网、至少

23GB 的硬盘空间。

JetPack 的安装步骤如下:linux系统安装

  • 下载 JetPack 到你的 Linux 主机。
  • 连接开发套件和 Linux 主机。
  • 将开发套件至于强制恢复模式。
  • 运行 Jetpython怎么读Pack 安装器并选择想要的组件。

官方步骤

​​https://docs.nvidia.com/sdk-manager/install-with-sdkm-jetson/index.html​​define用法

准备

一台上位机ubuntu16或者18

一台NVIDIA Jetson AGX Xavier

上位机安装sdkmanager

下载sdkmanager,linux是什么操作系统我下载最新的sdkmanag目标检测算法er_1.4.0-7363_amd64.deb地址为:

​​

​​

​​​​

人工智能专业要账户登录并下载,这个账户后面还要用,是必须要的。

提前准备一台机器,笔记本或台式机,我们暂称之为上位机,在上位linux系统安装机中安装(Ubuntu18.04-LTS 8G内存需求,若虚拟机请将磁盘容量至linux常用命令少设置在60G以上,内存8G),sdkmanager,系统运维工作内容命令:

$ ​​sudo apt install ./sdkmanager_1.4.0-7363_amlinux常用命令d64.deb​

启动sdkmanager

sdkmanager

2:连接

将Host与Xavier之间通过网线接到同一台交换机上,然后再通过USB进行连接。注意:主机和从机网段设人工智能换脸鞠婧祎郑爽置相同。之人工智能专业后利用lsusb命令查看是否已经将Xavier与主机连到一起了,如果命令行出现NVIDIA Corp,证明已经连接,可以开始刷机了

选择好你要下载的Xavier jet人工智能电影pack 4.5。

比如,我即将安装的JetPacklinux删除文件命令4.5的主要软件包版本如小目标检测下:

Cuda=10.2

Cudnn=8.0

Tedefine在c语言中是什么意思nsorRT=7.1

OpenCpython123V=4.4.1

一般使用默认地址人工智能换脸鞠婧祎郑爽即可,选择 I accept,然后点击Continue,于是开始了JetPack的下载与安装:


                                            NVIDIA Jetson AGX Xavier配置deepstream 5.0环境并部署yolov5进行目标检测

正式刷机

等待快完成下载时,宿主电脑会弹出如下页面:


                                            NVIDIA Jetson AGX Xavier配置deepstream 5.0环境并部署yolov5进行目标检测

这时需要我们选择手动模式(Manual Setuplinux命令),并手动使 Jetson Xavier 进python代码大全入 Recovelinux系统ry 模式,步骤如下:

使用Type-CUSB数据线将 Xavier 与宿主电脑连接

将 Xavier 插上电源,并处于关机状态

点击Flash,准备pythonpython编程

按下并保持 Xavier 上的【Recovery】键(中间的键人工智能概念股

按下并保持【Power】键(最左边的键),持续1s,然linux常用命令后同时松开这两个键,进入刷机模式

JetPack 中的主要功能

​​https://ddefine在c语言中是什么意思eveloper.nvidia.com/zh-cn/embedded/jetpack​​

操作系统

NVIDIA L4T 提供引导加载程序、Linux 内核、必要固件、NVIDIA 驱动、示例文件系统等内容。

TensorRT

TensorRT 是用于图像python分类、分割和物体检测神经网络的高性能深度学习推理运行时。TensorRT 依托于 CUDA 而构建,是 NVIDIA 的并行编程模型,支持优化各种深度学习框架的推理过程。它包含深度学习推理优化器和运行环境,可让深系统运维工作内容度学习推理应用实现低延迟和高吞吐量。

cuDN人工智能换脸鞠婧祎郑爽N

CUDA 深度神经网络库为深度学习框架提供了高性能基元。它可大幅linux是什么操作系统优化标准例程(例如用于前向传播和反向definex是什么牌子传播的卷积层、python池化层、归一化层和激活层)的实施。

CUDA

CUDA 工具包为 C 和 C++ 开发人员构建 GPU 加速应用defined在python中是什么意思提供了全面的开发环境。该工具包中包括一个针对 NVIDIlinux删除文件命令A GPU 的编译器、多个数学库,以及多款用于调试和优化应用性python基础教程能的工具。

多媒体 API

Jetson 多媒体 API 包提definex供了低层级的 API,有助于实现灵活的应小目标检测用开发。

摄像头应用 API:Libargusdefinex 为摄像头应用提供了低层级的帧同步 API,同时还提供了逐帧摄像头参数控制、多个(包含已同步的摄像头)摄像头支持以及 EGL 流输出。需要 ISP 的 RAW 输出 CSdefine用法I 摄像头可与 Libargus 或 GStreamer 插件配合使用。这两python编程种情况下都会使用 V4L2 媒体控制器传感器驱动 API。

传感器驱动 API:V4L2 API 支持视频解码、编码、格式换和缩放功能。用于linux命令编码的 V4L2 开启了多项功能,如比特率控制、质量预设linux系统、低延迟编码、临时折衷、运动矢量图等。

计算机视觉

VisionWorks 是一个用于计算机视觉 (CV) 和图像处理的软件开发包。

OpenCV 是一个领先的开源库,用于计算机视觉、图像处理和机器学习。

VPI(视觉编程接口)1 是一个软件库,提define在c语言中的用法供可在 PVA2(可编程视觉加速器)、GPU 和 CPU 上实现的计算机视觉或图像处理算法

Deepstream SDK 是一套完整的分析工目标检测算法具包,可用linux于基于 AI 的多传感器处理以及视频和图像理解。

JetPack 4.4 支持 DeepStream 5.0 一般可用版本

DeepStream 5.0 开发者预览版本仅受 JetPack 4.4 开发者预览版本支持。linux

14:02:32 ERROR: Drivers for Jetson - target_image: E动目标检测: The repository ‘file:/var/cuda-repo-ubuntu1804-10-2-local Release’ no longer has a Release file.

14:02:32 ERROR: Drivers for Jetson - target_image: command t人工智能的定义erminated with error

14:02:32 SUMMARY: File System and OS - target_image: Depends on failed component

二、yolov5模型转换成tpython下载ensorrt加速模型

2.1 Jetson Xavier安装pytordefined在python中是什么意思ch 1.6.0和torchvision0.7.0

进行模型的换,需要先安装pytorch环境,下面是我在Xavier上安装pytorch 的步骤。

我的环境说明:

名称

版本

硬件​:

Nvidia Jet三维目标检测son Xavier AGXdefineproperty

CUDA版本​:

10.2

Jetdefine名词pack版本​:

JP 4.5linux

python版本​:

python2.7 python3.6

deepstream-app version

5.0.0

TensorRT Version​:

7.1

cuDNN Version​:

8.0

2.1.1、whl文件安装pytorch

在英伟达官方提供的​​Jetson Zoo​​处下载你系统对应的英伟达编译好的arm版本,这里和平常llinux系统安装inux系统下安装的whl包不同,Jetson Xavier是arm环境不是x86。

例如我下载的文件是

然后python代码画樱花按照下面四个步骤安装ppythonytorchdefine在c语言中是什么意思,这里注意,不是直接运行define什么意思

python下载pip idefined在python中是什么意思nstadefine()l人工智能专业l torch-1.6.0-cp36-cp36m-linux_aarch64.whl

而是需要运行下面四个步骤才能成功。


安装 OpenBLAS and OpenMPI

sudo apt-get install libopenblas-base libopenmpi-dev
sudo apt-get install python3-pip
pip3 install Cython
pip3 install numpy torch-1.6.0-cp36-cp36m-linux_aarch64.whl


                                            NVIDIA Jetson AGX Xavier配置deepstream 5.0环境并部署yolov5进行目标检测

测试是否运行成功

python3
import torch


                                            NVIDIA Jetson AGX Xavier配置deepstream 5.0环境并部署yolov5进行目标检测

2.1.2、安装torchvision

pytorch和torchvisdefine在c语言中是什么意思ion版本对应关系

以下版本截止2021年3月24日


                                            NVIDIA Jetson AGX Xavier配置deepstream 5.0环境并部署yolov5进行目标检测

pytorlinux系统ch1.6.0对应的torchvision版本为0.7.0

git clone -b v0.7.0 https://github.com/pytorch/vision
cd vision
sudo python3 setup.py install


                                            NVIDIA Jetson AGX Xavier配置deepstream 5.0环境并部署yolov5进行目标检测

2.1.3、测试是否安装成功

import torch
import torchvision

print(torch.__version__)
print(torch.version.cuda)
print(torchvision.__version__)

运行人工智能概念股

python3 test_pytorch.py


                                            NVIDIA Jetson AGX Xavier配置deepstream 5.0环境并部署yolov5进行目标检测

大功告成!

2.1.4、可能遇到的问题

问题1:NVIDIA JETpython怎么读SON Xavier系统运维工程师 安装 pytorch 出现错误:import torch 出现 Illegal instruction(core dumped)

解决方法

'''修改环境变量'''
sudo gedit /etc/profile

把 export OPENBLAS_CORETYPE=ARMV8 加入最后面一行,然后保存

'''更新环境变量'''
source /etc/profile

如果Xavierdefine用法 安装torchvision也出现Illegal instructilinux命令on

不要用源码安装了,直接输入

pip3 install torchvison==0.9.1

安装成功。

问题2:出现问题:

No module named ‘numpython是什么意思py.testing.nosetester’

问题的原因是numpy版本>1.18,而scipy的版本<=0.19,所以只要把scipy的版本更新就行了。

解决方法

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade scipy

2.2、转换模型代码下载

一、下载代码

代码地址:​​https://github.com/DanaHan/Yolov5-in-Deepstream-5.0​​

mkdir deepstream_yolov5
cd deepstream_yolov5
git clone https://github.com/DanaHan/Yolov5-in-Deepstream-5.0.git
git clone https://github.com/ultralytics/yolov5.git
cd yolov5
git checkout -b v3.1 #切换到3.1版本

二、下载预训练模型——可以换成你自己的模型


                                            NVIDIA Jetson AGX Xavier配置deepstream 5.0环境并部署yolov5进行目标检测

下载好模型后放到 yolov5/weights 目录下

sudo docker cp yolov5x.pt 12a01fe39897:/home/work/DeepStream_Yolov5/yolov5/weights

三、 在yolov5将yolov5的.pt模型转换成 .wts格式

cp Yolov5-in-Deepstream-5.0/gen_wts.py yolov5/

修改 gen_wts.py 中的模型名称,需要根据自己用的模型做对应修改,主要是第8行和第11行

import torch
import struct
from utils.torch_utils import select_device

# Initialize
device = select_device('cpu')
# Load model
model = torch.load('weights/yolov5x.pt', map_location=device)['model'].float() # load to FP32
model.to(device).eval()

f = open('yolov5x.wts', 'w')
f.write('{}\n'.format(len(model.state_dict().keys())))
for k, v in model.state_dict().items():
vr = v.reshape(-1).cpu().numpy()
f.write('{} {} '.format(k, len(vr)))
for vv in vr:
f.write(' ')
f.write(struct.pack('>f',float(vv)).hex())
f.write('\n')

运行

cd yolov5
python3 gen_wts.py

成功!


                                            NVIDIA Jetson AGX Xavier配置deepstream 5.0环境并部署yolov5进行目标检测

运行后会在本地生成 yolov5x.wtdefine()s 文件。

三、在Yolov5-in-Deepstreamdefine翻译-5.0中将wts文件转换为TensorRT模型

将yolov5s.wts 复制到Yolov5-in-Deepstream-5.0中生成 engine(deepstream的docker环境+人工智能能否取代人类自己安装Pydefine翻译torch),

cp yolov5x.wts ../Yolov5-in-Deepstream-5.0
cd ../Yolov5-in-Deepstream-5.0

在Yo人工智能的定义lov5-in-Deepstream-5.0修改人工智能al女神古力娜扎 yolov5.cpp 文件,将 NET 宏改成自己对应的模型

#define NET x  // s m l x

注意:默认情况下,yolov5 脚本生成batch size = 1 和FP16 模式的模系统运维工作内容型。

如果要更改此参数,请在编译人工智能前编辑 yolov5.cpp 文件。

#define USE_FP16  // set USE_INT8 or USE_FP16 or USE_FP32
#define DEVICE 0 // GPU id
#define NMS_THRESH 0.4
#define CONF_THRESH 0.5
#define BATCH_SIZE 1

如果化自己训练的模型,类别数发生变化的时候,记得修改 ​​yololayer.h​​ 中的 ​python代码画樱花​static constexpr int CLASS_NUM = 80;​​ 为自己的类别数。

如果自己wts名称不是yolov5x.wts,可以在 yolov5.cpp 查找替换即可。

然后编译

mkdir build
cd build
cmake ..
make
sudo ./yolov5 -s

运行python编程后会生成 y人工智能能否取代人类olov5x.engine 和 libmyplugin.so 文件,首先检查下engine人工智能论文运行结果是否正确

创建测试图python

cd ../
mkdir samples

复制一张图片进来,我从deepstream的官方示例了里复制的

cd /opt/nvidia/deepstream/deepstream/samples/streams
cp sample_720p.jpg /home/work/DeepStream_Yolov5/Yolov5-in-Deepstream-5.0/sanples/

defineproperty后运行

cd build/
./yolov5 -d ../samples

成功

root@12a01fe39897:/home/work/DeepStream_Yolov5/Yolov5-in-Deepstream-5.0/build# ./yolov5 -d ../sanples/
[12/01/2021-05:56:27] [W] [TRT] Current optimization profile is: 0. Please ensure there are no enqueued operations pending in this context prior to switching profiles
20ms

并且可以在build目录下生成检测结果图片,结果如下图,框正常。


                                            NVIDIA Jetson AGX Xavier配置deepstream 5.0环境并部署yolov5进行目标检测

三、ddeepstream中yo人工智能lo v5部署进行目标检测

代码下载

百度云:

更改权限

sudo chmod -R 777 work/