yoloV1综述(You Only Look Once)

目标检测综述

图像分类,定位: 图像分类给一个图片直接分类并不会将所分类的物体定位,没有矩形框

目标检测:将多物体检测出其类别,可以将多个物体定位,画出矩形框

语义分割:每个像素的类别输出,并不区分同一类别的不同实例

实例分割:区分不同实例dog1,dog2,dog3,也是像素级的输出

 

可以供检验的数据集

单阶段 :直接将图像传入,端到端Yolo,速度快,准确率低

双阶段:先从图像中提取出若干候选框,再逐一的对这些候选框分类甄别

Faster-RCNN

通过专门模块去生成候选框RPN,寻找前景以及调整边界框(提出了RPN网络,使用RPN直接预测出候选框的位置,anchors就是在图像上预设好的不同大小,不同长宽比的参照框。非常类似于滑窗法所设置的窗口大小)

前景是指我们所需要检测的目标,而不感兴趣的目标就是背景

基于之前生成的候选框进行分类以及调整边界框(基于proposals(候选框))

 

YOLOV1 单阶段 目标检测框架

 YOLOV1 的预测阶段

 448*448*3通道的彩色图像 ------> 7*7*30的张量

 每一个网格(grid cell)可以预测2个边界框(bouding box)所代表五个信息 x,y,h,w,c

  1. x:表示边界框在图像中的水平位置(通常使用左上角的x坐标表示)。
  2. y:表示边界框在图像中的垂直位置(通常使用左上角的y坐标表示)。
  3. h:表示边界框的高度(或者垂直方向的尺寸)。
  4. w:表示边界框的宽度(或者水平方向的尺寸)。
  5. c:表示预测的类别置信度。这个置信度表示边界框中包含某个特定类别的概率。
  6. c = Pr(Object)*IoU[truth,pred]

 剩余的20位代表20个类别的条件概率

条件概率:他是物体的概率前提下 他是某一类别的概率

我理解的是 置信度指的是 某一个单元格预测出来的边界框 框住某一特定类别(某一物体)的概率

但他可能是猫 ,狗,自行车,人 这取决于 20个类别的条件概率

假设我们的目标是在一张图像中检测狗的边界框。模型预测的置信度为0.8,表示该边界框中包含狗的概率为0.8。而我们已知在该图像中狗的先验概率为0.6。那么,通过将置信度0.8与先验概率0.6相乘,我们可以得到该边界框代表狗的全概率为0.48。

 

 

将每个bounding box 用彩色框图画出 置信度越高线条越粗,剩余的工作就是将重复的低概率的框图剔除,下图是可视化处理,

7*7个grid cell -- > 98个bounding box ---> 98个框图 

预测阶段后处理-NMS非极大值抑制

后处理 : 从7*7*30的张量-->结果图

先进行设置阈值 将较低的置信度置0,再进行降序排序。之后进行NMS算法处理

IoU :交并比 代表两个框重叠的面积 /两个框的并集部分面积 

IoU越高证明两个框 框住的是同一个物体也即是 重复的框

如果 IoU> 0.5(可以设置) 就将较小的条件概率 置零

对NMS算法理解:

首先不能对每一行取最大值其余值置零:如果一个图中有两个狗,那么如果置零会导致,另一个狗不会被检测到.

一个grid_cell会预测出两个bounding_box,如果这个grid_cell是某个类别的中心点,那这两个bounding_box的IOU一定是大于0.5的,其中一个会被剔除,会将全概率最大的bounding_box留下,

对于某一类别(狗),NMS处理过后很有可能还有大于0.2(threshold),IOU <0.5 这样的框会留下,但我们清楚这个框并不是预测狗的,最终这个框消失是因为被其他类别竞争掉,最终会按照每一列中的20个全概率取其最大的值所代表的类别进行显示。当然有些NMS处理过后留下的值会被竞争掉,因为每一个框只能表示一个类别.

如果一个图像的中心点,与另一个图像的中心点重合,甚至各占一个grid_cell的50%,这时应该是在同一个置信率下,每一个bounding_box可能有两个类别的条件概率都很大,最终要么因为IOU其中的一个条件概率被竞争掉,要么通过每一列的最大值输出竞争掉

所以说经过NMS没被剔除的框(前提全概率>0.2,可能置信度高条件概率低导致的,会使得IOU低因为不是同一个grid_cell或者不是同一个物体)要么同一类别的多个物体,要么最终看某一列的最大值时被其他类别竟争下去。

 

训练阶段(反向传播)

深度学习,监督学习训练是根据梯度下降和反向传播迭代的去微调神经元中的权重来使得损失函数最小化的过程

首先在训练集上用标注软件或标注工具画出grand truth,我们的算法就是让预测结果尽量拟合这个绿框使得损失函数最小化。

绿框的中心点落在哪个grid cell 就应该由哪个grid cell 预测出的bounding box 去拟合grand truth,并且由grand truth 交并比(IoU)比较大的那个bounding box 去负责拟合grand truth,

有些中心点并不是标注框的中心点,这种grid cell 预测出来的两个bounding box 应该都被舍弃掉,尽可能的让其置信度低

当然 这49个grid cell 预测出来的 98个bounding box 他们的中心点 都落在所属的grid cell里

 

 从右侧的图片来看,他们的宽度偏移量(宽度误差)是相同的,但是明显对于小目标是预测的结果较差,IOU较小,这对于大目标是不公平的,作者给的是通过开根的函数 来放大小目标的误差

论文思想:

1:将一幅图像分成S*S个grid_cell 如果某个object的中心落在这个网格中,则这个网格就负责预测这个object

2:每个网格要预测B个bounding_box, 每个bounding_box除了要预测位置之外,还要附带预测一个confidence值,每个网格还要预测C个类别分数

YoloV1 存在的问题:

小目标(密集的目标)的检测效果较差(一群鸟)--- [yolov1 只能预测49个目标]  yolov1的思想当中,对于每一个ceil 只预测两个bounding box,而且这两个bounding box是属于同一个类别的

发现目标出现新的尺寸或者比例二点时候也会很差

主要问题 : 定位问题

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值