企业网站建设的目的有哪些,做网站是不是也是暴利,angularjs网站模板,wordpress付费阅读主题文章目录 摘要引言目标检测发展历程目标检测路线图传统检测器基于CNN的两阶段检测器基于CNN的一阶段检测器 目标检测数据集及指标数据集评价指标标注软件 backboneAlexNet#xff08;2012#xff09;VGGNet#xff08;2014#xff09;GoogleNet#xff08;2014#xff09… 文章目录 摘要引言目标检测发展历程目标检测路线图传统检测器基于CNN的两阶段检测器基于CNN的一阶段检测器 目标检测数据集及指标数据集评价指标标注软件 backboneAlexNet2012VGGNet2014GoogleNet2014ResNet2016ResNeXtDenseNet2017Dense Block——特征重用Transition CSPNetEfficientNetFasterNetPConv 轻量级网络设计分解卷积群卷积深度可分离卷积瓶颈设计神经结构搜索 轻量网络Reference 摘要
目标检测作为计算机视觉中最基本、最具挑战性的问题之一近年来受到了广泛的关注。它在过去二十五年的发展可以看作是计算机视觉历史的一个缩影。如果我们把今天的目标检测看作是深度学习力量下的技术美学那么将时钟拨回25年我们将见证冷兵器时代的智慧。本文从技术发展的角度回顾了几十篇关于目标检测的论文 本文涵盖了许多主题包括历史上的里程碑检测器检测数据集度量检测系统的基本构建块加速技术以及最新的检测方法。本文还回顾了一些重要的检测应用如行人检测、人脸检测、文本检测等并深入分析了它们面临的挑战以及近年来的技术改进
引言
目标检测是一项重要的计算机视觉任务它处理检测数字图像中某类视觉对象(如人类、动物或汽车)的实例。目标检测的目的是开发计算模型和技术以提供计算机视觉应用所需的最基本信息之一:什么目标在哪里? 作为计算机视觉的基本问题之一目标检测是许多其他计算机视觉任务的基础如实例分割、图像字幕、目标跟踪等。从应用的角度来看目标检测可以分为“一般物体检测”和“检测应用”两个研究课题前者旨在探索在统一框架下对不同类型物体的检测方法以模拟人类的视觉和认知后者是指特定应用场景下的检测如行人检测、人脸检测、文本检测等近年来深度学习技术的快速发展[9]为目标检测带来了新鲜血液取得了显著的突破并将其推向了一个前所未有的研究热点。目前目标检测已广泛应用于许多现实应用中如自动驾驶、机器人视觉、视频监控等
目标检测发展历程
目标检测路线图 传统检测器
大多数早期的目标检测算法都是基于手工特征构建的。由于当时缺乏有效的图像表示人们只能设计复杂的特征表示各种提速技巧用尽有限的计算资源 VJ detector人脸检测 采用最直接的探测方式遍历图像中所有可能的位置看是否有任何窗口包含人脸 包含三个重要技术积分图像、特征选择和级联检测 HOG detector行人检测 对当时尺度不变特征变换和上下文变化的重要改进 DPMHOG的扩展 divide and conquer(分而治之 将星型模型扩展为混合模型 边界盒回归 传统目标检测方法的巅峰 尽管今天的目标检测器在检测精度上已经远远超过了DPM但其中很多仍然深受其宝贵见解的影响如混合模型、困难负样本挖掘、边界盒回归等
基于CNN的两阶段检测器
随着手工特征的性能趋于饱和目标检测在2010年之后进入平稳期。R. Girshick说:“……2010-2012年期间进展缓慢通过构建集成系统和采用成功方法的微小变体获得了少量收益”[38]。2012年世界见证了卷积神经网络的重生AlexNet[40]。由于深度卷积网络能够学习图像的鲁棒性和高级特征表示一个自然的问题是我们是否可以将其用于目标检测?R. Girshick等人在2014年率先提出了带有CNN特征的区域(RCNN)用于目标检测从而打破了这种死锁[16,41]。从那时起目标检测开始以前所未有的速度发展 在深度学习时代目标检测可以分为两种类型:“两阶段检测”和“一阶段检测”前者将检测定义为“从粗到细”的过程后者将检测定义为“一步完成” • R-CNN2014 首次引入CNN来计算特征 通过选择性搜索提取一组对象建议然后将每个提案重新缩放为固定大小的图像并将其输入在ImageNet(例如AlexNet[40])上训练的CNN模型中以提取特征。最后使用线性支持向量机分类器预测每个区域内物体的存在并识别物体类别。 (1)人们可以将高容量卷积神经网络(cnn)应用于自下而上的区域生成以定位和分割对象; (2)当标记训练数据稀缺时对辅助任务进行监督预训练然后进行特定领域的微调可以显著提高性能 解决了CNN定位问题和标记数据稀缺不足以训练大型CNN的问题 证明了简单的边界盒回归方法可以有效地减少错误定位而错误定位是主要的误差模式 RCNN在VOC07上的性能显著提升平均平均精度(mAP)从33.7% (DPM-v5[43])大幅提高到58.5% 缺点在大量重叠的候选框(来自一张图像的2000多个盒子)上进行冗余的特征计算导致检测速度极慢(使用GPU时每张图像14秒) (1)获取输入图像(2)提取大约2000个自下而上的区域候选框(3)使用大型卷积神经网络(CNN)计算每个候选框的特征然后(4)使用特定类别的线性支持向量机SVM对每个区域进行分类 • SPPNet2014 提出一种新的结构SPP-net解决了CNN需要固定大小的输入图像问题 R- CNN的特征计算是非常耗时的因为它反复地将深度卷积网络应用于每张图像的数千个warp区域的原始像素 SPPNet只从整个图像中提取一次特征映射(可能在多个尺度上)然后在特征映射的每个候选窗口上应用空间金字塔池以池化该窗口的固定长度表示比R-CNN方法快24-102倍而不牺牲任何检测精度(VOC07 mAP59.2%) key 卷积层不需要固定的图像大小全连接层才需要在最后一个卷积层后加空间金字塔池化层SPP层汇集特征并生成固定长度的输出
• Fast RCNN2015 提出了一种快速区域卷积网络(Fast R-CNN)的目标检测方法 解决了两个主要的挑战 首先必须处理许多候选对象位置(通常称为“proposals”) 其次这些候选点只能提供粗略的定位必须加以改进才能实现精确定位 Fast R-CNN去掉了R-CNN中的SVM分类器和bbox线性回归器而是将两者都放在一体化网络中。同时运用了ROI-pooling 层将大小不一的RP转换成同样的size因此可以将整张图像进行过SS操作后直接输入进CNN层一次性对所有的RP完成分类和bbox回归 输入图像和多个感兴趣区域(RoI)被输入到一个全卷积网络中。每个RoI被汇集成一个固定大小的特征映射然后通过全连接层(fc)映射到一个特征向量。该网络每个RoI有两个输出向量:softmax概率和每个类的边界盒回归偏移量。该体系结构是端到端训练的具有多任务损失 • Faster RCNN2015 引入了一个区域生成网络(RPN)它与检测网络共享全图像卷积特征将RPN和Fast R-CNN合并成一个单一的网络从而实现几乎无成本的区域生成 首次引入了Anchoranchor 是在输入图像上以不同尺度和长宽比预定义的一系列框用来提供候选区域。这些 anchor 框充当了在图像中可能包含目标的建议性边界框通过对这些框进行分类和边界框回归模型能够更准确地检测出目标对象的位置和类别 解决了区域生成计算瓶颈问题 从R-CNN到Faster RCNN目标检测系统的大多数独立块如提案检测、特征提取、边界盒回归等已经逐渐集成到一个统一的端到端学习框架中
• R-FCN2016 提出了基于区域的全卷积网络用于准确高效的目标检测 解了决图像分类中的平移不变性和目标检测中的平移方差之间的困境 key idea 所有可学习的权重层都是卷积的并在整个图像上计算每个RoI的计算成本可以忽略不计。最后一个卷积层为每个类别生成k^2个位置敏感分数映射库因此具有具有C个对象类别(1为背景)会有k² (C 1) - 通道个输出层。k²个分数映射对应于描述相对位置的k × k空间网格
• Feature Pyramid Networks2017 提出特征金字塔网络FPN通过自上而下的途径和横向连接将低分辨率、语义强的特征与高分辨率、语义弱的特征结合起来 自上而下的路径通过上采样空间上更粗糙但语义上更强的更高金字塔层次的特征图产生更高分辨率的特征。然后这些特征通过横向连接通过自下而上通路的特征得到增强。每个横向连接合并了自底向上路径和自顶向下路径的相同空间大小的特征图 图3显示了构建自顶向下特征映射的构建块。对于较粗分辨率的特征图我们将空间分辨率上采样2倍(为了简单起见使用最近邻上采样) 通过元素加法将上采样映射与相应的自下而上映射合并(自下而上映射经过1×1卷积层以减少通道维度) • Light-Head R-CNN2017 提出了一种新的两级检测器,Light-Head R- CNN通过使用薄特征映射和便宜的R-CNN子网(池化和单个全连接层)使网络头部尽可能轻 light-head设计能够在不影响计算速度的情况下显著提高检测结果 并且Light Head R-CNN加上小型的Xception-likebackbone基础模型可以在102 FPS的速度下实现30.7 mmAP
• Libra R-CNN: 2019 发现检测性能往往受到训练过程中不平衡的限制模型体系结构的潜力没有得到充分利用这种不平衡通常包括三个层面——样本层面、特征层面和目标层面 为了减轻由此带来的不利影响提出了Libra R-CNN它集成了三个新颖的组件:IoU平衡采样、平衡特征金字塔和平衡L1损耗分别用于减少样本、特征和客观层面的不平衡
基于CNN的一阶段检测器
• You Only Look Once (YOLO)2015 作者完全抛弃了之前“候选框检测验证”的检测范式。相反它遵循一种完全不同的理念:将单个神经网络应用于完整的图像。该网络将图像划分为多个区域并同时预测每个区域的边界框和概率 即将目标检测重新定义为一个单一的回归问题直接从图像像素到边界框坐标和类概率也就是将整张图片作为输入直接从完整图像中预测边界框和类别概率
• Single Shot MultiBox Detector (SSD)2015 SSD的主要贡献是引入了多参考点和多分辨率检测技术 SSD 将边界框的输出空间离散为一组默认框每个特征图位置具有不同的长宽比和尺度它不需要为边界框假设重新采样像素或特征并且与其他方法一样准确这大大提高了高精度检测的速度 完全消除了候选框生成和随后的像素或特征重新采样阶段 其他单阶段方法相比SSD即使在较小的输入图像尺寸下也具有更好的精度 SSD的核心是使用应用于特征映射的小卷积过滤器来预测一组固定的默认边界框的类别分数和框偏移
• YOLO v22016 YOLO v2在YOLO检测方法基础上进行各种改进如Anchor Boxes和Darknet-19神经网络结构 YOLO9000在YOLO v2的基础上进行扩展通过引入WordTree数据集和WordNet层来实现 目标检测与分类联合训练的方法允许YOLO9000检测大量不同的对象类别包括各种物体、动物和概念缩小了检测和分类之间数据集大小差距
• RetinaNet2017 探索了一级探测器的精度多年来一直落后于二级探测器的原因。T.-Y。Lin等人在2017年发现了背后的原因并提出了RetinaNet[23]。他们声称在训练密集探测器时遇到的极端前景-背景类不平衡是主要原因。为此在RetinaNet中引入了一个新的损失函数名为“焦点损失”通过重塑标准交叉熵损失使检测器在训练过程中更多地关注难分类的错误示例
• YOLO v32018 对YOLO进行了一些改进基于YOLOv2、Darknet-19中使用的网络和那些新奇的残差网络之间的混合方法提出了Darknet-53 改进了正负样本选取、损失函数、Darknet-53骨干网络并引入了特征金字塔多尺度预测显著提升了速度和精度。
• YOLO v42020 作者使用了新的特征:WRC、CSP、CmBN、SAT、Mish-激活、Mosaic数据增强、CmBN、DropBlock正则化和CIoU损失并将其中一些特征结合起来获得了最先进的结果:MS COCO数据集在Tesla V100上以~ 65 FPS的实时速度获得了43.5%的AP(65.7%的AP50) 开发了一个高效、强大的目标检测模型。它使得每个人都可以使用1080 Ti或2080 Ti GPU来训练超级快速准确的目标检测器 在检测器训练过程中验证了最先进的Bag-of- Freebies和Bag-of- specials方法对目标检测的影响 修改了最先进的方法使它们更有效更适合单GPU训练包括CBN PAN SAM等
• YOLO v52020 主干部分使用了Focus网络结构 数据增强Mosaic数据增强 **多正样本匹配**在之前的Yolo系列里面在训练时每一个真实框对应一个正样本即在训练时每一个真实框仅由一个先验框负责预测。YoloV5中为了加快模型的训练效率增加了正样本的数量在训练时每一个真实框可以由多个先验框负责预测
• PP-YOLO2020 将yolov3的主干替换为ResNet50-vd-dcn其他保持不变然后介绍了一堆技巧可以提高YOLOv3的性能几乎不损失效率 即结合现有的各种几乎不增加模型参数和FLOPs数量的技巧对yolov3存在的问题进行改进改进后的检测器就叫PP-YOLO
• PP-YOLOv22021 以PP-YOLO为基准模型进行了改进主要是neck采用PAN而不是FPN在neck部分采用Mish激活而不是backbone增加输入大小更改IoU aware loss为软标签格式等
• YOLOR2021 一个训练好的卷积神经网络(CNN)模型通常只能完成一个单一的目标造成上述问题的主要原因是我们只从神经元中提取特征而没有使用CNN中丰富的隐式知识。 提出了一个统一的网络将内隐知识和外显知识编码在一起统一的网络可以生成统一的表示同时服务于各种任务。我们可以在卷积神经网络中执行核空间对齐、预测细化和多任务学习
• YOLOX2021 将YOLO检测器转换为无锚点方式并进行其他先进的检测技术即解耦头和领先的标签分配策略SimOTA
• PP-YOLOE2022 PP-YOLOE对PP-YOLOv2进行了改进提出了一种新颖的RepResBlock标签分配策略采用的损失任务对齐学习(TAL)改进了head提出了速度和精度并重的ET-head改进了损失函数
• YOLO v72022 设计了几种可训练的 bag-of-freebies 方法使得实时目标检测在不增加推理成本的情况下大大提高了检测精度 对于目标检测方法的改进提出了两个新问题即重参数化模块如何替换原有模块以及动态标签分配策略如何处理对不同输出层的分配。此外我们还提出了解决这些问题所带来的困难的方法bag-of-freebies 提出了实时目标检测器的“扩展”和“复合缩放”方法可以有效地利用参数和计算量该方法可有效减少当前实时目标检测器约40%的参数和50%的计算量具有更快的推理速度和更高的检测精度
• YOLO v62022 注入了一种自蒸馏策略同时执行分类任务和回归任务。同时我们动态调整来自老师和标签的知识帮助学生模型在所有训练阶段更有效地学习知识 我们广泛地验证了 标签分配、损失函数和数据增强技术的先进检测技术并有选择地采用它们来进一步提高性能 我们在RepOptimizer和channel-wise蒸馏的帮助下对检测的量化方案进行了改革
目标检测数据集及指标
数据集
构建更大的数据集和更少的偏差对于开发先进的计算机视觉算法至关重要。在目标检测方面在过去的10年中已经发布了许多知名的数据集和基准测试包括PASCAL VOC挑战[50,51](如VOC2007, VOC2012) ImageNet大规模视觉识别挑战(如ILSVRC2014) [52] MS-COCO检测挑战[53]等数据集。这些数据集的统计结果见下表 • Pascal VOC PASCAL Visual Object Classes (VOC) Challenges 1(从2005年到2012年)[50,51]是早期计算机视觉社区中最重要的竞赛之一。在PASCAL VOC中有多个任务包括图像分类、目标检测、语义分割和动作检测。Pascal-VOC在目标检测中使用最多的有两个版本:VOC07和VOC12前者由5k张tr图像 12k个标注对象组成后者由11k张tr图像 27k个标注对象组成。在这两个数据集中标注了生活中常见的20类对象(Person: Person;动物:鸟、猫、牛、狗、马、羊;交通工具:飞机、自行车、轮船、公共汽车、汽车、摩托车、火车;室内:瓶子、椅子、餐桌、盆栽、沙发、电视/显示器)
• ILSVRC ImageNet大规模视觉识别挑战赛(ILSVRC) 推动了通用目标检测技术的发展。ILSVRC从2010年到2017年每年举办一次。它包含使用ImageNet图像的检测挑战。ILSVRC检测数据集包含200类视觉对象。图像/对象实例的数量比VOC大两个数量级。例如ILSVRC-14包含517k张图像和534k个带注释的对象
• MS-COCO MS-COCO 3[53]是目前最具挑战性的目标检测数据集。基于MS-COCO数据集的年度竞赛自2015年开始举办。它的对象类别数量比ILSVRC少但对象实例数量更多。例如MS-COCO-17 包含来自80个类别的164k图像和897k注释对象。与VOC和ILSVRC相比MS-COCO最大的进步在于除了边界框标注之外MS-COCO还使用逐实例分割对每个对象进行标记以帮助精确定位。此外MS-COCO比VOC和ILSVRC包含更多的小物体(其面积小于图像的1%)和更密集的物体。这些特点使得MS- COCO中的对象分布更接近于现实世界中的对象分布。就像当时的ImageNet一样MS-COCO已经成为对象检测社区事实上的标准
• Open Images 2018年继MS-COCO之后以前所未有的规模引入了开放图像检测(Open image -ages Detection, OID)挑战。 Open Images有两个任务:1)标准对象检测2)视觉关系检测即检测特定关系中的成对对象。对于目标检测任务数据集由1,910k张图像组成在600个对象类别上有15,440k个带注释的边界框
评价指标
目标检测器使用多种指标来评价检测器的性能如FPS、precision、recall以及最常用的AP、mAP 为了比较所有对象类别的性能通常使用所有对象类别的平均AP (mAP)作为性能的最终度量。为了测量目标定位精度使用Intersection over Union (IoU)来检查预测框和地面真值框之间的IoU是否大于预定义的阈值 对于COCO数据集来说AP就相当于mAP对AP[0.5,0.95]求平均和AP50即AP.5指的是threshold设置为0.5
标注软件
为便于COCO和PASCAL VOC数据集的采集制作目标检测领域有两款比较常用的数据集标注工具labelme和labelImg。这两大标注工具都有对应的python包所生成的数据格式为常见的三种数据集格式VOC格式COCO格式和YOLO格式 VOC采用的是图像文件与xml标签文件而COCO采用的是json格式YOLO采用的是txt文本格式
backbone
AlexNet2012
出自 首当其冲的必然是AlexNet啦重振DL荣光AlexNet义不容辞开启了AI新时代划分了传统目标检测和基于深度学习目标检测其论文被认为是CV界最具影响力的论文之一引用次数已超13w 上图是因为受限于当时的GPU内存不足作者用了两块GPU进行并行计算224224是进行了随即裁剪原图是227227见下图 AlexNet 的突破点主要有 网络更大更深LeNet5 有 2 层卷积 3层全连接层有大概6万个参数而AlexNet 有 5 层卷积 3 层全连接有6000万个参数和65000个神经元。使用 ReLU作为激活函数 LeNet5 用的是 Sigmoid虽然 ReLU 并不是 Alex 提出来的但是正是这次机会让 ReLUC位出道一炮而红。AlexNet 可以采用更深的网络和使用ReLU 是息息相关的。使用 数据增强 和 dropout 来解决过拟合问题。在数据增强部分使用了现在已经家喻户晓的技术比如cropPCA加高斯噪声等。而 dropout 也被证明是非常有效的防止过拟合的手段。用最大池化取代平均池化避免平均池化的模糊化效果并且在池化的时候让步长比池化核的尺寸小这样池化层的输出之间会有重叠和覆盖提升了特征的丰富性。提出了LRN层对局部神经元的活动创建竞争机制使得其中响应比较大的值变得相对更大并抑制其他反馈较小的神经元增强了模型的泛化能力 VGGNet2014
VGGNet探索了卷积神经网络的深度与其性能之间的关系成功地构筑了16~19层深的卷积神经网络证明了增加网络的深度能够在一定程度上影响网络最终的性能使错误率大幅下降同时拓展性又很强迁移到其它图片数据上的泛化性也非常好 发现2个3x3的卷积核效果相当于1个5x5的卷积核效果因为它们的感受野输入图像上映射区域的大小相同但2个3x3卷积核的参数个数18个却比1个5x525个 类似地3个3x3的卷积核相当于1个7x7的卷积核而1个7x7的卷积核的参数个数为49而3个3x3的卷积核的参数个数仅为27 感受野 因此VGGNet采用了多次堆叠3x3的卷积核目的是减少参数的数量
网络结构如下D、E分别代表VGG-16、VGG-19
GoogleNet2014
ResNet2016
出自 ResNet通过引入残差结构很好地解决了退化问题 将期望的底层映射表示为H(x)残差函数F(x) H(x) - x 通过恒等映射来解决梯度消失问题 而恒等映射就是那条skip-connection跳跃连接。
传统神经网络出现梯度消失的根本原因在于 因为链式法则的存在如果使用普通激活函数则会因为连乘效应带来梯度消失问题。 这个其实还有一个更深的含义 当传统神经网络可能在多层网络中间已经学习到最优解而继续往后学习会因为链式法则和反向传播反而使模型退化。所以我们需要一个机制让模型学习到最优解以后就截至了就不再学习了这就是恒等映射的意义所在
残差网络的学习输出实际由两部分组成主分支的卷积学习F(x) 恒等映射x, 当F(x)趋近于0相当于神经网络已经达到最优了学习不到更多特征了。那么此时学习输出就剩下恒等映射x, 而yx的导数是1所以即便在链式法则下也不会出现梯度消失问题而是会一直透明传输到最后输出点这就是残差网络的全部意义 上图我们可以看到从50层往上每个3×3卷积的前后都用到了1×1卷积目的是降低通道数减少参数量的计算 1x1 卷积层应用 1x1 卷积来降低输入的维度。这降低了计算成本并有助于压缩信息。 3x3 卷积层该层捕获降维内的空间特征。 1x1 卷积层扩展应用另一个 1x1 卷积将维度扩展回原始大小。这是瓶颈部分因为它在再次扩展之前通过狭窄的层“挤压”信息 瓶颈结构的主要目的是在计算效率和表达能力之间取得平衡 通过使用 1x1 卷积降低维度模型的计算效率变得更高从而允许更深层次的架构。3x3 卷积捕获空间特征最后的 1x1 卷积将维度向后扩展保持网络的表达能力
ResNeXt
DenseNet2017
出自 ResNet解决了深层网络梯度消失问题它是从深度方向研究的宽度方向是GoogleNet的Inception而DenseNet是从feature入手通过对feature的极致利用能达到更好的效果和减少参数 DenseNet主要由 Dense Block 和 Transition Layer 两部分组成
Dense Block——特征重用
DenseBlock每个层的特征图大小相同层与层之间采用密集连接方式 上图可以看出Dense Block互相连接所有的层即每一层的输入都来自于它前面所有层的特征图每一层的输出均会直接连接到它后面所有层的输入 DenseNet采用密集连接对于一个L层的DenseBlock共包含 L(L1)/2 个连接两两相连* Dense Block是直接concat来自不同层的特征图这可以实现特征重用即对不同“级别”的特征——不同表征进行总体性地再探索提升效率这一特点是DenseNet与ResNet最主要的区别
DenseBlock中采用BNReLUConv的结构平常我们常见的是ConvBNReLU。这么做的原因是卷积层的输入包含了它前面所有层的输出特征它们来自不同层的输出因此数值分布差异比较大所以它们在输入到下一个卷积层时必须先经过BN层将其数值进行标准化然后再进行卷积操作
Transition
Transition层包括一个1x1卷积用于调整通道数和2x2AvgPooling用于降低特征图大小 连接两个相邻的DenseBlock缩小上一个DenseBlock的宽高达到下采样效果使特征图的宽高减半
优点 参数减少计算效率更高效果更好相较于其他网络实现了特征重用同时利用低层次和高层次的特征。 特征重用实现了梯度的提前传播也至少保留了前面网络的能力不至于变弱解决了退化问题
不足 由于需要进行多次Concatenate操作数据需要被复制多次显存容易增加得很快需要一定的显存优化技术。因此在训练过程中训练的时间要比Resnet作为backbone长很多 并且ResNet更加的简洁变体也多更加成熟因此后来更多使用的是ResNet
CSPNet
EfficientNet
FasterNet
CVPR2023 基于PConv提出了新的轻量级backboneFasterNet 解决了低FLOPS的问题分析得出DWConv算子速度变慢的主要原因——频繁内存访问提出了**部分卷积partial convolutionPConv**算子达到同时减少计算冗余度和内存访问的目的 通过实验检验了仅仅减少FLOPs并不一定会导致延迟的以同样程度降低这主要是由于低效的每秒浮点运算次数FLOPS造成的 FasterNet分为四个阶段每个阶段都有一个嵌入层Embedding步幅4的Conv 4×4或一个合并层Merging步幅2的Conv 2×2进行空间下采样和通道数量扩展
在每个fastnet块中一个PConv层后面跟着两个PWConv逐点卷积层(1*1)归一化层和激活层放在中间层之后以保持特征的多样性并实现较低的延迟
PConv
减少了计算冗余以及内存访问的数量解决了DWConv算子频繁访问内存的问题
轻量级网络设计
最后一组加速基于CNN的检测器的方法是直接设计一个轻量级网络而不是使用现成的检测引擎。长期以来研究人员一直在探索网络的正确配置以便在有限的时间成本下获得准确性。除了一些一般的设计原则如“更少的通道和更多的层”[197]近年来提出了一些其他的方法:1)分解卷积2)群卷积3)深度可分离卷积4)瓶颈设计5)神经结构搜索
分解卷积
分解卷积是构建轻量级CNN模型的最简单和最直接的方法。有两组分解方法 第一组方法是将一个大的卷积滤波器在空间维度上分解为一组小的卷积滤波器如图14 (b)所示。例如可以将一个7x7滤波器分解为三个3x3滤波器它们共享相同的接受场但后者效率更高。另一个例子是将k×k过滤器分解为k×1过滤器和1×k过滤器这对于非常大的过滤器(例如15x15)可能更有效。这个想法最近被用于目标检测 第二组方法是在通道维度上将一大组卷积分解为两个小组如图14 ©所示。例如可以用d个滤波器近似卷积层用d’ 滤波器一个非线性激活另外d个滤波器(d’ d)。在这种情况下原始层的复杂度O(dk^2 c)可以降低到O(d’k2c) O(dd’)
群卷积
群卷积的目的是通过将特征通道分成许多不同的组然后在每一组上独立进行卷积来减少卷积层中的参数数量[189,203]如图14 (d)所示。如果我们将特征通道平均分成m组在不改变其他配置的情况下理论上卷积的计算复杂度将降低到原来的1/m
深度可分离卷积
如图14 (e)所示深度可分离卷积是最近流行的一种构建轻量级卷积网络的方法[204]。当组数与通道数相等时它可以看作是群卷积的一种特殊情况。 假设我们有一个包含d个滤波器和c个通道的特征映射的卷积层。每个过滤器的大小是k × k。对于深度可分离卷积每个k×k×c过滤器首先被分割成c片每个片的大小为k×k×1然后使用过滤器的每个切片在每个通道中单独执行卷积。最后使用多个1x1滤波器进行维度转换以便最终输出应该有d个通道。通过使用深度可分卷积可以将计算复杂度从O(dk 2c)降低到O(ck 2) O(dc)。这个想法最近被应用于物体检测和细粒度分类
瓶颈设计
与前几层相比神经网络中的瓶颈层包含的节点较少。它可以用于学习具有降维的输入的有效数据编码这在深度自编码器中已被广泛使用。近年来瓶颈设计被广泛用于设计轻量级网络。在这些方法中一种常见的方法是压缩检测器的输入层从检测管道的最开始就减少计算量。另一种方法是压缩检测引擎的输出使特征映射更薄从而使其在后续检测阶段更高效
神经结构搜索
人们对通过神经架构搜索(NAS)自动设计网络架构而不是严重依赖专家经验和知识产生了浓厚的兴趣。NAS已应用于大规模图像分类、目标检测和图像分割任务。最近NAS在设计轻量级网络方面也显示出有希望的结果在搜索过程中同时考虑了对预测精度和计算复杂性的约束
轻量网络
Reference
Object Detection in 20 Years: A Survey2019 Object Detection in 20 Years: A Survey R-CNN系列 YOLO系列 2022目标检测综述 大杂烩oo backbone系列