"); //-->
论文地址:https://arxiv.org/pdf/2103.09460.pdf
1
前言
自毕业以来,也接触了各种各样的目标检测框架。从刚开始见证TensorFlow崛起到Pytorch占有人工智能半壁江山,到现在的MMDetection、OneFlow、MindSpore等自主学习框架,也证明了中国的人工智能技术在不断飞速发展!目标检测框架中,最为熟悉的应该是YOLO系列,从2018年Yolov3年提出的两年后,在原作者声名放弃更新Yolo算法后,俄罗斯的Alexey大神扛起了Yolov4的大旗,然后不久又出现了Yolov5。
当然,在公司中实际做项目的时候,很多应用场景中的第一步,都是进行目标检测任务,比如人脸识别、多目标追踪、REID等场景。因此目标检测是计算机视觉领域及应用中非常重要的一部分。
2
背景及YoloF的引出
先给大家提供下前期yolo的地址:
YoloV1论文地址:https://arxiv.org/pdf/1506.02640.pdfYoloV2(Yolo9000)论文地址:https://arxiv.org/pdf/1612.08242.pdfYolov3论文地址:https://arxiv.org/pdf/1804.02767.pdf
Tiny YOLOv3代码地址:https://github.com/yjh0410/yolov2-yolov3_PyTorchYolov4论文地址:https://arxiv.org/pdf/2004.10934.pdfYolov5代码地址:https://github.com/ultralytics/yolov5
YOLObile论文地址:https://arxiv.org/pdf/2009.05697.pdfYoloF的模型比之前的模型复杂了不少,可以通过改变模型结构的大小来权衡速度与精度。YoloV3的先验检测系统将分类器或定位器重新用于执行检测任务。他们将模型应用于图像的多个位置和尺度。此外,相对于其它目标检测方法,YoloV3将一个单神经网络应用于整张图像,该网络将图像划分为不同的区域,因而预测每一块区域的边界框和概率,这些边界框会通过预测的概率加权。模型相比于基于分类器的系统有一些优势。它在测试时会查看整个图像,所以它的预测利用了图像中的全局信息。与需要数千张单一目标图像的R-CNN不同,它通过单一网络评估进行预测。这令YoloV3非常快,一般它比R-CNN快1000倍、比Fast R-CNN快100倍。
而今天分享的YOLOF框架,主要对单阶段目标检测中的FPN进行了重思考并指出FPN的成功之处在于它对目标检测优化问题的分而治之解决思路而非多尺度特征融合。从优化的角度出发,作者引入了另一种方式替换复杂的特征金字塔来解决该优化问题:从而可以仅仅采用一级特征进行检测。
3
新框架详解
在目前先进的目标检测框架网络中,出现频率最多的还是特征金字塔网络(Feature Pyramid Network,FPN),是一个不可或缺的组成部分。
研究者认为FPN主要有2个作用:
多尺度特征融合,提高特征丰富程度;
使用divide-and-conquer,将目标检测任务按照目标尺寸大小,分成若干个检测子任务。
为了探索FPN的上述2个作用对检测器性能的贡献程度,研究者做了实验,将检测器抽象成如下图所示个3个组成部分。
上图,Encoder主要处理Backbone提取的特征,将处理结果传输给Decoder,用于分类和回归。
以RetinaNet-ResNet50为基线方案,将检测任务分解为三个关键部分:主干网络、Encoder及Decoder。下图给出了不同部分的Flops对比:
通过上述实验,可知使用Backbone输出的单一特征和分治法,就可以构建一个良好的目标检测框架网络。但是使用Single-in-Multiple-out的结构会使得模型变得更大和复杂,因为Encoder要输出多个特征。
基于上述发现,研究者提出了YOLOF(You Only Look One-level Feature)网络,在YOLOF中,Encoder只用到了Backbone输出的C5特征,同时避免使用Single-in-Multiple-out的SiMo复杂结构,而是使用了Single-in-Single-out的SiSo结构以减少计算量。
YOLOF框架草图如下所示:
YOLOF框架中关键的组件主要是膨胀编码器(Dilated Encoder)和均匀匹配(Uniform Matching),给整个检测带来了可观的改进。下面详细说说:
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。