深度学习的应用场景:图像搜索、自动驾驶、用户行为分析、文字识别、虚拟现实和激光雷达等等
基于深度学习的计算机视觉同时可以对其他学科产生影响:
在计算机图形学的动画仿真和实时渲染技术;
材料领域的显微镜分析技术;
医学图像分析处理技术;
实施评估师生课堂表现和考场行为的智慧教育;
分析运动员比赛表现技术等
数据集:
2007年,普林斯顿大学李飞飞团队基于 WordNet 的层级结构开始搭建 ImageNet 数据集。最 终 在 2009 年 公 开 。 如 今 ImageNet 数 据 集 包 含 超 过 14 000 000 张带标签的高清图像、超过 22 000 个类别。
2010 年开始举办的 ILSVRC 图像分类比赛成为计算机视觉领域的重要赛事,用于评估图像分类算法的准确率。ILSVRC 比赛数据集是 ImageNet 的一个子集,包含 1000 类、数百万张图片。
2018 年谷歌 发 布 了 Open Image 数 据 集[33],包 含 了 被 分 为 6 000 多 类 的 900 万 张 带 有 目 标 位 置 信 息 的 图 片
JFT‑300M 数据集 [ 34 ] 包含 300 万张非精确标注的图像
DeepMind 也公开了 Kinetics 数据集 [ 35‑36 ] ,包含650 000 张人体动作的视频截图。这些大规模数据集增强了深度学习模型的泛化能力,为全世界深度学习工作者和数据科学家提供了数据支持,保障了深度学习领域的蓬勃发展。
1.通用深度神经网络模型综述
1998年LeCun提出LeNet,由2个卷积层和3个全连接层组成,又称作LeNet-5,结构如图所示,被广泛的应用于手写数字识别。
缺点:在小数据集上表现良好,在大数据集上表现一般
2012年 AlexNet被提出,首次将深度学习技术应用到大规模图像分类领域,采用5层卷积层和3层全连接层,激活函数使用RELU取代了sigmoid,用dropout方法取代了权重衰减缓解过拟合。在ImageNet上取得了17%的错误率,结构如图所示。
2014提出ZFNet,通过反卷积可视化CNN学习到的特征,在ImageNet上取得了11.7%的错误率;
2015年提出GoogleNet,提出了一种Inception模块,错误率降到了6.7%。如图 3 所示。这种结构基于网络中的网络(Network in network,NiN)的思想[24],有 4条分支,通过不同尺寸的卷积层和最大池化层并行提取信息,1 × 1 卷积层可以显著减少参数量,降低模 型复杂度。GoogLeNet 一共使用 9 个 Inception 模块,和全局平均池化层、卷积层及全连接层串联。
2015年,VGGNet被提出,重复使用3*3的卷积核和和2*2的池化层,将深度网络加深到了16-19层,如图所示。
2016年,何凯明团队提出了ResNet,将 top‑5 错误率降至 3.6%。ResNet 最深可达 152 层,以绝对优势获得了目标检测、分类和定位3个赛道的冠军。该研究提出了残差模块的跳接结构,每 1 个残差模块里有 2 个相同输出通道的 3×3 卷积层,每个卷积层后接 1 个 BN(Batch nor‑ malization)层和 ReLU 激活函数。跳接结构可以使数据更快地向前传播,保证网络沿着正确的方向深化,准确率可以不断提高。
2017 年 提 出 的 DenseNet [ 30 ] 和 ResNeXt [ 31 ] 都 是 受 ResNet [ 29 ] 的 启 发 。DenseNet 的目标不仅仅是学习残差映射,而且是学习类似泰勒展开的更高阶的项。因此 DenseNet 的跳接结构没有用加法,而是用了联结,如图 6 所示。
ResNeXt[ 31 ] 则是结合了 ResNet [ 29 ] 和 Inception v4 [ 27 ] ,采用 GoogLeNet 分组卷
积的思想,在简化的 Inception 结构中加入残差连接,并通过一个超参数“基数”调
整 ResNeXt 模块中分支的数量。
和 ResNeXt 同年提出的 Xception [ 32 ] 也是一种基于 Inception 分组卷积思想的模型。分组卷积的核心思想是将通道拆分成不同大小感受野的子通道,不仅可以提取多尺寸的特征,还可以减少参数量,降低模型复杂度。Xception 模块可以视为一种极端情况的 Inception 模块,它的输入先经过一个1× 1 的卷积层后进入多个完全相同的 3 × 3 卷积层分支,如图 8所示。
生成模型可以学习数据中的隐含的特征并对数据分布进行建模,应用非常广泛,然后基于这一分布通过采样生成新的数据。
变分自编码器(VAE)是一种当前主流的基于深度学习技术的生成模型,是对标准自编码器的一种变形。(以下内容略,看不懂编码器相关的知识)
生成对抗网络(GAN)是另一种十分常见的基于深度学习技术的生成模型,它包括两个同时进行的组件:生成器和判别器,结构如图所示。生成器从隐向量生成图像,判别器对真伪图像进行分类,二者相互对抗,互相促进。
变分自编码器和生成对抗网络近年来有了显著的发展[ 39 ] 。在计算机视觉领域中,变分自编码器和生成对抗网络已经被广泛应用于图像翻译、超分辨率、目标检测、视频生成和图像分割等领域,具有广阔的研究价值和应用前景。
2.轻量级网络
轻量化网络的设计核心是在尽可能保证模型精度的前提下,降低模型的计算复杂度和空间复杂度,从而使得深度神经网络可以被部署在计算性能和存储空间有限的嵌入式边缘设备上,实现从学术界到工业界的跃迁。
在分布式训练中,小模型使得服务器之间通信产生的带宽负担也相对较小。目前学术界和工业界设计轻量化的深度网络模型主要有 4 种方法:人工设计的轻量化神经 网 络 、基 于 神 经 网 络 架 构 搜 索(Neural architecture search, NAS )的自动设计神经网络技术、卷积神经网络压缩和基于 AutoML 的自动模型压缩。
2016年, 由 伯 克 利 和 斯 坦 福 的 研 究 者 提 出 的 SqueezeNet [ 40 ] 是最早进行深度模型轻量化的工作之一, SqueezeNet 提出了一种 Fire 模块用来减少参数量, 在网络结构上, SqueezeNet 借鉴了 VGG 堆叠 的形式,在 2 层卷积层和池化层中间堆叠了 8 个 Fire 模, 结构如图:
2017,MobileNet是谷歌提出的轻量化网络,核心是通过用深度可分离卷积代替标准的卷积。深度可分离卷积将标准卷积拆成 1 个深度卷积和 1 个逐点卷积(也就是 1×1 卷积),可以将计算量降低至原来的 1/8~1/9。
比 MobileNet 晚 2 个月由 Face++ 团队提出的 ShuffleNet [ 42 ] 基于这一思想,使用了 Channel Shuffle 和分组卷积。分组卷积的思想最早由 AlexNet [ 13 ] 提出,初衷是为了降低单张 GPU 的占用,将输入通道分成相同的几条分支然后连结,从而减少训练参数量。之后的 Inception 模块将这一思想发扬光大,ResNeXt [ 31 ] 的成功也证明了分组卷积的有效性。由于分组卷积会让信息的流通不当ShuffleNet 设计了 Channel Shuffle ,将各组通道均分并进行混洗,然后依次重新构成特征图,示意图如图15 所示。
ShuffleNet 模块摒弃了 Pointwise 卷积,因为对于 输入维度较高的小型网络,1× 1 卷积的开销巨大。例 如在 ResNeXt 模块中,1× 1 卷积占据了 93.4% 的计算量。在网络拓扑上,SqueezeNet 和 MobileNet 都采用了 VGG ( Visual geometry group )的堆叠结构,而 ShuffleNet采用了 ResNet 的跳接结构。
2018年, MobileNet 和 ShuffleNet 又相继提出了改 进版本。 MobileNet v2 [ 43 ] 结构如图 17 所示,采用了效 率更高的残差结构,提出了一种逆残差模块,并将 Mo bileNet v1 模 块 的 最 后 一 个 ReLU6 层 改 成 线 性 层 。
结构上 ShuffleNet v2 采用了一种 Channel Split 操作,将输入的特征图分到 2 个分支里,最后通过连结和 Channel Shuffle 合并分支并输出。 ShuffleNet v1 和 ShuffleNet v2 结构如图 18 所示。
2020年, 华为诺亚方舟实验室的团队提出了 GhostNet。如图 19 所示,可以用更少的参数量提取更多的特征图。首先对输入特征图进行卷积操作,然后进行一系列简单的线性操作生成特征图,从而在实现了传统卷积层效果的同时降低了参数量和计算量。该团队认为性能较好的主流卷积神经网络如ResNet‑50 通常存在大量冗余的特征图,正是这些特征图保证了网络对数据深刻的理解。Ghost 模块用更小的代价模拟了传统卷积层的效果。
随着模型规模的扩大,硬件资源变得更加稀缺,在保证精度的前提下压缩并加速模型将会是经久不衰的热门研究方向,也是信息化时代发展的必经之路。近年来大量的关于模型压缩和结构
优化的工作不断涌现,如网络剪枝 [ 46 ] 、张量分解 [ 47‑48 ] 和知识迁移 [ 49 ] 等。轻量化模型的发展有助于深度学习技术的推广和应用,推动深度学习技术的产业化发展。
3.面向特定任务的深度网络模型
3.1目标检测
传统算法:HOG、SIFT、LBP等
深度神经网络的模型:R-CNN、FastR-CNN、 Faster R‑CNN [ 52 ] 等一系列模型, 这些模型均将目标检测问题归结为如何提出可能包含目标的候选区域和如何 对这些区域分类两个阶段,因此这类模型也被称作两阶段模型。
R‑FCN[ 53 ] 提出了一种位置敏感分数图来增强网络对于位置信息的表达能力,提高网络的检测精度。
特征金字塔网络(Feature Pyramid network , FPN) [56 ] 借鉴了 ResNet 跳接的思想,结合了层间特征融合与多分辨率预测。
YOLO[ 57 ] 是单阶段模型的代表,它没有提出候选区域的过程,而是直接将提出候选区域和分类统一为一个边界框回归的问题,将整张图片作为网络的输入,在输出层对边界框 位置信息和类别进行回归,实现了端到端的学习 过程。
和两阶段模型相比,单阶段模型只需要进行一次类别预测和位置回归,因此卷积运算的共享程度 更高,拥有更快的速度和更小的内存占用。最新的单阶段模型如 FCOS [ 61 ] 、 VFNet [ 62 ] 等工作已经可以达到接近两阶段模型精度,同时拥有更好的实时性,更适合在移动端部署。
在未来的研究工作中, 小目标检测 和 视频目标检测 依旧是研究的热点问题。同时,为了加快推理速度并在移动端嵌入式设备部署模型,目标检测的轻量化一直备受工业界的关注。在采集到多模态的信息(如文字、图像、点云等)后,如何通过更好的信息融合来提高检测性能也是未来的一个重点研究方向。
3.2 图像分割
应用场景:场景理解、医学图像分析、机器人感知及视频监控领域等
2015年
U-Net和FCN。
U‑Net可视为一个编码器 ‑ 解码器结构,编码器有 4 个子模块,每个子模块通过一个最大池化层 下采样,解码器再通过上采样的 4 个子模块增大分辨率直到与输入图像的分辨率保持一致,其结构如图 由于卷积采用的是 Valid 模式,实际输出图像的分辨率低于输入图像的分辨率。 U‑Net 网
络同时还采取了跳接结构(即图 26 中的灰色箭头),将上采样结果与编码器中具有相同分辨率的子模块的输出进行连接,作为解码器中下一个子模块的输入。
Mask R-CNN 实例分割(不感兴趣)
2016 年的 DeepLab 又提出了一种空洞卷积,避免了 化层带来的信息损失,并使用全连接的条件随机场( Condi tional random field , CRF )优 化 分 割 精 度
2017 年剑桥大学提出的 SegNet [ 67 ] 的主要动机是针对道路和室内场景理解,设计一个像素级别的 图像分割网络,同时保证内存和计算时间方面上的高效。SegNet 采用“编码器 ‑ 解码器”的全卷积结构, 编码网络采用 VGG16 [ 28 ] 的卷积层,解码器从相应的编码器获取最大池化索引后上采样,产生稀疏特征映射。
2017 年香港中文大学提出了 PSPNet [ 70 ] ,该网络采用金字塔池化模块,用大小为 1 × 1 、2× 2 、3× 3 和 6× 6 的 4 层金字塔分别提取不同尺度的信息,然后通过双线性插值恢复长宽,把不同层的特征连结起来 得到全局信息,这种结构比全局池化更具有代表性,融合了多尺度的信息。PSPNet 在 PASCAL VOC 2012 数据集上 mIoU 达到了 82.6% ,在 MS COCO 数据集上预训练后达到 85.4% 。 PSPNet 结构如图 31 所示。
DeepLabv2 [ 71 ] 在 DeepLabv1 [ 66 ] 和 PSPNet [ 70 ] 的基础上用 ResNet101 代替 VGG16 ,并提出了一种带有空洞卷积的空间金字塔池化模块(Atrous spatial Pyramid pooling , ASPP )
DeepLabv3 [ 72 ] 重新审视了空洞卷积的作用,将其级联模块应用在 ResNet 最后一个模块之后,不使用空洞卷积和使用空洞卷积的级联模块。
DeepLabv3+ [ 73 ] 相对于 DeepLabv3 ,采用了“编码器 ‑ 解码器”的结构,编码器中包含丰富的语义信 息,解码器则输出图像的边缘细节信息。空间金字塔池化模块,“编码器‑ 解码器”结构和带有空洞卷积的“编码器‑ 解码器”结构
2019 年旷视科技提出了一种名为 DFANet [ 74 ] 的高效 CNN 架构,通过子网和子级联的方式聚合多尺度特征,极大地减少了参数量。 解码器的骨 干网络采用 3 个改良的 轻量级 Xception 融合结构,编码器则是一个高效的上采样模块,用于融合高层和 底层的语义信息。
图像分割是像素级的稠密分类任务,在搜集数据集时需要真值标注每个像素,但由于这个要求极
其耗时且非常昂贵,许多研究人员开始用 弱监督学习 和 半监督学习 的方法训练网络。常见的弱标注有图像类别标签、边界框、显著图和类激活图(Class activation map , CAM )等。
热门研究方向:
基于 小样本学习技术 的图像分割算法同样具有广阔的前景,因为在许多应用领域, 例如医学图像分析领域,获取学习样本的成本较高,难度也较大。图像分割技术的实时性也是一个难题,目前大多数模型并不能达到 实时性 的要求,但在很多应用场景下, 速度的重要性远高于精度 。
3.3超分辨率技术(不感兴趣)