YOLOv1目标检测的基本原理

  1. 预测阶段

非常好理解:首先固定权重后,将输入图像reshape为448*448*3的图像喂入黑盒子神经网络中,最后输出7*7*30的张量。

7*7表示将图片划分成49个网格了,每个网格区域产生两个候选框,来负责框内物体的定位及分类。因为有两个候选框,故在张量信息中是5+5+20,5表示一个框的信息,一共两个框,20表示有20个类别,是该类别下的概率,用于分类预测。30=4+1+4+1+20, 4表示这个候选框的信息(框的中心坐标及高宽),1表示置信度,也就是框的质量,用IOU来进行检验的。置信度越高说明,该框质量好,与标签所化的框非常吻合。

最终的概率是由框的置信度分别乘以20个不同类别下的概率,拿出最高类别概率的那个数值,才是该框的概率。因此每个网络最终仅预测一个最高概率的物质!!!也就是最多输出的预测为7*7=49个物体

  1. 预测阶段后处理-非极大值抑制

后处理就是将7*7*30维度的张量变成最后图像显示的结果,采用的方法叫NMS非极大抑制

上面几个流程图可以理解为。我们将取出一个网格内的候选框置信度*20个类别下的各个概率,我们就会获得最终该网格下的预测结果,正常情况一张图像有98种情况(7*7*2),98个候选框获得是如下图的实际情况。

那这么多框如何显示最终我们所需要的物体效果呢

第一步通过98个候选框的置信度×20个类别概率。加入第一个概率类别是dog,故按照置信度*dog概率来进行98个张量的排序。设定阈值把一些计算结果为0.001,0.003这种很差的结果直接抹零,假如设定0.3,那么低于0.3的均抹零了。大于0.3的保留,再进行非极大值抑制操作。

第二步,非极大值抑制

如上图所示,0.5 ,0.3就是这个图,先取出dog来讲解

排序大小后发现,0.5=候选框置信度*dog的概率,0.3也是这个计算结果

当我们对比上面的绿色框和黄色框时,发现两者交并比大于一个阈值时,假设设定阈值为0.5,那么大于0.5的话,说明两者是预测同一个物体,将低的那个框抹零,依次对比,(记住会出现图片中包括两个只狗的情况,但是位置肯定不同,所以设定交并比的数值非常关键)。

为了具体说一下思路举个例子

a=0.6 b=0.3 c=0.2 d=0.1 设定非极大值抑制为0.5

假设 a与b的交并比为0.6,大于0.5,留下概率最高的0.6,b=0.3赋值为0。

故,留下来的就是:

a=0.6 c=0.2 d=0.1 b=0

假设 a与c的交并比为0.3,小于0.5,故保留。a依次类推和d进行交并比比较

关键来了:

此时大小排序是a c d b。

再拿c来进行b的比较,只要抹零了就不参与计算了!!!

然后依次第二类别cat上面的概率。

最后得到的7*7*30维度的向量,里面有很多为零的,我们通过选择最终每个长条的最大值,找出来显示出来就得到最终结果。

由上图可知啊,本来有98个框,经过设定阈值和非极大值抑制后,就只剩下三个框了,会抹去很多向量的数值转为0的

记住:NMS后处理仅在预测阶段可以用!!!!!!!!!!!!!!!

训练过程可不能用NMS,因为所有计算向量均要在损失函数中占据一席之地

  1. 训练阶段

注意:一个网络中随机生成两个候选框,但是候选框的中心点一定落在这个网格里面

总体损失就是三个:第一个就是定位误差,第二个就是置信度误差,第三个就是分类误差。

置信度的评价就是预测框和目标框的交并比

来自于同济子豪兄的讲解总结:算法精讲-预测阶段_哔哩哔哩_bilibili

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值