深度学习——锚框(笔记)

1.锚框的解释

目标检测算法中,通常会在输入图像中采样大量区域,然后判断这些区域是否包含所感兴趣的目标,并调整区域边界从而更加准确的预测目标真实的边缘框

①一类目标检测算法是基于锚框

提出多个框被称为锚框的区域(边缘框)

预测每个锚框里是否含有关注的物体

④如果是,预测从这个锚框到真实边缘框的偏移

边缘框:图像真实的位置,标号的位置

锚框:计算机预测的位置

“算法本身不知道标号物体真实的位置,如果直接对位置预测比较困难。算法的操作是先提出一些框,在锚框里有没有关注的物体。如果有关注的物体,锚框慢慢调整到真实边缘框的位置。两次预测:物体类别和位置”

2.loU-交并比:锚框与真实框的相似度

①loU是用来计算两个框之间的相似度

0表示无重叠 1表示有重叠

②这是Jacquard指数的一个特殊情况

  给定两个集合A和B

深度学习——锚框(笔记)_第1张图片

 A是锚框 B是边缘框 分子是交集,分母是并集。两个重合的时候结果是1

深度学习——锚框(笔记)_第2张图片

 

3.赋予锚框标号

训练集中,每个锚框看作训练样本。为了训练模型,需要每个锚框的类别(class,与锚框 相关对象的类别)和偏移量(offset,真实边缘框相对于锚框的偏移量)标签。

①每个锚框是一个训练样本

②每个锚框,要么框住了背景,要么关联上一个真实的边缘框锚框所框住的物体的标号与所关联的边缘框物体的标号相同。锚框的偏移就是关联边缘框的偏移,偏移量根据锚框和真实边缘框的相对位置以及大小进行标记)

③可能会生成大量的锚框,将导致大量的负类样本

“学习的过程是在各位置上都学习一个正确的锚框,预测的时候,只要物体出现,网络就知道在哪里标上正确的bbox”

4.图示锚框标号

深度学习——锚框(笔记)_第3张图片

 

①列:标注好的边缘框,4列表示4个边缘框

行:锚框

②每个锚框跟边缘框算loU值,在每个方格中的值表示

③将整个矩阵中的最大值挑选出来,假设x23,那么将边缘框3中的标号给锚框2,删除X23所在的行和列

深度学习——锚框(笔记)_第4张图片

 在剩下的矩阵找最大值,假设是X71。锚框7跟边缘框1关联起来,同时删除所在的行和列

深度学习——锚框(笔记)_第5张图片

 

以此类推,直到所有的边缘框与对应的锚框关联。

锚框的生成:

①固定生成

②根据图片生成锚框

5.使用非极大值抑制(NMS)输出

深度学习——锚框(笔记)_第6张图片

 

①每个锚框预测一个边缘框时,有很多相似且重叠的锚框

NMS可以合并相似的预测

Ⅰ选中是非背景类的最大预测值(对类的预测的softmax值,越接近于1置信度越高)

Ⅱ去掉所有其他和它loU值大于θ的预测(也就是去掉和最大预测值相似度比较高的其它锚框)

Ⅲ重复上述过程直到所有预测要么选中,要么去掉

 

【总结】

①一类目标检测算法是基于锚框来预测

②首先生成大量的锚框,并赋予标号,每个锚框作为一个样本进行训练

③预测时,使用NMS来去掉冗余的预测

你可能感兴趣的:(深度学习,计算机视觉,人工智能)