深度学习

详解 YOLOv2

2020-10-05  本文已影响0人  zidea

YOLOv2

<img src="./images/yolov2_cover.jpeg">

简单回归 YOLOv1

<img src="./images/yolov1_012.jpeg">

yolov1 中存在问题

针对这些问题,作者 AlexAB 做了很多实验,尝试在 YOLOv1 基础上进行优化
<img src="images/yolov2_optimization.jpeg">

解决方案是从直接预测到间接预测,这是在 yolov2 中提出针对召回率低的优化方案

预测框的优化

local prediction 机制

作者为什么在 yolov2 没有采用 Anchor 机制来生成预选框,而采用局部预测(local prediction) 宽和高基于 anchor 的宽和高,位置是与 anchor 不同,是基于位置。

<img src="./images/yolov3_01.jpg" width="50%">

基于 cell 左上角点预测框的相对偏移量
中心点坐标表示如下
\begin{aligned} b_x = \sigma(t_x) + c_x(2)\\ b_y = \sigma(t_y) + c_y(1)\\ \end{aligned}

Pr(object) * IOU(b,object) = \sigma (t_o)

那么接下来我们说一说 RCNN 的 Anchor 机制

Anchor 机制

Anchor free

每一个网络上,每一个点都预测,一般都是密集\frac{1}{4} 或者\frac{1}{8} 也就是会生成很多预选框。

多尺度融合

预测效果好,和输入到卷积网络图片尺度是有关系的这一点不能否认,RCNN 通过 ROI 可以神经网络接受多尺度输入,而现在 yolo 还只能接受一个尺度 416 x 416,所以 yolo 没有在网络上考虑多尺度,这样也就是很容造成漏检。

在 yolov4 做了一些优化

<img src="./images/yolov2_passthrough.jpeg">

<img src="images/yolov2_001.jpeg">

YOLOv2 设计的亮点

<img src="images/yolov2_nb.jpeg" width="80%">

<img src="./images/yolov2_sigmoid.jpeg" width="65%">

<img src="./images/yolov4_cbn.png">

YOLOv2 结构图

损失函数详解

<img src="./images/yolov2_loss.jpeg">

这里损失函数对于我们还是比较难懂,同时也是最重要部分,所以觉得有必要花费时间在上面。算是函数开始就是一个遍历, W \times H \times A 其中 A 表示是 Anchor。

上一篇 下一篇

猜你喜欢

热点阅读