版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
绪论Introduction课题研究的背景和目的(Thebackgroundandpurposeoftheresearch)铜镜是古代人们梳洗打扮的日常生活用品,历史悠久,也是中国古代青铜文化遗产中的瑰宝。汉代是我国铜镜发展的重要时期,汉代出土的铜镜数量最多,使用最普遍。以汉代铜镜花纹为研究对象,根据汉代铜镜的几种典型纹饰分类,对于多数未分类的铜镜花纹可以进行识别并显示所属类别名称。对于博物馆藏分类展示、文物勘探和大众百姓对汉代铜镜花纹的认识了解有一定的作用,在读入待分类或是不了解的铜镜图像时,若能通过铜镜花纹的图像直接快速准确识别出该纹饰的所属类别,其在各种展示环境中的便利性等方面的应用,将会给未来文物展示与科普带来更大的便利,也让普通大众对古代铜镜文化有更直观的认识。国内外研究现状(Researchstatusathomeandabroad)国外对图像检测识别和研究开始较早,其早期物质基础也较为雄厚,经过这么多年的发展,很多理论和关键性技术已然更为成熟,但已经取得的成果没有未来要解决的问题多。PerficientDigital的研究团队发布的报告显示,谷歌在图像识别方面取得了81.7%的准确率;IBM在图像识别方面取得了55.6%的准确率。Google图片识别AI通过学习大量的图片、调整算法来提高识别的精度,Google图片识别AI具备30层神经网络,每一层对应着不同的抽象程度,具有尤其高的准确率,是国外图像识别技术成果最具代表的公司。我国对图像识别相较国外来说开始较晚,但近些年来,随着国家经济不断发展,对人工智能计算机产业投资不断加大,越来越多的人才涌入人工智能的大潮,越来越多的人开始关注计算机产业发展,因此图像识别技术得以不断发展不断强大。例如以语音起家的科大讯飞早在计算机视觉上发力,接连获得自动驾驶领域权威评测集Cityscapes第一名和医学影像权威评测LUNA冠军两项突破,在视觉上展示出强大实力。就目前来看,我国在图像识别技术上本身就具有一定的优势,表现在精度高、灵活性高等各个方面,图像识别技术用于文物识别丰富了国家文物数据库整理技术,以图像处理和模式识别的青铜器图案纹理检测技术的检测和研究正在逐步兴起,而很多机构和厂商已经研制出了一些自主产品投入市场。但在实际发展过程中,在个别技术方面还是存在一些问题,例如在图像识别技术过程中,处理的大部分信息往往都是二维的信息,处理量较大,对计算机存储容量、运行速度等方面是非常大的挑战,这也就意味着要完善加强图像识别技术,势必要投入大量成本,技术难度也随之上升。虽然我们的产品有一定缺陷,但一些关键性技术、核心技术已经位于世界前列,甚至领先全球,我们相信在不久将来,我们的科研人员一定能够取得更大的成功。研究的重点和难点(Theemphasesanddifficultiesoftheresearch)对于不同纹饰的铜镜,如何挑选最具代表的,范围广的典型纹饰进行划分得到目标对应的区域,根据目标和背景的先验知识,对铜镜中的典型图案在背景中进行标识、定位,将其从背景中分离出来;对于分离出来的铜镜纹饰特征将如何提取,根据纹饰的局部细节进行处理所得到的结构特征定位到所属分类;对于质量较差的图片和不规则图片如何有效的提取可靠的结构特征;在数据集处理阶段,进行数据增强的工作,旨在将样本量扩大并提高模型的泛化能力以更好地模拟现实多变环境下可能产生的输入,建立训练集和测试集;在网络搭建阶段,选择合适的预训练模型;研究内容及结构安排(Researchcontentandstructurearrangement)对于以汉代铜镜为代表的古代铜镜花纹的图像识别并进行分类,对于给定未知的典型花纹进行归类,显示。图像处理Theimageprocessing图像处理的主要内容(Themaincontentofimageprocessing)数字图像处理主要包括图像变换、图像增强与复原、图像分割、图像识别等。图像变换主要是由于图像阵列过大,为了减少计算量而采取一些间接处理技术从而获得更有效的图像数据信息,完成更高效的处理操作。图像增强与复原主要是为了提高图像的质量,比如去噪处理,提高清晰度等方法。图像分割则是最为关键的技术之一在数字图像处理技术中,图像分割是将目标图像的感兴趣的那个区域部分通过一定的算法提取出来,主要是根据该区域的边缘信息进行分割。图像识别是属于模式识别的范畴,主要指的是在目标图像经历过图像增强与复原、压缩等操作后,进行图像分割和特征提取,从而进行分类的一种典型的模式识别方法。图像预处理(Imagepreprocessing)图像的预处理是所有与图像相关研究的第一步,同时也是最重要的一步,它是在图像进行深度处理之前的一些准备操作、基础性操作,目的是减少图像由于种种问题对后续操作带来的误差,从而提高处理结果的准确度。在研究过程中,获取图像时通常会由于光线、角度和待处理对象本身的磨损等问题,而对之后的分割操作和识别操作产生重大影响。通过预处理操作降低总体信息量,最大程度降低各种外界因素对图像的影响,这是对处理采集到的铜镜图像必不可少的步骤。比如对图像进行分割时,将三通道的彩色图像进行灰度化处理就可以减少图像本身的信息量,去除掉了大量和处理目标无关的信息。预处理操作有很多,比如对图像类型进行转换(彩色图像转换为灰度图像等),对图像对应的数据类型进行转换(uint8转换为double等),对图像进行操作(切割,缩放等),调整图像对比度,去除噪声,对图像进行腐蚀、膨胀操作等。本章主要介绍铜镜图像分割前的预处理步骤,即对想要感兴趣的铜镜的位置的获取,其中包括噪声去除、灰度化、对需要的位置进行定位。灰度化本文研究用的图像多为杂志和网页展示图像,都是彩色图像,三通道的彩色图像除了有大量的颜色信息外还有亮度信息,在处理时需要占用很大的空间,并且增加运算量,在处理这么庞大的信息量时处理图像的速度会明显降低,而达不到系统实时性的要求,因此必须要在对图像进行各种处理之前将彩色图像转换为灰度图像,不仅不会影响处理结果还可以去除很多无用信息,从而加快后续的处理速度。假设灰度后的图像为GrayIm,在点(i,j)处的灰度值为GrayIm(i,j),则有一下几个算法将指定图像每个像素点的RGB三个分量计算出该像素点的灰度值,使该图像只含亮度而不含彩色信息。最大值法将彩色图像中颜色信息R,G,B中的亮度最大值作为对应灰度图像的灰度值,即:GrayIm(i,j)=max(R,G,B)平均值法将彩色图像中颜色信息R,G,B中的亮度值求平均得到的平均值作为对应灰度图像的灰度值,即:GrayIm(i,j)=(R+G+B)/3加权平均值法根据一定的指标将彩色图像的颜色信息R,G,B进行加权平均,根据人眼对各种颜色的敏感度赋予R,G,B不同的权值,利用三者的加权平均值来选择作为灰度值。rgb2gray通过计算R,G,B分量的加权和,将RGB值转换为灰度值,即:0.2989*R+0.5870*G+0.1140*B本设计采用rgb2gray是将真彩色图像RGB转换为灰度图像Gray。rgb2gray函数通过消除色调和饱和度信息,同时保留亮度,来将RGB图像转换为灰度图。噪声去除在图像采集时,由于光线、角度等环境影响,采集到的图像多伴有各种不必要的噪声,如果不去除这些噪声就会加重后续处理的工作量,产生的误差将会严重影响处理结果的精确度,因此噪声去除特别重要。常用的噪声去除方法有均值滤波,中值滤波,高斯滤波等。均值滤波均值滤波指的是取待处理图像上的每个像素点相邻区域上所有像素的平均灰度值作为此处的灰度值,可以实现平滑处理。但是均值滤波会造成图像中边缘的模糊,取平均值的邻域越大,造成的模糊程度越严重。将收集到的像素点的灰度值换为其邻域的平均值的这个方法主要是减少了图像色彩的浓度,进一步消除了细小的噪音,但造成的问题是同时也把边缘信息和噪音一起减少了,在消除噪音的同时也消除了部分图像的边缘信息。中值滤波中值滤波指的是取待处理图像上的每个像素点相邻区域上所有像素的平均灰度值,对各个灰度值的大小进行排序(升序或者降序),然后取中间位置的值作为中值,将这个中值作为该像素的灰度值的代替值。若相邻区域像素个数为奇数,则区中间值作为中值;若相邻区域像素个数为偶数,则取中间两个值求平均作为中值。将收集到的像素点灰度值换为其邻域的灰度值的中值这个方法可以在去除噪音的同时最大程度保存下来完整的边缘信息。在本设计中采用中值滤波的方式去除噪声的效果很明显,噪声去除显著并且绝大多数边缘信息被完整地保存下来。高斯滤波高斯滤波指的是根据高斯函数的特点来选择权值的线性平滑滤波,高斯滤波可以有效地消除服从正态分布的噪音。当利用高斯卷积核对图像进行卷积时,加权系数与中心像素点及其相邻区域像素点的灰度值进行相乘和求和的运算,即可得到相邻区域中的中心像素点的一个新的值。如果相邻区域中所有的像素点的值都相同,则其新值就等同于原值。如果相邻区域中各个像素点间灰度值变化较大,在与高斯卷积核进行卷积运算后就会与相邻区域中的其他像素取平均值,这样就达到了消除噪音的目的。从理论上来说,高斯滤波的平滑效果会更好相较于均值滤波来说,其保留的边缘信息更完整。分别用均值滤波、中值滤波以及高斯滤波来对铜镜进行处理如下:图2-1去噪后的灰度图像Figure2-1Grayimageafterdenoising由图1可观察到经过的均值滤波进行去噪操作后,边缘信息保存的并不完整,边缘模糊比较严重;高斯滤波进行去噪操作后也有一定的边缘信息模糊。中值滤波操作后相对于均值滤波和高斯滤波保存了较为完整清晰的边缘信息。为了更加精确的提取目标图像,对以上三种滤波操作后的图像进行使用Roberts算子的边缘提取方法,经过调整将敏感度阈值设置在0.01:图2中先后展示了未经过去噪处理的,即原图灰度化后的的边缘图像,以及使用均值滤波、中值滤波、高斯滤波后的边缘图像。对比各个滤波操作后的边缘图像,可以更加清晰地发现和原图的边缘信息图像进行对照,均值滤波中的边缘信息保存得不完整,并且还有很多噪音无法去除。而高斯滤波和中值滤波的去噪效果很明显,可以清晰看到各个特殊部分以及图像本身的边缘信息,而中值滤波后的边缘图像更是保存了更多的边缘信息。因为所选取的目标图像是古代铜镜花纹,存在花纹表面有大量磨损,且花纹样式复杂,铜镜表面也存在大量细小花纹信息,故边缘信息较为复杂。边缘信息是图像分割预处理中的重要信息,更完整的边缘信息意味着分割的精度更高,因此本设计选取中值滤波作为古代铜镜花纹图像的去噪方法。图2-2边缘提取图像Figure2-2Edgeextractionimage边缘提取图像边缘是图像最基本特征,边缘就是指图像局部特性的不连续性。灰度或结构等信息的突变处称之为边缘。正是由于边缘的这种特征可以通过边缘信息来分割图像。图像的边缘有方向和幅度两种属性。边缘通常可以通过一阶导数或二阶导数计算得到,求得一阶导数的最大值即为边缘的位置,而求得二阶导数的零点作为边缘的位置。由于铜镜多呈现在展览位置,存在大量光照导致背景板颜色过重从而与铜镜颜色相近,致使颜色信息不足,难以提取准确的铜镜花纹信息。而各种铜镜的边缘的灰度值都存在极为明显的变化,因此可以通过边缘的检测来提取整个铜镜的位置。边缘检测方法最常用的微分算子是一阶微分算子。所谓一阶微分算子就是一种基于梯度的计算方法,通过模板作为核与图像的每个像素点做卷积和运算,然后选取合适的阈值来提取图像的边缘。常用的一阶微分算子的边缘检测方法有Roberts算子、Prewitt算子和Sobel算子。常用的二阶微分算子的边缘检测方法有Laplacian算子,其他的微分算子还有Canny算子,它是基于其在满足一定约束条件下推导出来的边缘检测最优算子。Roberts算子Roberts算子又称为交叉微分算法,是利用局部差分算子寻找边缘的算子,指在像素点的对角线的方向上求得周围相邻的像素点灰度值的差值来作为梯度幅值的近似替代值。Roberts算子的特点是提取的边缘线条较粗。其模板分为水平和垂直方向,如以下公式所示,其中表示水平方向,表示垂直方向。观察其模板可以看出,Roberts算子能够较好的增强主副对角线上的边缘信息。Prewitt算子Prewitt算子的边缘检测原理是,利用像素点上下、左右邻点的灰度值的差值,在边缘处达到极值从而进行边缘检测。Prewitt算子有两个有向算子,这两个方向模板一个沿着水平方向进行边缘检测,一个沿着垂直方向进行边缘检测。由于Prewitt算子采用3×3模板对上下左右区域内的像素值进行计算,而Robert算子的模板为2×2,所以Prewitt算子在水平方向和垂直方向的边缘检测结果都比Robert算子所检测到的边缘结果更加明显。Prewitt算子适合用来识别噪声较多、灰度渐变的图像,其计算公式如下所示,其中表示水平方向,表示垂直方向:Sobel算子Sobel算子是一种用于边缘检测的离散型微分算子,它将高斯平滑和微分求导有效的结合起来。Sobel算子用于计算图像的明暗程度的近似值,将目标图像边缘处的明暗程度信息设定一个边界值,超过这个值就意为边缘。所以这就牵扯到了一个权值的概念,即在Prewitt算子的基础上将加上权值,认为相邻点的距离长度对当前目标像素点的影响是有所不同的,对于距离近的像素点来说,其对当前目标像素点的影响肯定是最大的,从而实现了图像的锐化,便于突出边缘轮廓的信息。Sobel算子边缘检测原理是,取像素点上下左右邻域四个邻域内各个像素点的灰度值的加权差,在边缘处达到极值从而进行边缘检测。Sobel算子有两个,一个是检测水平边缘的,一个是检测垂直边缘的,与Prewitt算子相比,Sobel算子对像素的位置的影响做了加权,可以降低边缘模糊程度。因为Sobel算子结合了高斯平滑和微分求导,所以得到的边缘检测处理结果会具有更好的抗噪性,它对边缘的定位也更准确,多用于噪声多、灰度渐变的边缘图像处理。其模板如下所示,其中表示水平方向,表示垂直方向:Laplacian算子Laplacian算子是一种常用的二阶微分算子,常用于图像增强邻域和边缘提取。其边缘信息提取方法是通过灰度差分计算相邻区域内的像素。Laplacian算法的基本步骤有分为以下几点:判断图像的中心像素点的灰度值及其相邻区域中各个像素点的灰度值,如果目标像素点的灰度值更高就将目标像素点的灰度进行提升;若目标像素点的灰度值较低,则降低其灰度,从而实现图像的锐化处理;在实现的过程中,Laplacian算子通过对八领域内的像素求梯度值,将所求得的梯度值相加得到的和用来判断目标像素灰度与相邻区域内其他像素点灰度的关系;最后通过梯度运算实现对目标像素灰度的调整。Laplacian算子的八领域模板如下所示,通过模板说展示的可以看到,当相邻区域内的像素点灰度相同时,模板的卷积结果为0;当中心的像素点的灰度值比其相邻区域内的像素点的灰度值高时,模板的卷积结果为正数;当中心的像素点的灰度值比其相邻区域内的像素点的灰度值低时,模板的卷积结果为负数。Canny算子Canny算子是一种多级边缘检测算法,它是由图像的梯度运算和高斯函数平滑结合计算得到的算子,计算时取高斯函数的一阶导数。根据Canny算子具有的沿梯度方向存在反对称性和在边缘方向具有对称性的特点,使得Canny算子在边缘的精确检测定位达到理想效果,抗噪声方面也较为理想。Canny算法的基本步骤有分为以下几点:降噪,选择高斯模板进行平滑处理;梯度计算,求偏导数得到梯度的方向和幅值;非极大值抑制,由偏导数计算所得到的在梯度方向上的像素点梯度值与其前后两个像素点的梯度值进行对比,将局部梯度极大值和在此点处梯度最大的像素点保留下来,其他像素点的梯度值置为O;双阈值检测并连接边缘,获取边缘图像。分别采用用Roberts算子、Sobel算子、Prewitt算子、Laplacian算子和Canny算子对古代铜镜花纹图像进行边缘提取,提取效果如图3所示:图2-3边缘提取图像Figure2-3Edgeextractionimage由图3可以看到当选取同一阈值时,Roberts算子在该设计中展现的效果最好,所以该阶段性采取的是Roberts算子,Roberts算子是一种斜向偏差分的梯度计算方法,梯度的大小即为边缘的强度,梯度的方向与边缘的走向垂直。Roberts算子对具有陡峭的低噪声的图像处理效果较好。边缘检测在MATLAB中提供了edge()函数来完成边缘检测,本设计中采用的格式为:edge(I,'roberts',thresh,direction)根据所自定义的敏感度阈值thresh,用Roberts算子进行边缘检测,它忽略了所有小于阈值的边缘。当thresh为空值时,自动选择阈值。腐蚀、膨胀、开运算和闭运算腐蚀、膨胀、开运算和闭运算都属于数学形态学的范畴。数学形态学是以格论和拓扑学为基础建立的一门图像分析学科,是数学形态学图像处理的基本理论,它是具有完整理论、方法以及算法体系的学科。其基本运算包括腐蚀和膨胀、开运算和闭运算、形态学梯度等。数学形态学旨在通过具有一定形态的结构元素去度量和提取图像中对应的形状以此可以进行图像是识别与分析,形态学就是一种非线性图像的处理及分析方式。腐蚀和膨胀腐蚀和膨胀是形态学的两个基本操作。通常在二进制图像是进行,通过将像素添加到所处理图像中铜镜对象的感知边界,放大或缩小明亮白色区域。以白色前景,黑色背景的图像为例。腐蚀和膨胀实际上是类似于轮廓检测的技术,即删除或增加铜镜目标边缘的一些像素,使得铜镜目标总体被缩小或者放大。腐蚀操作主要是去除比自定义的结构元素小的像素点,是一种消除边界点,使边界内部收缩的过程,通过删除这些小的像素点可以达到将细小连接的区域分离开;而膨胀操作主要是将与图像中的目标有接触的所有背景点合并到目标中,使边界向外部扩张的过程,即有细小间隔的区域连接起来,使其连成一个整体,从而达到填充的目的。开运算和闭运算腐蚀和操作二者合并,不同的次序会产生不同的结果。先腐蚀后膨胀的过程称为开运算,用来消除细小物体,在纤细处分离物体,平滑物体边缘;先膨胀后腐蚀的过程称为闭运算,用来填充物体内的细小空缺,连接邻近物体,也能平滑物体边缘。在MATLAB图像处理中有imopen()函数,其格式为J=imopen(I,SE)对灰度图像或二值图像I进行形态开放的开运算,即先腐蚀后膨胀,返回打开的图像,SE是由strel或offsetstrel函数返回的单个结构化元素对象。se=[1;1;1];imO=imopen(edgeim,se);在MATLAB图像处理中有imclose()函数,其格式为J=imclose(Im,SE)对灰度图像或二值图像Im进行形态闭合的闭运算,即先膨胀后腐蚀,SE是由strel或offsetstrel函数返回的单个结构化元素对象。在图像处理中还有自定义的结构元素称为strel对象。在MATLAB中,strel函数用于新建strel对象,创建自定义形状对应的结构元素。se=strel('rectangle',[25,25]);%矩形结构元素tianchongim=imclose(imO,se);%图像聚类、填充图像连通区域在MATLAB图像处理中有删除小面积对象的bwareaopen()函数,本设计中采用的格式是:bwareaopen(BW,P,conn),用于移除经过处理的目标图像中所有小于P的连通图像,即删除面积小于P的对象,conn对应邻域情况,默认情况下使用八邻域。origlvboim=bwareaopen(tianchongim,2000);本章小结(Thesummaryofthischapter) 本章主要首先介绍了图像处理的主要操作,介绍了预处理的大致情况和所涉及的操作步骤。之后详细介绍了古代铜镜花纹识别过程中图像分割前的预处理操作。首先将图像进行灰度化,将三通道图像转变为单通道图像,减少图像自身携带的信息量,可以加快后续操作的处理时间。使用中值滤波去除噪声的方式对灰度图像进行处理,中值滤波的好处在于能够较好的保存下来图像的边缘信息,可以使后续的边缘提取操作更加精确。边缘检测算法通过和多个边缘检测算子提取边缘效果对比之后,选择Roberts算子对已进行过中值滤波的灰度图像进行边缘检测。通过腐蚀与膨胀、开闭运算实现对图像的填充和精细化,根据开闭运算之后的图像可以得到一个清晰的像素点分部的图像。这对之后观察像素点的分布很有帮助,可以通过对像素点数量的一个处理从而达到可以裁剪得到目标铜镜所在精确区域。目标图案的提取Extractionofthetargetpattern中心图像的分割算法(Centerimagesegmentationalgorithm)该阶段采用从行列角度搜索图像的大致位置,将通过开闭运算的二值图像通过扫描行方向上和列方向上的最大的白色像素值得到应该切割的铜镜粗位置。本设计在行方向上设定一个x行1列的全零数组X1,通过循环该二值图像的所有像素点,将每行的白色像素点个数存放在X1中,即此时X1中的(i,1)均为每行白色像素点的总和。fori=1:xforj=1:yif(CDW(i,j)==1)%白色像素点X1(i,1)=X1(i,1)+1;endendEnd则此时X1中该列的最大值及其所对应的行号就是白色像素点最多的一行,从该行出发向上和向下扫描,白色像素点的个数都一定小于该行像素点的个数。故只要满足该行像素点存在(即像素点数量大于一定值)且行号存在于(1,x)则向上和向下扫描。此时得到的图像为切割完上方和下方,每行都充满目标像素点。IX=f(PX1:PX2,:,:);同理,在列方向上设定一个1行y列的全零数组Y1,通过循环第一次切割完行的二值图像范围内的所有像素点,将每列的白色像素点个数存放在Y1中,即此时Y1中的(1,j)均为每列白色像素点的总和。forj=1:yfori=PX1:PX2%在确定行的范围内再确定列if(CDW(i,j)==1)%白色像素点Y1(1,j)=Y1(1,j)+1;endendEnd则此时Y1中该行的最大值及其所对应的列号就是白色像素点最多的一列,从该图像的最左边出发向右扫描和最右边出发向左扫描,一定会遇到白色像素点最多的一列,即从两边出发向中间扫描得到的白色像素点的个数都一定小于最多那一列白色像素点的个数。故只要满足该列像素点存在(即像素点数量小于一定值)且列号存在于(1,y)则两边向中间扫描。此时得到的图像为切割完左方和右方,每列都充满目标像素点。DW=f(PX1:PX2,PY3:PY4,:);最终得到的粗定位的图像即为切割完上下左右无用区域以后的图像。特征图像的截取算法(Featureimagecapturealgorithm)由于本设计涉及的铜镜花纹样式繁多,角度各异,且各个铜镜图像中铜镜目标的磨损程度不一,特征提取较为复杂,采用更加快捷的直接裁剪的方式。ginput()函数提供了一个很好的可视化的十字光标,可以通过鼠标精确选择我们需要的位置,设计中采用从图像坐标系中读取两个点,可以直接通过选取对角线来得到想要裁剪的图像位置。[x,y]=ginput(2);再通过imcrop()裁剪函数,imcrop()函数的格式是:J=imcrop(I,[x,y,width,height]),其中(x,y)表示裁剪后左上角像素点在原图像中的位置,width表示裁剪后图像的宽度,height表示裁剪后图像的高度。设计中采用(x(1),y(1))表示左上角像素在原图中的位置,(x(2),y(2))表示右下角像素在原图中的位置,宽度通过取x(2)与x(1)差的绝对值结果来记录,高度通过取y(1)和y(2)差的绝对值结果来记录。IM=imcrop(DW2,[x(1),y(1),abs(x(1)-x(2)),abs(y(1)-y(2))]);最后对直接切割出来的特征图像进行命名,并通过imwrite()函数保存。本章小结(Thesummaryofthischapter)本章介绍了各个目标图像的截取提取。首先介绍了中心目标图案的截取方法,通过对垂直方向和水平方向的投影得到各个方向上像素点最多的一行,根据像素点的分布情况从而进一步确定了目标图像的边界长宽,进行裁剪即可得到中心目标图案的精确位置。之后介绍了特征图像的截取方法,通过选择对角线实现自由直接裁剪,相对简单直接的解决了特征图案复杂且由于图像本身各种磨损或是环境明暗等因素所带来的特征图案不易识别的问题,这个方法过于直接,但也是目前学习阶段后可以较好获得特征图像的办法了。特征花纹识别算法Featurepatternrecognitionalgorithm基于卷积神经网络识别(Recognitionbasedonconvolutionalneuralnetwork)卷积神经网络(ConvolutionalNeuralNetwork,CNN)是属于前馈型神经网络的一种,它在许多大型图像处理识别中起到关键性作用,被广泛应用于图像分类、定位等领域。作为一个多层神经网络模型,卷积神经网络是由多个二维的平面所组成的,与传统的神经网络相比,卷积神经网络增加了具有平移不变性的池化层和方便特征提取的卷积层。卷积神经网络中有三个基本概念:局部感受野、共享权值和池化。添加局部感受野和权值共享的方法的实际是为了降低参数数目,因为传统的神经网络,层与层之间通常都使用全连接的方法,而这对卷积神经网络来说会使得要处理的数据异常强大,故引入这两个方法降低。局部感受野局部感受野是指在对图像进行处理操作时,由于图像间的联系较为紧密,而距离稍远的像素点的关联性实际上是较为弱化的,因此采取对局部信息的处理,同时也避免了完全不必要的对全局图像的感知,并且在之后将感知到的信息能够综合起来从而得到全局信息。对于一个通常意义上的深度神经网络来说,即在一个标准的前馈神经网络中,往往会把图像的一个或者更多的像素点进行连接并连接到每一个神经元中,而对于卷积神经网络来说,则是将每一个隐藏的结点只连接到图像的某些区域上,从而使得训练参数的减少。而这个某些区域就是局部感受野。在使用局部感受野后,参数降低得仍然不完全,这时就需要使用到共享权值的方法来降低参数数量。图4-1CNN结构图Figure4-1CNNstructurediagram从结构图中可以看到,卷积神经网络的输入图像这一层是与卷积层相连的,将图像输入网络进行训练和识别,卷积网络中间部分是由卷积层和池化层连接组成。每一个神经元的作用都是为了提取目标图像的局部特征,每一个神经元都和上一层的局部感受野相连结,按照卷积层、池化层、卷积层、池化层的顺序交替进行操作,最后将目标图像数据送入全连接层得到输出。从结构图可以清晰认识到卷积神经网络是一个非全连接的网络,卷积层和池化层的交替操作可以保证在出现平移、缩放甚至其他特殊变形时仍然能保持高度的不变性。卷积层卷积神经网络的卷积层作为特征的提取器,作用是学习输入图像的特征表示,卷积层中的神经元排列成特征图的形式,特征图里的每个神经元都有局部感受野。在计算新的特征图的过程中,将输入与训练得到的权重进行卷积操作,使得神经元对应的权值都是相同,而由于权值相同,故也可以减少训练参数。池化层池化层也称为下采样层,由于需要处理的图像往往都比较大,使用池化层的目的是为了降低特征图的空间分辨率,从而实现对输入的扭曲和平移的空间不变性,并且可以缓解过拟合现象。输入的数据经过卷积计算之后都可以将所得到的数据映射到高维空间,如果只进行卷积计算,维数会越来越高,导致出现错误,池化层利用局部性原理,对图像进行抽样,从而降低了特征图的空间分辨率,在降低空间分辨率就减少了需要处理的数据量,还可以保留有效信息。故卷积神经网络结构中,卷积层通常与池化层相连结。卷积层和池化层的交替操作的运算方式,即将卷积层和池化层看作成对出现,这样既可以实现特征提取又可以避免维数过高带来的出错。设置训练集训练集是用于模型拟合的数据样本。测试集是用于评估最终模型在各种不同情况下的识别能力,即训练模型的泛化程度。将需要识别的草叶纹图案的一定量图像存放在w文件夹,将非草叶纹图案的一定量图像存放在y文件夹。将存放的两类三通道图像通过灰度化和统一大小的函数生成相同大小的二值图存放在w1文件夹和y1文件夹。forj=1:img_numimage_name=img_path_list(j).name;image=imread(strcat(file_path,image_name));image=rgb2gray(image);crop_image=imresize(image,[400,400]);imwrite(crop_image,strcat('w1/',image_name));%保存文件Endforj=1:img_numimage_name=img_path_list(j).name;image=imread(strcat(file_path,image_name));image=rgb2gray(image);crop_image=imresize(image,[400,400]);imwrite(crop_image,strcat('y1/',image_name));%保存文件End分类问题代码的前边是读取自定义的数据集,把它保存成imageDatastore格式,这种格式只需要提供图片的路径信息而不用把图片全部读入内存中,因此非常适合大规模的数据集。ds=imageDatastore('image/','LabelSource','foldernames','IncludeSubfolders',true);[trainDigitData,valDigitData,testData]=ds.splitEachLabel(0.5,0.3,0.2,'Randomize');%Preparedata按比例拆分CNN之所以能引起广泛关注,就是在于它最初在图像分类方面取得很大的成功,后来人们发现对于其他的分类问题,CNN也有很好的性能。这里要解决的分类问题,就是训练自己的分类网络。所谓训练就是为每层网络之间寻找使得costfunction最小的权值,这些权值刚开始是按照某种分布随机初始化的,我们用数值的方法求costfunction的最小值。一般来说,我们用神经网络建立的是一个非常复杂的模型,我们往往能难找到这个模型的最小值,但可以找到它的极小值(局部最小值),这些极小值已经很接近我们要找到最小值。要训练自己的网络,要先建立自己的网络,并设置一定的训练参数。在matlab中用来建立网络的语句如下:%Definenetworklayerslayers=[...imageInputLayer([400,400,1]);batchNormalizationLayer();convolution2dLayer(5,20);batchNormalizationLayer();reluLayer()maxPooling2dLayer(2,'Stride',2);%最大池化fullyConnectedLayer(2);softmaxLayer();classificationLayer(),...];直接用和数据集同等图像大小的值为数组建立网络,本设计是建立一个9层的分类网络,包括输入层,标准化层,卷积层,标准化层,激活函数层,全连接层,去最大值层,分类层。用来设定修改参数的语句如下:options=trainingOptions('sgdm',...'ValidationData',valDigitData,...'Plots','training-progress',...'ExecutionEnvironment','cpu');这些参数是CNN网络的基本参数,sgdm是随机梯度下降与动量优化器,可以使用“动量”名值对参数来指定动量值。ValidationData是在训练期间用于验证的数据,指定为图像数据存储,该数据存储返回两列表或两列单元格数组、表或单元格数组中的数据。验证数据的格式取决于任务的类型,并与trainNetwork函数的有效输入相对应,只支持单一输入的网络。Plots指的是要在网络训练期间显示的情节,指定为由“情节”和以下两个情节之一组成的逗号分隔对:“none”-训练时不要显示情节,“training-progress”-训练进度计划。图中显示了小批量损失和准确性、验证损失和准确性,以及关于训练进展的附加信息。Plots在右上角有一个停止按钮。点击按钮停止训练,返回网络当前状态。ExcutionEnviroment是训练网络的环境,可以在CPU(‘cpu’)上做,也可在GPU(‘gpu’)上做,可以并行(‘paralle’),默认的情况是先测试cpu,如果不可用再测试gpu。设定好网络结构和训练参数后,可以用:net=trainNetwork(trainDigitData,layers,options);来训练自己的网络,用trainDigitData做训练数据,训练layers网络,在训练过程中选择option中的训练参数。testLabel=classify(net,testData);precision=sum(testLabel==testData.Labels)/numel(testLabel)输出识别内容图4-2识别分类结果Figure4-2Recognitionandclassificationresults从
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 14048.3-2025低压开关设备和控制设备第3部分:开关、隔离器、隔离开关及熔断器组合电器
- 常州市溧阳中学高三地理一轮复习第三章(6)农业学案
- 2025年中职(建筑装饰技术)施工工艺阶段测试试题及答案
- 2025-2026年初一语文(单元)上学期期中测试卷
- 2025年中职美容美发(皮肤护理方法)试题及答案
- 2026年综合测试(交通工程能力)考题及答案
- 2025年高职城市轨道交通车辆技术(车辆驾驶)试题及答案
- 2025年大学护理(护理伦理)试题及答案
- 2026年注册会计师(会计)考点梳理及真题
- 2025年大学数字媒体设计(数字媒体创意)试题及答案
- 2025四川成都东部新区招聘编外工作人员29人笔试考试参考试题及答案解析
- 《11845丨中国法律史(统设课)》机考题库
- 2025年消防设施操作员中级理论考试1000题(附答案)
- 广东省领航高中联盟2025-2026学年高三上学期12月联考地理试卷(含答案)
- 人工挖孔桩安全防护课件
- 2025年广西普法考试题目及答案
- 防火门安装验收标准方案
- 甲状腺手术术后护理指南
- 员工吸烟区管理规范培训
- 2026年日历表含农历(2026年12个月日历-每月一张A4可打印)
- YS/T 1019-2015氯化铷
评论
0/150
提交评论