基于 yolo_v5 训练识别人物

基于 yolo_v5 训练识别人物

一、文章前言

文章分享yolo模型训练和部署

二、工具&环境准备

2.1 安装必要环境工具

IDE:使用 Pycharm 2021 社区版,推荐安装参考博文:pycharm安装教程,超详细

CUDA 和 CUDNN:用于使用 GPU 加速训练和推理,推荐安装参考博文:Cuda和cuDNN安装教程(超级详细)

Git:便于进行模型操作和环境配置,推荐安装参考博文:Git安装教程(Windows安装超详细教程)

Anconada:便于配置管理 Python 环境,推荐安装参考博文:Win10+Anaconda3 的详细安装教程(图文并茂)

AnLink:将手机画面投屏到电脑的工具,下载链接:AnLink官网

2.2 获取 yolov5 源码

源码获取推荐参考文章:YOLOv5的详细使用教程,以及使用yolov5训练自己的数据集

步骤简单总结一下就是:

  • 使用 Git 工具拉取源码
  • 使用 Conda 安装配置 yolo 需要的环境

三、模型训练

准备一段用于训练的视频,这里我用的小鲁班作为目标

鲁班7号

将这段视频导出为图片,推荐训练的张数为 100 - 400 张,导出可以使用 PR 或者一些网页进行转化,转换网页推荐:Convert To JPG

有了图片后使用 Labelimg 进行标注,在 Git 中使用如下命令下载:

pip install labelimg

下载后启动:

labelimg

选择 yolo 标注模式进行标注,设置目标标签为 luban,标注文件生成的是 txt,用于后续的训练

yolo检测

这里的 labelimg 标注工具有一些使用细节要注意,推荐大家参考阅读这篇文章:labelImg 使用教程 图像标定工具

数据集准备好后,我们放到同一个文件夹下

文件目录

用 pytorch 打开代码工程,在如下位置新建一个数据集配置文件

pytorch工程

输入配置参数:

train: D:\yolo_v5\datasets\trains2  # train images (relative to 'path') 128 images
val: D:\yolo_v5\datasets\trains2  # val images (relative to 'path') 128 images
nc: 1  # number of classes
names: ['luban']  # class names
  • train:训练集标签路径
  • val:验证集标签路径(理论上两个数据集应该不一样,训练效果更好,这里我使用了同一个)
  • nc:识别的种类数目
  • names:识别的标签,和标注时设置的标签要对上

之后修改训练脚本 train.py 参数:

修改训练脚本

配置 pycharm 运行此程序,python 的运行环境是我用 conda 新建的环境

修改程序运行参数

训练现象:GPU 进入打工人状态,整体 200 多张图片训练了 4 个小时左右

运行过程

模型训练完成后测试训练结果:训练模型结果放在了 yolo_v5\yolov5\runs\train\expxx 目录下面,模型文件是 best.pt 文件

训练结果

我们修改 detect.py 检测脚本

检推理脚本

然后运行检推理检测程序,运行后在输出目录下生成检测的视频文件,结果如下:

在这里插入图片描述

观察效果也可以看训练目录下的参数结果:

loss参数图

整体参数还行,loss 曲线正常拟合,没有过拟合和欠拟合情况

OpenCV 是一个开源的计算机视觉库,它可以用于训练模型来识别特定的人物。 使用 OpenCV 训练模型识别特定人物的步骤如下: 1. 收集数据:首先,我们需要收集训练模型所需的图像数据。这些图像应包含特定人物的不同姿势和表情,以便模型可以学习到多个方面的特征。 2. 数据预处理:在训练模型之前,需要对数据进行预处理。这包括调整图像大小、将彩色图像转换为灰度图像等。 3. 特征提取:接下来,我们需要从图像中提取特征以便模型可以理解和区分不同的人物。这可以通过使用 OpenCV 提供的一些特征提取算法,如 Haar 特征、HOG 特征等来实现。 4. 训练模型:准备好的数据和特征之后,我们可以使用 OpenCV 中的机器学习算法,如支持向量机(SVM)或卷积神经网络(CNN)等,来训练模型。在训练过程中,模型将通过不断迭代优化参数,以使得模型能够准确地识别特定的人物。 5. 模型评估:完成训练后,我们需要对训练好的模型进行评估。这可以通过使用另外一组未在训练中使用的测试数据,并计算模型的准确率、精确率、召回率等指标来实现。 使用训练好的模型来识别特定人物时,可以将测试图像输入模型,并根据输出结果进行判断。模型将根据之前训练过程中学到的特征和模式来进行识别,并输出相应的人物标签。 总的来说,OpenCV 提供了训练模型识别特定人物的丰富功能和算法,并且可以根据实际需求灵活选择和调整。可以通过数据收集、数据预处理、特征提取、模型训练和评估等步骤来实现训练模型识别特定人物的目标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Top嵌入式

投喂个鸡腿

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值