在科学研究中,从方法论上来讲,都应“先见森林,再见树木”。当前,人工智能学术研究方兴未艾,技术迅猛发展,可谓万木争荣,日新月异。对于AI从业者来说,在广袤的知识森林中,系统梳理脉络,才能更好地把握趋势。为此,我们精选国内外优秀的综述文章,开辟“综述专栏”,敬请关注。
地址:https://www.zhihu.com/org/lighthouse-52-16
01
在训练分类或分割网络时,图像的类别或图像像素的类别均有明确的定义。检测网络是学习预测前景物体的bbox,然而,bbox的类别并不一定是十分确定的。这是因为,一般而言,预测的bbox不会与某个gt box 100%完全重合,最可能的是仅有一部分重合,甚至在检测密集物体时,预测的bbox可能与不止一个gt box的交不为空。那么,如何评价当前预测的bbox的质量,定义bbox的类别,以实现网络的训练,是需要进一步思考的。关于目标检测网络中正负例的定义,不同的方法采用了不同的机制。在本系列文章中,将对Anchor-based、Anchor-free方法中如何定义正负例进行解读。本文将首先介绍Anchor-based方法中正负例是如何定义的。02
Faster RCNN是第一个端到端检测网络,江湖地位自不必讳言,直至现在,它都是最常用的一种检测网络。但是,我认为,Faster RCNN对使用者并不友好,当我一开始接触Faster RCNN时,就被它多到爆的超参给吓趴下了,这些超参相当一部分是由Anchor机制带来的。这也是在Anchor-free方法经常批判它的原因。为了便于理解,我们首先简要介绍一下Anchor的概念。在最原始的Faster RCNN(无FPN)中,在stride为16的特征图上,在每个特征点生成{1:1,1:2,2:1}纵横比、{128,256,512}大小的box,即为Anchor。依据纵横比和大小的两两组合,每个特征点生成9个Anchor,一个m*n大小的特征图生成的Anchor数量为m*n*9。Anchor的生成机制类似于传统DPM的移动滑窗。在Anchor-based方法中,对这些Anchor进行分类和回归,确定类别,并且使Anchor的区域尽可能接近gt box,然后NMS后输出。在原始的Faster RCNN中,Anchor的数量约为17.1K。加上FPN后,Anchor的数量会直接增加8倍,约130K。由于是在每个特征点均生成相同数据的特征图,故Anchor的数量与特征图的分辨率有关。FPN在五个特征图上生成Anchor,其中分辨率最高的特征图stride为4,与stride为16的特征图相比,分辨率增加了16倍,再加上其他4个特征图,Anchor的数量共计提升了约8倍左右。在RetinaNet中,Anchor设置的方式与FPN有些差别,主要体现在,首先,使用的特征图不同,FPN使用{C2、C3、C4、C5}特征图,RetinaNet使用了{C3、C4、C5}特征图,同时又根据C5生成了C6和C7特征图,总共使用C3~C7五层特征图;另外,设置Anchor时,使用的纵横比和大小也不相同。针对每个特征点生成的Anchor及整幅图Anchor的分布可视化如下图
03
在原始Faster RCNN方法中,分为两个RPN和fast rcnn两个步骤。在RPN网络中,对每一个Anchor分配标签 。正例:对于每一gt box,交并比最大的Anchor,或与任一gt box的交并比大于0.7。负例:与所有gt boxes交并比小于0.3。交并比在(0.3,0.7)区间的Anchor忽略。从而,保证每一个gt box都有一个Anchor与之对应。RPN训练中,一张图片选取256个Anchors计算loss,正负样本Anchor的比例是1:1,如果正样本数量不够,用负样本填充。在fast rcnn中,对输出的proposal分配标签。正例:与某一gt box交并比超过0.5。负例:与gt boxes的最大交并比在(0.1,0.5)。其它忽略。在fast rcnn训练中,一张图像选取128个proposals计算loss,正负样本Proposal的比例是1:3,如果正样本数量不够,用负样本填充。关于在两个阶段,为什么阈值为有差异。这是因为,RPN网络的意义在于,对于输放的质量较低的Anchor,需要保证高召回率,同时将明显的背景区域去除。因此,在保证每个gt box均有一个Anchor与之对应的基础上,忽略潜在的对抗样本(IoU在(0.3,0.7)的样本),学习一个更明显的分类面,加快网络的收敛效率。在fast rcnn网络中,它的输入是RPN输出的proposal,与Anchor相比,质量已经有了较大提升,可以忽略较差、容易区分的样本(IoU<0.1的样本),因为此类样本会降低网络的学习效率。同时,可以学习IoU在0.5左右的困难样本,以提高输出的bbox的准确率。其它的Anchor-based方法,如RetinaNet和SSD,也均是根据IoU设定正负例。
本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。
“综述专栏”历史文章
更多综述专栏文章,
请点击文章底部“阅读原文”查看
分享、点赞、在看,给个三连击呗!