当前位置: 首页 > news >正文

Nvidia jetson nano 部署yolov5_技术文档

Nvidia jetson nano 部署yolov5_技术文档

每天一句小姜格言:我行,我不是一般人儿

部署开始:

1、通过FileZilla,将window文件传输至jetson nano 上的nano文件夹下。

FileZilla

2、查看cuda

我买的jetson nano是带有配置好的镜像。系统配置如下
系统配置

查看cuda指令
nvcc -V

可能会报错, nvcc:command not found

解决办法:

cd /usr/local/cuda/bin
vi ~/.bashrc
#添加代码,保存并退出
export PATH=“/usr/local/cuda/bin/usr/local/cuda/bin:$PATH”
source ~/.bashrc

再次运行 nvcc -V,应该就可以出结果了

3、配置环境

我的 yolov5 文件夹路径 /home/nano/yolov5/
在yolov5文件夹下,执行以下操作:
#安装requirement.txt文件里的依赖包
sudo pip install -r requirement.txt

#如果不能直接安装的话,就一个一个安装
sudo pip install xxx

环境安装后,python3 detect.py可以运行

but but but 不是GPU加载,而是CPU,这是由于torch的版本不对,yolov5中torch>=1.7.0,所以换成高版本的就可以了

这里真的要科普一下,arm架构和x86架构

(1)本质区别:X86使用CISC(Complex Instruction Set Computer,复杂指令集计算机),ARM使用RISC(Reduced Instruction Set Computer,精简指令集计算机),ARM英文全称Advanced RISC Machine。

(2)各自追求:X86追求性能最优,缺点是功耗大,不节能(和ARM对比);ARM追求低功耗(节能),缺点是采用精简指令集,导致编译器处理复杂,因此性能相对X86差。

(3)应用领域:X86主要是PC机(Intel、AMD),X86服务器;ARM主要是应用于移动设备(手机、平板电脑等嵌入式领域)。

(4)典型代表:X86结构主要是Intel、AMD等PC电脑;ARM主要是移动终端,IBM的Power PC。
源自:

【架构知多少】谈谈X86架构与ARM架构区别
针对arm架构的jetson ,nvidia官网有对应的torch 文件,需要翻墙,挺难下载的,官网地址

我下载的版本是torch-1.8.0

接着是torchvision-0.9.0,直接使用指令安装

我的安装代码

#这里注意一下,zlib1g-dev这个包,可能会出现 Unable to locate package zlib1g-dev
#出现这个报错,先看看你的字母写错没有,第一个是字母 l ,第二个是数字 1

$ sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev

$ git clone --branch v0.9.0 https://github.com/pytorch/vision torchvision # see below for version of torchvision to download

$ cd torchvision

$ export BUILD_VERSION=0.x.0 # where 0.x.0 is the torchvision version

$ python3 setup.py install --user

$ cd …/

$ pip install ‘pillow<7’

安装torchvision这个包可能还会出现另一个报错

OSError: libmpi_cxx.so.20: cannot open shared object file: No such file or directory

解决办法,登录https://pkgs.org/网址,搜索libmpi_cxx.so.20

在这里插入图片描述

一直往下滑,直到找到 Install How to

在这里插入图片描述

sudo apt-get update
sudo apt-get install libopenmpi2

4、运行程序-成功

http://www.lryc.cn/news/34871.html

相关文章:

  • 获取当前天数前N天
  • Linux---基本指令
  • 【UE4 RTS游戏】02-摄像机运动_完成摄像机在X轴上运动的相关步骤
  • Kubernetes学习(五)持久化存储
  • 下一个7年,保持期待、持续思考,酷雷曼继续向前!
  • 天梯赛训练L1-010--L1-012
  • 三分钟完成Stable Diffusion本地安装(零基础体验AI绘画)
  • 电子台账:教程目录及软件下载
  • 多态的优势和弊端
  • android h5考勤管理系统myeclipse开发mysql数据库编程服务端java计算机程序设计
  • 第二道pwn题:shellcode
  • 《华为数据之道》读书笔记
  • C++源码pcl1.13.0库编译环境搭建及配置
  • Idea工具单工程使用卡顿设置
  • Android 9.0 Camera2退出时屏幕旋转为横屏
  • 【云原生】rancher2.6部署MySQL—2023.03
  • 行测-判断推理-图形推理-样式规律-空间重构-立体拼合
  • 细说蛮力法(一)
  • 关于推荐系统的详细介绍
  • leetCode刷题笔记
  • 数学小课堂:数学和哲学的互动关系(自洽的哲学思想受益于数学思维)
  • 大聪明教你学Java | 带你了解 Redis 的三种集群模式
  • Java中异常(异常的处理方式(JVM默认的处理方式、自己处理(灵魂四问)、抛出异常(throws、throw))、异常中的常见方法、小练习、自定义异常)
  • 液氮恒温器概述
  • Shiro核心——Realm
  • 开发钉钉微应用,实现免登+调试
  • 0308java基础-注解,反射
  • 【鸿蒙应用ArkTS开发系列】- 页面跳转及传参
  • StringBuilder 类
  • kubectl-k8s用户切换