YOLO思考(1)

2019-05-05  本文已影响0人  深度学习模型优化

1 目标检测问题分析

无论是以R-CNN、Fast R-CNN和Faster R-CNN为主的two-stage目标检测方法,还是以YOLO和SSD为主的one-stage目标检测方法,其核心都是找到RoI,并对RoI中的目标进行分类,以及对RoI的边框进行回归修正。如图1所示。

图1 检测框架

甚至于最新的CornerNet算法,不断地提升候选框提取效率、候选框有效率、候选框精准度以及与分类框架的融合。如图2 所示。

图2 Cornet Net

主要是为了解决两个核心问题:

2 YOLO训练框架

这里先抛出darknet,因为华盛顿大学的兄弟在做YOLO的时候用的就是darknet,这是个用C编写的深度学习框架,当然功能和caffe、tensorflow、pytorch没法比,但是作为一个菜鸟,我依然对这个框架不是很理解。这个就需要时间去打磨了。有兴趣的读者可以去看下darknet的中文注释。

3 YOLO网络架构

3.1 YOLO V1

YOLO V1使用darknet的前20个卷积层,然后接着一个全局池化和一个全连接层,构建一个预训练模型。该预训练模型来提高backbone的性能。

图3 YOLO V1框架

由图3可知,Darknet的完整框架包括(24卷积层+2全连接层)。输入是​的图像,输出是​。这里的输出通道可以表述为 ​ 包括:

RoI网格划分是通过最后一个卷积层的输出体现。该卷积层的输出为​,特征图的尺寸为​,将原图划分成了7\times 7​的网格区域,每个网格预测20个类别的概率,目标框置信度以及两个目标框信息,其中每个目标的中心位置都会转换至网格区域内。

图4 感受野

最新的版本中的最后的两个全连接层被替换为了局部全连接层、dropout和1715输出的全连接层。这里的1715为7\times 7 \times 35。这里的35包括:

图5 局部全连接层

每个类别的真实置信度的计算公式如下:
Confidence\_object = P(object) \times IOU_{truth}^{pred} \\ Confidence\_class_i = Confidence\_object \times P(class_i | object)

上一篇下一篇

猜你喜欢

热点阅读