【学习-目标检测】目标检测之——YOLO v3

文章目录

    • 背景
    • 思路
      • YOLO-V1
      • YOLO-V2
      • YOLO-V3
    • 结构
    • 细节
    • 总结

背景

相比于faster rcnn,yolo的思想要直接的多。YOLO模型从2015年提出,一直采用单阶段的检测方式,在分块的特征上直接用anchor进行中心点和w、h的回归,得到最终的预测框和类别。各类改进版往往是吸取了两阶段检测和free anchor方法进行提升。

思路

YOLO-V1

【学习-目标检测】目标检测之——YOLO v3_第1张图片
根据特征图中网格划分寻找物体中心点并进行长、宽的拉伸,得到坐标框。

YOLO-V2

【学习-目标检测】目标检测之——YOLO v3_第2张图片
在yolo1的基础上,改进backbone,进行真实框的聚类(类似于rgb通道均值归一化),加入多尺度特征,得到更好结果。

YOLO-V3

【学习-目标检测】目标检测之——YOLO v3_第3张图片
yolo v3在之前的基础上融合了RPN的思想,通过提取特征生成anchor进行回归,比单纯学习更加快速高效;同时对于回归真实框部分:对于中心点回归使用sigmoid函数将距离控制在(0,1)之间,使用指数函数将w、h偏移控制在[0, +],更好的学习回归框的值。对于多个anchor重叠问题,使用score排序方式,去掉重复且分数低的框,但导致重叠物体难以检测。

结构

【学习-目标检测】目标检测之——YOLO v3_第4张图片

从整体结构来看,yolo v3的网络结构类似于faster rcnn的backbone和FPN结合的方式,提取出不同尺度的特征图,通过特征图(13\26\52)多尺度信息获得更多尺度目标,255=3*(80+4+1)对每个类别分别计算回归、分类和是否有物体的loss。
核心:粗定位用网格划分找到物体中心点,精定位用中心点和偏移框得到实际物体坐标。

细节

input:416x416x3
backbone:特征降维5次——13,降维4次——26,降维3次——52,分别得到三个尺度的特征输出(前一层特征作用到后一层)
回归:52x52x255(其中255表示(80类+4个坐标+是否有物体)*3个比例框
loss:
坐标转换:
【学习-目标检测】目标检测之——YOLO v3_第5张图片
【学习-目标检测】目标检测之——YOLO v3_第6张图片
【学习-目标检测】目标检测之——YOLO v3_第7张图片

总结

  • yolo v3的anchor借鉴了RPN,多层特征输出和FPN类似,只不过不需要根据RoI进行特征解码之后再训练;
  • 在yolo v3提取多层特征之后,进行loss学习和转化是理解yolo 训练的关键,如何将1313225和26、52的
  • 特征转化为三个loss进行训练,还需要看代码更细致的理解。

但相比faster rcnn,yolo v3确实直接了当,先找真实框中心点,然后拉伸边界范围,最终用NMS过滤分数低和重复的候选框。

你可能感兴趣的:(#,学习资料,目标检测,深度学习,YOLO系列)