当前位置:   article > 正文

深度学习——YOLO模型的原理与实战_深度学习yolo

深度学习yolo

YOLO模型的原理与实战

YOLO网络结构

YOLO的网络结构是:GoogleNet + 4个卷积+2个全连接层

YOLO的原理

1、原始图片resize到448x448,经过前面卷积网络之后,将图片输出成了一个7*7*30的结构以图示的方式演示
2、默认7*7个单元格,这里用3*3的单元格图演示

单元格(grid cell)

最后网络输出的7730的特征图怎么理解?7*7=49个像素值,理解成49个单元格每个单元格可以代表原图的一个方块。单元格需要做的两件事:

1.每个单元格负责预测一个物体类别,并且直接预测物体的概率值。

2.每个单元格预测两个(默认)bbox位置,两个bbox置信度(confidence)7*7*2=98个bbox   30=(4+1+4+1+20),4个坐标信息,1个置信度(confidence)代表一个bbox的结果,20代表20类的预测概率结果

网格输出筛选:

一个网格会预测两个Bbox,在训练时找1只有一Bbox专门负责(一个object 一个Bbox)怎么进行筛选?

通过置信度大小比较:每个bounding box都对应一个confidence score·

  1. 如果grid cell里面没有object,confidence就是0。
  2. 如果有,则confidence score等于预测的box和ground truth的IOU乘积

注︰所以如何判断一个grid cell中是否包含object呢?如果一个object的ground truth的中心点坐标在一个grid cell中,那么这个grid cell就是包含这个object,也就是说这个object的预测就由该grid cell负责。这个概率可以理解为不属于任何一个bbox,而是属于这个单元格所预测的类别。

不同于faster rcnn中的anchors,yolo的框坐标是由网络得出,而faster-rcnn是人为设定个值,然后利用RPN网络对其优化到一个更准的坐标和是否背景类别

YOLO框,概率值都直接由网络输出7×7x 30 (认为给30个的值赋予了具体的定义)

训练

预测框对应的目标值标记

  1. confidence:格子内是否有目标
  2. 20类概率:标记每个单元格的目标类别

怎么理解这个过程?同样以分类那种形式来对应,假设以一个单元格的预测值为结果,如下图:

损失: 三部分损失bbox损失+confidence损失+classfication损失

YOLO的理解

YOLOv1的理解

 

YOLOv2理解

 

YOLOv3理解

1、网络结构

2、损失函数(重点)

YOLOv3 SPP理解

YOLOv4理解

 

PP-YOLO理解

 

YOLO总结

YOLO与Faster R-CNN比较:
Faster R-CNN利用RPN网络与真实值调整了候选区域,然后再进行候选区域和卷积特征结果映射的特征向量的处理来通过与真实值优化网络预测结果。而这两步在YOLO当中合并成了一个步骤,直接网络输出预测结果进行优化。所以经常也会称之为YOLO算法为直接回归法代表。YOLO的特点就是快

优点:1:速度快缺点,2:准确率会打折扣
但是 YOLO对相互靠的很近的物体(挨在一起且中点都落在同一个格子上的情况),还有很小的群体检测效果不好,这是因为一个网格中只预测了两个框。

YOLOv3的实战项目

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/299622
推荐阅读
相关标签
  

闽ICP备14008679号