《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算法笔记》(草稿)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南