【Linux】Jetson nano 使用记录,安装torch1.8、yolov5 tensorrt加速、java等

news2024/12/30 3:48:30

Jetson nano

    • 一、u盘系统安装
      • 1.1 烧录EMMC引导
      • 1.2 烧录U盘系统
    • 二、启动、环境配置
      • 2.1 设置vnc分辨率
      • 2.2. 更新软件
    • 三、启动、环境配置
      • 3.1 安装conda
      • 3.2 安装python3.6版本torch1.8
      • 3.3 配置yolov5 tensorrt加速
        • 3.3.1 转换wts和engine
        • 3.3.2使用python脚本运行engine
    • 其它记录
      • 安装java
    • 备份,扩展

一、u盘系统安装

简介:购买的是4G版,板载16g emmc,但16g硬盘完全不够用,按照一开始的方案想着直接用但空间完全不足,因此将系统改装到64GU盘中启动
所有教程均在https://www.yahboom.com/study/jetson-nano中有

1.1 烧录EMMC引导

因为板载EMMC中已经有系统了,因此不需要再烧录系统了,但需要烧录EMMC引导,让其能够引导到U盘系统中

  • 安装VMware
    进入下载网址点击下载
    在这里插入图片描述
    按照 vmware安装教程进行安装
    注意如果开启了Hyper-V则需要点击自动安装WHP
    在这里插入图片描述

  • 安装引导
    按照 3.烧录EMMC引导这篇教程进行即可,这里无所谓用u盘还是移动硬盘都可以,我是使用的固态硬盘+usb3.0转接线装的系统,注意提供的64g udisk版镜像,写入系统后只有64g可用,如使用128G硬盘,需要使用分区工具(linux中下载gparted)进行扩容到128G,可参考5.U盘扩容进行

1.2 烧录U盘系统

按照4.烧录U盘系统教程进行

二、启动、环境配置

2.1 设置vnc分辨率

该镜像中vnc等均安装好了,连接显示屏查看板子的ip,后续即可通过vnc直接连接,密码同用户密码,但是不接显示屏分辨率较低,因此需要还要设置下启动分辨率
执行 sudo vi ~/.config/autostart/resolution.desktop,填入如下内容修改自启动分辨率为1366x768

[Desktop Entry]
Type=Application
Name=resolution
Exec=xrandr --fb 1366x768
NoDisplay=true

2.2. 更新软件

因为Jetson nano是arm64架构,国内源支持不好,因此不换源
如果自己有代理则可以设置代理,没有则继续后续步骤

sudo vi /etc/apt/apt.conf.d/proxy.conf
添加如下

Acquire {
  HTTP::proxy "http://192.168.1.38:7890";
  HTTPS::proxy "http://192.168.1.38:7890";
}

执行如下进行更新

sudo apt-get update
sudo apt-get full-upgrade

显示错误

Errors were encountered while processing:
 nvidia-l4t-bootloader
 nvidia-l4t-xusb-firmware
 nvidia-l4t-initrd

执行如下指令解决错误,再重新更新

cd /var/lib/dpkg
sudo mv info info.bak
sudo mkdir info
sudo apt-get upgrade

安装JTOP

sudo apt install curl
sudo apt install nano
cd ~
curl https://bootstrap.pypa.io/pip/3.6/get-pip.py -o get-pip.py
sudo python3 get-pip.py # 运行安装脚本
sudo pip3 install jetson-stats
sudo jtop
或重启后执行jtop

查看
在这里插入图片描述

三、启动、环境配置

3.1 安装conda

弃用
以下参考yolov5 部署jetson nano(通用) 保姆级教学
下载 https://github.com/Archiconda/build-tools/releases
bash Archiconda3-0.2.3-Linux-aarch64.sh

3.2 安装python3.6版本torch1.8

参考 Install PyTorch on Jetson Nano.
我是从Qengineering/PyTorch-Jetson-Nano下载的torch-1.8.0a0+37c1f4a-cp36-cp36m-linux_aarch64.whltorchvision-0.9.0a0+01dfa8e-cp36-cp36m-linux_aarch64.whl
还可以参考这里下载 https://forums.developer.nvidia.com/t/pytorch-for-jetson/72048

# install the dependencies (if not already onboard)
$ sudo apt-get install python3-pip libjpeg-dev libopenblas-dev libopenmpi-dev libomp-dev
$ sudo -H pip3 install future
$ sudo pip3 install -U --user wheel mock pillow
$ sudo -H pip3 install testresources
# above 58.3.0 you get version issues
$ sudo -H pip3 install setuptools==58.3.0
$ sudo -H pip3 install Cython
# install PyTorch 1.8.0
$ sudo -H pip3 install torch-1.8.0a0+37c1f4a-cp36-cp36m-linux_aarch64.whl
 sudo -H pip3 install torchvision-0.9.0a0+01dfa8e-cp36-cp36m-linux_aarch64.whl

执行python3,再输入如下,显示为True即可

import torch
torch.cuda.is_available()
  • 其它包
    首先git clone https://github.com/ultralytics/yolov5下载yolov5包,如有代理可设置git config --global http.proxy 192.168.1.38:7890进行下载
    执行cd yolov5进入包内
    执行vi requirements.txt编辑
    如图注释掉torch和torchvision,由于我在psutil安装时也出错了,因此
    在这里插入图片描述
    执行python3 detect.py --source data/images/bus.jpg --weights yolov5n.pt --img 640,得到结果

如报错
ImportError: /usr/lib/aarch64-linux-gnu/libgomp.so.1: cannot allocate memory in static TLS block
则在执行前脚本加 LD_PRELOAD=libgomp.so.1 python3 your_python_script或者在.bashrc中加export LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libgomp.so.1:$LD_PRELOAD

如不下载yolov5源码,可编写如下执行进行测试

import torch

if __name__ == "__main__":
    model = torch.hub.load("ultralytics/yolov5", "yolov5s")
    print(model)
    for i in range(10):
        img = "./bus.jpg"
        results = model(img)
        results.print()
    

在我的机子上执行结果如下,150余毫米一张进行推理
在这里插入图片描述

3.3 配置yolov5 tensorrt加速

3.3.1 转换wts和engine

参考 https://wiki.seeedstudio.com/YOLOv5-Object-Detection-Jetson/#inference-on-jetson-device
教程中软件是放置在用户home目录下,而我是放置在其它文件夹中
步骤基本为,详细指令见教程

  1. 配置好环境,torch等(前面已安装)
  2. github下载ultralytics/yolov5wang-xinyu/tensorrtx
  3. 使用tensorrtx/yolov5中gen_wts.py脚本将yolov5s.pt转换为yolov5s.wts
    在这里插入图片描述
  4. 进入tensorrtx/yolov5修改yololayer.h中CLASS_NUM值为你的类别值
  5. 在tensorrtx/yolov5新建build文件夹,将yolov5s.wts复制进去,编译,编译完成后如下
    在这里插入图片描述
  6. 序列化模型,即将yolov5s.wts转为yolov5s.engine,注意sudo ./yolov5 -s best.wts best.engine s最后的s是指示你的模型型号
    在这里插入图片描述
  7. build文件夹同级有samples文件夹,内有图片,执行推理,将生成前面带下划线的检测图
    在这里插入图片描述

3.3.2使用python脚本运行engine

  1. pip install pycuda
  2. 执行python3 yolov5_trt.py
    在这里插入图片描述

其它记录

安装java

在这里插入图片描述
mkdir /home/nano/Soft/java
将文件复制过去
cd ~/Soft/java
tar -xvf jdk-8u351-linux-aarch64.tar.gz
在这里插入图片描述
vim ~/.bashrc 编辑bash配置,在最后面加入这两行

export JAVA_HOME=/home/nano/Soft/java/jdk1.8.0_351
export PATH=${JAVA_HOME}/bin:${PATH}

重启或执行source ~/.bashrc再执行 java -version,结果如下
在这里插入图片描述

备份,扩展

扩展硬盘:64g感觉还是一般般,后使用移动硬盘+usb硬盘盒当作系统盘,将系统写入了128g移动硬盘中,写入后是64g,因此需要用软件扩展,可以使用linux下的gparted或者windows下的DiskGenius将硬盘未分配空间扩展到系统分区

备份: 备份时可以在linux下使用dd命令进行备份,但是备份后文件大小将和硬盘的已分配空间大小一致,且恢复或写入别的硬盘时对应的硬盘大小必须要大于备份文件大小,因此可以先通过linux下的gparted或者windows下的DiskGenius将系统分区缩小,再备份

sudo fdisk -u -l /dev/sdc // 查看end最大的值,后面的count+1即可
sudo dd bs=512 count=117000192 if=/dev/sdc of=“/media/liang/Elements SE/jetson-nano-backup/nano.img”
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/11661.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Postgresql顺滑升级步骤(11升级到14)

首先下载pgsql14的源码包进行安装: yum install postgresql14 –y yum install postgresql14-server -y 附带安装 yum install postgresql14-libs yum install postgresql14-contrib yum install postgresql14-devel 注:如果旧版本装了插件&#…

生态环境影响评价制图流程

生态现状评价内容中基本图件构成包含:项目区域地理位置图、工程平面图、调查样方、样线、点位、断面等布设图、土地利用现状图、地表水系图、植被类型图、植被覆盖度图、归一化植被指数图、生态系统类型图、土壤侵蚀图、物种适宜生境分布图等。 介绍 2.2.遥感常用数…

基于微信小程序的核酸检测系统源码

开发环境及工具: 大等于jdk1.8,大于mysql5.5,idea(eclipse),微信开发者工具 技术说明: springboot mybatis 小程序 代码注释齐全,没有多余代码,适合学习(毕设)&#…

动态自适应可变加权极限学习机ELM预测算法附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

Vue(十)——页面路由(2)

目录 router-link的replace属性 编程式路由导航 缓存路由组件 两个新的生命周期钩子 路由守卫 全局守卫 独享守卫 组件内守卫 路由器的两种工作模式 hash模式 history模式 router-link的replace属性 浏览器历史记录的操作模式:push模式 对历史记录的操作…

视频编解码之理论概述

本文主要讲解实时音视频技术中视频技术的编解码基础理论。 1、视频为何需要压缩? 未经压缩的数字视频的数据量巨大存储困难:一张DVD只能存储几秒钟的未压缩数字视频。传输困难 1兆的带宽传输一秒的数字电视视频需要大约4分钟。2、主要压缩了什么东西&am…

【Pytorch with fastai】第 12 章 :从零开始的语言模型

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

[附源码]SSM计算机毕业设计8号体育用品销售及转卖系统JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【机器学习】机器学习知识点全面总结(监督学习+无监督学习)

目录:机器学习知识点全面总结一、监督学习1.1 单模型1.1.1 线性回归1.1.2 逻辑回归1.1.3 Lasso1.1.4 K近邻(KNN)1.1.5 决策树1.1.6 bp神经网络1.1.7 支持向量机(SVM)1.1.8 朴素贝叶斯1.2 集成学习1.2.1 Boosting1.2.1.1 GBDT1.2.1.2 Adaboost1.2.1.3 XGBoost1.2.1.4…

防火墙NAT配置实验

目录 一、NAT的种类 分为基于源IP的转换 基于目的的IP转换 外部用户找内部服务器 二、实验拓扑 登陆防火墙 三、配置NAT 配置接口 实验一 配置no-pat NAT 测试no-pat 实验二 NAPT配置 NAPT测试 实验三 配置Easy ip 实验四 配置NAT sever 测试Nat Sever 一、NAT的种…

C++类构造函数和析构函数

11.3 类构造函数和析构函数 构造函数:是为了在定义对象时自动初始化其成员变量的值。 构造函数没有返回值,也没有被声明为void类型;因此,构造函数没有声明类型。 11.3.1 声明和定义一个构造函数 构造函数原型:在这…

windows安装配置git和ToriseGit

目录1、下载安装git2、下载安装ToriseGit3、配置ToriseGit4、公司钥生成1、下载安装git 下载地址 安装:所有都按照默认,直接next就行 2、下载安装ToriseGit 下载地址 下图中两个都要下载,第二个是语言包 安装: 1、先安装主程…

C++行为型模式-职责链模式

1.1 基本概念 职责链模式(Chain of Responsibility Pattern):避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这类对象链接成一条链,并沿着这条链传递请求,直到有对象处理它为止。 1.2 …

Neural Collaborative Filtering论文笔记

ABSTRACT 深度神经网络在语音识别、计算机视觉和自然语言处理等方面取得了巨大的成果,但是对于推荐系统尚且缺少。虽然即使有用深度学习作为推荐,但是都是对建模起辅助作用。当涉及到用户和项目之间的交互,都会选择流行的矩阵分解&#xff0…

三、react组件的生命周期

目标 灵活掌握react组件的生命周期以及组件的活动过程。 能够灵活使用react的生命周期 知识点 react的类组件的生命周期分为三个阶段 实例期存在期销毁期 实例期在组件第一次被实例化的时候触发一次,在这个过程中会执行的生命周期函数如下: construct…

2、CKA-简单搭建K8s集群

基础环境: 主机IP资源系统主机名192.168.100.1104核8GCentos8K8s-master192.168.100.1204核8GCentos8K8s-node1192.168.100.1304核8GCentos8K8s-node2 推荐一个小网站:https://labs.play-with-k8s.com/ 其他的废话不多说,直接部署起来先~~ 部…

[附源码]Python计算机毕业设计 校园疫情防控系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

校企合作,人才共育|湖南工程学院第二期万应低代码实训营圆满收官

2022年11月11日,湖南工程学院第二期万应低代码实训营圆满收官,来自湖南工程学院计算机与通信学院(人工智能产业学院)的47位同学经过为期9天、共计51课时的培训课程,用出色的交付成果顺利结业。湖南工程学院计算机与通信…

最简单的git图解(最基本命令)

git clone: 这个命令用于将远程代码仓库克隆到本地,这是对任何项目进行开发前的第一步。 比如你本地本来并没有某个项目的代码仓库,此时随便找一个文件目录并进入cmd命令窗口,执行命令git clone [remote address],[remote addres…

春节静态HTML网页作业模板 传统节日文化网站设计作品 静态学生网页设计作业简单网页制作

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…