可重用的机器视觉检测算法库设计
2013-01-15李九灵
王 璜,李九灵,代 新,冯 维
(1湖北工业大学机械工程学院,湖北 武汉430068;2天津大学精密仪器与光电子工程学院,天津300072;3湖北省现代制造质量工程重点实验室,湖北武汉430068;4武汉科技大学机械自动化学院,湖北 武汉430081))
随着微电子技术的发展,基于DSP-FPGA的可重构机器视觉技术日益受到青睐,研究愈加广泛.国内浙江大学蒋庆等[1]、北京航空航天大学赵振华等[2]设计了嵌入式可重构的DSP图像处理系统.江南大学[3]、杭州电子科技大学[4]、湖北工业大学的研究者[5]对算法可重构的机器视觉检测研究多年,解决了机器视觉系统在某些特定领域的可重构问题.笔者通过对数字图像处理理论与方法的研究,尝试基于Visual C++开发一套可重用的机器视觉算法库.该库囊括了图像处理的主要功能,能够实现图像预处理、图像分割、特征识别与提取等功能.对于流水线上、不间断运动的连续物体视觉可识别量的在线检测,突出算法的通用性,并通过长期的试验积累,对常用算法加以改进,以满足线阵CCD图像系统海量序列图像、并行计算、累积性图像劣化等特点.同时,算法采取参数化设计,以经典算法为模版,将核心参数设置为可调,方便编程实现.通过对多种物体的检测实验,该库对于加速理论论证、算法选取、系统实现有着较大帮助,有利于机器视觉系统的推广,满足企业日益增长的自动化检测的实际需求.
1 系统结构设计
一套完整的机器视觉系统包含硬件和软件两部分.系统硬件实现图像采集、各类信号的发出与处理、控制执行机构等功能,图像处理软件也固化在PC等硬件中.
1.1 图像处理流程
图像经采集系统传入计算机,经处理识别提取特征量,再将后续操作指令输出(图1).
图1 系统处理流程
1.2 模块功能分析
图像采集模块主要包含相机、光源、信号同步等硬件.常用相机主要采用CCD、CMOS两种芯片.CMOS因生产简单、成本低而得以较快普及,但是CMOS成像质量相较于CCD差,特别在噪声控制上存在较大差距,使得CMOS在高端应用中鲜有建树.CCD尽管制造复杂,成本高昂,但因其能保证在复杂工业条件下取得良好的图像,仍占据目前市场主流.相机工作方式则主要分为面扫描与线扫描两种.光源的选择很多,如常用的LED光源、日光灯、卤素灯等,并且各种光源在形态、规格上也千差万别.因此,为实现可重构的机器视觉检测系统,其硬件采集模块往往采取针对性设计,具体到不同检测对象,采用不用的相机、光源等.
图像处理模块相对图像采集模块而言,其复杂程度有过之而无不及.图像处理模块同样依存硬件而工作.目前,能用于图像处理的硬件种类很多,常用的主要有:计算机、FPGA+DSP、单片机等.其中,计算机由于其计算能力强、可移植性好等一系列特点而成为主流.尽管机器视觉硬件的发展十分迅速,但软件则更新较慢,Microsoft公司的Visual C++仍然是最为高效的图像处理编程工具.
当机器视觉系统完成图像采集、图像处理、被测量识别与分类之后,将可用于控制系统或显示模块的信号进行输出.
2 常见图像处理算子
2.1 预处理
2.1.1 图像间运算 图像间的算术运算与逻辑运算是图像处理最为直观和有效的方法,许多常见的图像处理技术均基于此,如在民用领域大量应用的高动态技术(HDR)、宽动态技术(WDR)等,都是通过多次曝光然后再由软件合成为单幅图像.但这种技术在工业应用中却有着很大的局限性.例如在处理钢带、纸张、纺织等具有连续性的被检对象时,被检对象不断向前运动,很难有时间反复采集图像,往往连能够得到一幅理想图像都十分困难.因此,图像间的加法运算应用较少.图像间的减法则可用于运动物体的检测;另外,图像间的减法或除法也可用于校正由于光源或传感器的非均匀性造成的图像灰度阴影,在宽门幅物体图像采集中需定期采用这种手段检查光源是否存在局部光照衰减过快的问题,也可直接用于校正图像.
2.1.2 直方图均匀化 直方图是分析图像的重要工具,从直方图中能直观看出灰度分布情况.直方图中灰度值的集中程度反映了图像的对比度;灰度值集合偏左或偏右则能说明图像是否存在曝光不足或过爆.直方图均匀化就是通过“调整”直方图,实现增加图像动态范围的目的.从图2中可看出,直方图均衡化尽管增强图像对比度,但是也增加了图像的可视颗粒.
2.1.3 平滑滤波算子 图像处理中,噪声时常会带来图像退化的问题.噪声的来源很多,如图像采集传送中所受的干扰、直方图均匀化后增加的可视颗粒,这些噪声的存在都将会对后续被测量特征提取带来不确定因素,有可能增加系统实现难度.为解决这一问题,常常在图像预处理时,对图像进行平滑滤波.
滤波的概念来源于数字信号处理.图像是数字信号的一种,通常将一幅数字图像定义为一个二维函数f(x,y),其中x与y是纵横坐标.滤波可以分为线性滤波和非线性滤波.
图2 直方图均匀化
空间滤波器以处理效果可分为平滑空间滤波器与锐化空间滤波器,平滑滤波器用于图像去噪和模糊处理,锐化滤波器的使用则是为了突出图像的细节信息.线性滤波器是线性系统和频域滤波概念在空域的延伸,其特征是使用连续窗函数内像素的加权和实现图像滤波.设在M×N图像f(x,y)上,使用m×n大小的滤波掩模进行线性滤波可表示为:
最为常见的线性平滑滤波器诸如算术均值滤波器、几何均值滤波器等.它们算法简单,但常常出现过度平滑现象,导致丢失大量细节,因此这些滤波器均不能满足工业检测对精度的高要求.当信号很平稳且噪声是高斯噪声,则其所需要的线性滤波器就是最小均方差和高斯滤波器.高斯滤波器适合于消除高斯噪声,应用广泛.然而,某些不合理的操作会使得目标的边缘过于平缓,在一定程度上造成图像模糊.
非线性滤波器相对线性滤波而言,其结果值直接取决于像素邻域的值,而与线性卷积无关,它包括中值滤波、最大最小值滤波器等等.
因此,滤波器的选择与设计首要考虑的就是其所针对的噪声类型,对于不同的图像,滤波器的滤波效果千差万别,针对性强的滤波器决定了图像预处理的优劣.
2.2 边缘增强
数字图像处理中,图像在采集、传输、预处理等环节的不当操作都能够引起图像锐度降低,被检对象边缘弱化,必将导致图像特征的识别与提取变得困难.行之有效的图像增强方法是决定机器视觉系统成败的关键因素.
常见的空间域锐化滤波是以空间微分来实现的.微分算子的响应强度与图像在该点的灰度突变程度相关,即增强边缘和其他突变,减弱灰度变化平缓区域,也成为梯度.空间域锐化滤波算子可分为一阶微分算子和二阶微分算子.常见的一阶微分算子主要有Roberts、Prewitt、Sobel等;二阶微分算子则用到Laplace.Roberts也称为交叉梯度算子,为2×2的滤波窗,根据任意一对相互垂直方向的差分来进行计算,该算子对噪声敏感,且使用不便;Prewitt、Sobel是实践中运用最为广泛的梯度算子,对于水平或竖直方向边缘起作用.式(2)已经指出,图像梯度可分解为x,y两个方向的梯度,即:
3×3的图像领域内以第三行和第一行之差近似表示x向的导数,以第三列和第一列之差近似表示y向的导数,同时,模板系数之和为零,即保证灰度不变区域的响应为零.Sobel与Prewitt区别在于模板的中心系数权值λ不同,Sobel算子权值一般取为2,使其对噪声的敏感程度降低,边缘增强效果也好于Prewit算子.
Laplace则是二阶微分算子的代表.从图中即可发现,Laplace算子是各向同性的,导致其无法识别边缘方向;另一方面,由于中心点较大的权值,使其对点具有良好的识别能力,同时,也意味着拉普拉斯算子对噪声将极为敏感.
图3 图像边缘的微分
2.3 图像分割
图像中,通常除被检对象外还有背景存在.检测量的特征提取首要任务就是将目标与背景分开——即图像分割,之后再对目标做进一步处理,分割结果的好坏直接影响对图像的理解.
由于被检对象图像的显著差异性,通用型算法很难实现,图像分割更是如此.特别是图像分割选取阈值至关重要,而阈值又往往依赖于图像统计学特征.因此,图像分割不仅在不同检测对象上大相径庭,而且可能在检测同一对象的不同图像序列时也存在细微差距.
笔者主要从事流水线上、不间断运动的连续物体视觉可识别量的在线检测,在研究中发现,这类物体检测有以下两个特点:1)工作时间长;2)长期工作后,系统模型稳定性降低,特别是光照条件发生改变的几率很大.在这种情况下,阈值分割容易出现图像序列前后时间点图像分割差异显著,甚至是某些宽门幅物体检测中,可能在同一图像不同区域也存在这种问题.
为避免在图像分割中,由于光照等因素导致的图像信息错误,实际中运用的图像分割方法应具有自适应性,以保障图像分割的准确性.
工业检测中的机器视觉系统实际上可看作是多参数确定,少数参数可变的模型整体相对稳定,且变化规律可把握.如在宽门幅检测中常用的LED条形光源,LED均作阵列布置,其间距相等.若某一LED亮度退化,可根据LED光强、光照距离等估算出基本退化单元,以此对图像统计特征进行区域划分,根据不同区域的统计学特征调整阈值.
2.4 形态学处理
数学形态学表示以形态为基础对图像进行分析的数学工具,它的基本思想是用具有一定形态的结构元素,去量度和提取图像中的对应形状,以达到对图像分析和识别的目的.数学形态学的应用可以简化图像数据,保持它们基本的形状特性,并除去不相干的结构.[6]数学形态学的算法具有天然的并行实现的结构.数学形态学的基本运算主要有四个:膨胀、腐蚀、开运算、闭运算,通过这些基本运算可组合并调整参数实现各种数学形态学算法.数学形态学可用于二值图像、灰度图像的处理.
3 视觉检测算法重用流程
面对不同的检测对象,首先从算法库中取出潜在可行算法,送入算法选择模块.根据算法效果、效率、接口等条件对算法进行筛选.如果可行,就重用;若不可行,重新选择.
图4 图像处理算法重用流程
4 试验与分析
笔者以网孔织物为研究对象来测试本算法库.网孔织物的在线检测,主要面临如下几个问题:1)织物门幅不一;2)检测速度存在波动;3)张力导致的孔径变化;4)缺陷尺寸差距巨大,部分缺陷大于单图像范围;5)织物与背景的空占比大.针对这些问题,笔者设计了一套多相机并行处理的机器视觉在线检测系统,利用本算法库重构了一套图像处理软件.这里选择端部的一台相机所采集图像为例.经过图2的预处理,可以看出图像中的可视颗粒增多,与噪声十分类似,这为后续处理带来干扰.因此,增加平滑滤波,再由阈值分割与形态学处理分离出织物的边缘与缺陷.
从图5中可以看出,在检测过程中,织物边缘存在波动,这将给织物门幅的测量带来影响.这里对织物边缘多次采样,然后依照厂标,对织物门幅进行测量并输出数据(图6).
5 结束语
本文限于篇幅,无法对算法库中所有算子逐一梳理,主要将其中重用频率较高的算法设计加以介绍,并通过导爆管和网孔织物的检测试验举例说明.由处理结果可见,本文提出的算法库有利于加速项目推进,且效果较好.
[1] 蒋 庆,蔡晋辉,边绍辉,等.基于机器视觉的空瓶图像检测系统[J].粮油加工与食品机械,2003(10):51-53.
[2] 赵振华,郑 红.嵌入式可重构的多DSP图像并行处理系统[J].单片机与嵌入式系统应用,2009(2):12-15.
[3] 陈祎,白瑞林,赵 洁,等.嵌入式机器视觉检测软件的构件化设计[J].自动化仪表,2011,32(10):9-13.
[4] 龙智帆,孙志海,孔万增.算法可重构的工业视觉饮料瓶盖缺陷检测[J].杭州电子科技大学学报,2012,32(2):47-51.
[5] 赵大兴,王 璜,朱锦雷.基于机器视觉的织物疵点检测系统[J].湖北工业大学学报,2008,23(6):73-75.
[6] 章毓晋.图像分析[M].北京:清华大学出版社,2005.