文章目录[隐藏]
端到端的半监督目标检测
论文:https://arxiv.org/pdf/2106.09018v3.pdf
代码地址:https://github.com/microsoft/SoftTeacher
整体框架
student model 的训练:
标注数据的检测损失
未标记数据通过伪标签生成的检测损失
teacher model :
由student model 的指数移动平均线(EMA)演变而来
损失函数
所以在训练的时候,主要训练student model
其损失函数重新定义分为了有标签部分和无标签部分
其中 Ls代表有标签图片的损失值,Lu代表伪标签(利用teacher model 生成的)的损失值
再相加之前二者都需要进行归一化即以下步骤(求均值)
初始化
student model 和 teacher model 都是随机初始化的。
其中student model 随着损失函数做SGD的迭代,
teacher model 则根据student model 进行 EMA 迭代
困难点
- 伪标签生成困难
如何利用teacher model 生成的伪标签既包含位置信息也包含类别信息
流程
- 伪标签由teacher model 生成
- 伪标签通过非极大值抑制(NMS)和前景得分高于阈值(提前设定)才能作为伪标签用于建模
- 使用 FixMatch
即使用弱增强作为伪标签,求强增强预测值和弱增强的伪标签之间的一致性
阈值选择
高阈值会有高精确率但是会导致低召回率。
直接使用IOU进行代替(使用一般目标检测的方法),则因为一些本来是真实的框被当做背景加入了训练成为噪声是的模型效果下降。
针对这一问题,本文提出了一种叫做 soft teacher的方法。
这里重新定义了伪标签的类别部分的损失函数
即前景类别损失为算数平均
背景损失为加权平均
权重为背景框的可靠性得分
teacher model 根据弱增强图片生成的背景得分作为这里的 rr
其他的测试方案:
学生背景得分
可靠性分数使用另一个背景得分,即 rr 换成使用 student model的得分
预测差异
可靠性分数使用 teacher model 和 student model 之间差别来认定
即预测概率值之差的绝对值来判断。
IOU
前提 一个候选框与真实框之间IOU小于某一个阈值
- 假设1
这时候IOU较大的那个框作为背景框。这里称为 IOU - 假设2
这时候IOU较小的框更可能是背景框。这里称为 Reverse-IoU
抖动框(Box Jittering)
IOU的问题
高IOU和高精确度的相关性不高,所以高IOU不能保证精确度很高。
抖动框方案
于是将预测的伪框进行抖动,代替生成的bbox进入模型作为proposal进行预测将得到的框求标准差等计算,算出定义的回归方差进入损失函数。
整体论文的思考路径:
-
想建立一个可以使用半监督学习方式来增加整体目标检测mAP的模型。
-
发现有个半监督算法叫 FixMatch。 核心思想是利用弱增强的结果作为伪标签,使用强增强的结果进行训练,保证二者结果的一致性。
-
思考如何将FixMatch这种半监督思路用在自己这里。于是提出了以下框架。
-
现在有了整体框架后,我们有两个模型,一个是 student model 一个是 teacher model 。 一般的来讲,半监督是在一个已有的模型框架下面做出的优化,那么我们的基础模型这里就选择使用Faster RCNN。注意我们训练的时候 student model,下面的损失函数的讨论也是 student model 而 teacher model 是由student model 进行 EMA 平滑的得到的。
-
初始化怎么办呢? 选择随机初始化吧,更具有一般性。注意,这里的随机初始化指的是student。至于teacher的初始化则和student保持一致。
相当于每轮teacher的参数更新为:
这同样解释了teacher model 更新的方式。 -
现在初始化搞定了,那如何将我们的半监督的图片信息加入到损失函数中呢? 我们使用加权吧。
-
对了,有监督和半监督之间如果差别有点大怎么办? 两边分别归一化吧,归一化之后相加才不会导致一方被忽略了。
-
现在可以加权了,有监督部分我们直接使用正常FasterRCNN的逻辑就好了,那有监督这里怎么办呢? 这里肯定需要建立伪标签来使得建模成立,那伪标签在目标检测里面包含了框的位置信息和类别信息两个。我们分着来看看下。
-
类别来说,分为前景类别和背景类别,前景的重要性是一样的,就用算数平均吧。但是背景的重要性可不同,而且背景有点太多了,我们得根据重要性排一下大小。这里就用加权平均吧。
- 其中背景的权重怎么定呢?
- 思考有几种定义的方案。
- 根据 teacher model生成的背景得分来加权(最后使用方案)
- 根据 student model生成的背景得分来加权
- 根据student model 和 teacher model 两者的预测差异来定。
- 根据IOU确定。但是IOU一般使用思路又有两种。
前提 一个候选框与真实框之间IOU小于某一个阈值- 假设1
这时候IOU较大的那个框作为背景框。这里称为 IOU - 假设2
这时候IOU较小的框更可能是背景框。这里称为 Reverse-IoU
- 假设1
- 思考有几种定义的方案。
- 其中背景的权重怎么定呢?
-
思考完类别的定义,剩下就是回归如何确定伪标签了。
- 凭借一般认识认为高的前景得分那么这个框作为前景的可能性就很大,那这个框的位置就应该比较准,于是想能不能直接用前景得分高的框作为我们伪标签的框进行回归。
- 发现 前景得分 与 预测框和真实框之间的IOU 这两者之间并没有一个很好的正相关关系。
如图:
11. 到这里发现假设不成立,那就不能直接用前景得分高的框作为我们的回归使用的框了。思考其他路径。
12. 考虑使用框的抖动生成回归方差,判断方差越小的框IOU越大则可以作为我们伪框的判断依据。根据下图:
从图中能看到使用回归方差的整体效果要优于使用前景得分(因为看起来相关性更强)
所以我们考虑抖动框的生成逻辑。
13.
16. 但是在这套定义伪框的位置信息的时候我们会生成太多的框需要进行这一套计算。消耗太大了。所以进行一轮筛选,选择在teacher model 中前景得分大于0.5的框进行这个回归方差考虑。这样,每张图片由上百张的框需要判断减少到平均每张图片有17个框需要考虑。
17. 设定回归方差的阈值,回归方差小于阈值的情况下我们才将teacher model 预测得到的框作为伪框。
这时候我们定义半监督部分的回归损失为:
18. 将上面这个带入整体损失函数公式(公式3)得到了整体的损失函数为:
以上为整体损失函数定义的逻辑。
论文后续为在实验过程中,体现整体算法效果不错。
后面还有一系列效果的对比,有兴趣可以直接去看论文。
版权声明:本文为CSDN博主「何博睿」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hbr365/article/details/121635908
暂无评论