数字图像处理实战 课件 第8、9章 QR码的检测、钢轨轨面缺陷检测_第1页
数字图像处理实战 课件 第8、9章 QR码的检测、钢轨轨面缺陷检测_第2页
数字图像处理实战 课件 第8、9章 QR码的检测、钢轨轨面缺陷检测_第3页
数字图像处理实战 课件 第8、9章 QR码的检测、钢轨轨面缺陷检测_第4页
数字图像处理实战 课件 第8、9章 QR码的检测、钢轨轨面缺陷检测_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第8章QR码的检测1分析项目需求目录了解项目背景2图像的预处理3定位块的检测4QR码的分割58.1了解项目背景二维码是将某种特定的形状元素按一定格式在二维平面上排列的黑白相间的图形,在今天已成为移动支付、电子客票、签到打卡、身份认证等场景中的主流工具。二维码的本质是一种信息存储工具,二维码自身可以存储一定量的信息,也可存储网络地址供智能手机访问。二维码有很多不同的技术标准,目前使用最广泛的是QR-Code标准,QR是快速响应(QuickResponse)的简写。本项目主要研究从手机拍摄的自然场景图像中检测和定位QR码,提供求解该问题的分析思路和基本方法。1分析项目需求目录了解项目背景2图像的预处理3定位块的检测4QR码的分割58.2分析项目需求8.2.1数据说明本章所使用的数据集由作者自行使用手机拍摄,包含不同投影大小、朝向和拍摄角度的QR码图像,用以检验算法的稳健性。8.2分析项目需求8.2.1数据说明为了达到能被检测设备“快速响应”的目标,QR码中有许多特别设计的结构元素,它的基本结构如下图所示。QR码最显著的结构是位置探测图形,它的作用是方便图像处理算法来对QR码进行定位,本章简称为定位块。一个完整的QR码包含三个定位块,分别位于码区的左下、左上和右上角。8.2.1数据说明每个定位块可以看作是由黑、白、黑且边长之比为7:5:3的3个不同大小的同心正方形叠加而成。这样的结构是经过精心设计的:当使用线扫描类型的读取设备扫描QR码时,穿过定位块中心位置的水平扫描线上的黑色和白色像素段会呈现1:1:3:1:1的宽度比。同时由于正方形是中心对称图形,从任意方向扫描图像,穿过定位块中心点的扫描线都会检测到这个独特的比率。即使图像中的QR码发生了旋转和轻微变形,以上的两个设计仍确保了通过在扫描线中检测黑白像素段比例的方法,能够迅速可靠地在含有QR码的图像中检测出QR码的位置。8.2分析项目需求8.2.2项目目标本项目以手机拍摄的包含QR码的图像为研究对象,主要利用边缘检测、扫描线算法及透视变换等算法来实现以下目标。(1)通过在边缘轮廓中检测三层嵌套结构和比例特征来定位图像中的QR码定位块。(2)根据定位块位置确定QR码的范围及朝向。(3)对切割出来的QR码通过透视变换得到标准化的QR码,便于进一步的信息提取。8.2分析项目需求8.2.3QR码检测流程QR码检测的流程如下图所示,所包含的主要步骤如下。(1)图像预处理,包括RGB转灰度、中值滤波去噪和自适应二值化。(2)在二值图像的轮廓中检测三层嵌套结构并使用线扫描算法进一步筛选定位块。(3)根据定位块信息计算QR码的四个角点及朝向,使用几何校正及缩放得到标准化的QR码图像。(4)调用函数进行QR码的内容解析。8.2分析项目需求1分析项目需求目录了解项目背景2图像的预处理3定位块的检测4QR码的分割58.3.1彩色图像的灰度化原始的QR码只包含黑白两色,图像中的其他颜色对QR码的识别没有价值。使用灰度化算法把彩色图像转化为灰度图像,即减小了图像的数据量,也便于后续的图像二值化操作。使用OpenCV中的cvtColor函数实现彩色图像到灰度图像的转换。8.3图像的预处理8.3.2图像去噪本章用于检测QR码定位块的轮廓嵌套关系计算容易受到图像噪声的影响,需提前进行图像去噪。使用手机拍摄的QR码照片易出现椒盐噪声,即黑背景下的白噪点和白背景下的黑噪点。中值滤波基于图像局部邻域的统计排序过滤噪声,使用中心像素邻域内灰度值的中值来替换中心像素的值。具体步骤如下。(1)对于每一个图像像素点,确定以该像素为中心的一个邻域窗口,形状通常为正方形,尺寸大小可根据图像细节和噪声情况来调整。(2)确定邻域窗口的形状和大小后,针对每一个像素,将以该像素为中心点的邻域窗口内所有像素点的灰度值进行排序,然后使用排序的中值替换中心点像素的灰度值。中值滤波的去噪效果依赖于图像的局部特征和邻域窗口的大小,窗口过大过小都会影响去噪效果。对于使用手机随意拍摄的含有大小不确定的QR码的图像,很难确定固定的滤波器窗口尺寸。8.3图像的预处理8.3.2图像去噪自适应中值滤波算法,能够自适应地根据算法调整滤波器窗口尺寸,在保留图像细节的同时平滑噪声,具有更好的鲁棒性。记是像素对应的邻域窗口,是窗口内的最小灰度值,是窗口内的最大灰度值,是窗口内所有灰度值的中值,是像素的灰度值;是所能允许的最大尺寸。自适应中值滤波算法的流程如右图所示。8.3图像的预处理8.3.3灰度图像的二值化由于QR码本身由黑白两色构成,图像的对比度高使,适合使用阈值方法进行二值化。考虑到手机拍摄的含QR码的图像可能存在光照不均匀的情况,尝试使用大津法和自适应阈值分割方法。对比上图的结果,可以发现自适应阈值方法拥有更好的分割结果。8.3图像的预处理8.3.3灰度图像的二值化对比示例图像在两种不同二值化算法下的结果,虽然自适应阈值分割方法(右图)会使图像中非QR码区域产生扰动,但是却非常好地处理了处理了QR码所在的区域。本案例最终使用自适应阈值来处理图像,之后对结果图像进行第二次中值滤波。8.3图像的预处理1分析项目需求目录了解项目背景2图像的预处理3定位块的检测4QR码的分割5经过预处理得到的二值图像中,不仅包含QR码,也包含文字等其他的干扰成分,需要根据QR码定位块的结构特征设计算法对其进行定位。定位块检测的流程(1)使用OpenCV库函数提取二值图像中黑色区域的轮廓对象以及反映各轮廓间拓扑关系的层次树(2)对轮廓层次树进行遍历,找出其中满足3层嵌套关系的轮廓(3)为了排除图像中非定位块结构造成的干扰,使用扫描线算法找出满足扫描线上黑白线段长度比为1:1:3:1:1的三层嵌套结构8.4定位块的检测8.4.1提取二值图像的轮廓使用OpenCV中的findContours函数可检测二值图像中的边缘,并返回保存在列表hierarchy中的边缘之间的层次树。使用函findContours从二值数值图像中找出的轮廓,如图所示。8.4定位块的检测8.4.2 嵌套关系检测遍历列表hierarchy,递归有包含关系的轮廓,如果某个轮廓包含子轮廓,则继续对子轮廓进行递归查找它的子轮廓。通过判断每个轮廓所对应的递归层数,就可以从列表hierarchy中找出含有三层嵌套关系的轮廓,作为定位块的候选。右图显示了从前图中检测到的包含三层嵌套关系的轮廓,经过上述处理,QR码的定位块都被标记出来,但也有图像中的无关结构符合三层嵌套关系,需要进一步进行处理。8.4定位块的检测8.4.3 定位块线扫描特征筛选此处使用1:1:3:1:1的数量特征来确定属于真正定位块的嵌套轮廓结构。先计算满足比例关系的特征的线段中心,再判断这些线段中心是否包含在嵌套结构内,满足条件的嵌套结构即为QR码的定位块。对经过8.3.3小节处理得到的二值图像,在双层for循环中使用线扫描方法检测图像的行中是否存在符合定位块特定数量比例的结构。线扫描过程中,判断当前点的取值是否与前一个点的取值相同。如果取值相同,则表示该点所在线段长度的k加1。如果取值不同,则该点为新线段的起点。扫描结束后要计算5个线段的长度比例,由于数字图像存在量化误差,允许各段的比例与1:1:3:1:1存在一定误差。经过本小节处理后,可进一步去除无关干扰结构,只保留图像中的定位块。8.4定位块的检测1分析项目需求目录了解项目背景2图像的预处理3定位块的检测4QR码的分割58.5QR码的分割8.5.1计算三个定位块在QR码中的位置关系检测出图像中QR码的三个定位块后,还需要判断这三个定位块的位置关系以及QR码的右下角点的位置,才能从原图中完整分割出QR码,以便进行后续的处理和识别。如图所示,将标准方向的QR码的左上角、左下角和右上角分别标记为top、bottom和right。由于图像中的QR码可能会发生旋转和变形,需要对这三个定位块进行几何位置判断,将它们与top、bottom和right一一对应。处理思路:求出三个定位块轮廓两两之间距离的最大值,标记不在最大距离点对中的定位块为QR码中top位置的定位块,再根据top与最大距离点对连线的位置关系将其余两个定位块分别标记为right和bottom。8.5QR码的分割8.5.1计算三个定位块在QR码中的位置关系求出三个定位块轮廓中距离最大的两个轮廓后,计算这两个轮廓中心连线的斜率以及第三点到该连续的有向距离,即可通过右图判断QR码的朝向,进而给每个定位块指派正确的标记。要求出图像中QR码的明确区域,还需要确定QR码中没有定位块的第4个角点的位置。8.5QR码的分割8.5.2计算定位块的四个顶点求得三个定位块的位置和QR码的方向后,延长bottom定位块底部的两个顶点的连线,延长right定位块右侧的两个顶点的连线,两条延长线的交点就对应QR码的右下角顶点。在此之前,要先求出每个定位块最外层黑色正方形轮廓的4个顶点,并且判断它们在定位块中的位置。(1)使用函数boundingRect得到定位块轮廓的最小外接矩形(如图最外侧的实线矩形所示),将该矩形的中心点作为坐标原点。(2)在每一个象限中遍历轮廓上的每一个点,求出与原点距离最远的轮廓点,这就是轮廓的顶点。(3)根据顶点与外接矩形中心坐标的大小关系,判断顶点处于大矩形的哪个位置并进行标记。8.5QR码的分割8.5.3计算QR码的第四个角点获得了所有定位块的4个顶点后,提取左下定位块的底部2个顶点和右上定位块右侧的2个顶点,对这两组顶点分别做延长线。两条直线将会在QR码右下角相交,这样就确定了QR码的第四个角点的位置。使用cv_updateCornerOr函数调整顶点的顺序,使顶点按照逆时针顺序排列,确保下一步处理时QR码保持正确的方向,如代码824所示。得到顶点及其在QR码中的相对位置后,使用getIntersectionPoint函数,由bottom定位块和right定位块的信息得到QR码右下角的顶点。最后将得到的QR码码区的四角坐标保存到名为ding_dian的列表中,先后顺序是左上角、左下角、右下角和右上角,类似于在QR码中写一个英文字母U。8.5QR码的分割8.5.4QR码的几何校正及缩放

在通过手机等手持设备获取含有QR码的图像时,无法确保QR码保持标准的朝向,且QR码图像的分辨率也会大小不一。为了方便后期QR码中的信息提取,需要将QR码图像进行几何校正及缩放,保证其符合标准朝向并且尺寸一致。本章使用OpenCV库的warpPerspective函数通过图像的透视变换来实现QR码的几何校正,设定输出的标准QR码的四个角坐标分别是[0,0]、[0,600]、[600,600]和[600,0]。如图提取出的QR码在右侧和下方边缘上有极少的缺失。由于QR码标准中设计了冗余信息,些许的失真并不会影响QR码的解析。对检测到并做了标准化处理的QR码,可以调用Python的pyzbar库来读取其中包含的数据。小结本章节以手机拍摄的含有QR码的自然场进图像为研究对象,主要介绍了根据QR码的结构特点设计数字图像处理算法以实现QR码的检测和识别。首先对图像进行包括RGB转灰度、中值滤波和自适应二值化的图像预处理,然后根据QR码定位块的特殊结构从边缘中查找三层嵌套结构并设计线扫描算法来检测出图像中的QR码定位块,最后根据检测出的定位块来确定QR码的四个角点位置以及QR码的朝向并利用透视变换得到标准化处理的QR码图像。标准化处理的QR码图像即可直接应用于后续的信息提取。第9章钢轨轨面缺陷检测1分析项目需求目录了解项目背景2图像预处理3基于种子生长算法的轨面缺陷检测49.1了解项目背景随着我国铁路运输事业的不断发展,铁路运营里程不断增加,列车运行速度也不断提高,车轮与钢轨轨面之间的相互作用力越来越大,钢轨轨面缺陷成为影响铁路运输安全的重要因素。为保障列车的行车安全,需要及时检测出钢轨轨面缺陷。其中的两个重要环节是轨面数据的采集和轨面缺陷的检测。传统的钢轨轨面检查主要依靠目视或人工小车检测,检测效率低、占用运输资源并且具有一定的危险性。随着科技的进步,我国研制生产了一系列高速综合检测列车,可以在运行中对轨道等基础设施进行检测。9.1了解项目背景机器视觉技术为从图像中检测和识别轨面缺陷提供了理论与工具。基于机器视觉的检测方法不干扰钢轨的工作状态,具有较好的容错能力和较高的安全性,是轨面缺陷检测的主流方法。基于机器视觉的轨面缺陷检测方法在实际应用中,仍面临一些困难。季节因素和光照条件变化会导致获取到的图像产生光照不均匀的情况,增加了缺陷检测的难度。不同路段和运营环境的钢轨表面状况可能不同,容易产生局部高光,增加了缺陷区域特征提取的难度。本案例主要研究如何使用图像处理方法克服轨面图像中的不均匀光照的影响来检测疤痕类缺陷。1分析项目需求目录了解项目背景2图像预处理3基于种子生长算法的轨面缺陷检测49.2分析项目需求本章使用北京交通大学的RSDDs数据集,包括原始的轨面图像和经过专家处理得到的缺陷掩模图像,所包含的缺陷类型为“疤痕”型。数据集包含两个子集,I型RSDDs数据集包含来自客运铁路的67个样本,II型RSDDs数据集包含来自货运铁路的128个样本。由于II型数据集的分辨率过低,本章选择针对I型数据开展疤痕类缺陷检测的研究。疤痕类缺陷实质上是钢轨表面的坑洞,在图像中表现为暗色的斑块,大小、位置和深浅都有一定的随机性。钢轨轨面的背景较为复杂,轨面图像中存在位置、宽窄和明暗都不确定的轴向条纹。在钢轨两侧,往往有灰度接近于0、宽度不一的黑色条纹。部分钢轨表面有较严重的锈蚀或油污,表现为黑色的不规则条带。9.2分析项目需求项目目标本项目以I型RSDDs数据为研究对象,主要利用连通成分标记、种子生长等算法来实现以下目标。对图像进行自适应预处理以消除钢轨轨面的非均匀光照和黑边干扰。自动确定种子生长算法的最佳上阈值。对轨面图像进行分割,得到缺陷区域,便于进一步的缺陷评估和处理。9.2分析项目需求轨面缺陷检测流程将图像从RGB格式转换为灰度图像,基于自定义算法消除轨面上的不均匀光照,得到去除背景的轨面图像。基于连通性分析去除黑边干扰。根据样本统计数据确定种子点选取规则。使用曲线拟合自适应地获取种子生长算法的上阈值。应用种子生长算法进行轨面缺陷的分割。1分析项目需求目录了解项目背景2图像预处理3基于种子生长算法的轨面缺陷检测49.3图像预处理轨面图像特点分析疤痕类缺陷表现为轨面上大小不一的坑洞,几乎不反射光线,所以这类缺陷区域的像素灰度值比周围的像素点的灰度值要小。沿轨道方向的水平线扫描轨面图像时,可发现同一条扫描线上大部分像素灰度都非常接近。理想情况下扫描线上的像素灰度值变化应该是相对平滑的,而当扫描到缺陷位置时灰度值会突然减小。轨面图像的上边缘和下边缘都有一段条带,且颜色比周围更“黑”,本章中称这种带状痕迹为黑边。9.3图像预处理使用大津法直接对样本进行图像阈值分割的效果不佳:很多不属于缺陷的深色区域被标记出来,同时缺陷区域只有一部分被分割出来。经分析原因如下:钢轨表面具有一定的弧度,不同的反射强度造成钢轨表面图像中出现明暗不一的条带,对同样属于暗色区域的表面缺陷区域造成干扰。而部分铁轨表面的不规则条状锈蚀区域也在全局阈值分割中被误识别为目标。钢轨表面缺陷所对应的坑洞本身深浅不一,采集到的图像中灰度不均匀。如果阈值过高,分割出来的深色区域要小于实际的缺陷区域,如阈值过低,会将轨面的其他非缺陷区域标记为缺陷区域。9.3图像预处理9.3.1轨面不均匀光照的消除读入图像后首先使用OpenCV中的cvtColor函数将其从RGB三通道格式转换为单通道的灰度格式。本章设计了扫描线处理算法,用于从原始图像中去除背景中的条带干扰。(1)对轨面图像进行逐行扫描,使用numpy库中的median函数获得每行像素灰度值的中值,记为t。(2)将灰度值大于30并且大于t-50的像素标记为背景像素,将其灰度值设为255。从右图可见扫描线算法有效地去除了由光照不均匀造成的大部分条带结构,但结果中仍存在黑边。9.3图像预处理9.3.2基于连通性分析的黑边去除单纯使用灰度信息无法判断像素属于黑边还是缺陷。进一步分析可以发现,黑边与缺陷区域在空间上不是连通的。因此可以将上下两条边界设置为种子,使用种子生长算法分割出结果中不属于背景且与上下两条边界相连通的像素,并将它们从处理结果中去除。研究RSDDs数据集中的缺陷掩模图,可以发现该数据集中对缺陷区域的大小做了限定,过小面积的缺陷并没有出现在掩模图中。为此计算所有目标区域的面积并通过设定面积阈值的方法将黑点筛除。1分析项目需求目录了解项目背景2图像预处理3基于种子生长算法的轨面缺陷检测49.4基于种子生长算法的轨面缺陷检测9.4.1种子点的提取为了考察缺陷区域的特征,本小节利用数据集中提供的掩模图像,绘制缺陷区域像素的灰度分布直方图,以此来明确判断标准。(1)将灰度形式的掩模图像转换为布尔型数组(2)使用布尔数组来引用图像中被标记为缺陷的像素(3)使用自定义函数plt_hist绘制缺陷区域像素的灰度直方图9.4基于种子生长算法的轨面缺陷检测9.4.1种子点的提取分析多幅图像中不同缺陷区域的像素灰度直方图,可以发现疤痕类钢轨表面缺陷的灰度直方图的峰值都集中在20左右,即缺陷内必定存在灰度在25以下的像素点。利用该先验知识在去除背景后得到的连通区域内部寻找满足条件的点,作为缺陷区域的种子点。9.4基于种子生长算法的轨面缺陷检测9.4.2上阈值的自适应选择经过9.4.1小节的种子点提取,得到包含于缺陷区域内部的种子点集合。根据这些种子点可以开展区域生长,需要在算法中设置合适的上阈值,也就是在区域生长过程中并入区域的像素的最大灰度值,以便对种子生长的过程进行一定的限制。从种子点开始进行区域生长,也就是不断地把与当前区域相邻且灰度小于上阈值的像素合并到区域中的过程。假设坑洞内壁相对底部与坑洞周边更为陡峭,疤痕型缺陷的径向剖面示意如图所示。9.4基于种子生长算法的轨面缺陷检测上阈值的自适应选择的原理计算不同上阈值时种子生长算法所得到的连通区域的面积,并绘制上阈值-面积曲线,该曲线应该具有类似sigmoid函数曲线的形状,如图所示。一开始的较为平坦的曲线对应坑洞内部较小的面积,由于内壁相对陡峭,这一段曲线对应的面积变化较小。当上阈值继续增加接近于坑洞边缘像素的灰值时,上阈值-面积曲线会有一个明显的跳跃。当上阈值大于坑洞周边像素的灰度值时,连通区域面积已经扩张到极限,上阈值-面积曲线进入第二个平坦区域。本节对上阈值-面积曲线使用sigmoid函数进行拟合,并利用sigmoid函数的连续性与阶跃的特性来选取最终的上阈值。9.4基于种子生长算法的轨面缺陷检测9.4.2上阈值的自适应选择上阈值-面积曲线的计算自定义函数area_of_gray用于计算某个种子点在给定上阈值yuzhi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论