【目标检测】AnchorBased和AnchorFree/TwoStage和OneStage

总述

AnchorBased是指需要人为设定框的方法。AnchorBased方法占目标检测的主导地位。其基本流程是先提出许许多多人为设定的anchor,然后网络一边预测这些anchor的类别,一边对anchor坐标进行微调。
AnchorBased方法可进一步分为Two Stage和One Stage。Two Stage对anchor进行多次微调,而One Stage只有一次,所以前者精度会更高。

近年来流行AnchorFree的方法。根据剃刀原则,如果AnchorFree能取得和AnchorBased相同的效果,那最好选择前者。越来越多的工作证明anchor是个冗余的概念。
AchorFree可分为Keypoint based和 Center based。前者先定位几个预定义的或自学习的关键点,然后得出目标的位置。后者预测每个像素点到目标上下左右四个边界的距离。

术语

一般来说,两阶段(Two Stage)的检测网络由以下部分组成

  1. backbone. 顾名思义,backbone是整个网络中的支柱部分,作用是特征提取。输入图像,得到一系列不同尺度的特征图(feature map)。常用的backbone有vgg/ResNet50/ResNet101。

  2. neck. 由于backbone通常是专门为分类设计的,其提取的特征图可能不适合检测(原因之前的文章已经讲过了),所以还需要对backbone提取的特征图再加工。比如在neck中将特征图再用卷积处理,然后通过双线性插值将不同尺度的特征图融合,最后又用卷积处理统一不同的特征图的通道,为下一步作准备。可以说backbone和neck都用于特征提取。

  3. RPN. 区域生成网络(region proposal network)首先对neck得到的一系列特征图作两路卷积,一路生成前景/背景置信度cls,一路生成坐标的回归bbox_pred,然后事先已经有了人为设定好的anchors,根据cls的大小选出top k k k个anchors,再对这些anchors进行非极大抑制,得到剩余的 k ′ ( k ′ ≤ k ) k'(k'\le k) k(kk)个anchors, 最后经过对应的bbox_pred的转换,输出最终的 k ′ k' k个bbox。

  4. ROI:根据RPN得到的bbox从featuremap上扣出对应部分的区域,由于这些区域大小不一样,变换(可以是自适应池化,adaptive pooling)成固定尺寸(比如7x7)。通道数不变。

  5. classification and regression: 这一步其实就是对ROI得到的结果进行类别预测和坐标回归。比如ROI得到 k ′ × 256 × 7 × 7 k'\times 256\times7\times7 k×256×7×7的特征图,变成 k ′ × 12544 k'\times 12544 k×12544的向量,经过两层共享的全连接层得到 k ′ × 1024 k'\times1024 k×1024的向量,再经过两个独立的全连接层分别得到 k ′ × 81 k'\times 81 k×81的类别预测结果和 k ′ × 324 k'\times 324 k×324的坐标回归结果。其中81为类别数。

到第5步推断过程其实就差不多了,剩下的工作包括非极大抑制等等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值