目标检测综述-P1-yolov1(20201017初稿)

2023-11-19

写在最初

关于基于深度学习的目标检测相关算法,后续将在闲余时间陆续整理为博客,尽量展现自己的理解,若有不正确的地方欢迎大家指正。

一、yolov1的提出

yolov1由Joseph Redmon等于2016年发表于CVPR,作为目标检测One-stage算法的开山之作,较two-stage网络改进了proposal步骤,将检测问题转化为回归问题,直接在输入图像多个位置上回归出检测框以及目标类别。

二、yolov1如何进行检测

yolov1检测示意图
yolov1检测示意图如上图,其将输入的图像(448x448)划分为7*7个网格,经过CNN直接在各个网格内回归目标中心点位置(X,Y),检测框长宽以及类别概率。
较two-stage的方法yolov1略去proposal生成的步骤(或者理解为提前设置好固定的proposal),并借鉴GoogLeNet网络架构(小的地方有更改)直接对输入的图像进行特征提取与边框回归、分类。
yolov1网络结构
在这里插入图片描述

具体而言yolov1输入固定大小的448x448RGB三通道图片,经过第一个7x7卷积层得到224x224x64维特征图,然后经过2x2的最大池化层得到112x112x64维特征图(上图中第一层和第二层画的有误)后续类似,最终输出的7x7x4096维特征图经过全连接层以及激活层得到4096维特征向量,然后通过全连接层得到1470维向量,特征重排后即为7x7x30维的特征图输出,对应为原输入图像的目标检测结果。

输出的特征图含义:
在这里插入图片描述
yolov1最终输出7x7x30维的特征向量,其中7x7对应原图划分的7x7个grid,30维向量中,前20维代表预测为每一类目标的置信概率,后续每5维代表,1个当前bounding box的置信概率(confidence = P(object) * IOU )其同时衡量了bounding box的回归准确性(IOU)和判断是否有目标物体的正确性(P(object) 在groundtrhth中为1/0),以及4个当前grid下检测目标的边框回归参数(x,y,w,h,四个参数可理解为对于当前grid进行平移和缩放,具体边框回归原理百度即可),通过这7x7x30维特征向量,即可完成对于原图的目标检测。

三、yolov1的loss函数

在了解yolov1的网络结构、特征向量代表的意义后,我们需要看一下yolov1中使用的loss函数,以便理解其训练过程。
loss函数是用来度量机器学习模型的预测值f(x)与真实值Y之间差异程度的运算函数,loss函数值越小,模型的鲁棒性越好,其主要用于模型的训练阶段,每一批数据经过模型计算后,通过前向传播计算得到模型的预测值,基于预测值和loss函数,可计算出本批数据的预测值与真实值之间的差异(即损失值),得到损失值后,模型通过反向传播去更新各个参数,以降低真实值与预测值之间的差异,最终完成机器学习模型的优化。那么yolov1作为目标检测算法,其loss函数是怎样的呢?
在这里插入图片描述
其实在讲解输出特征图的过程中,已经将loss函数公式列出了。如上图所示,yolov1-loss function可大致分为3个部分:坐标误差(边框回归)部分,IOU误差部分以及分类误差部分。

其中, λ c o o r d \lambda _{coord} λcoord λ n o o b j \lambda _{noobj} λnoobj是考虑到目标检测任务自身存在的正负样本不均衡问题,通常而言图像被分为49个grid往往只有3-5个目标,其余均是负样本,因此yolov1分别取值5、0.5,以便平衡正负样本比例。
  1 i o b j \ 1^{obj}_{i}  1iobj表示grid i中存在对象;   1 i j o b j \ 1^{obj}_{ij}  1ijobj表示grid i的第j个bounding box中存在对象;   1 i j n o o b j \ 1^{noobj}_{ij}  1ijnoobj表示grid i中的第j个bounding box中不存在对象。

四、yolov1训练过程

1.训练前处理

训练前,对于输入的图片会进行随机的翻转、裁剪、伸缩、平滑、亮度、颜色抖动等操作,以进行数据增强。
此外,还需要将Label decode到7x7x30的向量。

2.

五、yolov1的优缺点

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

目标检测综述-P1-yolov1(20201017初稿) 的相关文章

  • KITTI数据集--参数

    一 kitti数据集 label解析 16个数代表的含义 第1个字符串 代表物体类别 Car Van Truck Pedestrian Person sitting Cyclist Tram Misc or DontCare 注意 Dont
  • 在vue中使用typescript

    在Vue中使用typescript 注 本文为翻译文章 非原创 文章原文链接在末尾附上 因为最近项目中需要在vue中使用typescript 查了很多资料 大部分都是一笔带过 没有特详细的资料 直到朋友发了这个链接给我 简直是宝藏文章啊 本
  • surface 其实是UEFI与BIOS并存,借用官网的进入方法(少有更改)

    surface 其实是UEFI与BIOS并存 借用官网的进入方法 少有更改 第一种 1 Swipe in from the right edge of the screen and then tap Settings 从右向左滑动屏幕 选择
  • [BDSec CTF 2022] 部分WP

    组队参加了个国外的小线上赛 题目比较简单 目录 PWN pwnrace Reverse BDSec License Checker 0x1 shashdot Flag Box Simple Math Poster BDSec License
  • 电路及esd防护

    摘自网络 1 并联放电器件 常用的放电器件有TVS 齐纳二极管 压敏电阻 气体放电管等 如图 1 1 齐纳二极管 Zener Diodes 也称稳压二极管 利用齐纳二极管的反向击穿特性可以保护 ESD敏感器件 但是齐纳二极管通常有几十 pF

随机推荐