两周总结-----YOLOv3 算法理解以及代码的学习

一、YOLOv3算法解读

YOLO算法,学了两个星期, 看了论文、视频、源码解读,还没完全看完,现将这两周收获记录于此文,以及参考的一些资料也放于此。
资料:
1.对anchor box 的讲解,YOLOv2里的内容:
https://www.bilibili.com/video/BV1Q64y1s74K?spm_id_from=333.337.search-card.all.click
2.yolov3讲解:
https://www.bilibili.com/video/BV1Vg411V7bJ?spm_id_from=333.337.search-card.all.click
3.YOLO v3 源码实现的讲解-- pytorch版
https://blog.csdn.net/qq_34199326/article/details/84072505
4.代码里一些不好懂的语法举例说明
https://www.cnblogs.com/sdu20112013/p/11151453.html

1、grid cell的作用以及anchor box里的数据

gridcell就是将一张图片分成了几个网格,下图被分成了13 * 13份,每一份网格就是一个gridcell。
两周总结-----YOLOv3 算法理解以及代码的学习_第1张图片

图一 红格子就是一个 grid cell

每一个gridcell都会负责去预测一个物体,会产生 3个anchor box。对于 13 * 13的gridcell 负责检测大物体,他会产生3个大尺寸的anchorbox,对于26* 26 检测中物体,产生3个中等尺寸的anchor box,对于52* 52 检测小物体,产生3个小尺寸的anchor box。

举一个例子,我们可以得到下图:
一个gridcell里有3个bbox(bbox 和anchor box的关系见下文),每一条bbox里面的参数是(bx, by, bh, bw, c, c_class1, c_class2…)即它的维数为(5+分类数)也就是该包围框的坐标,包含物体的概率(c)+类别数
两周总结-----YOLOv3 算法理解以及代码的学习_第2张图片

根据此图可以计算出,在yolov3里,输入一张图片会产生(13* 13 + 26* 26 + 52* 52)* 3 = 10647个类别框。

2、yolov2里加入的anchor box 思想以及算法思想

1、需要先明白对于框的算法里到底有哪些参数:
在训练集中:
1)标注框------ 喂进去的训练图片里事先标注好的框(拿来进行损失计算的参照)
2)anchor box ------每一个gridcell会自带大中小,各3个不同尺寸的框,这些框的宽比是事先预定好的;
3)bbox------负责预测的gridcell 随机产生一个偏移量(tx,ty,tw,th),由偏移量和此gridcell下最合适的anchor box尺寸大小联合生成的预测框 此偏移量就是我们拿去计算损失函数的依据,我们随机给定它的初始值
两周总结-----YOLOv3 算法理解以及代码的学习_第3张图片
图一 三类框的关系

其中bbox的坐标(bx, by, bw, bh)与anchor box(pw, ph)和偏移量(tx, ty, tw, th)的计算关系如下图,其中(cx,cy)是该gridcell左上角的坐标,做此计算可以获得bbox的重心坐标以及长宽尺寸:
两周总结-----YOLOv3 算法理解以及代码的学习_第4张图片 图二 虚线是anchor box,蓝线是预测框bbox

3、损失函数的计算

截取了一张b站博主做的解读,讲的非常好两周总结-----YOLOv3 算法理解以及代码的学习_第5张图片

4、预测机理

现在讲述gridcell是如何进行预测的

grid cell 的工作机理:如下图,红色格子里的grid cell 自带了三个不同大小的蓝色anchor box,
1、计算iou: 发现中等蓝色anchor box与黄色标注框的iou更大,准备选用这个anchor box来帮助预测;
2、在红色grid cell 随机的设置一个偏置(tx , ty ,tw, th)再根据公式,计算出预测框bbox的坐标(bx , by ,bw, bh),再根据特征提取判断grid cell 到底是否包含这个物体,置信度c是否可靠(是否大于判断值),如果不可靠,将这个bbox的所有值都置零即判断这个框无效;如果可靠,就保留原样这个bbox;
3、非极大值抑制,一个bbox可能预测出的好几类,我们只选用最有可能的类;
4、损失函数计算,优化。
两周总结-----YOLOv3 算法理解以及代码的学习_第6张图片

你可能感兴趣的:(学习,pytorch,计算机视觉,python)