基于深度学习的实例分割模型的设计与实现毕业论文
2020-02-16 22:16:41
摘 要
近些年,随着深度学习的发展日趋成熟,人们已经不再满足于单纯进行某一项任务的模型,而是期望着一个模型可以同时完成多种任务。而在计算机视觉领域,存在着目标检测、图像分类以及图像分割这些任务。为了能一次性完成三种任务,一种新的任务出现了——实例分割。实例分割是目标检测、图像分类以及图像分割三个任务的集合体,由于语义分割包含图像分类与图像分割的任务,所以实例分割也可以看作目标检测与语义分割的结合。而本文的目的,就是设计并实现一个基于深度学习的实例分割模型。
在本文中,我将会用到很多网络模型,这些模型一起构成了一个实例分割的模型。这些模型有残差网络ResNet、特征金字塔网络FPN以及区域选择网络RPN等。利用残差网络可以有效地加深网络的深度,提高网络的性能。更重要的一点是,ResNet50网络上各层之间的缩放步长均为2,且各层输出的特征图包含了更丰富的特征信息。这为后面的特征金字塔网络的建立带来了好处。由于FPN网络Bottom-Up部分中,各层缩放步长同样均为2,因此适合与ResNet50网络结合使用。而在FPN网络的Top-Down部分中,由于既使用到了高层特征图中包含的丰富的语义信息又结合到了浅层特征图中丰富的细节信息,因此FPN网络中所输出特征的鲁棒性更高,从而使目标检测的准确度更高。接着,从FPN输出的特征图进入到了区域选择网络中,生成proposal。由于proposal上有许多ROI区域,我们需要利用ROI Align操作将其分割成固定大小的feature map,用于后面的掩码生成、分类与边框回归。本文将使用主流的keras框架进行模型的搭建,用python语言来编写具体实现的算法,并利用MS COCO数据集对模型进行训练。
关键字:深度学习,卷积神经网络,实例分割
Abstract
In recent years, with the development of deep learning becoming more and more mature, people are no longer satisfied with a single task model. They expect that a model can complete multiple tasks at the same time. In the field of computer vision, there are many tasks such as target detection, image classification and image segmentation. In order to accomplish three tasks at once, a new task emerges: instance segmentation. Instance segmentation tasks is the aggregation of three tasks: object detection task, image classification task and image segmentation task. Since semantic segmentation includes the tasks of image classification and image segmentation, Instance segmentation can also be regarded as the combination of object detection and semantic segmentation. The purpose of this paper is to design and implement an instance segmentation model based on deep learning.
In this paper, I will use many network models, which together constitute a model of instance segmentation. These models include residual network ResNet, feature pyramid network FPN and region proposal network RPN etc. The residual network can effectively make the depth of the network deeper and improve the performance of the network. More importantly, the scaling step of each layer in ResNet50 network is 2, and the feature map output by each layer contains more abundant feature information. This brings benefits to the establishment of the featurized pyramid network. Because the scaling step of each layer in the Bottom-Up part of FPN network is also 2, it is suitable to be used in combination with ResNet50 network. In the Top-Down part of the FPN network, the robustness of the output features in the FPN network is more due to the rich semantic information contained in the high-level feature map and the rich detailed information in the shallow feature map. So, it can make the accuracy of the object detection task higher. Then, the feature map output by FPN enters the region proposal network to generate proposals. Since there are many ROI regions on the proposal, we need to use ROI Align operation to divide it into feature maps of fixed size for mask generation, classification and bounding box regression. In this paper, we will use the keras framework to build the model, use the Python language to write the algorithm, and use MS COCO data sets to train the model.
Keywords: Deep Learning, Convolutional Neural Network, Instance Segmentation
目录
第1章 绪论 1
1.1研究背景 1
1.2国内外研究现状 1
1.3研究内容 2
1.3.1 目标检测 2
1.3.2 语义分割 3
1.3.3 实例分割 3
1.4本论文的组织结构 4
第2章 模型设计 5
2.1 残差网络ResNet 5
2.1.1 原理 5
2.1.2 在卷积神经网络上应用残差块 7
2.1.3 ResNet50 7
2.1.4 本文中ResNet50的使用 8
2.2 特征金字塔网络FPN 9
2.2.1 FPN的提出 9
2.2.2 FPN模型 11
2.2.3 模型中FPN的使用 12
2.3 区域选择网络RPN 13
2.3.1 锚点Anchor 13
2.3.2 RPN网络数据集 14
2.3.3 RPN网络的损失函数 15
2.3.4 生成proposal 16
2.4 数据集准备层 17
2.5 目标提取层 18
2.5.1 ROI Pooling 18
2.5.2 双线性插值 18
2.5.3 ROI Align 19
2.5.4 模型中ROI Align的使用 21
2.6 分类、回归与掩码输出 21
2.6.1 分类和边框回归分支cls and bbox branch 21
2.6.2 掩码分支mask branch 22
2.7 模型的总体结构 22
第3章 模型的实现和结果 24
3.1 模型实现的一些细节 24
3.1.1 关于数据集 24
3.1.2 关于反向传播过程 25
3.1.3 关于训练 25
3.2 结果 26
第4章 总结与展望 28
4.1 总结 28
4.2 展望 28
参考文献 29
致谢 30
第1章 绪论
1.1研究背景
近些年,随着相关技术的逐年进步,人们又重拾起机器学习(Machine Learning)这门多领域交叉学科。机器学习涉及概率论、统计学、逼近论、凸分析等多门学科,用于模拟人类的学习机制,利用大量与某一领域相关的学习资料来让机器进行学习,使机器在该领域上的性能可以达到人脑甚至高于人脑的性能。因此,机器学习大量用于与人工智能(Artificial Intelligence)相关的各个领域中是人工智能的核心。
机器学习是人工智能研究较为年轻的分支,它的发展过程可分兴起时期、冷静时期、复兴时期和新时期4个时期。而深度学习(Deep Learning)作为机器学习的一个分支,是机器学习研究中的一个新的领域。深度学习的目的是通过建立类似于人脑分析以及学习机制的神经网络,来对音频、图像、视频以及文本等数据进行分析与解释。由于深度学习在这些方面所带来的突破,因此是目前人们进行研究的热点。
深度学习也同机器学习一样,分为监督学习与无监督学习两种,而分别使用这两种框架所构建的两种模型是很不一样的。而本文中所要用到的卷积神经网络(Convolutional Neural Networks,即CNN)就是一种监督学习框架下的深度学习网络。
近些年,由于CNN的引入,深度学习在计算机视觉(Computer Vision,即CV)领域有了新的发展。在深度学习关于CV的研究中,出现了如图像分类、图像分割以及目标检测这样的任务。而实例分割(Instance Segmentation)是一个包含了目标检测、图像分类以及图像分割的一个十分综合问题,简洁点来说,即目标检测与语义分割的综合问题。而在基于全卷积网络(FCN)的模型在目标检测以及语义分割任务中成果显著,国际上一些计算机视觉领域的研究者们把目标转向实例分割这一更加棘手的问题,目的是实现以像素级的精度实现目标检测同时解决语义分割的问题。
1.2国内外研究现状
关于实例分割的论文在国内鲜有,基本上只有外文文献,所以在本文中只对国外研究现状进行分析。
目前,基于深度学习的实例分割方法大体上可以分为两类,一类是基于检测的方法,另一类是基于分割的方法。
基于检测的方法利用现有的目标检测模型(例如R-CNN[1],Fast R-CNN[2],Faster R-CNN[3])来对掩码区域进行像素分类或者通过细化预测框来获得掩码。对于获得图像的掩码,主要的方法有CPMC[4],MCG[5],DeepMask[6],SharpMask[7]以及instance-sensitive FCNs[8]。基于此方法的模型有很多,例如SDS[9]以及CFM[10]模型通过结合掩码特征来提高像素分类精度;MNC[11]模型将实例分割过程分解为三个子问题,包括预测框定位,掩码生成和像素分类,可以通过优化由预测框定位产生的掩码区域边界误差来改善MNC;FCIS[12]模型是第一个基于全卷积网络(Fully Convolutional Network,FCN[13])的实例分割模型,该模型通过进一步考虑内/外位置得分图来丰富位置感知得分图(position-sensitive inside/outside score maps);Mask-RCNN[14]模型建立在特征金字塔网络(Feature Pyramid Network,FPN[15])之上,增加了另一个分支来获得Faster-RCNN预测框的掩码,并且具有很好的性能。而基于分割的方法通常分为分割和聚类两个阶段进行处理,首先通过分割模块进行像素级预测,然后再使用聚类算法将属于同一个对象的像素组合在一起。例如,Proposal-free网络运用图谱来对DeepLab的结果进行聚类,而有些研究员提出对图像补丁进行深度排序;除了语义和深度信息之外,国际上的一些研究员还进一步训练FCN来预测实例中心方向。
当然,除了这两个类别,还有一些其他的研究。例如,循环神经网络每次循环分割一个实例;以及一种仅给定边界框注释的弱监督实例分割模型。这里就不再赘述。