《YOLO算法笔记》(草稿)

2021/7/4 20:21:26

本文主要是介绍《YOLO算法笔记》(草稿),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

检测算法回顾

5、6年前的检测算法大体如下:
在这里插入图片描述
手动涉及特征时应该考虑的因素:

1、尺度不变性 2、光照不变性 3、旋转不变性

这一步骤称为特征工程,最重要的一个算法称为sift,(回顾SIFT讲解)体现了上述所有的观点。
在分类的过程中,经典的工具有SVM、NN。
由于每一个步骤都会存在误差,随着链路不断增长,会导致误差逐步累积,最终带来错误。
stage1生成备选框,stage2进行精准化.
在这里插入图片描述

v1讲解

一些概念和定义
在这里插入图片描述
每个备选框都可以用四个维度唯一标定。
confidence为置信度,置信度表达式中的Pr表示是否为目标物体的概率,IoU表示真实与预测box之间的重合程度。
输出的张量,(5*B+C)表示channel数目,5代表了box的xywh和置信度,一共有两个box,C表示分类的个数,原文中给的是20.
B是个武断的数字,只要比1大就行了,用1个预测框去回归,并不能保证回归结果很好。
在这里插入图片描述
损失函数解释
在这里插入图片描述
函数1、2代表的是对物体边框的回归。3、4代表的是对置信度的回归。
原本的格子7x7,然后每个格子对应2个bbox,一共有98个点需要估计。然而在我们上图中只有3个物体,所以需要把超参数调整大一点,平衡非物体bbox过多。
w与h表示bbox的边框大小,为什么使用根号呢?如果使用线性的,当物体边框大的时候,loss也就越大,说明我们评测结果容易收到大物体影响。使得网络只会去学习到大物体的信息,而把小物体给忽略掉了。
w与h表示bbox的边框大小,使用根号,是为了使得大物体与小物体产生的loss差距不大。取log也可以。
在这里插入图片描述
为什么需要加上noobject的损失?
当我们需要学习N类物体的特征时,其实需要学习的时N+1类物体,就是多一个复杂的背景,增强泛化能力。
在这里插入图片描述
最后的分类略显粗糙,需要加上softmax,与交叉熵损失相结合。softmax定义,数学表达式,编码以及求导需要好好掌握。
在这里插入图片描述
v1总结
在这里插入图片描述
之前说过yolo是,图像中物体中心落在哪个格子,那个格子就负责预测那一个物体。如果物体过于拥挤,导致一个格子里面有多个物体中心就不好搞了。

在这里插入图片描述
物理信息找边框,语义信息分类。
在这里插入图片描述
在这里插入图片描述
很显然,右边的更容易回归
在这里插入图片描述
人工撒anchor,不同形状,
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

v3

在这里插入图片描述
在这里插入图片描述



这篇关于《YOLO算法笔记》(草稿)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程