1、第9章 基于卷积神经网络的图像处理第9章 基于卷积神经网络的图像处理9.1 典型的卷积神经网络架构典型的卷积神经网络架构9.2 基于卷积神经网络的图像处理基于卷积神经网络的图像处理本章小结本章小结第9章 基于卷积神经网络的图像处理9.1 典型的卷积神经网络架构典型的卷积神经网络架构9.1.1 AlexNetAlexNet是 CNN 在大规模图像分类中广泛使用的最早架构之一,是2012年ILSVRC图像分类和物体识别算法的优胜者,也是 LetNet-5之后受到人工智能领域关注的现代卷积神经网络算法。第9章 基于卷积神经网络的图像处理AlexNet隐含层由5个卷积层、3个池化层和3个全连接层组成,
2、如图 9-1所示。图 9-1 AlexNet网络结构第9章 基于卷积神经网络的图像处理AlexNet的特点包括:(1)更深的网络结构,即使用层叠的卷积层来提取图像特征。(2)使用重叠的最大池化代替平均池化,避免平均池化的模糊化效果,并且池化层的输出之间会有重叠和覆盖,提升了特征表达能力。(3)使用 Dropout抑制,随机丢掉一些神经元,有效防止过拟合。(4)使用数据增强抑制过拟合,提升泛化能力。第9章 基于卷积神经网络的图像处理(5)使用 ReLU 作为 CNN 的激活函数,提升网络训练速度,并验证其效果在较深的网络超过了Sigmoid,成功解决了Sigmoid在网络较深时的梯度弥散问题。(
3、6)提出了局部响应归一化层(LocalResponseNormalization,LRN),对局部神经元的活动创建竞争机制,使得其中响应比较大的值变得相对更大,并抑制其他反馈较小的神经元,增强模型的泛化能力。(7)在 CNN 中使用 CUDA 加速深度卷积网络训练。第9章 基于卷积神经网络的图像处理9.1.2 VGGNetVGGNet探索了卷积神经网络深度与其性能之间的关系,成功构筑了1619层深的卷积神经网络,证明增加网络的深度能够在一定程度上影响网络最终的性能,错误率大幅下降,同时拓展性又很强,迁移到其他图片数据上的泛化性也非常好。到目前为止,VGGNet仍然被用来提取图像特征。VGGNe
4、t可以看成是加深版本的 AlexNet,都是由卷积层、全连接层两部分构成,以网络结构 VGG16为例,其网络架构如图9-2所示。第9章 基于卷积神经网络的图像处理图9-2 VGGNet网络结构第9章 基于卷积神经网络的图像处理VGGNet有以下特点:(1)对卷积核和池化大小进行了统一,即统一使用33卷积核和22最大池化操作。(2)采用卷积层堆叠的方式,即将多个连续的卷积层构成卷积层组,卷积组可以提高感受野范围,增强网络的学习能力和特征表达能力。(3)采用具有多个小卷积核的卷积层串联的方式能够减少网络参数。(4)卷积层特征图的空间分辨率单调递减,通道数单调递增。第9章 基于卷积神经网络的图像处理
5、9.1.3 InceptionInception网络结构是由 GoogleNet团队提出的,它是一种“基础神经元”结构,其主要思想是用密集成分来近似最优的局部稀疏结构,使其既能保持网络结构的稀疏性,又能利用密集矩阵的高计算性能。它历经了 V1、V2、V3等多个版本的发展,不断趋于完善。Inception网络结构如图9-3所示。第9章 基于卷积神经网络的图像处理图9-3 Inception网络结构第9章 基于卷积神经网络的图像处理9.1.4 ResNet若将输入设为 X,网络层设为 H,那么以X 为输入的此层的输出将为H(X)。一般的CNN 网络如 AlexNet/VGG 等会直接通过训练学习出
6、参数函数 H 的表达,从而直接学习XH(X)。残 差 学 习 使 用 多 个 有 参 网 络 层 来 学 习 输 入、输 出 之 间 的 残 差,即 学 习X(H(X)-X)+X。其中 X 这一部分为直接的恒等映射,而F(X)=H(X)-X 则为网络层要学习的输入输出之间的残差。残差学习这一思想的基本表示如图9-4所示。第9章 基于卷积神经网络的图像处理图9-4 残差学习第9章 基于卷积神经网络的图像处理9.1.5 MobileNet谷歌在2017年提出了 MobileNetV1。它最大的创新点是提出了深度可分离卷积,从而可进行模型压缩和速度提升。深度可分离卷积将传统卷积的两步进行分离,分别是
7、深度卷积和逐点卷积。从图9-5中可以看出,特征图先按照通道进行按位相乘计算,此时通道数不改变;然后将第一步的结果使用11的卷积核进行传统的卷积运算,此时通道数可以改变。第9章 基于卷积神经网络的图像处理图9-5 深度可分离卷积第9章 基于卷积神经网络的图像处理总的来说,MobileNet有如下几个亮点:(1)深度卷积后接 BN 层和 ReLU,逐点卷积后也接 BN 层和 ReLU。深度可分离卷积结构增加了模型的非线性变化,增强了模型的泛化能力。(2)MobileNet中使用了 ReLU6作为激活函数,公式如式(9.1),该激活函数在 Float16/Int8的嵌入式设备中效果很好,能较好地保持
8、网络的鲁棒性。(3)MobileNet使用了2个超参,宽度乘子 和分辨率乘子,通过式(9.1)可以进一步缩减模型,动态加大深度、宽度、分辨率来提高网络的准确率。第9章 基于卷积神经网络的图像处理9.1.6 R-CNNR-CNN 系列(R-CNN、SPP-Net、FastR-CNN以及 FasterR-CNN)是用深度学习的方法做目标检测。目标检测就是在给定的图片中精确找到物体的所在位置,并标注出物体的类别。目标检测系统一般由三个模块构成:第一个是候选区域生成模块,它用来产生与类别无关的候选检测区域的集合;第二个用于从每个区域抽取特定大小特征向量的卷积神经网络;第三个是一个指定类别的线性SVM。
9、第9章 基于卷积神经网络的图像处理1.R-CNNR-CNN(Region-CNN)是将 CNN 方法应用到目标检测问题上的一个里程碑,由 RossB.Girshick在2014年提出,如图9-6所示。第9章 基于卷积神经网络的图像处理图9-6 R-CNN 算法第9章 基于卷积神经网络的图像处理R-CNN 算法可以分为三步:(1)候选区域选择:使用传统的区域提取方法,通过不同宽高的滑动窗口的滑动获得潜在的目标图像,然后对提取的目标图像进行归一化,得到的结果作为 CNN 的标准输入。(2)CNN 特征提取:根据输入进行卷积/池化等操作,可以得到固定维度的输出。(3)分类与边界回归:实际包含两个子步
10、骤,一是对上一步的输出向量进行分类(需要根据特征训练分类器);二是通过边界回归(Bounding-BoxRegression)得到精确的目标区域。由于实际目标会产生多个子区域,该过程旨在对完成分类的前景目标进行精确的定位与合并,避免多个检出。第9章 基于卷积神经网络的图像处理2.SPP-NetSPP-Net(SpatialPyramidPoolingNetwork)是空间金字塔池化层,如图9-7所示。SPP-Net的特点有两个:(1)结合空间金字塔方法实现 CNN 的多尺度输入。(2)只对原图提取一次卷积特征。第9章 基于卷积神经网络的图像处理图9-7 空间金字塔池化结构第9章 基于卷积神经网
11、络的图像处理3.FastR-CNNFastR-CNN 主要贡献在于对 R-CNN 进行加速,其算法步骤如图9-8所示。图9-8 FastR-CNN 网络第9章 基于卷积神经网络的图像处理FastR-CNN 在以下两方面进行了改进:(1)借鉴SPP思路,提出简化版的 ROI池化层。ROI池化层去掉了 SPP的多尺度池化,直接用 M N 的网格将每个候选区域均匀分成 M N 块,对每个块进行最大池化操作,从而将特征图上大小不一的候选区域转变为大小统一的特征向量,送入下一层。(2)多任务损失层,将分类和边框回归进行合并,通过多任务损失层进一步整合深度网络,统一了训练过程,从而提高了算法准确度。第9章
12、 基于卷积神经网络的图像处理4.FasterR-CNNFasterR-CNN 是在 FastR-CNN 基础上提出了 RPN(RegionProposalNetwork)候选框生成算法,使得目标检测速度大大提高。RPN 网络的特点在于通过滑动窗口方式实现候选框的提取,在每个滑动窗口位置生成9个候选窗口(不同尺度、不同宽高),然后提取对应9个候选窗口的特征,用于目标分类和边框回归。目标分类只需要区分候选框内特征为前景或者背景。基本网络结构如图9-9所示。第9章 基于卷积神经网络的图像处理图99-候选框生成网络第9章 基于卷积神经网络的图像处理9.1.7 YOLOYOLO是 RossGirshic
13、k 针对目标检测速度问题提出的另外一种框架,在它之前出现的检测框架主要是 R-CNN 系列。这一类方法被称为 TwoStage的方法,首先,它预先回归一次边框,然后再进行骨干网络训练,所以精度高,但也导致这类方法在速度方面还有待改进。YOLO 系列方法只做了一次边框回归和打分,所以相比于 R-CNN 系列被称为OneStage的方法,这类方法的最大特点就是速度快。第9章 基于卷积神经网络的图像处理YOLOV1的核心思想就是利用整张图作为网络的输入,直接在输出层回归boundingbox(边界框)的位置及其所属的类别。基于回归的目标检测框架的 YOLO V1的网络结构如图9-10所示,其中,卷积
14、层主要用来提取特征,全连接层主要用来预测类别概率和坐标。第9章 基于卷积神经网络的图像处理图9-10 YOLO V1网络结构第9章 基于卷积神经网络的图像处理9.1.8 SSDSSD(SingleShotMultiBoxDetector)是继 R-CNN 系列、YOLO 之后的一种目标检测算法。R-CNN 系列在目标检测上取得了非常好的效果,精度高,但在速度方面还有待改进。YOLOV1网络虽然能达到实时的效果,但它对目标的尺度比较敏感,而且对于尺度变化较大的物体泛化能力比较差。第9章 基于卷积神经网络的图像处理SSD的整体框架如图9-11所示,其将整个检测过程整合为一个单通道深度神经网络。它针
15、对 YOLO 和 FasterR-CNN 的各自不足与优势做了改进,关键点如下:(1)在多层多尺度特征图上进行检测。(2)采用默认候选区域方式。(3)采用卷积预测。第9章 基于卷积神经网络的图像处理图9-11 SSD网络第9章 基于卷积神经网络的图像处理9.1.9-FCN传统基于 CNN 的分割方法通常为了对一个像素分类,会使用该像素周围的一个图像块作为 CNN 的输入,用于训练和预测。这种方法有几个缺点:一是存储开销很大。例如,对每个像素使用的图像块大小为1515,则所需的存储空间为原来图像的225倍。二是计算效率低下。相邻像素块基本上是重复的,针对每个像素块逐个计算卷积,这种计算重复性大。
16、三是像素块大小限制了感知区域的大小。第9章 基于卷积神经网络的图像处理图9-12为FCN 卷积和反卷积上采样的过程。第9章 基于卷积神经网络的图像处理与传统用 CNN 进行图像分割的方法相比,FCN 有两大明显优点:一是可以接受任意大小的输入图像,不用要求所有的训练图像和测试图像具有同样的尺寸;二是避免了使用像素块带来的重复存储和计算卷积的问题,更加高效。第9章 基于卷积神经网络的图像处理另外 FCN 的缺点也比较明显:一是得到的结果不够精细,进行8倍上采样虽然比32倍的效果好了很多,但是上采样的结果还是比较模糊,对图像中的细节不敏感。二是对各个像素都进行了分类,没有充分考虑像素与像素之间的关
17、系,忽略了在通常的基于像素分类的分割方法中使用的空间规整步骤,缺乏空间一致性。第9章 基于卷积神经网络的图像处理9.1.10 DeepLabDeepLabV1有以下两大特点:(1)忽略下采样过程,使用空洞卷积以增加感知范围。如图9-13所示,在同样的卷积核大小下,通过增加输入步长(也就是空洞因子或者膨胀因子)可以增大卷积核的感受野。(2)使用FullyConnectedCRF。CRF条件随机场的能量函数中包括数据项和平滑项两部分,数据项与各个像素属于各类别的概率有关,平滑项控制像素与像素间类别的一致性。第9章 基于卷积神经网络的图像处理图9-13 空洞卷积第9章 基于卷积神经网络的图像处理De
18、epLabV2是在 V1上进行改进的,将 VGG-16换成 ResNet。由于同一类物体在图像中可能有不同的比例,受SPP-Net的启发,DeepLabV2提出了一个类似结构,并行采用多个采样率的空洞卷积提取特征,再将特征进行融合,该结构称为 ASPP(AtrousSpatialPyramidPooling)。该结构能考虑不同的物体比例,提高准确性。ASPP结构如图9-14所示。第9章 基于卷积神经网络的图像处理图9-14 ASPP结构第9章 基于卷积神经网络的图像处理DeepLabV3为了解决多尺度下的目标分割问题,使用空洞卷积级联或不同采样率的空洞卷积并行架构,在级联和金字塔池化框架下也能
19、扩大感受野,提取多尺度信息。另外 DeepLabV3没有使用条件随机场。同时,DeepLabV3改进了 ASPP模块,该模块可以获取多个尺度上的卷积特征,进一步提升性能。ASPP改进后的结构如图9-15所示。第9章 基于卷积神经网络的图像处理图9-15 ASPP改进后的结构第9章 基于卷积神经网络的图像处理9.2 基于卷积神经网络的图像处理基于卷积神经网络的图像处理9.2.1 图像分类图像分类图像分类是指根据各自在图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法。进行特征提取时,卷积神经网络与传统的浅层神经网络相比较而言,结构层次更为复杂,每两层神经元之间就要利用局部连接的方
20、式进行连接,促使神经元共享连接权重与时间、空间采样。由此来看,卷积神经网络与传统神经网络相比维度降低了,从而缩短了计算时间。卷积神经网络运行主要划分为两个部分,即卷积与采样,运行中分别为上层数据产生抽象提取,实现数据维度的降低。第9章 基于卷积神经网络的图像处理姜波等人将 CNN 应用到对苹果的农药残留检测上,其检测系统如图9-16所示。该检测系统只需要少量的检测样本就可以快速、有效、低成本、无接触地对未知农药残留类别进行匹配和预测。第9章 基于卷积神经网络的图像处理图9-16 苹果农药残留检测系统第9章 基于卷积神经网络的图像处理农药残留检测算法流程如图9-17所示。首先利用机器视觉技术对苹
21、果图像进行高光谱预处理,根据苹果的高光谱图像及其直方图统计信息,通过掩模获取苹果 ROI图像;然后将经过机器视觉技术处理后的数据输入 AlexNet网络中进行分类训练。第9章 基于卷积神经网络的图像处理图9-17 苹果农药残留检测算法流程第9章 基于卷积神经网络的图像处理提取的苹果高光谱图像调整到2272273的尺寸,作为 AlexNet网络农药残留检测的输入。图9-18所示为 AlexNet网络各层的特征图,a为输入层,b为卷积层,c为最大池化层,d为卷积层,e为最大池化层,f为省略的中间层,g为全连接层。第9章 基于卷积神经网络的图像处理图9-18 AlexNet各层的特征图第9章 基于卷
22、积神经网络的图像处理9.2.2 目标检测目标检测“2018广东工业智造大数据创新大赛”分为智能算法赛和应用创新赛两大赛场。“Areyouok?”团队参加的智能算法赛项目,以“铝型材表面瑕疵识别”为主题,要求在给定的图片中定位出铝材缺陷的位置,并准确识别缺陷的类型,这在计算机视觉中是一个极具挑战性的质检问题。图9-19所示是主办方所提供的一些缺陷图片。从图中可以看到,脏点的占比面积特别小,喷流与背景相似,几乎用肉眼看不出来,擦花的结构很不规则。第9章 基于卷积神经网络的图像处理图9-19-铝材表面的瑕疵第9章 基于卷积神经网络的图像处理该缺陷检测系统选用二阶检测器 FasterR-CNN 作为基
23、本架构,充分挖掘了比赛数据的特性,针对性地改进网络的结构,是一个同时兼顾效率和精度的缺陷识别方案。该缺陷检测系统的特点如下:1.特征金字塔结构特征金字塔结构(FeaturePyramidNetwork,FPN)为了减少计算开销,该系统将图片缩小为原来的1/2后作为网络的输入。主干网络选取 ResNet-101,在整个卷积过程中,提取到的特征大小为输入图片的1/16。之后每一个候选框特征会被缩放到77,因此数据集中边长小于等于32的样本缩放之后的特征是不具有判别力的。而这类小样本占了整个数据集的10%,这会严重地影响性能。第9章 基于卷积神经网络的图像处理因此,系统采用特征金字塔结构来对网络进行
24、改进以解决该问题,低层的特征经过卷积、上采样操作之后和高层的信息进行融合,以增强特征的表达能力。另外,将候选框产生和提取特征的位置分散到特征金字塔的每一层,增大了小目标的特征映射分辨率。特征金字塔结构如图9-20所示。第9章 基于卷积神经网络的图像处理图9-20 特征金字塔结构第9章 基于卷积神经网络的图像处理2.可变形卷积可变形卷积(DeformableConvolution)由于铝材的瑕疵有很多是条状的,传统正规的正方形结构的卷积对这种形状的缺陷的处理能力还不够强,因此采用可变形卷积,在卷积计算过程中自动地计算每个点的偏移,从而从最合适的地方进行卷积。如图9-21所示,右边的示意图大致描述
25、了可变形卷积的过程,它能够让卷积的区域尽可能地集中在缺陷上。第9章 基于卷积神经网络的图像处理图9-21 可变形卷积第9章 基于卷积神经网络的图像处理3.ROI上下文信息上下文信息(ContextualROIPooling)FasterR-CNN 是首先生成候选框,然后用框内部的信息来精调候选框。但是,初始候选框势必会有偏大或者偏小的情况,如图9-22所示。第9章 基于卷积神经网络的图像处理图9-22 初始候选框第9章 基于卷积神经网络的图像处理9.2.3 图像分割图像分割图像是由众多像素点组成的矩阵,而图像分割就是将像素按照图像中表达语义的不同进行分组(Grouping)或分割(Segmen
26、tation),即对图像上的每一个像素点进行分类。换句话说,图像分割能够对物体进行像素级别的分类,精细切割出物体所在的像素位置。图像分割也受目标检测的影响,早期思路与目标检测相似,就是先利用传统视觉的分割方法处理,得到 Patch级的分割结果,然后用 CNN 网络训练一个特征学习和分类器,把分割的Patch进行分类,从而得到分割结果。第9章 基于卷积神经网络的图像处理下面介绍一个基于图像分割网络实现的缺陷检测系统。DomenTabernik等人基于图像分割网络,实现了一个高效与准确的缺陷检测系统,如图9-23所示。第9章 基于卷积神经网络的图像处理第9章 基于卷积神经网络的图像处理该系统认为表
27、面缺陷检测可以被理解为一个图像二值分割问题,通过语义分割网络实现图像像素级别的分割,然后把分割结果作为输入特征构建决策部分。下面对分割网络部分和决策网络部分进行详细介绍。第9章 基于卷积神经网络的图像处理1.分割网络分割网络分割网络包含了11个卷积层与3个池化层,在每个卷积层后面跟上一个 BN 层与ReLU激活层(卷积层+BN+ReLU),用来优化学习加速收敛。除了最后一层卷积核大小为1515,所有的卷积层都采用55大小的卷积核,最后会使用11的卷积得到的图像大小是一个单通道的、原图八分之一大小的掩码图像。这样的网络架构有能力在高分辨率图像实现很小的缺陷检测,网络具备比较大的感受野,同时可以实
28、现比较小的特征捕获(像素级分割)。其中,网络的下采样在高层通过大卷积核(1515)的目的是增大感受野以及之前层采用的多个卷积核与下采样最大池化层的作用。第9章 基于卷积神经网络的图像处理2.决策网络决策网络决策网络用分割网络的输出作为输入,使用分割网络的最后一个卷积层1024个通数据与掩码通道合并得到1025个通道数据作为输入特征,采用最大池化层+卷积层(55的卷积核)的方式,最后通过全局最大池化与均值池化输出生成66个输出向量。模型选用带有标注的表面缺陷数据集(KolektorSDD,如图9-24所示)进行训练和测试。若干个模型的检测效果对比如图9-25所示。第9章 基于卷积神经网络的图像处理图9-24 有明显缺陷的图像与其掩码图像第9章 基于卷积神经网络的图像处理图9-25 检测效果对比第9章 基于卷积神经网络的图像处理本本 章章 小小 结结本章首先介绍了用于图像分类、目标检测、图像分割的典型卷积神经网络架构;然后针对图像分类、目标检测、图像分割等图像处理应用,分别阐述了基于卷积神经网络的算法实现,为从卷积神经网络的理论学习到工业视觉检测的应用实践架起了认知的桥梁。与传统的机器视觉算法相比,基于卷积神经网络的图像处理应用同样需要针对待检测目标进行算法架构与检测流程设计。