YOLOv5-GPU Jetson Nano 部署教程

简介: 本文主要介绍我如何在Jetson Nano上部署基于pytorch-gpu的yolov5目标检测模型。

折腾了几天,终于在查改查改的来来回回中将YOLOv5部署在了Jetson Nano上了,现在是20220323,记录整个过程,方便以后再做时不怕。

下载镜像,安装

Getting Started With Jetson Nano Developer Kit | NVIDIA Developer

官方镜像地址,我使用的是4G的Nano,Getting Started with Jetson Nano 2GB Developer Kit | NVIDIA Developer 2G的在这里。

SD卡至少16吧,镜像都有6多G了,解压了之后估计更多。

烧写镜像使用的是Win32 Disk Imager download | SourceForge.net

烧写过程就省略了,教程很多。

JetPack SDK | NVIDIA Developer

镜像的名字叫 JETPACK SDK

最新版的是4.6.1,贴一下官方介绍 JetPack SDK | NVIDIA Developer

NVIDIA JetPack SDK is the most comprehensive solution for building end-to-end accelerated AI applications. All Jetson modules and developer kits are supported by JetPack SDK.

所有的Jeston设备都是由这个SDK支持的

JetPack SDK includes the Jetson Linux Driver Package (L4T) with Linux operating system and CUDA-X accelerated libraries and APIs for Deep Learning, Computer Vision, Accelerated Computing and Multimedia. It also includes samples, documentation, and developer tools for both host computer and developer kit, and supports higher level SDKs such as DeepStream for streaming video analytics and Isaac for robotics.

这玩意是个Ubuntu18.04系统,里面已经集成好了CUDA-X、cudnn、opencv、tensorrt等组件和深度学习例程。

JetPack 4.6.1 includes

JetPack 4.6.1 includes cuDNN 8.2.1

JetPack 4.6.1 includes CUDA 10.2

这里贴一下官方Nano开发文档里面给出的各个组件的文件位置,在你需要使用的时候可以到对应位置将可执行文件添加到全局变量。比如nvcc,trtexec等

image-20220323094903676.png

镜像烧写好了,上电,microUSB供电,去掉跳线帽;或者使用DC(圆头)供电。

进入系统后就是玩Linux啦。

创建自己的用户,然后进入系统,找到nvcc的目录

cd /usr/local/cuda/bin
./nvcc -V

image-20220323153705140.png

将nvcc添加到环境变量

sudo nano ~/.bashrc #进入目录的末尾添加如下几行
# Add this to your .bashrc file
export CUDA_HOME=/usr/local/cuda
# Adds the CUDA compiler to the PATH
export PATH=$CUDA_HOME/bin:$PATH
# Adds the libraries
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
source ~/.bashrc
nvcc --version

保存,退出终端测试nvcc是否可以执行。

使用miniforge安装Python3.6或者使用虚拟环境

我不太熟悉虚拟环境,所以就用conda了
miniforge arm64位

wget https://github.com/conda-forge/miniforge/releases/download/4.11.0-4/Mambaforge-4.11.0-4-Linux-aarch64.sh
sudo chmod +x Mambaforge-4.11.0-4-Linux-aarch64.sh
./Mambaforge-4.11.0-4-Linux-aarch64.sh
回车>yes>回车>yes

安装完毕,重启终端

新建python3.6环境,这里说一下为什么要使用3.6的Python,因为Ubuntu18.04本身自带的就是Python3.6,所以NVIDIA官方支持在制作pytorch pip包的时候用的就是python3.6的,如果想要高版本的python,就要自己编译pytorch啦,超级久。为了节省时间,用官方做好的。

具体说明在这里:PyTorch for Jetson - version 1.10 now available - Jetson & Embedded Systems / Jetson Nano - NVIDIA Developer Forums

conda create -n yolo python=3.6
conda activate yolo
which python
which pip

安装pytorch-1.9.0-py36 torchvision-0.10.0

先下载到本地或者直接下载到Nano

wget https://nvidia.box.com/shared/static/h1z9sw4bb1ybi0rm3tu8qdj8hs05ljbm.whl -O torch-1.9.0-cp36-cp36m-linux_aarch64.whl
sudo apt-get install libopenblas-base libopenmpi-dev 
pip3 install Cython -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install numpy==1.19.3 torch-1.9.0-cp36-cp36m-linux_aarch64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple
sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev
wget https://github.com/pytorch/vision/archive/refs/tags/v0.10.0.tar.gz #下载torchvision-0.10.0的源码
gzip -d vision-0.10.0.tar.gz
tar -xvf vision-0.10.0.tar
cd vision-0.10.0/
export BUILD_VERSION=0.10.0
#这里我们使用的是conda创建的环境,那么想要把torcvision编译到我们创建的环境,又想要使用sudo权限,就要这样运行命令!因为编译安装的时候,存在需要sudo权限的操作,别问我为什么知道,因为我编译了好几次。
sudo /home/nbu/mambaforge/envs/yolo/bin/python setup.py install

这里原本我是直接使用pip安装的torchvision,但是后面运行yolov5的时候,出现torchvision的报错,我卸载pip安装的torchvision后,使用上面的编译的方式安装torchvision后就可以了。

验证安装

import torch
print(torch.__version__)
print('CUDA available: ' + str(torch.cuda.is_available()))
print('cuDNN version: ' + str(torch.backends.cudnn.version()))
a = torch.cuda.FloatTensor(2).zero_()
print('Tensor a = ' + str(a))
b = torch.randn(2).cuda()
print('Tensor b = ' + str(b))
c = a + b
print('Tensor c = ' + str(c))
import torchvision
print(torchvision.__version__)

image-20220323110912140.png

运行成功,安装成功。

下载YOLOv5 v6.1

wget https://github.com/ultralytics/yolov5/archive/refs/tags/v6.1.tar.gz
gzip -d v6.1.tar.gz
tar -xvf v6.1.tar
cd yolov5-6.1/
nano requirements.txt

在需要安装的依赖包文件中,我们可以看到Base、Logging、Export、Extras等组件列表

最核心的就是Base

内部包含:

  • matplotlib>=3.2.2
  • numpy>=1.18.5
  • opencv-python>=4.1.2
  • Pillow>=7.1.2
  • PyYAML>=5.3.1
  • requests>=2.23.0
  • scipy>=1.4.1
  • torch>=1.7.0
  • torchvision>=0.8.1
  • tqdm>=4.41.0

然后就是其他组件

  • tensorboard>=2.4.1
  • pandas>=1.1.4
  • seaborn>=0.11.0
  • thop # FLOPs computation

使用 pip list 命令列出我们现在环境下的包有哪些,还需要哪些

image-20220323111644679.png

安装matplotlib 之前,要安装一个组件,不然会报错
这里就属matplotlib稍微难装一点,下载后需要等待它自己编译。

你也可以直接去GitHub上的官方Releases · matplotlib/matplotlib (github.com)去下载对应版本的源码,然后自己编译安装,反正都不快。


sudo apt-get install libfreetype6-dev
sudo apt-get install pkg-config

pip3 install matplotlib==3.2.2 PyYAML==5.3.1 requests==2.23.0 seaborn==0.11.0 tqdm==4.41.0 tensorboard==2.4.1 thop

安装seaborn的时候会自动安装依赖包:scipy-1.5.4 pandas-1.1.5

image-20220323124804018.png

最后是opencv

pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple

安装完之后在python中运行一下试试。

>>> import cv2
>>> cv2.__version__
'4.5.5'
>>>

都安装完后,就可以尝试使用Nano跑YOLOv5啦!

先pip list一下

image-20220323125154031.png

python detect.py --weights yolov5n.pt --source data/images/bus.jpg

大功告成

image-20220323162735828.png

使用yolov5n inference一张图片只需要0.06-0.07秒了 15FPS了,比起树莓派确实强。

到这里在jetson Nano上部署pytorch-GPU的YOLOv5就结束了。

下一篇准备写一下如何使用tensorrt在Jeston Nano上进行深度学习推理加速!

相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
相关文章
|
人工智能 机器人 Serverless
魔搭大模型一键部署到阿里云函数计算,GPU 闲置计费功能可大幅降低开销
魔搭大模型一键部署到阿里云函数计算,GPU 闲置计费功能可大幅降低开销
1186 2
|
TensorFlow 算法框架/工具 异构计算
Windows部署TensorFlow后识别GPU失败,原因是啥?
Windows部署TensorFlow后识别GPU失败,原因是啥?
|
并行计算 Linux Docker
Docker【部署 07】镜像内安装tensorflow-gpu及调用GPU多个问题处理Could not find cuda drivers+unable to find libcuda.so...
Docker【部署 07】镜像内安装tensorflow-gpu及调用GPU多个问题处理Could not find cuda drivers+unable to find libcuda.so...
1323 0
|
8月前
|
Kubernetes 安全 异构计算
K8S 部署 Deepseek 要 3 天?别逗了!Ollama+GPU Operator 1 小时搞定
最近一年我都在依赖大模型辅助工作,比如 DeepSeek、豆包、Qwen等等。线上大模型确实方便,敲几个字就能生成文案、写代码、做表格,极大提高了效率。但对于企业来说:公司内部数据敏感、使用外部大模型会有数据泄露的风险。
K8S 部署 Deepseek 要 3 天?别逗了!Ollama+GPU Operator 1 小时搞定
|
10月前
|
存储 Kubernetes 对象存储
部署DeepSeek但GPU不足,ACK One注册集群助力解决IDC GPU资源不足
借助阿里云ACK One注册集群,充分利用阿里云强大ACS GPU算力,实现DeepSeek推理模型高效部署。
|
7月前
|
人工智能 并行计算 监控
在AMD GPU上部署AI大模型:从ROCm环境搭建到Ollama本地推理实战指南
本文详细介绍了在AMD硬件上构建大型语言模型(LLM)推理环境的全流程。以RX 7900XT为例,通过配置ROCm平台、部署Ollama及Open WebUI,实现高效本地化AI推理。尽管面临技术挑战,但凭借高性价比(如700欧元的RX 7900XT性能接近2200欧元的RTX 5090),AMD方案成为经济实用的选择。测试显示,不同规模模型的推理速度从9到74 tokens/秒不等,满足交互需求。随着ROCm不断完善,AMD生态将推动AI硬件多元化发展,为个人与小型组织提供低成本、低依赖的AI实践路径。
2825 1
在AMD GPU上部署AI大模型:从ROCm环境搭建到Ollama本地推理实战指南
|
9月前
|
存储 人工智能 固态存储
轻量级AI革命:无需GPU就能运算的DeepSeek-R1-1.5B模型及其低配部署指南
随着AI技术发展,大语言模型成为产业智能化的关键工具。DeepSeek系列模型以其创新架构和高效性能备受关注,其中R1-1.5B作为参数量最小的版本,适合资源受限场景。其部署仅需4核CPU、8GB RAM及15GB SSD,适用于移动对话、智能助手等任务。相比参数更大的R1-35B与R1-67B+,R1-1.5B成本低、效率高,支持数学计算、代码生成等多领域应用,是个人开发者和初创企业的理想选择。未来,DeepSeek有望推出更多小型化模型,拓展低资源设备的AI生态。
1911 8
|
10月前
|
边缘计算 调度 对象存储
部署DeepSeek但IDC GPU不足,阿里云ACK Edge虚拟节点来帮忙
介绍如何使用ACK Edge与虚拟节点满足DeepSeek部署的弹性需求。
|
10月前
|
存储 Kubernetes 对象存储
部署DeepSeek但GPU不足,ACK One注册集群助力解决IDC GPU资源不足
部署DeepSeek但GPU不足,ACK One注册集群助力解决IDC GPU资源不足
293 3
|
10月前
|
机器学习/深度学习 弹性计算 网络安全
部署DeepSeek,你的GPU够用吗?
本文介绍如何将 DeepSeek-R1 开源模型部署到 GPU 云服务器,在 GPU 云服务器上安装与配置 Ollama 和 Open WebUI。

热门文章

最新文章