• 目标检测模型开发文档v1.0


    目标检测模型的数据准备、训练和预测过程开发文档

    开发步骤:
    一:数据采集与数据标注
    二:训练模型
    三:测试模型

    代码文件:
    yolo4_tiny.py,CSPdarknet53_tiny.py定义了一个轻量级模型
    loss.py用于计算预测框与真实框的iou以及loss值等
    ious.py用于求出预测框以及真实框的位置
    utils.py文件中设置了输入进来的图片以及预测框的处理以及训练学习率的调用设置

    一:数据采集与数据标注

    1:数据集结构:
    在这里插入图片描述
    JPEGImages文件夹:
    原始图像格式必须为jpg格式,避免出错
    Annotations文件夹:
    该文件夹中存放图像标注的xml文件
    ImageSets文件夹:
    该文件夹中存放标注类别的每个文件列表信息
    train.txt表示训练数据集合
    val.txt表示验证数据集合
    trainval.txt表示验证跟训练数据集合
    test.txt表示测试数据集合

    2:数据采集
    选择需要检测的目标,按目标采集图片
    此处选择目标类别为:人头(head),眼镜(glass),帽子(cap),行人(pedestrian),口罩(mask)

    3:数据标注
    使用labelImg工具标注图片

    4:数据集制作
    运行voc2yolo4.py文件会生成四个txt文件
    在这里插入图片描述
    5:生成图片及标注框位置
    运行voc_annotation.py文件会生成三个txt文件
    在这里插入图片描述

    2007_train.txt中每一行对应图片路径及标注框位置

    二:训练模型

    训练前在model_data文件夹下创建voc_classes.txt文件,存放需要分类的类别
    train.py文件中获得类和先验框
    在这里插入图片描述
    设置训练数据生成器后读入xml文件,获得框属性
    创建yolo模型
    在这里插入图片描述
    训练文件中可选择是否加载预训练权重
    在这里插入图片描述

    训练参数的设置
    logging表示tensorboard的保存地址
    checkpoint用于设置权值保存的细节,period用于修改多少epoch保存一次
    reduce_lr用于设置学习率下降的方式
    early_stopping用于设定早停,val_loss多次不下降自动结束训练,表示模型基本收敛
    在这里插入图片描述
    划分验证集和训练集比例为1:9
    在这里插入图片描述

    开始训练,先冻结后训练,再解冻训练,冻结后训练可以加快训练速度,也可以在训练初期防止权值被破坏
    在这里插入图片描述在这里插入图片描述
    Init_epoch为训练起始
    Freeze_epoch为冻结训练的次数
    Epoch为总训练次数
    batch_size为一次训练中每次数据读取个数
    这些数据可视个人情况设定
    运行train.py文件开始训练
    在这里插入图片描述

    三:测试模型

    在yolo.py文件中设置模型路径以及预测框的分数score、交并比iou等
    如检测不出目标可适当降低score值
    需注意当模型损失率在20左右时可能检测不到目标,应多进行几次训练尽量降低损失率。

    运行predict.py文件
    在终端中输入:
    python predict.py
    输入图片名称可测试图片,并将图片保存
    在这里插入图片描述
    在这里插入图片描述

    运行video.py可调用摄像头检测
    在终端中输入
    python video.py
    如果要调用视频测试可将
    capture=cv2.VideoCapture(0)
    改为
    capture=cv2.VideoCapture(“视频路径”)

  • 相关阅读:
    Vue2:官方路由 Vue-Router 3.x
    大数据必学Java基础(九十):通过反射获取运行时类的完整结构
    宝塔环境PHP网站要配置HTTPS,SSL证书如何申请
    使用python第三方库Parameterized进行接口参数化测试
    CogView中的单层TransformerLayer
    云计算学习7——云计算OpenStack运维基础
    【MySQL基础|第一篇】——谈谈SQL中的DDL语句
    C和指针 第13章 高级指针话题 13.1 进一步探讨指向指针的指针
    用Python做了几个爬虫私活,赚了
    前端学习之HTML
  • 原文地址:https://blog.csdn.net/weixin_44763047/article/details/126719781