博客
关于我
小白也能弄得懂的YOLO系列之YOLOv1网络训练
阅读量:664 次
发布时间:2019-03-15

本文共 1131 字,大约阅读时间需要 3 分钟。

YOLO网络训训练过程详解

输入图片首先被分成S×S个网格cell,每个网格会预测B个边界框bbox,这B个边界框来定位目标。每个边界框包含5个预测值:x、y、w、h和置信度confidence。这些预测值有特定的约束:

  • x = (bbox.x - cell.x) / cell.width
  • y = (bbox.y - cell.y) / cell.height
  • w = bbox.width / image.width
  • h = bbox.height / image.height

YOLO训练过程

YOLO采用了两阶段训练策略:首先对前20层卷积神经网络进行ImageNet数据集的预训练,然后在Pascal VOC2007和2012数据集上进行对象识别和定位的进一步训练。

网络结构采用深度多层卷积结构,其中最后一层采用线性激活函数,其它层使用Leaky ReLU激活函数。为了防止过拟合,训练过程中采用了Dropout正则化和数据增强技术。


YOLO损失函数

YOLO的损失函数旨在衡量网络输出与实际标签之间的误差偏差,包括:

  • 定位误差:涉及边界框的xy坐标和宽高wh的预测误差。
  • 分类误差:涉及边界框是否包含目标的预测及对目标类别的分类误差。
  • 总损失函数是各项误差平方和的总和,对应五个预测项:

    • 定位误差(坐标偏离)
    • 置信度的预测误差
    • 边界框宽高的预测误差
    • 是否包含目标的预测误差
    • 对应目标类别的分类误差

    优化策略

  • 权重分配

    • 定位误差误差项权重较大。
    • 不包含目标的边界框误差权重较小。
    • 宽高预测采用平方根形式:将目标尺度改为对预测值的平方根处理。
  • 数据增强

    • 使用随机调整亮度、色调、对比度和翻转等方法扩展数据集,提升模型泛化能力。
  • 正则化

    • 采用Dropout方法随机屏蔽部分神经元,防止过拟合。

  • YOLO预测

    在实际使用中,YOLO会输出一个7×7×30的矩阵,存储每个网格的目标概率、边界框坐标和置信度。由于交并比(IOU)和非极大值抑制(NMS)算法的筛选,只保留置信度最高且与其他边界框IOU较低的前几个框。


    兼注事项

  • 定位误差:较高权重分配给定位任务。
  • 置信度误差:只有包含目标的边界框计算分类误差。
  • 交并比(IOU):用于筛选预测框的合理性。

  • TensorFlow版YOLOv1代码下载

    如果你对YOLO感兴趣,可以在GitHub上下载TensorFlow版YOLOv1代码:github.com/gliese581gg/YOLO_tensorflow。安装好开发环境后,直接使用预训练模型即可测试和训练。


    如需了解YOLO的更多细节,可以参考以下相关文章:

    转载地址:http://girmz.baihongyu.com/

    你可能感兴趣的文章
    Parallel.ForEach使用示例
    查看>>
    Parallel.ForEach的基础使用
    查看>>
    parallels desktop for mac安装虚拟机 之parallelsdesktop密钥 以及 parallels desktop安装win10的办公推荐可以提高办公效率...
    查看>>
    parallelStream导致LinkedList遍历时空指针的问题
    查看>>
    Parameter ‘password‘ not found. Available parameters are [md5String, param1, username, param2]
    查看>>
    ParameterizedThreadStart task
    查看>>
    paramiko模块
    查看>>
    param[:]=param-lr*param.grad/batch_size的理解
    查看>>
    Spring Cloud 之注册中心 EurekaServerAutoConfiguration源码分析
    查看>>
    ParseChat应用源码ios版
    查看>>
    Part 2异常和错误
    查看>>
    Pascal Script
    查看>>
    Spring Boot(七十六):集成Redisson实现布隆过滤器(Bloom Filter)
    查看>>
    passwd命令限制用户密码到期时间
    查看>>
    Spring @Async执行异步方法的简单使用
    查看>>
    PAT (Basic Level) Practice 乙级1041-1045
    查看>>
    PAT (Basic Level) Practise - 写出这个数
    查看>>
    PAT 1027 Colors in Mars
    查看>>
    PAT 1127 ZigZagging on a Tree[难]
    查看>>
    PAT 2-07. 素因子分解(20)
    查看>>