yolo

将输入的图片分割成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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容