【无人售货柜・RK+YOLO】篇 3:手把手带飞!YOLO 商品识别环境搭建 + 训练全流程,一行行代码带敲
目录一、先给新手打个底训练需要什么硬件最低硬件要求二、第一步环境搭建新手避坑版照着做绝对不报错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
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!