本段时间阅读了几篇cvpr2019 有关检测方面的论文,对其实现思路做个简单记录。
1、Mask Scoring R-CNN
本文章中作者所提出的问题是在Mask-RCNN中Mask分支的评分标准是通过判断分割区域是否在检测框中来计算的,这个评分标准对于Mask分支来说依然存在划分缺陷。为此这篇文章的作者增加了一个分支为Mask进行评分,构建损失函数联合训练来提高检测效果。
这是该文章中提出了网络结构,实际上在操作不是很难,看到网络结构下方有个MaskIOU Head,把ROIAlign输入的原特征和最后计算得到的28x28x1的语义信息通过maxpooling后concat在一起作为该分支的输入。通过4层卷积层和2层全连接层来计算最后的C个类别的score。
2、Adaptive NMS: Refifining Pedestrian Detection in a Crowd
本篇文章中作者针对的问题是在行人密集的地方,容易遗失在密集处的行人目标。作者认为这个问题和NMS的取值问题,并通过增加了一个分支来学习一组参数,用于表述该区域的行人稠密程度,用于改进NMS问题检测框的选取问题。
通过对框的坐标、类分数和原始特征concat在一起,然后通过卷积层(文中说的是5x5的卷积层)学习获得density参数。并通过这个density参数来自适应调节阈值,这个方法是可以联合训练的,损失函数为:
D中的参数是由上文中网络学习出来的,这一组参数的作用是用来与Nt进行比较,使得密集处获得的框更多,非密集处则按阈值来选择框的数量。这样可以保证在NMS这一步中不会丢失掉物体密集处需要的框。
3、Reasoning-RCNN:Unifying Adaptive Global Reasoning Into Large-Scale Object Detection
这篇文章提出来的问题是,有很多的大尺度的图片进行物体检索中,模型通常会对概率较高的一些大的物体比较敏感,但是对一些小的或者姿态发生变换的物体的检测效果却不是很好。为此这篇文章的作者提出了一种叫Reasoning-RCNN的方法,通过引用外部的知识来提高对多类别物体的检测能力。
方法如图所示,该方法是通过外部的知识图谱的方式,对当前帧中的所识别出来的物体类别通过一个全局语义池化的操作计算得到M(CxD),然后与外部知识图谱提供的E(CxC,由GRU学习得到),EM这一步的目的是将M作为输入在知识图谱中通过对应关系找到该在本图场景中出现物体。a是通过计算一组注意力的权重值,将这一组权重值和EM做矩阵相乘,由于没有做过实验,在这里做的猜测可能是EM后对一些原来图上要关注的方框的分数下降了,加上这组系数去放大或保持对某些类别的关注。之后将原来的类别预测P与aEM做了一个操作叫做soft maping(没有看明白怎么做的,可能是矩阵乘法),之后与WG做矩阵乘法,获得增强的特征f’,增强后的特征f’和f concat在一起后就是新的特征送入之后的分类器。
以下是该文中给出的结果,可以在一个场景中获得更多的检测结果。