基于卷积神经网络的图像改进处理
来源:用户上传
作者:逄博
摘 要:卷积神经网络一直是一个非常强大的计算机视觉工具。卷积网络对图像分类、图像分割和目标检测等领域都有非常大的帮助。本文通过对卷积神经网络和计算机视觉领域四篇前沿论文的分析,指出该领域所面临的挑战,以及如何通过引入新方法或通过将现有方法的融合来应对这些挑战。通过比较,找出了这些论文各自的独特的特点以及它们之间的共性。通过对这些前沿論文的分析,在一定程度上对卷积网络的本质进行了探讨,并提出了改进方法,在今后进行网络设计时进一步对DNN配置进行改。
关键词:卷积; 卷积神经网络; 计算机视觉; 语义分割
中图分类号:TN911.73 文献标识码:A 文章编号:1006-3315(2020)12-198-003
1.前言
自AlexNet发明以来,卷积神经网络(convolution neural network, CNN)就已经开始在计算机视觉领域广泛应用。虽然从今天的视角来看,AlexNet还相对粗糙,但正是AlexNet打开了卷积分层的大门。它激发了研究人员对卷积分层的巨大兴趣。我们可以看到,传统的卷积不断发展,演化出了堆栈卷积(stacked convolution)、起始卷积(inception convolution)、扩张卷积(dilated convolution)、深部可分离卷积(depthwise separable convolution)、变形卷积(deformable convolution)等。本文选择“用于语义分割的全卷积网络”、“用于语义图像分割的空洞卷积再思考”、“YOLO9000:更好、更快、更强大”和“MobileNetV2:倒残差和线性瓶颈”四篇有关卷积网络的前沿论文进行分析比较,探讨文中对有关卷积概念和思想的阐释,并就有关技术提出自己的看法。
2.四种卷积方法简介
计算机视觉是机器学习和人工智能领域最热门的话题之一,本文所选的四篇文章是计算机视觉的最新成果,代表了四种不同的卷积方法。
2.1全卷积网络法
论文“用于语义分割的全卷积网络”(Fully Convolutional Networks for Semantic Segmentation)探讨了卷积神经网络在语义分割领域的应用。在此之前,已经存在补丁训练(Patch-wise training)以及前处理和后处理等方法,但全卷积网络(Fully Convolutional Network, FCN)为解决语义分割问题提供了一种更为有效和实用的方法。
文中提出的主要观点就是,典型完全连接层具有固定的维度,并且摈弃了空间坐标。然而,这些完全连接层也可以被看作是包含覆盖整个输入区域内核的卷积,从而将其转换成完全卷积网络,可以接受任何规模的输入和输出。
本文的关键在于后向步幅卷积法的采用,该方法将来自下采样过程中产生的最终层预测和中间层预测相结合,来对更为精细的细节进行预测。之所以采用这种方法,是因为虽然完全卷积化的分类器可以对分割进行微调,但是输出仍然不够理想。这个最终预测层的32像素步幅限制了上采样输出信息的详细程度。为了解决这一问题,本文将大量的信息和高层次与低层次相结合,换句话说,将特征的处所和特征的内容相结合。通过融合来自不同步幅层的信息改进完全卷积网络以改善分割细节,使分割更接近地面实际情况。
2.2空洞卷积法
论文“用于语义图像分割的空洞卷积再思考”(Rethinking Atrous Convolution for Semantic Image Segmentation)的研究是基于第一篇文章中提出的完全卷积法,采用了空洞卷积(Atrous Convolution)来优化卷积和反卷积过程,其基本工作原理如图1所示。简单地说,空洞卷积指的是里面有“空洞”的卷积核。它试图包括有关像素的更为广泛的信息,解决物体的多尺度问题。由于速率的不同,得到的信息尺度也不同。此外,空洞卷积解决了原始完全卷积网络法下采样中存在的特征图分辨率降低和空间信息大量丧失的问题。
基于现有的空间金字塔池化(Spacing Pyramid Pooling)模型,通过采用速率不同的内核,文中提出了空洞空间金字塔池化(Atrous Spacing Pyramid Pooling, ASPP)模型。在诸如最大池化(max pooling)等传统池化方式中,人们仅仅选择N×N像素的最大值而丢失了其他像素的信息。ASPP利用不同卷积步幅和速率来获取不同尺度上的信息,然后将它们连接在一起。
不同空洞速率的ASPP能有效地捕获多尺度信息。然而,采样率越大,有效过滤器权重的数量就越小。也就是说,当速率值接近特征映射大小时,3×3滤波器退化为简单的1×1滤波器。针对这一问题,论文将整体平均池化应用于模型的最后特征图上,将得到的图像层面特征馈送到具有256个滤波器的1×1卷积中,然后将特征向上采样到所需的空间维度,以获得ASPP算法的优化内核组。最后,改进的ASPP的内核组由一个1×1卷积和三个3×3卷积组成,其中3×3卷积为输出步幅=16时,速率=(6,12,18),如图2所示。
2.3综合卷积法
论文“YOLO9000:更好、更快、更强大”与其说尝试提出一种全新的技术,不如说是对现有方法的整合。文中结合并使用了一些已在实践中得到证明、可以提升计算速度或准确度的现有技术(目标检测中的IOU)。论文从最初的YOLO到YOLOv2的发展历程进行了综述,指出了批归一化(batch normalization)、高分辨率分类器(high resolution classifier)、“锚箱”卷积(convolution with anchor boxes)和多尺度培训(multi-scale training)等发展特征。 上述修改使YOLOv2在各种情况下都不失为一个好模型。在低分辨率下,YOLOv2是一种廉价、相当精确的探测器。在288×288的分辨率下,其mAP几乎和R-CNN一样快。这使得它非常适合于更小的GPU、高帧速率视频或多个视频流。在高分辨率下,YOLOv2是一种最先进的探测器,在VOC2007上有78.6的mAP,同时仍然以高于實时速度运行。
然而,我们不得不指出,YOLO在小目标探测方面并不是很强大。论文的作者之一曾经尝试用YOLOv2探测野生环境中的电池和瓶子。从图3的左边部分可以看出,YOLO可以探测得到(虽然效果不是很好)。然而,从图3的右边可以得知,如果我们从另一个角度拍照,YOLO就无法对该物体进行识别。这在某种程度上反映了YOLO的弱点:对小物体的探测不是很敏感,尤其是涉及到旋转的情况下,其探测不够准确。这可能是由于YOLO所使用的算法的原因。YOLO只探测最后一个卷积层的输出,然而,就小对象而言,经过层层卷积后,其信息几乎完全丢失在该层中。
2.4深度可分卷积法
论文“MobileNetV2:倒残差和线性瓶颈”重点探讨了深度可分卷积。众所周知,移动设备的硬件限制在很大程度上限制了神经网络的大小。正如移动ARM SoC的运算能力与大型服务器的运算能力不会相同一样,服务器和电脑上的大有前途的深层神经网络(Deep Neural Network, DNN)在过时的iPhone上也不可能良好运转。因此,在精度不会有太大损失的前提下,一个轻型网络就应运而生了。DNN压缩常用的技术有修剪、分层和霍夫曼编码(Huffman coding)。仅仅这些有时还不够,研究人员正试图发明一种小型设备友好型网络,能拥有至少与大型复杂网络类似的精确度,这就是MobileNetV2。
在MobileNetV2中,一种称为深度可分卷积的方法(Depthwise Separable Convolution)被用来帮助减小网络大小。结果相当惊人:虽然与传统的卷积层相比,深度可分离卷积层显著减少了参数和计算量,但精度似乎并没有受到影响。其基本思想是用将卷积分解成两个独立层的因式分解版来替换完全卷积层。第一层称为深度卷积,它通过对每个输入通道应用单个卷积滤波器来进行轻量滤波。第二层是1×1卷积,称为点态卷积(Pointwise Convolution),负责通过计算输入通道的线性组合来建立起新特征。
深度可分卷积法大大减少了参数的数量以及乘法和加法的运算。粗略地来说,有效的深度可分卷积可以降低系数k2。因此,与其早期版本MobileNetV1或者著名的轻型网络ShuffleNet相比,MobileNetV2在规模上实际上要小得多。测试表明,参数的数量虽有大幅度减少,但精确度并未有所下降。
3.卷积法比较与评价
以上四篇论文都探讨了计算机视觉的分支。前两篇论文的共同点在于,二者都试图将我们在某个区域进行朝内和朝外“看”时所获得信息结合起来。前者使用跨音卷积方法,将高、低层的下采样池化结果结合起来,得到更加准确的语义分割结果;后者使用的则是不同步幅的核函数ASPP法。两种情况都可以实现在深入卷积过程时不会丢失太多信息。具体而言,前者作为语义分割的基础,开启了语义分割的大门。但这并不意味着后者更为琐碎,因为它使用了不同类型/大小的创新卷积核,在获取不同尺度的物体信息方面做得更好。
后两篇论文的重点不完全是关于新技术的发明。相反,它们更加注重结合和整合现有的方法改进现有模型(YOLOv1,MobileNetV2)。改进后的版本或者提高了在小型设备上的适用性,或者提高了模型可以同时探测对象的数量,换句话说,它们要么变得更快,要么变得更强。
四篇论文都涉及到了一些常见的计算机视觉任务,包括图像分类、图像检测和语义分割等,但它们有各有自己的特点。具体说来体现在:
作为语义分割的基础,FCN存在一些缺陷。语义分割的轮廓有点过于平滑。在上采样过程中很多细节被丢失。总之,由于FCN的内部设计缺陷,即使使用本文提出的最优秀的FCN-8s模型,FCN也不能很好地识别细节。
在空洞卷积中,存在一些潜在问题,其中之一就是网格效应。也就是说,因为内核上“空洞”的存在,空洞内核的多层堆叠之后,可能会发现有一些像素不被内核使用,也就是说,这些信息在训练网络时不使用省略的像素。
YOLOv2实际上是一个非常强大的模型,但仍然存在一些缺陷,比如小目标检测能力不足。这一缺陷直到YOLOv3出现,才得以解决。
另一个改进方向就是使它变得更快、更轻。第四篇文章提供了一种可以普遍应用于轻型设备上的网络以减少计算量和参数的思想。实践证明,它不会导致任何显著信息的丢失。
深度可分卷积的有效性取决于卷积核的大小。如前所示,计算量的减少为系数k2。因此,如果我们使用像7×7这样的大核(在VGG之后很少使用),我们可以实现大约×49的缩减。如果核的大小是3×3(现在很常见的大小),我们仍然可以实现×9的缩减。但是,假设我们正在运用一种由许多1×1核构成的完全卷积的网络,即使没有负面影响,这样的深度可分卷积技术也将毫无用处。
4.结论
神经网络的改进大致可以分为两部分:更好更强大和更快更轻。我们所面临的挑战或所试图解决的问题,都与我们希望如何改进现有模式,以便在不同环境条件或有限资源下采用更好的基础神经网络。上述论文中提到的改进方法总结如下:
FCN模型——更好、更强。它基于CNN最初的模式。为了找到CNN在语义分割领域的最佳方法,该模型在下采样中应用全连接到卷积层的方法,同时提出上采样过程,生成一种解决语义分割问题的新模型。
ASPP模式——更好、更强。它基于FCN模型,为解决FCN模型中的多尺度、分辨率降低而且空间信息丢失等缺陷,提出改变内核速率的想法,即也称为空洞卷积法。其目的是改善语义分析结果的准确性。 YOLO9000模型——更好、更強。YOLOv2是通过对像锚箱这样的作品中提出的各种思想的应用,由YOLO发展而来。主要结合联合优化探测法和分类训练法,将该模型被训练成一个对超过9000个对象类别实施实时探测的框架。相比最初的YOLO模型,该模型更强。
MobileNetV2型号——更快、更轻。它基于现有的MobileNet模型。本系列模型的目的是在移动设备上应用CNN资源有限。通过应用诸如深度可分卷积的概念,MobileNetV2模型成功将最初模型瘦身,同时又保持精确度不会下降太多。
综上所述,特定领域的卷积网络的改进是基于现有的模型,一旦其在这个领域的立场或修改被认可,它就会变成新的基础。因此,卷积网络的发展是一个不断对现有模型进行创新和改进的过程,以在不同的语境和环境中得到更好地实现。
参考文献:
[1]Jonathan Long, Evan Shelhamer, Trevor Darrell. “Fully Convolutional Networks for Semantic Segmentation”arXiv preprint(2017)
[2]Liang-Chieh Chen, George Papandreou, Florian Schroff,Hartwig Adam.“Rethinking Atrous Convolution for Semantic Image Segmentation.”arXiv preprint (2017)
[3]Redmon,Joseph,and Ali Farhadi.“YOLO9000:better,faster, stronger.”arXiv preprint (2017)
[4]Mark Sandler,Andrew Howard,Menglong Zhu,Andrey Zhmoginov,Liang-Chieh Chen. “MobileNetV2: Inverted Residuals and Linear Bottlenecks” arXiv preprint(2018)
[5]Han,S.,Mao,H.and Dally,W.J.,2015.Deep compression: Compressing deep neural networks with pruning, trained quantization and huffman coding. arXiv preprint arXiv:1510.00149
[6]Howard,Andrew G.,et al.“Mobilenets: Efficient convolutional neural networks for mobile vision applications.”arXiv preprint arXiv:1704.04861 (2017)
转载注明来源:https://www.xzbu.com/9/view-15374558.htm