目标检测算法考古之Yolov1原理篇 您所在的位置:网站首页 yolov1 目标检测算法考古之Yolov1原理篇

目标检测算法考古之Yolov1原理篇

#目标检测算法考古之Yolov1原理篇| 来源: 网络整理| 查看: 265

先来说说目标检测是什么意思?目标检测就是用一个框子把图片中区别于背景的对象给框出来,比如图片中有一只猫和一只狗,目标检测会将猫和狗用框子框出来,并给每个框子一个类型(属于猫类,狗类,还是其他类)和类型匹配概率,这个概率表明算法认为框出来的对象符合类型的概率,这个概率是一个0到1之间的数,0.9表明算法认为当前框起来的对象很符合框子的类型,0.95比0.9更匹配框子的类型。

Yolov1做了什么呢?

Yolov1将输入的图片规则划分为7*7=49个小方块,每个小方块生成2个预测框,2个类型匹配概率c,和预测框所属类型的概率向量p。

如(1,1)这个小方块,生成的两个预测框中的每个预测框包括(x,y,w,h)4个参数,x和y代表预测框的中心点坐标,w和h代表预测框的宽和高,这4个参数就唯一确定了一个预测框的位置。类型匹配概率意思介绍过了。一个小方块虽然生成了2个预测框,2个类型匹配概率,但只生成一个预测框所属类型的概率向量,向量的长度为20,向量的每个值范围为0到1,代表预测框属于这20种类型中的哪一种的概率大小。

总结一下,共有49个小方块,每个方块生成一个30个元素的向量(x,y,w,h,c)*2+20。

在训练阶段,将这些向量输出,并计算与参考值的差值来更新神经网络的权重,具体是这样计算的

首先需要说明的一点是,我们首先从yolo的输出中需要寻找合适的预测框来进行优化,这是什么意思呢?

Yolov1会输出49*2个预测框,虽然我们会对每个预测框进行参数优化,但很明显,我们只会对代表物体的合适预测框优化

(x,y,w,h,c,p),而对代表背景的预测框只优化c。这是因为对于背景,我们希望它输出的c为0,其它参数我们并不关心,而对于代表物体的预测框,我们希望优化(x,y,w,h,c,p),这样结束训练后我们才能得到最好的预测结果。

那么我们如何才能得到合适的预测框呢?

我们会根据人工标注的方框来找出合适的预测框。我们根据人工标注的方框来找出这个方框的中心点所在的小方块。从而确定合适的预测框所在的小方块,剩下的工作只需要从这个小方块生成的两个预测框中选一个就ok了,如何选择呢?我们会计算预测框和人工标注的方框之间的IOU(交并比),IOU用来衡量这两个方框之间的重合程度,也就是说两个方框越接近IOU越大,从而我们选择IOU最大的预测框,从而得到合适的预测框。

举个例子,假设图中有一条狗,一只喵,一辆自行车,则人工标注了三个方框,这三个方框的中心点会落在三个小方块中,从而合适的预测框就从3*2=6个预测框中选出3个,选取根据IOU这个参数。

结束训练后,输入新的图片,会生成49*2个预测框,我们会根据每个预测框的参数c来决定预测框要不要显示出来。

好了,本文就到这,下文我们来分析Yolov1的pytorch代码。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有