垃圾分类--环境配置

news2025/3/20 0:50:48

写在前面:

如果你们打这届比赛时,还有我们所保留的内存卡,那么插上即可运行(因为内存卡里我们已经配置好所有的环境)

本文提供两种环境的配置

一种是基于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训练自己的数据集(原理解析+代码实践)_哔哩哔哩_bilibilihttps://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/B01https://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

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

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

相关文章

json字符串转对象,对象转JSON

背景: JSON字符串与对象之间的转换。在对接接口的数据的时候,因为是实时数据转发过来的。发现后端发过的数据是字符串【JSON字符串】但是我们前端需要的是一个对象。 核心代码: JSON.parse(JSON字符串) 效果展示: 接口JSON字符串转…

pandas中excel自定义单元格颜色

writerpd.ExcelWriter(filepathf05教师固定学生占比1月{today}.xlsx,engineopenpyxl) df.to_excel(writer,sheet_name明细) piv1.to_excel(writer,sheet_name1月分布) wswriter.book.create_sheet(口径) ws.cell(1,1).value综合占比: ws.cell(1,2).value固定学生占比…

3D标定中的平面约束-平面方程的几何意义

平面方程的一般形式为 AxByCzD0,其中系数 A、B、C、D共同决定了平面的几何特性。 系数对平面姿态的影响 1. 法向量方向2. 平面位置3. 比例关系4. 姿态变换5.平面空间变换 1. 法向量方向 法向量方向由 A、B、C 决定 核心作用:系数 A、B、C 构成的向量 (…

蓝桥杯第13届真题2

由硬件框图可以知道我们要配置LED 和按键 一.LED 先配置LED的八个引脚为GPIO_OutPut,锁存器PD2也是,然后都设置为起始高电平,生成代码时还要去解决引脚冲突问题 二.按键 按键配置,由原理图按键所对引脚要GPIO_Input 生成代码&a…

Linux-03 删除ubuntu系统文件夹Videos和Templates后,如何恢复

文章目录 问题解决方法1. 重新创建 Videos 和 Templates 文件夹2. 配置 user-dirs.dirs 文件3. 更新用户目录配置xdg-user-dirs-update4. 重启系统:sudo reboot 问题 手欠的嫌弃Videos和Templates文件夹是空的,也不会用,就删除了&#xff0c…

Linux系统移植篇(十)根文件系统构建 V3 - Yocto

可以简单的将 Ubuntu 理解为一个根文件系统,和我们用 busybox、buildroot 制作的根文件系统一样。因此移植Ubuntu也就是将Ubuntu根文件系统移植到我们的开发板上,但是因为 I.MX6ULL 孱弱的性能,本章我们就只移植 Ubuntu 的最小根文件系统&…

E902基于bash与VCS的仿真环境建立

网上看见很多E902仿真的文章,但用到的编译器是类似于这种Xuantie-900-gcc-elf-newlib-x86_64-V3.0.1-20241120,而我按照相应的步骤与对应的编译器,仿真总会报错。后面将编译器换成riscv64-elf-x86_64-20210512,反而成功了。现在开…

Pycharm接入DeepSeek,提升自动化脚本的写作效率

一.效果展示: 二.实施步骤: 1.DeepSeek官网创建API key: 创建成功后,会生成一个API key: 2. PyCharm工具,打开文件->设置->插件,搜索“Continue”,点击安装 3.安装完成后&…

Windows安装Apache Maven 3.9.9

第一步下载资源 官网:下载 Apache Maven – Maven 环境变量配置 M2_HOME 指向bin目录 MAVEN_HOME 指向根目录 M2_HOME 不确定是否必须要 Path配置 ,需要注意MAVEN顺序应当在java之前 验证是否安装成功,在cmd中以管理员方式打开&#xff0c…

jmeter将返回的数据写入csv文件

举例说明,我需要接口返回体中的exampleid与todoid的数据信息(使用边界提取器先将其提取),并将其写入csv文件进行保存 使用后置处理器BeanShell 脚本实例如下 import java.io.*;// 设置要写入的文件路径 String filePath "…

设计一个高性能的分布式限流系统

设计一个高性能的分布式限流系统 在现代分布式系统中,流量控制是保障系统稳定性和高可用性的关键技术之一。随着用户规模的增长和业务需求的复杂化,系统往往需要面对突发流量或恶意攻击等场景,这就对限流机制提出了更高的要求。一套高性能的…

[项目]基于FreeRTOS的STM32四轴飞行器: 六.2.4g通信

基于FreeRTOS的STM32四轴飞行器: 六.2.4g通信 一.Si24Ri原理图二.Si24R1芯片手册解读三.驱动函数讲解五.移植2.4g通讯(飞控部分)六.移植2.4g通讯(遥控部分)七.通讯模块的完成(遥控部分) 一.Si24Ri原理图 S…

【Android】RuntimeShader 应用

1 简介 RuntimeShader 是 Android 13(T)中新增的特性,用于逐像素渲染界面,它使用 AGSL(Android Graphics Shading Language)编写着色器代码,底层基于 Skia 图形渲染引擎。官方介绍详见 → Runti…

Skia 图形引擎介绍

文章目录 一、Skia 的基本概念1. 定位与作用2. 历史背景 二、Skia 的核心架构1. 模块化设计2. 渲染流程3. 跨平台适配 三、Skia 在 Flutter 中的角色1. 自绘 UI 的核心依赖2. 跨平台一致性3. 性能优化 四、Skia 的性能优势1. 高效的图形处理2. 与原生渲染的对比3. 性能瓶颈 五、…

10、基于osg引擎生成热力图高度图实现3D热力图可视化、3D热力图实时更新(带过渡效果)

1、结果 2、完整C代码 #include <sstream> #include <iomanip> #include <iostream> #include <vector> #include <random> #include <cmath> #include <functional> #include <osgViewer/viewer> #include <osgDB/Read…

Modbus通信协议基础知识总结

1. 数据类型与存储区分类 Modbus协议将数据分为四类存储区&#xff0c;通过存储区代号区分&#xff1a; 输出线圈&#xff08;0x&#xff09;&#xff1a;可读写&#xff0c;对应二进制开关量&#xff08;如继电器状态&#xff09;&#xff0c;地址范围000001-065536&#xff…

AndroidStudio下载安装,环境部署以及常见问题解决教程(亲测)

AndroidStudio下载安装&#xff0c;环境部署以及常见问题解决&#xff01;&#xff01;&#xff01; 文章目录 前言 一、Android Studio 下载与安装 1.1 系统要求 1.2 下载 Android Studio 1.3 安装 Android Studio Windows 系统 1.4 初始配置 二、环境部署 2.1 安装 …

开源免费一句话生成儿童故事视频核心思想解析

再看一个演示视频&#xff0c;学会核心思想后&#xff0c;可以打造自己的内容生成工具&#xff0c;后文有基于飞书多维表格的实现效果&#xff1a; 一句话灵感生成儿童故事视频演示 这是一款专门为内容素材创作打造的创新工具&#xff0c;可根据用户输入的主题&#xff0c;快速…

数据结构——最短路(BFS,Dijkstra,Floyd)

完整版可以看我的最短路问题模版总结_稠密图最短路-CSDN博客 考研数据结构只考BFS,Dijkstra和Floyd 下面代码以Acwing模板题为例 BFS代码 适用类型&#xff1a; 1.单源最短路径 2.无权图 3.不适用于带权图和负权回路图 //Acwing走迷宫bfs #include<bits/stdc.h>usi…

Kali Linux汉化教程:轻松设置中文界面

1.打开终端 2.输入sudo dpkg-reconfigure locales&#xff0c;回车&#xff0c;输入密码&#xff0c;回车 sudo dpkg-reconfigure locales 3.往下滑&#xff0c;滑到底&#xff0c;找到‘zh_CN.UTF-8 UTF-8’,回车 4.选择‘zh_CN.UTF-8’,回车 5.没有 ‘zh_CN.UTF-8’选项的特…