写在前面:
如果你们打这届比赛时,还有我们所保留的内存卡,那么插上即可运行(因为内存卡里我们已经配置好所有的环境)
本文提供两种环境的配置
一种是基于yolov8:YOLOv8 - Ultralytics YOLO Docshttps://docs.ultralytics.com/models/yolov8/(这是官网,进不去的话,需要科学上网)
另一种是基于飞浆:飞桨AI Studio星河社区-人工智能学习与实训社区https://aistudio.baidu.com/overview
jetson nano教程:重点是烧录镜像、换源、更改输入设置。
Jetson Nano 从入门到实战(案例:Opencv配置、人脸检测、二维码检测)_jetson nano 从入门到实战(案例:opencv配置、人脸检测、二维码检测)-CSDN博客https://blog.csdn.net/qianbin3200896/article/details/103760640?spm=1001.2014.3001.5506
一
环境配置
我们所使用的时第二种,所以先说第二种,可以按照之前学长所给出的教程进行配置:jetson nano部署paddle Inference环境全过程_jetson paddle-CSDN博客https://blog.csdn.net/pdsrzbypdbyz/article/details/144172807?spm=1001.2014.3001.5506
按照上述环境配置好之后,将garbageCan该文件夹拖到nano上,运行代码即可
cd garbageCan/code
python3.7 test_tt.py
通过网盘分享的文件:garbageCan
链接: https://pan.baidu.com/s/1yZ733DwlhyQ8h4zVlJCwOA?pwd=g824 提取码: g824
如果你们用的是SUB国产板子(后面会讲),需要先创建虚拟环境,然后在虚拟环境里进行配置,否则会与系统环境产生冲突。在虚拟环境里配置好飞浆的环境之后运行如下代码:
conda activate garbage #先激活虚拟环境,虚拟环境的名字根据你们的所创建的来
cd garbageCan/code
sudo python3.7 test_tt.py
输入密码即可运行(密码:yahboom)
上述的test_tt.py是最终的代码 需要接入摄像头(我们用的是USB)、超声波、stm32等等
test_tt.py代码的逻辑如下:
如果有报错,可以粘贴给AI,根据AI的提示来解决报错问题(报错的种类很多,在这里不能一一赘述)
若想查看摄像头的位置可以运行如下代码:
cd garbageCan/code
python3.7 test_8000.py
如下图所示:
比赛时不会让你用键盘执行上述代码,需要写一个开机自启动脚本(只需上电后即可自动运行上述代码)。
可以根据如下教程来:Jetson nano开机自启动python程序_jetson nano设置开机启动c++he python程序-CSDN博客https://blog.csdn.net/BluErroR/article/details/121640814?spm=1001.2014.3001.5506
Jetson nano开机自启动程序-CSDN博客https://blog.csdn.net/qq_40672115/article/details/128140321?spm=1001.2014.3001.5506
如果执行不成功,可以加上sudo(以最高权限进行执行)
如:sudo gnome-session-properties
模型的训练:
上述就是第二种环境的所有操作。
二、
再说第一种,因为第一种未能在省赛之前跑出来,所以没有完整的垃圾分类代码,在这里我只演示如何配置环境以及运行
我们在进行环境配置之前,推荐先创建一个虚拟环境,虚拟环境与系统环境相隔开,能减少不必要的麻烦
创建虚拟环境
一、先下载miniconda
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
二 安装Conda
bash Miniconda3-latest-Linux-x86_64.sh
三、初始化&&创建并激活环境
conda init
conda create --name yolo_v8 python=3.8 # 指定 Python 版本,如果需要
conda activate yolo_v8
激活环境之后(上述所激活的环境为yolo_v8)接着进行如下操作:
一、更新系统
sudo apt update && sudo apt upgrade -y
sudo apt install python3-pip python3-dev python3-venv -y
二、安装pytorch
pytorch是深度学习的框架,提供了众多的yolo所需的依赖以及GPU的加速支持
1.需要安装对应版本的pytorch,用如下代码来查看自己的jetPack版本
cat /etc/nv_tegra_release # 查询JetPack版本(如JP4.6=L4T 32.7)
2.安装对应版本PyTorch
①、适用于JetPack 4.6+ (CUDA 10.2):
wget https://nvidia.box.com/shared/static/ssf2s7g6zai470t8jppzldw7mvb6v0g6.whl -O torch-1.12.0a0+2c916ef.nv22.3-cp38-cp38-linux_aarch64.whl
pip3 install numpy torch-1.12.0a0+2c916ef.nv22.3-cp38-cp38-linux_aarch64.whl
②、适用于JetPack 5.x (CUDA 11.4+):
wget https://developer.download.nvidia.com/compute/redist/jp/v50/pytorch/torch-2.0.0+nv23.05-cp38-cp38-linux_aarch64.whl
pip3 install numpy torch-2.0.0+nv23.05-cp38-cp38-linux_aarch64.whl
我们应该是第①个,因为cuda版本是10.2
我在下载pytorch时,老是遇到网络的问题,可以将nano连接自己的热点(注意将自己热点的AP频段设置为2.4GHz)
三、安装yolov8依赖
pip3 install ultralytics
pip3 install matplotlib opencv-python-headless
sudo apt install libcanberra-gtk-module -y # 解决OpenCV GTK警告
创建好虚拟并配置好环境之后,先激活虚拟环境并进行如下操作:
python3 #先激活python环境,python激活的是python2环境,我们python的版本为3.8所以要python3
from ultralytics import YOLO
model = YOLO("yolov8n.pt") # 会自动下载模型
results = model.predict('https://ultralytics.com/images/bus.jpg', save=True)
接下来就会有推理的结果
上面配置环境时会有各种各样的问题,同样的可以将报错粘贴给AI,根据AI的提示进行解决报错,切记不要按部就班的粘贴AI所给的代码。
模型的训练:
nano的性能肯定是不足以训练模型,所以还是要在本地进行训练。可参考下面的教程:
重点参考:如何标注自己的数据集?如何配置环境?如何训练模型?
使用YOLOv8训练自己的数据集(原理解析+数据标注说明+训练教程+图形化系统开发)_yolov8 训练自己的数据集-CSDN博客https://blog.csdn.net/ECHOSON/article/details/141301902?ops_request_misc=%257B%2522request%255Fid%2522%253A%252213716dea88c48b47a9f27f8c4177a9cd%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=13716dea88c48b47a9f27f8c4177a9cd&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-141301902-null-null.nonecase&utm_term=yolov8&spm=1018.2226.3001.4450【大作业-18】手把手教你用YOLOv8训练自己的数据集(原理解析+代码实践)_哔哩哔哩_bilibili
https://www.bilibili.com/video/BV1KHp2eREFZ/?spm_id_from=333.1387.favlist.content.click提供一份我训练时的代码:
import torch
from ultralytics import YOLO
def train_yolov8():
# 设置训练参数
data = "F:/deeplearning/fire/Fire Detection.v1i.yolov8/data.yaml"//yaml文件
model = "F:/deeplearning/ultralytics-main/mode/yolov8n.pt"//借助的模型
epochs = 300//训练的轮数
imgsz = 640/图像大小
project = "F:\\deeplearning\\ultralytics-main\\runs"//训练的结果应该保存在哪个位置
workers = 2//算力的调用
# 实例化YOLO模型
yolo_model = YOLO(model)
# 使用train()方法开始训练
results = yolo_model.train(
data=data,
epochs=epochs,
imgsz=imgsz,
project=project,
workers=workers,
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu'),
#device = ('cpu'),
batch = 2
)
# 打印训练结果
print(results)
if __name__ == "__main__":
train_yolov8()
#print(torch.cuda.is_available())
与nano相互交换文件:
可以使用WinSCP该软件
可以在网盘里下载:
链接: https://pan.baidu.com/s/1tm7xodM1spyv3nTPKtZhRw?pwd=mi27 提取码: mi27
--来自百度网盘超级会员v4的分享
烧录镜像的APP:
可以使用balenaEtcher软件
通过网盘分享的文件:balenaEtcher-Setup-1.18.4.exe
链接: https://pan.baidu.com/s/1rC2IK7Z6jnbP5yge_D8DBw?pwd=cv3h 提取码: cv3h
--来自百度网盘超级会员v4的分享
格式化的APP:
可以使用SD Card Formatter软件
通过网盘分享的文件:SD Card Formatter.exe
链接: https://pan.baidu.com/s/1dMbzS7yjeQrDrBD9dHSQrg?pwd=5wf8 提取码: 5wf8
--来自百度网盘超级会员v4的分享
(格式化时选择Overwrite format,慢速格式化,防止损坏内存卡)
nano板子:
上面所述的板子是国产SUB的板子(JETSON NANO B01)
该板子不可以进行sudo apt update && sudo apt upgrade -y软件包更新操作,切记!切记!切记!!!(用该板子时配置环境时,跳过软件包更新这一步骤即可)
该板子的学习网站
JETSON NANO B01https://www.yahboom.com/study/jetson-nanoJetson nano A01/B01
https://www.yuque.com/yahboomtechnology/yahboom_support/kgdd5m#UCREB该板子烧录的是人家的镜像(不可以烧录官方镜像),已经给提供了众多环境,所以有很大的学习空间,更深的开发就交给你们了
镜像链接:
通过网盘分享的文件:TF卡使用镜像(载板卡槽)
链接: https://pan.baidu.com/s/1iTD-OdpcKibm2eAB4FfUkA?pwd=vbdc 提取码: vbdc
--来自百度网盘超级会员v4的分享
另一种是英伟达官方板子按照之前给的教程即可玩转Jetson Nano(一) 开机准备与远程连接设置_ubuntu装jtop命令-CSDN博客https://blog.csdn.net/iracer/article/details/104453423?spm=1001.2014.3001.5506