【无人售货柜・RK+YOLO】篇 3:手把手带飞!YOLO 商品识别环境搭建 + 训练全流程,一行行代码带敲

news2026/3/21 12:17:17
目录一、先给新手打个底训练需要什么硬件最低硬件要求二、第一步环境搭建新手避坑版照着做绝对不报错1. 安装 Python版本必须选对别装最新版2. 安装 PyTorchYOLO 训练的核心依赖1CPU 版本安装没有 NVIDIA 显卡的新手直接装这个2GPU 版本安装有 NVIDIA 显卡的新手装这个训练速度拉满3. 拉取 YOLOv5 官方源码1新手首选直接下载压缩包2有 Git 基础的朋友用 git clone4. 安装 YOLOv5 依赖库三、第二步修改数据集配置文件新手最容易改错的环节1. 复制模板配置文件2. 修改配置文件新手照着改就行四、第三步核心参数详解新手再也不瞎调参了核心参数大白话解释 售货柜场景最优值五、第四步启动训练一行命令搞定1. 启动训练命令2. 训练过程详解新手别慌六、第五步训练完成模型验证 效果可视化1. 模型验证看核心指标2. 效果可视化看实际识别效果最后说两句大家好我是黒漂技术佬。上一篇我们保姆级教大家做完了无人售货柜的商品数据集很多新手朋友已经把自己的数据集标完了就等着开训了。但是我太懂新手了到这一步大概率会遇到这些问题Python 环境怎么搭YOLO 源码怎么拉依赖装不上报错怎么办配置文件怎么改参数怎么调跟着网上的教程改结果一运行就报错根本跑不起来心态直接崩了。别慌今天这篇我一行行代码带你敲从环境搭建到模型训练、验证、可视化全流程无死角所有坑都给你提前踩平哪怕你是第一次接触 Python跟着走100% 能跑出自己的商品识别模型。一、先给新手打个底训练需要什么硬件很多新手问我佬我没有高端显卡能不能训 YOLO这里我先给你说清楚别到时候卡得动不了。最低硬件要求CPUi5 及以上AMD 同等性能内存16G 及以上低于 16G 很容易出现内存溢出报错显卡NVIDIA 显卡显存 4G 及以上首选有 GPU 训练速度能快 10 倍以上系统Windows10/11、Linux、MacOS 都可以教程以 Windows 为例其他系统通用【新手福音】如果你没有 NVIDIA 显卡用 CPU 也能训就是速度慢一点比如用 GPU 训 1 小时CPU 可能要训 10 小时但是完全能跑通新手练手完全够用。二、第一步环境搭建新手避坑版照着做绝对不报错很多新手第一步就栽在环境搭建上Python 版本装错了依赖装不上各种报错。今天我给你一套零报错的环境搭建流程严格按照步骤来绝对不会出问题。1. 安装 Python版本必须选对别装最新版【新手避坑红线】绝对不要装 Python3.11 及以上的版本YOLOv5 对高版本 Python 兼容性极差必踩坑我们选Python3.9这是目前兼容性最好、最稳的版本。安装步骤打开 Python 官网下载地址https://www.python.org/downloads/release/python-3913/往下滑找到 Windows 安装包64 位系统选Windows Installer (64-bit)32 位选 32 位的下载完成后打开安装包一定要勾选最下面的「Add Python 3.9 to PATH」这一步是关键不勾选后面必报错点击「Install Now」一键安装等待安装完成即可验证是否安装成功打开 cmd 命令行输入python -V如果输出Python 3.9.13就说明安装成功了。2. 安装 PyTorchYOLO 训练的核心依赖PyTorch 是 YOLO 的核心框架分 CPU 版本和 GPU 版本我分别给你讲安装方法。1CPU 版本安装没有 NVIDIA 显卡的新手直接装这个打开 cmd直接输入下面的命令回车运行一键安装bash运行pip install torch1.13.1 torchvision0.14.1 --index-url https://download.pytorch.org/whl/cpu2GPU 版本安装有 NVIDIA 显卡的新手装这个训练速度拉满先确认你的显卡装好了最新的显卡驱动然后打开 cmd输入nvidia-smi能输出显卡信息就说明驱动没问题。然后输入下面的命令一键安装 GPU 版本的 PyTorchbash运行pip install torch1.13.1 torchvision0.14.1 --index-url https://download.pytorch.org/whl/cu117验证是否安装成功打开 cmd输入python进入 Python 环境然后输入下面的代码python运行import torch print(torch.cuda.is_available())如果输出True就说明 GPU 版本安装成功了能正常用显卡训练了。3. 拉取 YOLOv5 官方源码我们上一篇已经定了用 YOLOv5s 版本这里直接拉取官方源码绝对不要用网上的魔改版本坑太多。两种方法新手选第一种就行1新手首选直接下载压缩包打开 YOLOv5 官方 GitHub 地址https://github.com/ultralytics/yolov5点击绿色的「Code」按钮然后点击「Download ZIP」下载源码压缩包下载完成后解压到你想放的文件夹路径不要有中文、空格比如D:\yolov5不然会报错2有 Git 基础的朋友用 git clone打开 cmd进入你想放源码的文件夹输入下面的命令bash运行git clone https://github.com/ultralytics/yolov5.git4. 安装 YOLOv5 依赖库源码解压完成后打开源码文件夹你会看到一个requirements.txt文件里面是 YOLOv5 需要的所有依赖库我们一键安装就行。步骤打开源码文件夹在地址栏输入cmd回车就能直接在这个文件夹打开 cmd 命令行非常方便在 cmd 里输入下面的命令回车运行一键安装所有依赖bash运行pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple这里加了清华源下载速度快不会出现超时报错新手一定要加上。等待安装完成没有报错你的 YOLO 训练环境就全部搭好了三、第二步修改数据集配置文件新手最容易改错的环节环境搭好了接下来就是把我们上一篇做好的数据集和 YOLOv5 关联起来核心就是修改数据集配置文件这一步很关键改错一个地方训练就会报错。1. 复制模板配置文件打开 YOLOv5 源码文件夹找到data文件夹里面有个coco128.yaml文件这是官方的模板配置文件我们复制一份改个名字比如shouhuogui.yaml专门用来放我们的售货柜数据集配置。2. 修改配置文件新手照着改就行用记事本或者 VSCode 打开我们刚复制的shouhuogui.yaml文件里面的内容全部删掉换成下面的内容我给你加了详细的注释你只需要改 3 个地方yaml# 售货柜商品数据集配置文件 # 1. 数据集根路径改成你自己的数据集文件夹的绝对路径 path: D:\dataset\shouhuogui # 这里改成你自己的数据集根路径 # 2. 训练集、验证集图片的相对路径不用改只要你的数据集结构和上一篇教的一样就行 train: images/train val: images/val # 3. 类别数量改成你自己的商品SKU数量比如你有10类商品就改成10 nc: 10 # 4. 类别名称改成你自己的商品类别名和标注的时候的类别顺序完全一致 names: [kele_1, xueli_2, kuangquanshui_3, shutiao_4, kele_lingdu_5, niunai_6, huaguocha_7, binggan_8, xiangchang_9, suliao_shui_10]【新手避坑红线】路径绝对不能有中文、空格不然会报错找不到图片类别数量nc必须和下面的names里的类别数量完全一致不然会报错类别名称的顺序必须和你标注的时候的顺序完全一致不然模型会把类别学错直接认错商品类别名称绝对不能用中文必须用英文 / 拼音不然会出现乱码报错改完之后保存文件数据集配置就完成了四、第三步核心参数详解新手再也不瞎调参了很多新手训练的时候只会无脑把 epoch 拉到 300batch_size 往满了怼结果训了三天三夜模型效果还贼差。今天我用大白话给你讲清楚 YOLO 训练的核心参数每个参数是什么意思售货柜场景该设多少新手直接抄作业就行。我们要改的是 YOLOv5 源码文件夹里的models文件夹下的yolov5s.yaml文件这是 YOLOv5s 的模型配置文件核心参数都在这里。核心参数大白话解释 售货柜场景最优值表格参数大白话解释新手最优值避坑提醒nc类别数量和数据集配置文件里的 nc 必须一致你的商品 SKU 数量必须和数据集配置文件完全一致不然必报错epochs训练轮数就是模型把整个数据集完整学多少遍100~200不是越大越好超过 200 很容易过拟合新手直接设 100 就行batch-size批次大小一次训练喂给模型多少张图显卡显存 4G 设 46G 设 88G 设 16CPU 设 2越大训练越快但是超了显存会报错报错了就往小调img-size训练图片的分辨率宽和高必须是 32 的倍数640售货柜场景 640 完全够用不用设太大不然训练速度巨慢lr0初始学习率模型学习的步长步长太大学不会步长太小学太慢0.01新手不要改默认值就好改了很容易出现训不收敛的问题weights预训练模型权重yolov5s.pt新手直接用官方预训练权重不用从 0 开始训速度快、效果好【新手必懂】预训练模型就是官方用 COCO 超大数据集提前训好的权重已经学会了识别物体的基础特征比如边缘、纹理、形状我们在这个基础上用自己的商品数据集微调就像一个已经学会认字的人你只需要教他认商品包装上的字就行比从 0 开始教快 10 倍效果还好。五、第四步启动训练一行命令搞定所有配置都改完了终于到了启动训练的环节非常简单只需要一行命令。1. 启动训练命令打开 YOLOv5 源码文件夹在地址栏输入cmd回车打开命令行输入下面的命令回车就启动训练了bash运行python train.py --img 640 --batch 8 --epochs 100 --data data/shouhuogui.yaml --weights yolov5s.pt --device 0我给你拆解一下这个命令的每个参数你对应自己的情况改--img 640训练分辨率和我们上面定的一致--batch 8批次大小根据你的显卡显存改显存不够就往小调--epochs 100训练轮数新手直接 100 就行--data data/shouhuogui.yaml我们的数据集配置文件路径如果你改了名字对应改过来--weights yolov5s.pt预训练权重官方会自动下载不用你手动下--device 0用第 0 号 GPU 训练如果你用 CPU 训练就改成--device cpu2. 训练过程详解新手别慌启动命令后会自动做这些事自动下载 yolov5s.pt 预训练权重不用你手动操作加载数据集检查数据集有没有问题有问题会直接报错提示开始训练每一轮都会输出训练损失、验证损失、mAP、召回率这些指标训练过程中会自动保存效果最好的权重保存在runs/train/exp/weights文件夹里有两个文件best.pt训练过程中效果最好的权重我们后续部署、优化就用这个last.pt最后一轮训练的权重用来中断续训【新手避坑】训练过程中不要关 cmd 窗口不要关机不然训练就中断了。如果不小心中断了想继续训只需要在命令里加上--resume runs/train/exp/weights/last.pt就能从上次中断的地方继续训不用从头开始。六、第五步训练完成模型验证 效果可视化训练完成后先别着急部署我们先验证一下模型的效果看看训出来的模型到底好不好用。1. 模型验证看核心指标训练完成后cmd 里会输出最终的 mAP、召回率这些核心指标我们重点看两个指标mAP0.5平均精度售货柜场景必须≥99%不然商用很容易认错商品Recall召回率必须≥99.5%不然会出现漏检用户拿了商品模型没认出来直接亏钱如果这两个指标都达标了说明你的模型训得非常好如果没达标下一篇我们会教你怎么优化。2. 效果可视化看实际识别效果我们用测试集的图片看看模型的实际识别效果只需要一行命令bash运行python detect.py --weights runs/train/exp/weights/best.pt --source dataset/images/test --img 640 --conf 0.5--weights我们训好的 best.pt 权重路径--source测试集图片的路径改成你自己的--conf 0.5置信度阈值只有置信度超过 50% 的识别结果才会显示运行完成后识别后的图片会保存在runs/detect/exp文件夹里打开就能看到模型已经把图片里的商品都框出来了标上了类别和置信度。到这里恭喜你你已经从零完成了 YOLO 商品识别模型的训练拥有了自己的第一个售货柜商品识别模型最后说两句很多新手总觉得 YOLO 训练很难其实只要你跟着步骤走把环境搭对配置文件改对命令输对就能轻松跑通。难的不是跑通训练是训出来的模型能在真实场景里好用。很多新手训完模型会遇到这些问题相似商品总是认错、小包装零食漏检、手遮挡就认不出来、暗光环境效果差放到真实售货柜里根本没法用。下一篇我们就针对无人售货柜场景的四大核心痛点给你一套可直接落地的 YOLO 模型优化技巧解决你 90% 的识别问题让你的模型从 demo 玩具变成真正能用的商用级模型。

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

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

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…