当前位置: 首页 > ds >正文

Python----目标检测(yolov5-7.0安装及训练细胞)

一、下载项目代码

yolov5代码源

        GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite

 yolov5-7.0代码源

Release v7.0 - YOLOv5 SOTA Realtime Instance Segmentation · ultralytics/yolov5 · GitHub

二、创建虚拟环境

创建一个3.8版本的环境

conda create -n yolov5-7.0 python=3.8

激活环境

conda activate yolov5-7.0

安装环境

pip install -r requirements.txt

 使用GPU训练

import torchprint(torch.__version__)
print(torch.cuda.is_available())
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip install psutil  PyYAML requests scipy thop  tqdm pandas seaborn -i https://pypi.tuna.tsinghua.edu.cn/simple

三、准备数据集

data_cell/
├── train/
│   ├── images/  # 存放训练图片
│   └── labels/  # 存放训练标签
├── valid/
│   ├── images/  # 存放验证图片
│   └── labels/  # 存放验证标签
├── test/
│   ├── images/  # 存放测试图片
│   └── labels/  # 存放测试标签
├── data.yaml    # 配置文件
│
└── custom_yolov5s.yaml

修改data .yaml      修改路径为绝对路径

train: /home/YoloV_/yolov5-7.0/data_cell/train/images
val: /home/YoloV_/yolov5-7.0/data_cell/valid/imagesnc: 3
names: ['Platelets', 'RBC', 'WBC']

关于模型的配置文件 custom_yolov5s.yaml,这个文件可以从 项目models文件夹中拷贝一份修改即可

四、运行训练脚本

建议在终端运行,也可以在train.py运行,但需要进行修改

python train.py --weights yolov5s.pt --data ./data_cell/data.yaml --epochs 300 --batch-size 16
参数说明推荐值/示例注意事项
--img输入图片的尺寸(宽度和高度)640(默认)必须是 32 的倍数(如 320, 416, 640),更大的尺寸会提高精度但增加计算负担。
--batch每个批次的样本数(batch size)16(取决于 GPU 显存)显存不足时减小(如 4/8),可用 --batch-size 或 -b 指定。
--epochs训练的总轮次(所有数据训练一遍为一轮)100(小数据集可 300+)轮次太少可能欠拟合,太多可能过拟合,需观察 val_loss 变化。
--data数据集配置文件的路径(.yaml 文件)data/custom.yaml文件需包含 train/val 路径和类别信息(ncnames)。
--cfg模型结构配置文件(如 yolov5s.yamlmodels/yolov5s.yaml如果使用预训练权重(--weights),此参数可省略(自动匹配模型结构)。
--name训练结果的保存目录名称(默认 exp,后续会递增 exp2exp3--name my_train结果保存在 runs/train/<name> 下。
--weights初始化权重文件路径(.pt 文件)yolov5s.pt(预训练)不指定时默认从头训练;推荐用预训练权重加速收敛(如 --weights yolov5s.pt)。
--nosave仅保存最终的模型(last.pt 和 best.pt),不保存中间 checkpoint--nosave节省磁盘空间,但无法从中间轮次恢复训练。
--cache缓存数据集到内存或磁盘(ram/disk)以加速训练--cache ram需要足够的内存或磁盘空间,小数据集推荐 ram,大数据集用 disk 或关闭(默认 None)。
--device指定训练设备(GPU/CPU)--device 0(GPU 0)多 GPU 用逗号分隔(如 --device 0,1),CPU 训练用 --device cpu
--workers数据加载的线程数(Dataloader workers)8(根据 CPU 核心数调整)线程过多可能导致内存溢出,Linux 下可设更高(如 16),Windows 建议 ≤8。
--hyp超参数配置文件路径(如学习率、数据增强等)data/hyps/hyp.scratch-low.yaml修改超参数需谨慎,新手建议用默认文件。
--resume从之前的训练中断处继续(需指定 last.pt 路径)--resume runs/train/exp/weights/last.pt会自动加载优化器状态和轮次信息。
--evolve启用超参数进化(自动优化超参数)--evolve 300(迭代 300 次)计算成本高,适合大型项目或调优阶段。
--single-cls将所有类别视为单一类别(适用于二分类问题)--single-cls标注文件中的类别 ID 会被强制设为 0。
模型参数量速度精度
yolov5n1.9M⚡ 最快
yolov5s7.2M
yolov5m21.2M中等较高
yolov5l46.5M较慢
yolov5x86.7M🐢 最慢最高

五、模型验证

在模型训练过程中就会进行模型验证,如果愿意也可以输入指令再次验证

python val.py --weights ./runs/train/exp/weights/best.pt --data ./data_cell/data.yaml 

 

六、模型预测

python detect.py --weights ./runs/train/exp/weights/best.pt --source ./data_cell/test/images/

七、TensorBoard 可视化

tensorboard  --logdir=./runs/train/exp/ 

http://www.xdnf.cn/news/12354.html

相关文章:

  • 国芯思辰|SCS5501/5502芯片组打破技术壁垒,重构车载视频传输链路,兼容MAX9295A/MAX96717
  • Python爬虫实战:研究RoboBrowser库相关技术
  • [大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
  • 国内头部的UWB企业介绍之品铂科技
  • 关于根据词库分词的算法逻辑实现(最长词汇匹配原则)
  • 6月5日day45
  • 《Pytorch深度学习实践》ch8-多分类
  • 空间利用率提升90%!小程序侧边导航设计与高级交互实现
  • 【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信拓扑与操作 BR/EDR(经典蓝牙)和 BLE
  • 从0开始学习R语言--Day17--Cox回归
  • 深度学习张量
  • Postman接口测试之postman设置接口关联,实现参数化
  • selinux firewalld
  • 将HTML内容转换为Canvas图像,主流方法有效防止文本复制
  • RunnablePassthrough介绍和透传参数实战
  • Kinova机械臂在Atlas手术导航系统中的核心作用
  • 外网访问内网服务器常用的三种简单操作步骤方法,本地搭建网址轻松让公网连接
  • java32
  • Monorepo架构: Lerna、NX、Turbo等对比与应用分析
  • ubuntu24.04 搭建 java 环境服务,以及mysql数据库
  • Spring Boot 启动流程及配置类解析原理
  • Jenkins实现自动化部署Springboot项目到Docker容器(Jenkinsfile)
  • 家庭智能监控系统的安全性
  • 20250605在微星X99主板中配置WIN10和ubuntu22.04.6双系统启动的引导设置
  • python版若依框架开发:前端开发规范
  • 专业级PDF转CAD解决方案
  • 邮件分类项目
  • 深入理解React Hooks的原理与实践
  • LeetCode Hot100刷题——零钱兑换
  • uv管理spaCy语言模型