李春晓,田怀文,刘 奇,陈俊光
(西南交通大学机械工程学院,成都 610036)
预处理是工程图识别的基础环节,其处理效果直接影响后续图形和字符的识别。工程图离线识别过程中,首先要将写在纸质或其他媒介上的图像经过拍摄或扫描转化为模拟信号。然后,经过模数转化电路转化成计算机能够识别的具有灰度值的数字信号[1]。在这个过程中会引入干扰噪声,主要包括由于背景色彩、拍摄角度、光照干扰和设备分辨率等因素造成的图像倾斜模糊,因纸张质量问题、扫描质量不佳和模数转换过程中所产生的孤立噪声点等。因此对图像进行预处理的目的就是减少上述因素对图像质量的干扰,进行图像校正,突出识别目标,从而获得清晰、标准的二值化图像。
图像算法的处理效果与多种因素有关,外界环境和识别对象的不同都会造成结果存在较大差异,因此针对工程图获取过程中的问题,选择最优算法组合进行预处理流程设计,直接影响图形字符的表达效果。对于复杂背景中的字符图像所存在的问题,张倩阳[2]设计了针对Android 系统离线字符识别的预处理流程;对于在线获取的手绘工程图中的笔画问题,汪文睿[3]设计了针对图形识别的笔画预处理流程。而对于本文的识别对象——离线工程图,本文所设计预处理流程如图1所示,能够在解决干扰噪声的同时淡化背景信息,从而最大程度地凸显目标内容,便于后续图形和字符信息的提取。
图1 图像预处理流程图
图像在生成和传输过程中,由于电器元件自身噪声及信号脉冲等因素影响,导致画面中掺杂背景噪声,而中值滤波是一种有效处理此类噪声的非线性滤波方法,能够在衰减随机噪声的同时保护图像细节。在降噪处理之前,首先需要将三通道的彩色图像转换成单通道的灰度图像,以便于简化处理过程。
摄像头采集的图像一般为RGB 格式,即红绿蓝3 个通道颜色,彩色图像中每个像素的颜色都是由R、G、B 3 个分量决定,三者的取值范围为[0,255],共256级,这样每一个像素点就有1600 多万种颜色变化范围。因此,在图像处理前,通常会先将各种彩色图像转变为灰度图像,从而减少运算量及提高运算速度,灰度图像同彩色图像一样也可以反映图像的亮度特征和色彩分布。
图像灰度化主要有最大值法、平均值法和加权平均法3种,其中前2种方法都是对3个分量做同等处理,而第3种方法是根据3个分量重要性分配以不同权值进行处理,方法如下:
按照人眼对三分量的敏感程度,根据相关研究,分配权值分别为a=0.59,b=0.3,c=0.11[4]。
噪声在图像中的表现形式为明显变化的灰度值,降噪处理就是利用这种特性进行削弱处理。中值滤波通过将目标区域的灰度值进行大小排序,并选取中间值作为当前像素灰度值,从而去除其中的灰度突变点,实现图像的降噪处理,具体步骤如下:
(1)选取滤波模板,将模板中心与图像中像素点位置重合;
(2)读取模板中各对应像素点灰度值,按照从小到大进行排序,并读取其中的中间数值;
(3)将模板中心位置的灰度值用中间数值代替;
(4)遍历整幅图像,完成中值滤波处理。
影响滤波效果的重要因素就是滤波模板的选择,包含方形、菱形和圆形等多种样式。同时,窗口大小对滤波的时间和复杂度也有影响,过大会由于参与计算的像素点太多造成图像的模糊和细节缺失;过小则会影响去噪效果。根据前人经验及多次实验的总结,本文最终选用3×3 方形模板进行滤波处理,处理前后对比效果如图2所示。
图2 去噪前后对比效果图
图像采集过程中,常因背景反光或拍摄角度等问题造成光照不均问题,这种现象的存在会使得图像目标区域和背景区域对比度下降,图像二值化后产生黑斑等问题,增加特征提取难度。为便于纸张轮廓与背景区域分离,采用如下2种方法进行实验分析。
直方图均衡化主要通过累积函数的方法对图像的灰度值进行重新调整,从而增强图像的对比度来减少光照的影响[5],具体处理步骤如图3所示。
图3 直方图均衡化处理步骤
对于光照不均图像直方图而言,如图4(a)所示,灰度主要分布在3个区域:前面灰度值较低的笔画区域、中间的阴影和纸张背景区域、后面灰度值较高的笔画背景区域(即纸张)。均衡化处理目标是使这3 个区域灰度值实现均匀分布,提高不同区域的对比度,便于目标轮廓的提取。处理后效果如图4(b)所示,可以明显看出,除极个别灰度值较为突出外,整体分布呈现均匀性和丰富性。
图4 均衡化前后图像直方图对比效果图
图5 所示为均衡化处理前后图像效果对比图,可以看出,虽然笔画区域与纸张区域的对比效果明显,但阴影区域灰度也同步增强。尤其右下角区域因与纸张背景区域灰度值极为相似,造成二者分离难度增加。
图5 均衡化前后图像对比效果图
HSV 同RGB 一样,都是色彩空间的表示方法。不同的是,RGB 是面向颜色空间,与人眼的感知差异较大;HSV 是面向用户感知的颜色模型,更注重于对颜色明暗和色调的表达[6]。RGB空间三分量相关性较高,任一分量的改变都会导致图像颜色的变化。而HSV 空间中,三分量相互独立,图像信息主要表现在色调和饱和度上,亮度对色彩信息影响较小,便于各分量分开处理。
对于本文光照不均的图片而言,阴影区域和非阴影区域的区别主要在于亮度的不同。本文将图像由RGB空间转化到HSV空间,使得H、S、V 3个分量在一维矢量上分布开来,通过量化之后可以在不改变图像原始色调和饱和度的基础上减少光照对图像的影响。
将RGB 空间一点(R,G,B)转化到HSV 空间的具体方法为:
如果H<0,则H=H+360,H的取值范围为0°~360°,V和S 的取值范围为0~1。通过将光照不均匀图片转化到HSV空间之后,提取其中的S(饱和度)图,处理前后效果如图6所示。可以看出,经处理之后纸张轮廓较为明显,有助于后续图像校正时纸张边缘信息的获取。
图6 空间转化前后效果图
图像采集时,常因相机镜头平面与图像平面不平行导致距离成像平面近的部分的图形尺寸比远的部分大,这种现象叫做透视变形。此时若直接提取特征信息,会因远处笔画较小和模糊造成信息丢失。因此,要恢复图像的原形就要对其进行校正处理,从而获取图像正视图。
由于后续求取透视变换关系需要畸变图像的4 个坐标点进行支撑,本文选取纸张边缘四角点作为目标点,通过霍夫变换求取纸张边缘直线,再根据直线的交点获取目标点坐标。具体步骤如下:
(1)使用Sobel算子对灰度图像进行边缘提取;
(2)对目标图像进行二值化处理;
(3)将目标图像映射到霍夫空间(此处准备2 个容器,一个用来展示霍夫空间概况,一个用来储存投票值)进行直线检测;
(4)求取局部极大值,设定阈值,过滤干扰直线求取纸张边缘直线;
(5)绘制直线,标定交点,求取坐标。处理效果如图7所示。
图7 纸张边缘点求解
透视变换是三维空间上的非线性变换,即将畸变图像投影到一个新的平面,从而消除视觉上的远近感。图像实质上是由无数像素值的坐标点构成,而透视变换可以理解为将图像中像素点进行坐标变换,实现图像视角的转换,得到图像正视图,转换关系的确定即透视关系的求解[7]。
通过上述所求纸张角点坐标值作为已知条件来求取透视变换前后图像的对应关系。假设(x,y)为畸变图像上一点,(x1,y1)为矫正后对应坐标值,则其满足如下关系:
将纸张四角点坐标带入,可以得到8 个方程,从而解出8 个未知数,即可求出对应关系。处理前后对比效果如图8所示。
图8 透视变换效果图
由于纸张边缘不齐、光照阴影等因素导致校正后图像存在边缘噪声,因此需要对其进行去边操作。去边操作的要求是在不破坏图像中图形的基础上,最大限度地减少边缘噪声,本文使用差分法进行检测去除,具体步骤如下:
(1)将目标图像转化为二值图像;
(2) 假设校正后图像为A,其长度方向像素为[0 ,a-1] ,宽度方向为[0 ,b-1] ;
(3)对图像A 进行边缘噪声检测,将其长宽方向像素各减少N(此处设置为50),此时长宽像素变为[N-1,a-N-1] 、[N-1,b-N-1] ,假设此时图像为A1,对图像A、A1像素进行做差处理;
(4)若A-A1≥N,说明不存在边缘噪声,此时图像A1即为目标图像;
(5)若A-A1 处理前后对比效果如图9 所示,可以看出边缘噪声得到了明显去除。 图9 图像去边效果图 经过二值化的图像存在笔画狭窄的间断和空洞现象,导致笔画连接不够饱满。形态学操作可以解决这一问题,通过在目标图像中移动结构元素,对结构元素与其下面重叠的像素进行交或并等运算实现图像的形态学操作。 图像二值化操作就是将图像上的像素值处理为只要有0和255两种,即黑白图像。二值化的关键在于阈值的选择,大于阈值的用最大值255来代替,而小于阈值的则用最小值0代替。目前常见二值化方法主要有固定阈值法和局部阈值法2种。 (1)固定阈值法是指整幅图像都用同一个阈值,一般采用平均灰度值、实验数据或灰度直方图等方式设定。固定阈值法效果图如图10所示。这种方法对阈值的选择要求较高,如果图像过暗或过亮,则二值化之后图像会出现局部全白或全黑的现象,图10(b)就是这种情况。所以,这种方法自适应性较差且易受外界环境的影响,不适合本文图像可能存在光照不均的情况。 图10 固定阈值法效果图 (2)局部阈值法是将目标图像划分为小块,再分别对每个小块进行阈值选取。对于存在光照不均问题的图像,若采用同一阈值则不能兼顾阴影区域和背景区域灰度差异,在综合利用局部信息的基础上,本文采用双峰法对图像进行局部二值化,步骤如下。 ①对图像进行分块处理,大小适中,不宜过大或过小,本文选择16×16 矩形块。 ②选择其中任一目标块,统计其中所有像素点的灰度值。对于目标图像的灰度图而言,其灰度值主要分为背景区域和图形笔画区域,如图11(a)所示。对于光照不均图像,经过处理之后阴影区域灰度值同背景区域接近,整体也相当于2 个集中区域,如图11(b)所示。分别求2 个区域灰度中值u1和u2,同时寻找最小频率灰度值umin作为阈值,且满足u1 图11 图像灰度频率分布 ③重复步骤(2),直至所有块处理结束。 上述方法能够充分考虑到图像不同部分的灰度差异,尤其对于存在阴影区域的图像。如图12所示为阴影图像处理前后对比效果图。 图12 阴影图像二值化效果图 形态学运算主要包含膨胀、腐蚀、开运算和闭运算4种。膨胀是将与物体接触的所有背景点合并到物体中,从而实现空洞填充和断裂连接;腐蚀将目标图形进行收缩,从而实现周围杂点的消除;开运算即先膨胀后腐蚀,主要用于磨平图像轮廓、消除毛刺;闭运算则是先腐蚀后膨胀,主要用于弥合笔画间断、填充空洞[8]。针对本文二值化后存在的问题,采用先膨胀后腐蚀的闭运算来对图像进行处理,具体步骤如下。假设目标二值化图像为f( ) x,y,前景物体灰度值为1,背景为0,结构元素的大小为3×3 像素。 (1)首先进行膨胀操作,用结构元素去扫描图像f( )x,y的每一个像素并与其做“与”操作,若结构元素中心点与其对应图像像素点都为0,则该像素为0,否则为1; (2)不断重复步骤(1),直至所有能和结构元素进行匹配的情况完成; (3)然后进行腐蚀操作,输出结果改为若结构元素中心点与其对应图像像素点都为1,则图像的该像素为1,否则为0; (4)直至图像中所有像素点完成上述操作,处理结束。 图13所示为膨胀腐蚀操作前后对比效果图,可以明显看出笔画规整饱满很多。 图13 形态学处理效果图 本文主要针对工程图预处理过程中的问题提出解决方案。对于干扰噪声,使用3×3 方形模板对灰度图像进行滤波去噪,保证去噪同时保护图形轮廓细节。对于透视变形,利用图纸角点坐标求取畸变前后透视关系,实现透视校正。阴影存在影响纸张与背景分离及图像二值化过程。对于背景分离,采用基于HSV 空间转化方法,减少亮度影响,增加区域对比度;对于二值化过程,分析纸张、背景和阴影3部分灰度差异,通过局部阈值法实现转化。以上问题的解决可以为工程草图或其他类型草图预处理提供参考依据。4 二值化图像的形态学处理
4.1 图像二值化
4.2 形态学操作
5 结束语