Probabilistic two-stage detection(centernet2)
论文:https://arxiv.org/abs/2103.07461
代码:https://github.com/xingyizhou/CenterNet2
3月12日centernet原作者发表在arxiv上的新文章,超越了之前的ATSS,GFLV2,EfficientDet-D7x等等。作者提出了二阶段目标检测的概率解释,可能会使得二阶段检测的pipeline发生改变。这种二阶段目标检测模型,采用如今sota的单阶段模型作为它的第一阶段,比如centernet、ATSS、GFL,采用传统的二阶段检测器的部分作为第二阶段,比如Faster R-CNN、Cascade R-CNN。
Introduction
目标检测任务,不仅需要找到图像中所有目标的位置,还需要对其进行分类。如今的单阶段检测器,在一个概率上合理的框架内,同时对目标进行定位以及类别可能性的计算。训练时,单阶段检测器尽量最大化带注释目标的对数似然估计值,并在推理时预测出合适的可能性得分。现有的二阶段检测器,它们的第一阶段先定位出可能是目标的位置区域,然后在第二阶段时对这些可能的目标进行分类。在这种二阶段检测器中,第一阶段的目的是最大化召回率,第二阶段的目的是在第一阶段得到的区域中最大化分类目标。第二阶段可以有概率上的解释,但两个阶段联合在一起便无法从概率的角度进行解释。
作者在文章中提出的二阶段检测器,两个阶段都是有概率性解释的。其中第一阶段,检测器需要推理出一个合适的目标可能性,即区分前后景,找出应该是目标的bbox。正如前面所说,现有的二阶段检测器中的区域挑选网络(RPN)只是最大化召回率,而不是得出最精确的可能性。相反,成熟的单阶段检测器却能完成这个目标。所以作者提出的二阶段检测器便是在sota的单阶段检测器的基础上构造的。用单阶段检测器提取特征,并区分前后景。然后在第二阶段,作者采用了Faster RCNN或者cascade分类器来进行目标分类。前后两阶段同时训练,最大化gt目标的对数似然估计值。而在推理时,便采用对数似然估计值作为最后的检测得分。
和传统的二阶段检测器相比,作者提出的二阶段检测器更加准确更加快,与ROI head相比,候选框的数量大大减少(256 vs 1k)。与单阶段检测器相比,大多数单阶段检测器是可以由合理的概率解释的,但它们越来越依靠独立的分类和回归分支,而当目标的类别数太大时,单节段检测器并不会比传统二阶段检测器快。作者提出的新二阶段检测器,保留了单阶段检测器的概率可解释性,并在此基础上将可解释性分解到两个阶段,不仅提升了准确率,也提升了速度。
Preliminaries
一个检测器需要预测出所以属于定义的 C C C类目标的位置 b i ∈ R 4 b_{i} \in \mathbb{R}^{4} bi∈R4以及其分类得分 s i ∈ R ∣ C ∣ s_{i} \in \mathbb{R}^{|\mathcal{C}|} si∈R∣C∣。检测器之间最主要的不同之处在于它们对于目标分类可能性的表示的不同。
One-stage detectors
单节段检测器,在同一个网络结构中,同时预测目标位置以及分类得分。 L i , c = 1 L_{i,c}=1 Li,c=1代表候选框 i i i是 c c c类的一个正例检测,相反 L i , c = 0 L_{i,c}=0 Li,c=0则代表背景。大多数的单阶段检测器对于每一类都采用一个单独的sigmoid函数,以伯努利分布的形式来表示分类可能性: s i ( c ) = P ( L i , c = 1 ) = σ ( w c ⊤ f ⃗ i ) s_{i}(c)=P\left(L_{i, c}=1\right)=\sigma\left(w_{c}^{\top} \vec{f}_{i}\right) si(c)=P(Li,c=1)=σ(wc⊤fi),其中 f i ∈ R C f_{i} \in \mathbb{R}^{\mathcal{C}} fi∈RC是骨干网络输出的特征, w c w_c wc是一个类特定(class-specific)的权值向量。在模型训练时,趋向于最大化对数似然估计值 log ( P ( L i , c ) ) \log \left(P\left(L_{i, c}\right)\right) log(P(Li,c))或者focal loss。在区分正负样本时,部分检测器的标准可能不一样,比如通过IOU区分或者利用位置信息,但都能优化对数似然估计值并且采用分类可能性作为bbox的得分。回归分支则都是输出bbox的坐标。
Two-stage detectors
传统二阶段检测器的第一步预测出一块区域是目标的概率 P