yolo

2018-08-09  本文已影响0人  寒寒_21b7

将输入的图片分割成SxS份,并没有真正的分,只是假想的分,经过若干卷积后使得输出结果是形状为SxSxD的张量,这里SxS中的每个格点对应的管理原始输入图片的每一个网格,一旦物体中心落在某个网格内则对应的格点张量负责对类别、置信度、锚框(偏移)进行预测。

anchor box的作用

为了更好的预测bounding box.

yolov1

yolov1的缺点:
1 位置不准,2 召回率低.
疑问:
1 yolo怎样实现用224x224的图片进行训练,而检测时却可以用448x448的图片?
当yolo的网络结构确定后,输入图片的不同只会导致最终输出的网格格点数不同。

2 损失函数如何用代码实现?

yolo2

论文阅读疑问:
1 如何联合地在用于检测的数据以及用于分类的数据上进行训练的? (Our method leverages labeled detection images to learn to precisely localize objects while it uses classification images to increase its vocabulary and robustness)
2 为什么用了anchor boxes之后,yolov2可以对每张图预测超过1000个boxes
3 yolov2如何多尺度训练的?

3、个人认为yoloV2网络的难点

在训练阶段:经过用mxnet实现yoloV2,发现yoloV2代码实现的难点在于如何从真实label和网络前向传导的结果output tensor计算出用于和output tensor做loss的target tensor. 先细想一下,target tensor的组成部分:class part,score part,box part。所以计算target tensor时就可以分开三部分(三个小目标)。
要得到target tensor

第一步:对batch中的每一个true label,通过计算找到最佳匹配的锚框(anchor box);计算的方法如下:

1、根据label box的四个参数(x,y,w,h)计算出该box在格点量级的位置(所处的格点)。即:论文中的Cx, Cy,(取整得到的),小数部分就是box part中的部分回归目标tx,ty (sigmoid后).-------三个小目标中的box part已经实现一般。

2、anchor box出场,在Cx,Cy处计算出label box 与预设的每个anchor box 的iou,挑选出与label box的iou最大的anchor box作为bounding box的tw与th的回归基准(此处anchor boxs 有严格的顺序要求,anchor box的角标在接下来会被使用到)
第二步

下面两张图手画了yolov2 output tensor的解析过程以及用来做损失函数的tensor的构造过程

IMG_20180803_151735.jpg
IMG_20180803_151751.jpg
上一篇 下一篇

猜你喜欢

热点阅读