文章目录
最新的目标检测算法“Trident Network”,单模型的mAP刷到了48.4,的确是“state-of-the-art”。笔者看了论文作者Naiyan Wang的知乎解读,感觉解释的很深刻,然后看了同行们的评论,比如有人说怎么和ASPP、SPP、SNIP、RFB-net等很像啊,包括我的帅帅同事。笔者是没有发言权的,因为除了SNIP比较熟悉之外(见上一篇博文),其它的几篇文章不怎么了解。为了弄清楚它们之间的异同,笔者对比着阅读了这几篇文章,有了一些自己的思考,故在这里记录下来,希望能对大家有所帮助。
1 SNIP
本文的主角Trident Network借鉴了这篇文章中的multi-scale思想,所以有必要先梳理一下SNIP中如何做目标检测。网络结构图如下,
图像信号的前向传播过程包括:图像金字塔 -> 多分支特征提取 -> 分支融合 -> NMS后处理,每部分完成的功能汇总如下,
输入数据:采用图像金字塔对原图做分解,这里使用了3层金字塔。
多分支特征提取(训练阶段):(1)从功能上来讲,对每一层金字塔图像,分别检测不同尺寸的目标,金字塔图像越大,检测的目标尺寸越小;(2)从网络结构上来讲,3个分支进行参数共享,故网络结构完全一致,区别在于目标尺寸的超参数不同。
分支融合(推理阶段):合并不同分支的结果。
NMS后处理:对融合后的预测框做筛选。
缺点:推理阶段需要先生成图像金字塔,然后每一中分辨率的图像过一遍inference过程,所以比较耗时。
关于这篇论文的详细解释,请参见笔者的上一篇博文https://blog.csdn.net/diligent_321/article/details/86495360。
2 Trident network
Trident network,翻译过来就是“三叉戟网络”,该论文的全称为“Scale-Aware Trident Networks for Object Detection”。
2.1 动机
检测任务中存在目标尺寸多样化的问题,为了解决这一问题,涌现了很多经典算法,笔者将部分算法汇总如下,
算法名称 | 优缺点 |
---|---|
SSD | 优点:速度快; 缺点:因为bottom layers缺少语义信息,只使用upper layers预测目标。而小目标是靠bottom layer预测的,所以SSD对小目标效果差。 |
FPN | 优点:弥补SSD的bottom layers缺少语义信息的不足,引入了top-down connection,所以对小目标效果有改善; 缺点:bottom layer提取小目标的特征,upper layer提取大目标的特征,导致大目标和小目标的特征的“表达能力”不同,因此算法对大目标和小目标的检测效果不同,这里的“表达能力”指特征所包含的语义信息和细节信息。 |
SNIP | 优点:精度高; 缺点:采用了图像金字塔,推理速度慢(复杂度为 |