• 目标检测(5)—— YOLO系列V1


    一、YOLO系列V1

    • 经典的one-stage方法,You Only Look Once
    • 将检测问题转化成回归问题,一个CNN搞定
    • 可以对视频进行实时监测

    YOLO系列的速度更快,我们检测的物体很简单,进行取舍,舍弃了一些精度。

    在这里插入图片描述

    V1核心思想

    现在要预测一张图片中有哪些物体,左边的图像上有狗、自行车、面包车。
    输入s×s的图片,假设7×7个格子,每个格子都负责预测落在自己位置上的是什么东西。格子上的中心点进行预测。
    现在这个红色的点进行预测,它也不知道狗长什么样子,长宽是多少,所以先给一些经验值,就是图上黄色的两个框(h1,w1;h2,w2)。(YOLOV1给了两个)。经验值不准,但是也可以参考,将经验好的框进行微调,相当于一个回归任务,h怎么变,w怎么变。初始的点在哪(V1的版本初始点是中心点)。

    在这里插入图片描述

    • 总结:有了输入数据,分成很多的小格子,每个小格子产生两种的候选框B值(V1版本),看看两种候选框和真实值匹配的怎么样,算IOU的值,哪个大,哪个候选框就好,就微调谁。会计算出来很多很多的候选框(因为每一个格子都要计算)。计算出bounding box和confidence,即为我们在预测的时候不仅要预测x,y,w,h,还要confidence(当前这个小格子预测出物体的概率)。置信度小的过滤掉。
    • 输入s×s的图片
    • 对置信度高的框、IOU高的框进行微调

    V1网络架构

    卷积神经网络的输入图像是固定的,这个和卷积层没有关系,是因为全连接层是定死的。全连接层前面要固定好feature map的大小。

    • 输入图像是固定值,是V1版本的局限
    • 用一些卷积神经网络提取特征,V1版本用的是GoogLeNet,不关心,后面用效果更好的特征提取网络
    • 得到一个7×7×1024的特征图
    • 第一个全连接层,转化成4096×1
    • 第二个全连接层,转化成1470×1
    • reshape成7×7×30,是我们最后要的

    图片是7×7的格子,每个格子有30个值。
    每个格子两种框,B1:x1,y1,w1,h1(归一化后的坐标值)B2:x2,y2,w2,h2
    还有置信度,C1,C2
    20个分类
    加起来共30
    求矩形框是回归任务,后面还有20分类任务

    在这里插入图片描述

    在这里插入图片描述

    B是先验框的个数;C是类别。

    在这里插入图片描述

    损失函数

    • 预测的值(回归):x,y,w,h,要让这几个的值和真实值的误差越小越好
    • 使用位置误差
    • confidence(预测是物体的):越接近1越好
    • confidence(预测是背景的):越接近0越好,有权重项,因为背景多,给个0.1的权重,告诉网络背景不重要
    • 分类:交叉熵损失函数

    在这里插入图片描述

    NMS非极大值抑制(测试时)

    按照置信度排序,把最大的留下。

    在这里插入图片描述

    V1版本中的问题:
    小物体检测不好
    重合在一起的物体很难检测到
    多标签效果不好

  • 相关阅读:
    volatile类型变量提供什么保证?
    [ 隧道技术 ] 反弹shell的集中常见方式(三)powercat反弹shell
    Windows系统版本下载
    噢不,一条update.where无索引导致的MySQL死锁
    【机器学习】Sklearn导入手写数字数据集 Mnist 失败的解决办法
    HTML---基础入门知识详解
    计算机毕业设计之java+ssm基于web的实验室课程管理系统
    可爱猫+python3+Flask+aiohttp简单搭建微信机器人
    数据库MongoDB
    Jackson
  • 原文地址:https://blog.csdn.net/weixin_45703331/article/details/127716491