点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达
0 引言
中国是一个制造大国,每天都要生产大量的工业产品。用户和生产企业对产品质量的要求越来越高,除要求满足使用性能外,还要有良好的外观,即良好的表面质量。但是,在制造产品的过程中,表面缺陷的产生往往是不可避免的。不同产品的表面缺陷有着不同的定义和类型,一般而言表面缺陷是产品表面局部物理或化学性质不均匀的区域,如金属表面的划痕、斑点、孔洞,纸张表面的色差、压痕,玻璃等非金属表面的夹杂、破损、污点,等等。表面缺陷不仅影响产品的美观和舒适度,而且一般也会对其使用性能带来不良影响,所以生产企业对产品的表面缺陷检测非常重视,以便及时发现,从而有效控制产品质量,还可以根据检测结果分析生产工艺中存在的某些问题,从而杜绝或减少缺陷品的产生,同时防止潜在的贸易纠份,维护企业荣誉。
人工检测是产品表面缺陷的传统检测方法,该方法抽检率低、准确性不高、实时性差、效率低、劳动强度大、受人工经验和主观因素的影响大,而基于机器视觉的检测方法可以很大程度上克服上述弊端。
美国机器人工业协会(RIA)对机器视觉下的定义为:“机器视觉是通过光学的装置和非接触的传感器自动地接收和处理一个真实物体的图像,以获得所需信息或用于控制机器人运动的装置”[1]。
机器视觉是一种无接触、无损伤的自动检测技术,是实现设备自动化、智能化和精密控制的有效手段,具有安全可靠、光谱响应范围宽、可在恶劣环境下长时间工作和生产效率高等突出优点。机器视觉检测系统通过适当的光源和图像传感器(CCD摄像机)获取产品的表面图像,利用相应的图像处理算法提取图像的特征信息,然后根据特征信息进行表面缺陷的定位、识别、分级等判别和统计、存储、查询等操作;
视觉表面缺陷检测系统基本组成主要包括图像获取模块、图像处理模块、图像分析模块、数据管理及人机接口模块。
图像获取模块由CCD摄像机、光学镜头、光源及其夹持装置等组成,其功能是完成产品表面图像的采集。在光源的照明下,通过光学镜头将产品表面成像于相机传感器上,光信号先转换成电信号,进而转换成计算机能处理的数字信号。目前工业用相机主要基于CCD或CMOS(complementary metal oxide semiconductor)芯片的相机。CCD是目前机器视觉最为常用的图像传感器。
光源直接影响到图像的质量,其作用是克服环境光干扰,保证图像的稳定性,获得对比度尽可能高的图像。目前常用的光源有卤素灯、荧光灯和发光二级管(LED)。LED光源以体积小、功耗低、响应速度快、发光单色性好、可靠性高、光均匀稳定、易集成等优点获得了广泛的应用。
由光源构成的照明系统按其照射方法可分为明场照明与暗场照明、结构光照明与频闪光照明。明场与暗场主要描述相机与光源的位置关系,明场照明指相机直接接收光源在目标上的反射光,一般相机与光源异侧分布,这种方式便于安装;暗场照明指相机间接接收光源在目标上的散射光,一般相机与光源同侧分布,它的优点是能获得高对比度的图像。结构光照明是将光栅或线光源等投射到被测物上,根据它们产生的畸变,解调出被测物的3维信息。频闪光照明是将高频率的光脉冲照射到物体上,摄像机拍摄要求与光源同步。
图像处理模块主要涉及图像去噪、图像增强与复原、缺陷的检测和目标分割。
由于现场环境、CCD图像光电转换、传输电路及电子元件都会使图像产生噪声,这些噪声降低了图像的质量从而对图像的处理和分析带来不良影响,所以要对图像进行预处理以去噪。图像增强目是针对给定图像的应用场合,有目的地强调图像的整体或局部特性,将原来不清晰的图像变得清晰或强调某些感兴趣的特征,扩大图像中不同物体特征之间的差别,抑制不感兴趣的特征,使之改善图像质量、丰富信息量,加强图像判读和识别效果的图像处理方法。图像复原是通过计算机处理,对质量下降的图像加以重建或复原的处理过程。图像复原很多时候采用与图像增强同样的方法,但图像增强的结果还需要下一阶段来验证;而图像复原试图利用退化过程的先验知识,来恢复已被退化图像的本来面目,如加性噪声的消除、运动模糊的复原等。图像分割的目的是把图像中目标区域分割出来,以便进行下一步的处理。
图像分析模块主要涉及特征提取、特征选择和图像识别。
特征提取的作用是从图像像素中提取可以描述目标特性的表达量,把不同目标间的差异映射到低维的特征空间,从而有利于压缩数据量、提高识别率。表面缺陷检测通常提取的特征有纹理特征、几何形状特征、颜色特征、变换系数特征等,用这些多信息融合的特征向量来区可靠地区分不同类型的缺陷;这些特征之间一般存在冗余信息,即并不能保证特征集是最优的,好的特征集应具备简约性和鲁棒性,为此,还需要进一步从特征集中选择更有利于分类的特征,即特征的选择。图像识别主要根据提取的特征集来训练分类器,使其对表面缺陷类型进行正确的分类识别。
数据管理及人机接口模块可在显示器上立即显示缺陷类型、位置、形状、大小,对图像进行存储、查询、统计等。
机器视觉表面缺陷检测主要包括2维检测和3维检测,前者是当前的主要表面缺陷检测方式,也是本文的着重论述之处。
机器视觉在工业检测、包装印刷、食品工业、航空航天、生物医学工程、军事科技、智能交通、文字识别等领域得到了广泛的应用。工业检测领域是机器视觉应用中比重最大的领域,主要用于产品质量检测、产品分类、产品包装等,如:零件装配完整性检测,装配尺寸精度检测,位置/角度测量,零件识别,PCB板检测,印刷品检测,瓶盖检测,玻璃、烟草、棉花检测,以及指纹、汽车牌照、人脸、条码等识别。表面质量检测系统是工业检测的极其重要的组成部分,机器视觉表面缺陷检测在许多行业开始应用,涉及钢板[2-4]、玻璃[5-6]、印刷[7-9]、电子[10]、纺织品[11]、零件[12-13]、水果[14]、木材[15-16]、瓷砖[17-19]、钢轨[20]等多种关系国计民生的行业和产品。
1 研究现状、视觉软件系统和研究平台
机器视觉在金属(特别是钢板)表面、纸张等印刷品、纺织品、磁砖、玻璃、木材等表面缺陷检测国内外有较多的研究成果,不乏成功应用系统和案例。
在钢板表面缺陷检测领域,美国Westinghouse公司采用线阵CCD摄像机和高强度的线光源检测钢板表面缺陷,并提出了将明域、暗域及微光域3种照明光路形式组合应用于检测系统的思路[21]。这些系统可识别的缺陷种类相对较少,并且不具备对周期性缺陷的识别能力。美国Cognex公司研制成功了iS-2000自动检测系统和iLearn自学习分类器软件系统[22]。这两套系统配合有效改善了传统自学习分类方法在算法执行速度、数据实时吞吐量、样本训练集规模及模式特征自动选择等方面的不足;Parsytec公司为韩国浦项制铁公司研制了冷轧钢板表面缺陷检测系统HTS,该系统能对高速运动的热轧钢板表面缺陷进行在线自动检测和分级的系统,在连轧机和CSP生产线上取得了良好的效果[23];英国European Electronic System公司研制的EES系统也成功地应用于热连轧环境下的钢板质量自动检测[24]。EES系统实时地提供高清晰度、高可靠性的钢板上下表面的缺陷图像,最终交由操作员进行缺陷类型的分类判别。国内北京科技大学的高效轧制国家工程研究中心也在进行钢板表面质量检测系统的研制,对其常见缺陷类型进行了检测与识别,取得了一定的研究成果[25],东北大学、上海宝钢集团公司、武汉科技大学等科研院所研究了冷轧钢板表面缺陷的检测系统[26-28],重庆大学对高温连铸坯表面缺陷进行了研究[29]。
在其他领域,视觉表面缺陷检测也得到了广泛的研究和应用。文献[30]对规则纹理表面(天然木材、机械加工表面、纺织面料)的表面缺陷采用傅里叶变换进行图像的复原,高频的傅里叶分量对应表面纹理线型,而低频的傅里叶分量对应表面缺陷区域。文献[31]研究了铝带连铸生产中的表面缺陷检测,通过红外检测提供铝带表面温度的分布情况以评估铝带质量,采集铝带图像,进行表面缺陷检测和分类。文献[32]将机器视觉应用于集成电路晶片表面缺陷检测,使用模糊逻辑对表面凹坑缺陷的不同形状进行分析处理。文献[33]利用图像对铁轨的表面质量进行自动检测,车载检测系统对铁轨的表面质量进行实时检测和分类。文献[34]基于机器视觉系统对鸡肉包装前的质量检测,根据鸡肉图像的颜色信息,采用数学形态学方法对潜在的问题区域进行特征提取,然后按预定义的质量问题列表进行分类。文献[35]针对随机纹理的彩色图像提出了一种利于分水岭变换的颜色相似性度量,提取了图像的颜色和纹理特征,实现了随机纹理表面缺陷的自动分割和检测。文献[36]采用双目立体视觉,基于特征立体匹配算法对扫描电镜图像研究了物体的表面深度信息。文献[37]介绍了一种皮革表面缺陷检测的方法,采用OTSU方法进行缺陷分割,利用欧式距离聚类法进行缺陷分类,在分类聚类时使用形态学算子进行腐蚀运算,实验结果表明了该方法的有效性。文献[38]对玻璃缺陷进行了识别,把采集到的缺陷图像缩放到10×10的大小,然后把这个100个像素值作为特征向量,分别运用径向基(RBF)神经网络和决策树进行识别;该方法的缺点是不同缺陷缩放后造成部分信息的丢失。文献[39]研究了一种玻璃缺陷识别的专家系统(ES),首先需要电子显微技术和等离子射线获得缺陷信息作为知识库,对未知的玻璃缺陷通过搜索知识库对缺陷信息进行匹配,选择最相近的类别作为输出;该方法的缺点是分类采用贪婪搜索法,匹配速度慢。文献[40]针对机器视觉在产品表面粗糙度的检测方法作了描述,首先建立粗糙度的模型,然后以表面的累加偏差作为特征通过神经网络(ANN)进行等级划分,并阐述了不同的ANN模型对识别结果的影响。
机器视觉软件系统除具有图像处理和分析功能外,还应具有界面友好、操作简单、扩展性好、与图像处理专用硬件兼容等优点。国外视觉检测技术研究开展的较早,已涌现了许多较为成熟的商业化软件,应该比较多的有HALCON、HexSight、Vision Pro、LEADTOOLS等[41]。
HALCON是德国MVtec公司开发的一套完善的标准的机器视觉算法包,拥有应用广泛的机器视觉集成开发环境维视图像开发定制软件,在欧洲以及日本的工业界已经是公认具有最佳效能的Machine Vision软件。HALCON的image processing library,由一千多个各自独立的函数和底层的数据管理核心构成,其函数库可以用C,C++,C#,Visual basic和Delphi等多种普通编程语言访问。HALCON百余种工业相机和图像采集卡提供接口,包括GenlCam,GigE和IIDC 1394。HALCO还具有强大的3维视觉处理能力,另外,自动算子并行处理(AOP)技术是HALCON的一个独特性能。HALCON应用范围涵盖自动化检测、医学和生命科学,遥感探测,通讯和监控等众多领域。
Adept公司出品的HexSight是一款高性能的、综合性的视觉软件开发包,它提供了稳定、可靠及准确定位和检测零件的机器视觉底层函数。HexSight的定位工具是根据几何特征、采用轮廓检测技术来识别对象和模式。在图像凌乱、亮度波动、图像模糊和对象重叠等方面有显著效果。HexSight能处理自由形状的对象,并具有功能强大的去模糊算法。HexSight软件包含一个完整的底层机器视觉函数库,可用来建构完整的高性能2D机器视觉系统,可利用Visual Basic、Visual C++或Borland Dephi平台方便地进行二次开发。其运算速度快,在一台2 GHz的处理器上寻找和定位一般的零部件不超过10 ms;具有1/40亚像素平移重复精度和0.05度旋转重复精度。此外,内置的标定模块能矫正畸变、投影误差和X-Y像素比误差,完整的检测工具包含硬件接口、图像采集、图像标定、图像预处理、几何定位、颜色检测、几何测量、Blob分析、清晰度评价(自动对焦)、模式匹配、边缘探测等多种多样,开放式体系结构,支持DirectShow、DCam,GigE vision等多种通用协议,几乎与市面上所有商业图像采集卡,以及各种USB、1394以及GigE接口的摄像机兼容。
Cognex公司的VisionPro是一套基于.Net的视觉工具,适用于包括FireWire和CameraLink在内的所有硬件平台,利用ActiveX控制可快速完成视觉应用项目程序的原模型开发,可使用相应的Visual Basic、VB.Net、C#或C++搭建出更具个性化的应用程序。
LEADTOOLS在数码图像开发工具领域中已成为全球领导者之一,是目前功能强大的优秀的图形、图像处理开发包,它可以处理各种格式的文件,并包含所有图形、图像的处理和转换功能,支持图形、图像、多媒体、条形码、OCR、Internet、DICOM等等,具有各种软硬件平台下的开发包。
此外,还有Dalsa公司的Sherlock检测软件,日本的OMRON和Keyence,德国SIEMENS等,这些机器视觉软件都能提供完整的表面缺陷检测方法。
国内机器视觉检测系统开发较晚,相关的企业主要是代理国外同类产品,提供视觉检测方案和系统集成,其中具有代表性的企业有凌华科技、大恒图像、视觉龙、凌云光子、康视达、OPT、三姆森和微视图像等。
机器视觉表面质量检测,特别是实时检测,图像采集的数据量大,所以如何提高图像处理速度显得十分重要。提高图像处理速度主要有两种手段,一是改善和优化图像处理算法,算法既要简单快速,又要兼顾实际效果;二是改善和优化实现算法的手段。目前,实时图像处理采集方案主要为下面几个方面[42]。
1) 通用计算机网络并行处理。这种处理结构采用“多客户机+服务器”的方式,一个图像传感器对应一台客户机,服务器实现信息的合成,图像处理的大部分工作由软件来完成。该结构虽然比较庞大,但升级维护方便、实时性较好。
2) 数字信号处理器(DSP)。DSP是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是将接收到的模拟信号转换为“0”或“1”的数字信号,再对数字信号进行修改、删除和强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式,其实时运行速度远远超过通用微处理器。但是,DSP的体系仍是串行指令执行系统,而且只是对某些固定的运算进行硬件优化,故不能满足众多的算法要求。
3) 专用集成电路(ASIC)。ASIC是针对于某一固定算法或应用而专门设计的硬件芯片,有很强的实时性。但在实际应用中存在开发周期相对较长、成本高、适应性和灵活性差等缺点。
4) 现场可编程门阵列(FPGA)。FPGA由多个可编程的基本逻辑单元组成的一个2维矩阵,逻辑单元之间以及逻辑单元与I/O单元之间通过可编程连线进行连接。FPGA能在设计上具有很强的灵活性,集成度、工作速度也在不断提高,可实现的功能也越来越强;同时其开发周期短,系统易于维护和扩展,能够大大地提高图像数据的处理速度。
实时图像处理系统中,底层的信号数据量大,对处理速度的要求高,但运算结构相对比较简单,适合采用FPGA以硬件方式来实现;高层处理算法的特点是处理的数据量相对较少,但算法和控制结构复杂,可使用DSP来实现。所以,可以把二者的优点结合在一起以兼顾实时性和灵活性。
USB、串口、并口是计算机和外设进行通讯的常用接口,但对于数据量大的图像来说,串行RS-232协议难于达到图像采集实时性要求。USB口即使能满足所需速度,但要求外设必须支持USB协议,而USB协议与常用工程软件的接口还不普及。IEEE-1394接口具有廉价,速度快,支持热拔插,数据传输速率可扩展,标准开放等特点,在众多领域得到了广泛的应用。但随着数字图像采集速度的提高、数据量的增大,原有的标准渐难以满足需求。为了简化数据的连接,实现高速、高精度、灵活、简单的连接,在National Semiconductor公司等多家相机制造商共同制定推出了Camera Link标准。Camera Link是专门为数字摄像机的数据传输提出的接口标准,专为数字相机制定的一种图像数据、视频数据控制信号及相机控制信号传输的总线接口,其最主要特点是采用了低压差分信号(LVDS)技术,使摄像机的数据传输速率大大提高。
2 表面缺陷检测图像处理和分析算法
工业现场采集的图像通常包含噪声,图像预处理主要目的是减少噪声,改善图像的质量,使之更适合人眼的观察或机器的处理。图像的预处理通常包括空域方法和频域方法,其算法有灰度变换、直方图均衡、基于空域和频域的各种滤波算法等,其中直观的方法是根据噪声能量一般集中于高频,而图像频谱则分布于一个有限区间的这一特点,采用低通滤波方式进行去噪,例如滑动平均窗滤波器、Wiener线性滤噪器等。上述各种滤波方法中,频域变换复杂,运算代价较高;空域滤波算法采用各种模板对图像进行卷积运算。直接灰度变换法通过对图像每一个像素按照某种函数进行变换后得到增强图像,变换函数一般多采用线性函数、分段线性函数、指数函数、对数函数等,运算简单,在满足处理功能的前提下实时性也较高。近年来,数学形态学方法[43-44]、小波方法[45-47]用于图像的去噪,取得了较好的效果。
图像的分割是把图像阵列分解成若干个互不交迭的区域,每一个区域内部的某种特性或特征相同或接近,而不同区域间的图像特征则有明显差别。它是由图像处理到图像分析的关键步骤。现有的图像分割方法主要分为基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。近年来,研究者不断改进原有的图像分割方法并把其他学科的一些新理论和新方法用于图像分割,提出了不少新的分割方法。图像分割后提取出的目标可以用于图像语义识别、图像搜索等领域。
基于区域的分割算法包括阈值分割法、区域生长法和聚类分割法等。
阈值分割法是一种传统的图像分割方法,其基本原理是:通过设定不同的灰度阈值,把图像像素点分为若干类。因其实现简单、计算量小、性能较稳定而成为图像分割中最基本和应用最广泛的分割方法,其中阈值的选取是图像阈值分割方法中的关键。
关于阈值的确定方法,目前比较常用的有固定阈值法、自适应阈值法、多区域阈值法等。固定阈值分割算法实时性强,适用于图像背景和目标灰度值区别明显的情况;自适应阈值分割算法,适用于目标与背景的灰度值区别不明显的情况;多区域阈值法,适用于目标与背景在不同区域区别较大的情况。
Otsu提出了动态门限方法[48],它以目标和背景之间的方差最大来动态地确定图像分割门限值,但当目标的相对面积较小时,此方法性能不佳。Pun和Kapur等人提出了利用最大先验熵选取阈值的方法[49-50],从信息论的角度选择阈值,在一定程度上克服了上述算法的缺点,但当图像背景复杂时分割时容易丧失部分信息,且计算量较大。
Yen等人提出了利用最大相关性原则取代常用的最大熵原则来选取阈值的方法[51],以及基于一维或2维直方图的阈值方法[52-54]、最小误判概率准则下的最佳阈值方法[55]在其后也被提出。
区域生长法的基本思想是依据一定的生长准则,将若干个“相似”子区域聚合成较大的区域。它首先对每个需要分割的区域找到一个种子像素作为生长的起点,再将种子像素邻域中与其具有相同或相似性质的像素根据某种事先确定的准则合并到种子像素所在的区域中;将这些新像素当作新的种子像素继续像上面的操作,直到再没有满足条件的像素可包括进来。此法原理简单,对于较均匀的连通目标有较好的分割效果;缺点是依赖于初始条件的选取,计算量较大,不适用于实时检测。
分裂—合并法也是一种基于区域的分割算法,其基本思想是:根据图像和各区域的不均匀性,将图像或区域分裂成新的子区域,再将包含相同内容的区域合并成新的较大区域,最后得到分割图像。四叉树分解是一种常用的分裂—合并法,其具体过程是:将图像分成4块大小相等的方块,判断每个小块是否满足一致性标准(如两区域参数统计特征结果相同,等等)。若满足,则不再分解;若不满足,则再细分成四块,再用细分块进行一致性标准检查,直到满足一致性标准,结果可能包含大小不同的块。
聚类法进行图像分割是根据图像在特征空间的聚集对特征空间进行分割,再映射到原图像空间得到分割结果,K均值聚类算法、模糊C均值聚类(FCM)算法[56-57]是常用的聚类算法。
基于边缘的分割方法其实就是根据图像中局部特性的不连续性而采用某种算法来提取出图像中的对象与背景间的交界线。
边缘处像素的灰度值不连续,这种不连续性可通过求导来检测。经典的边缘检测算法一般采用微分的方法进行计算,常用的一阶微分边缘检测算子有Robert算子、Sobel算子、Prewitt算子、Kirsch算子等几种。一阶微分算子方法计算简便、速度快,但定位不准确。二阶微分算子主要有Canny算子、Log算子、Laplacian算子,这类算子基于一阶导数的局部最大值对应二阶导数的零交叉点这一性质,通过寻找图像灰度的二阶导数的零交叉点从而定位边缘。二阶微分算子方法边缘定位准确,但对噪声敏感。对于噪声污染的图像,在进行微分算子边缘检测前一般先要滤波,但滤波的同时也使图像边缘产生一定程度的模糊。Marr算子将噪声滤波与边缘提取相结合,但当模板较小时抗噪性能不良,模板较大时计算费时。
随着数学和人工智能的发展,出现了一些新的边缘检测方法,如数学形态学法、小波变换法、人工神经网络法、遗传算法、基于模糊理论的算法等。
20世纪90年代初,Mallat在图像多分辨分析理论的基础上,提出了小波变换局部模极大值边缘检测方法[58-59],在噪声图像中取得了较好的边缘检测效果。后来,人们在Mallat理论框架下,提出了多尺度边缘检测方法[60]。多尺度边缘检测方法主要思想在较大的尺度下能对边缘精确检测,而在较小的尺度下能对边缘点精确定位。小波变换的突出优点是其多分辨率,图像的每个尺度的小波变换都提供了一定的边缘信息。小波分析在时域和频域都具有良好的局部化性质,可聚焦到对象的任意细节,是图像处理领域的热点。虽然人们提出了多种的边缘检测方法[61-62],但边缘检测时抗噪性和检测精度的矛盾仍然是要研究的重点内容之一。
基于数学形态学边缘检测方法[63-64]的基本思想是用具有一定形态的结构元素提取图像中的对应形状,以达到对图像分析和识别的目的。采用多结构元素的数学形态学算法,既能提取细小边缘,又能很好的抑制噪声,结构元素选取灵活,但在灵活的同时也导致算法的适应性变差。
近年来有一些新的研究手段如神经网络、遗传算法和小波方法等被引入到图像分割的阈值选取中[65-69],其效果仍在探索之中。
虽然有许多图像分割的方法,这些算法的共性问题在于分割精度与抗噪性的矛盾,同时,高实时性处理算法的研究远远滞后于通用图像处理算法的研究,应用于实际生产中的一些算法在准确性、实时性和可操作性上也还存在较大的困难。至今,图像分割算法大都是针对具体问题所提出的,虽然每年都有新的图像分割算法提出,但是并没有一种通用的算法能适用于所有的图像分割处理。
图像的特征提取可理解为从高维图像空间到低维特征空间的映射,是基于机器视觉的表面缺陷检测的重要一环,其有效性对后续缺陷目标识别精度、计算复杂度、鲁棒性等均有重大影响。特征提取的基本思想是使目标在得到的子空间中具有较小的类内聚散度和较大的类间聚散度。目前常用的图像特征主要有纹理特征、颜色特征、形状特征等。
纹理是表达图像的一种重要特征,它不依赖于颜色或亮度而反映图像的同质现象,反映了表面结构组织排列的重要信息以及它们与周围环境的联系。与颜色特征和灰度特征不同,纹理特征不是基于像素点的特征,它需要在包含多个像素点的区域中进行统计计算,即局部性;同时,局部纹理信息也存在不同程度的重复性,即全局性。纹理特征常具有旋转不变性,并且对于噪声有较强的抵抗能力。
根据Tuceryan和Jain的分类,基于的纹理特征提取方法有统计法、信号分析法、模型法、结构法和几何法。
1) 统计法。统计方法将纹理看用随机现象,从统计学的角度来分析随机变量的分布,从而实现对图像纹理的描述。直方图特征是最简单的统计特征,但它只反映了图像灰度出现的概率,没有反映像素的空间分布信息;灰度共生矩(GLCM)是基于像素的空间分布信息的常用统计方法;局部二值模式(LBP)具有旋转不变性和多尺度性、计算简单;此外,还有行程长度统计法、灰度差分统计法等,因计算量大、效果不突出而限制了其应用。
(1) 直方图特征。图像的直方图提供了图像的许多信息和特征,常用的直方图特征有最大值、最小值、均值、中值、值域、熵、方差和熵等。此外,直方图对比统计特征,如L1范数、L2范数、Bhattacharyya距离、Matusita距离、归一化相关系统等,亦常用作统计特征[70]。
直方图特征方法计算简单、具有平移和旋转不变性、对颜色像素的精确空间分布不敏感等,所以在表面检测、缺陷识别得到不少应用。
(2) 灰度共生矩。Haralick等人[71]提出的灰度共生矩是一种广泛应用的使用统计特征来描述纹理的方法。灰度共生矩阵就是从图像灰度级为的像素出发,统计与其距离为、灰度级为的像素同时出现的概率。一般取0°、45°、90°和135°这4个方向。灰度共生矩阵反映了图像灰度关于方向、相邻间隔、变化幅度的综合信息,所以可以作为分析图像基元和排列结构的信息。
GLCM共有14种纹理特征,文献[72-74]研究了GLCM统计量的相关性并提出了更有效的纹理特征量,但是文献[75]认为仅有4个特征,即对比度、相关性、能量(和同质性是不相关的,所以,为减少计算量,提高特征分类精度,常取这4个特征作为GLCM特征。GLCM在图像的纹理分析中占有重要的地位,在特征提取和缺陷检测等方面有着广泛的应用。
(3) 局部二值模式(LBP)。局部二值模式最早由Ojala提出,它引入了纹理基元的思想,是一个简单但非常有效的纹理运算符。LBP将各个像素与其附近的像素进行比较,并把结果保存为二进制数,即它用二进制位表达局部邻域点与中心点的关系,所有邻域点的二进制位用来描述局部结构信息的模式。
LBP对诸如光照变化等造成的图像灰度变化具有较强的鲁棒性,所以局部二值模式算法已广泛应用于表面缺陷检测,同时,在指纹识别、光学字符识别、人脸识别及车牌识别等领域也有应用。由于LBP计算简单,也可以用于实时检测。
目前出现了一些改进的LBP算法。Tan等人[76]提出了局部三值模式(LTP),即通过设定阈值将邻域与中心相似的状态作为中间状态,从而将扩展局部邻域关系为三种状态。在此基础上,Nanni等人[77]将局部关系扩展到四种状态。也有学者将LBP由传统的2维特征改进到3维特征主要用于视频分析[78-80]。此外,有学者将LBP表达的局部信息与其他信息或算法结合构成联合特征量,如Tan等人[81]联合LBP特征和Gabor小波特征进行人脸的识别,Huang等人[82]将LBP和SIFT算法结合用于人脸的3维识别。贺永刚[83]提出了一种多结构的局部二值模式,该算法结合各向同性采样和各向异性采样对局部二值模式进行扩展,利用图像金字塔提取纹理图像的微结构和宏结构信息。
(4) 自相关函数法。自相关函数法从图像的自相关函数提取纹理特征,即通过对图像的能量谱函数的计算,提取纹理的粗细度及方向性等特征参数。对于规则纹理图像,因其自相关函数具有波峰和波谷,故可用其进行表面检测,但自相关函数法不适用于不规则纹理图像。
2) 信号处理法。将图像当作2维分布的信号,从而可从信号滤波器设计的角度对纹理进行分析。信号处理方法也称滤波方法,即用某种线性变换、滤波器(组)将纹理转到变换域,然后应用相应的能量准则提取纹理特征。基于信号处理的方法主要有傅里叶变换、Gabor滤波器、小波变换、Laws纹理、LBP纹理等。
(1) 傅里叶变换方法。傅里叶变换是基于频率的分析方法,20世纪70年代以来,有学者提出通过傅里叶滤波器来描述纹理。傅里叶变换将图像变换到频率域上使用频谱能量或频谱熵等特征来表达纹理。Rao和Lohse开展了基于人的感知的纹理研究,指出周期性、方向性以及随机性是表征纹理的3个重要因素[84]。纹理图像在空间分布上具有一定的周期性,其功率谱具有离散性和规律性;对于方向性纹理,方向性会在傅里叶频谱中很好的保持;对于随机性纹理,频谱的响应分布并不限制到某些特定的方向。
根据相对于频率中心位置距离的频谱分布情况,可以大致判断纹理图像的相对粗糙程度。对于粗糙纹理,其纹理基元尺寸较大,图像的低频信号较多,功率谱的能量主要集中在离频率中心位置较近的低频区域;相反,对于基元尺寸较小的细致纹理,图像含有的高频信息较多,功率谱的能量分布较为分散,主要集中在距离频率中心位置较远的高频区域。但是,傅里叶变换作为一种全局性的变化,仍有一定的局限性,如不具备局部化分析能力、不能分析非平稳信号等。
(2) Gabor滤波方法。尽管傅里叶变换在信号频域分析中有着重要作用,但它只能对整个时间段的信号的频率进行分析,没有信号的空间局部信息的刻画能力,如当需要对局部的图像纹理细节进行分析时,傅里叶变换无能为力。为克服傅里叶变换不能局部化分析的缺点,短时窗口傅里叶变换(STFT)被提出,它通过在变换时增加一个窗函数来实现,当窗函数是Gaussian函数时,即得到Gabor变换。
Gabor滤波方法模拟了人类视觉感觉特性,具有很好的频率选择性和方位选择性。使用Gabor滤波器提取纹理特征的主要过程是:先设计滤波器,再从其输出结果中提取特征。滤波器设计包括单个滤波器参数的设计和滤波器组的布局。滤波器的输出结果可作为纹理特征,但维数较高,为此,常采用斯平滑处理、Gabor能量特征、复矩特征、独立成分分析等后处理方法以降低特征集的数据量[85]。对于2维数字图像,研究者们提出了2维Gabor函数形成的2维Gabor滤波器。
自从Clark等人[86]首次将Gabor滤波方法用于纹理分析以来,很多研究人员开始用Gabor滤波器进行纹理特征提取,进行表面缺陷的检测[87-91]。国内丛家慧等人[92]利用Gabor滤波器具有频率选择和方向选择的特性,有效提取了带钢表面缺陷的纹理特征,为确定最佳滤波器参数,引入的评价函数使缺陷图像和无缺陷图像能量响应差别最大化。张学武等人[93]使用Gaussian金字塔分解和Gabor滤波器提取缺陷图像特征,合成特征显著图基于视觉仿生机理进行铜带表面缺陷检测,实现缺陷的正确分类。
因窗函数决定空域的局部性,且Gaussian函数经傅里叶变换后仍为Gaussian函数,故Gabor变换在频域上也是局部的。Gabor滤波器在纹理描述方面有着良好的效果,但存在计算量大的问题[94]。
(3) 小波变换方法。傅里叶变换没有局部分析能力,STFT虽然在一定程度上改善了这种局限性,但采用的的滑动窗函数一经选定就固定不变,故决定了其时频分辨率固定不变,不具备自适应能力,而小波分析很好的解决了这个问题。小波变换(WT)是法国地质物理学家Morlet于1984年提出的,通过伸缩和平移等运算功能对函数或信号进行多尺度细化分析,达到高频处时间细分,低频处频率细分,能自动适应时频信号分析的要求,从而可聚焦到信号的任意细节。
图像纹理往往表现为多尺度特征,对图像进行小波分解后,得到不同分辨率的一系列图像;不同分辨率的图像由代表不同方向信息的一系列高频子带图像构成,高频子带图像反映了图像的纹理特征。
传统的金字塔小波变换仅对低频部分进行了分解,而纹理图像的高频部分可能也含有重要的特征信息,小波包分解或是树结构小波分解则可克服这一缺点。小波变换方法提取图像特征以进行表面缺陷检测已有大量的应用[95-98]。
(4) Laws纹理。Laws模板的纹理描述方法通过使用简单模板处理纹理图像,从而对纹理图像的特征进行描述。它使用一组小的模板对纹理图像卷积,对卷积后的图像的每一个像素的邻域进行统计计算,将统计量作为对应像素的纹理特征。
3) 结构法。结构法是建立在纹理基元理论基础上的,认为复杂的纹理是由一些在空间中重复出现的最小模式即纹理基元执照一定的规律排列组成。结构方法主要有两个重要问题:一是纹理基元的确定;二是纹理基元排列规律的提取。最简单的纹理基元是单个的像素,也可以是图像的灰度均质区域,此外,Vilnrotter等人[99]采用边缘重复数组来提取基元,Hsu等人[100]利用自相关函数和小波变换系数提取基元,等等。确定基元后需要提取基元的特征参数和纹理结构参数作为描述图像纹理的特征。基元的特征参数有面积、周长、离心率、矩量等,结构参数则由基元之间的排列规律确定;基元的排列规则是基元的中心坐标及基元之间的空间拓扑关系,可从基元之间的模型几何中得到,也可以通过基元之间的相位、距离等统计特征中得到,较复杂的情况可以用句法分析、数学形态学等方法。
采用结构方法提取图像纹理特征以进行表面缺陷检测的研究并不少见,Wen等人[101]利用结构法提取图像的边缘特征进行了皮革表面缺陷检测,Goswami等人[102]基于激光检测和形态学对织物疵点进行了检测,或采用数学形态学操作对钢板表面缺陷进行了检测[103]。但是,结构法只适合于纹理基元较大且排列规则的图像;对于一般的自然纹理,因其随机性较强、结构变化大,难以用该方法来准确描述,此时一般要与其他方法联合使用。
4) 模型法。模型法以图像的构造模型为基础,采用模型参数的统计量作为纹理特征,不同的纹理在某种假设下表现为模型参数取值的不同,如何采用优化参数估计的方法进行参数估计是模型法研究的主要内容。典型的模型法有马尔可夫随机场(MRF)模型、分形模型和自回归模型等。
(1) MRF模型。随机场模型法试图以概率模型来描述纹理的随机过程,实质上是描述图像像素对其邻域像素的统计依赖关系,常见的随机场模型有Markov模型、Gibbs模型等。
MRF模型将纹理图像看用是一个随机2维图像场,并且假设像素的灰度级仅与邻域内像素的灰度级有关,使用局部邻域的条件分布描述作为对应随机场的局部特征。MRF模型的优点是能将局部特性与全局特性联系起来,且有较好的抗噪性能。但基于Markov随机场模型仅通过局部特征很难得到全局的联合分布,Cohen[104]将Markov与高斯分布联系起来,提出了使用高斯—马尔可夫模型(GMRF,在检验过程中,被视为假设检验的问题源自高斯—马尔可夫模型。
(2) 分形模型。分形的概念是美籍数学家Mandelbrot首先提出的。很多自然图像(如海岸线)其特征是极不规则、极不光滑的,但所有海岸线在形貌上却是自相似的,即局部形态和整体形态的相似。具有自相似性的形态广泛存在于自然界中,Mandelbrot把这些部分与整体以某种方式相似的形体称为分形。1975年,Mandelbrot创立了分形几何学。在此基础上,形成了研究分形性质及其应用的科学,称为分形理论。
Pentland[105]首次用分形有来描述纹理,认为自然界中的分形与图像的灰度表示之间存在着一定的对应关系,指出分形维数是描述纹理的一个重要特征。分形模型中如何确定分数维是描述纹理的重要问题,常用的算法有Keller的盒维数、Sarkar等人提出的差分计盒法等。分形模型主要适用于具有自相似性的自然纹理。
徐科等人[106]将分形维数作为特征量,利用Peleg毯覆盖法计算图像在不同尺度下的分形维数,通过尺度—分形维数曲线图估计最优尺度,用于对热轧带钢表面缺陷的自动识别,取得了良好的效果。李庆中等人[107]基于分形特征进行水果缺陷快速识别研究,通过该方法提取的纹理特征不受光照强度变化的影响,且具有平移、旋转和缩放不变性。
5) 纹理特征提取算法比较。上述纹理特征提取方法各有其优缺点,总的看来,可以从以下几个角度来估计其优势和不足:计算的复杂度,是否利用了全局信息,是否具有多分辨特征及是否与人类视觉感受一致。
统计法方法简单、易于实现,特别是GLCM方法具有较强的适应性和鲁棒性;但缺少图像的全局信息,纹理尺度间像素的依赖关系难于发现,没有联系人类的视觉模型。模型方法既考虑了纹理局部的随机性,又考虑了纹理整体的规律性,灵活性较大,而且也研究了纹理的多分辨性;但模型的参数估计有一定的难度,而且计算量较大。信号方法能对纹理进行多分辨描述,能将空域和频域相结合对纹理进行研究,也符合人类的视觉持征;但正交小波变换对高频部分没有进一步分解,而小波包对非规则纹理图像的处理效果不佳,且计算量大。结构法只适合于纹理基元较大且排列规则的图像;对于一般的自然纹理,因其随机性较强、结构变化大,难以用该方法来准确描述。上述方法各有利弊,研究人员正试图将不同的方法结合对纹理特征进行比较研究和融合提取。
形状特征人类视觉进行物体识别时所需要的关键信息之一,它不随周围的环境如亮度等因素的变化而变化,是一种稳定信息;相对于纹理和颜色等底层特征而言,形状特征属于图像的中间层特征。在2维图像中,形状通常被认为是一条封闭的轮廓曲线所包围的区域。
对形状特征的描述主要可以分为基于轮廓形状与基于区域形状两类,区分方法在于形状特征仅从轮廓中提取还是从整个形状区域中提取。
1) 基于区域的形状特征。基于区域的形状特征是利用区域内的所有像素集合起来获得用以描述目标轮廓所包围的区域性质的参数。这些参数既可以是几何参数,也可以是密度参数,还可以是区域2维变换系数或傅里叶变换的能量谱。基于区域的形状特征主要有几何特征、拓扑结构特征、矩特征等。
几何特征包括区域简单特征描述,如面积、周长、质心、分散度、矩形度、长宽比、方向等;还包括基于形状相似性的特征,如区域的矩形度、圆形度、球形度、偏心率、面积周长比、细度,还有基于直方图、基于饱和度、基于形态曲率和多边形描述的形状特征等。
拓扑结构特征不受图像几何畸变的影响,是一种不依赖于距离变化的全局特征。常用的拓扑结构特征是欧拉数,即图像目标区域连通组元的个数与目标区域的孔数之差,它表明图像的连通性。
矩特征利用目标所占区域的矩作为形状描述参数,其计算要用到目标区域中所有相关的像素点,因此从全局描述了对象的整体特性。特征矩也可理解为将图像目标函数投影到一组基函数上,根据基函数的特征,可将矩分为非正交矩和正交矩。非正交矩主要有几何矩、复数矩、旋转矩等。归一化的中心矩对目标图像平移、尺度变换具有不变性。Hu基于上述矩组合而成了7个经典不变量,被称为Hu不变矩[108],具有平移、旋转和比例不变性。正交矩又分为连续正交矩和离散正交矩。连续正交矩主要有Zernike矩、伪Zernike矩、Legendre矩、正交Fourier-Mellin矩,离散正交矩主要有Chebyshev矩、Krawtchouk矩[109]。
2) 基于轮廓的形状特征。基于轮廓的形状描述符是对包围目标区域的轮廓的描述,主要有边界特征法(边界形状数、边界矩等)、简单几何特征(如周长、半径、曲率、边缘夹角)、基于变换域(如傅里叶描述符、小波描述符)、曲率尺度空间(CSS)、数学形态学、霍夫变换、小波描述符等方法。
基于轮廓的特征有如下优点:轮廓更能反映人类区分事物的形状差异,且轮廓特征所包含的信息较多,能减少计算的复杂度;但是,轮廓特征对于噪声和形变比较敏感,有些形状应用中无法提取轮廓信息。
颜色特征是人类感知和区分不同物体的一种基本视觉特征,是一种全局特征,描述了图像或图像区域所对应的景物的表面性质。颜色特征对于图像的旋转、平移、尺度变化都不敏感,表现出较强的鲁棒性。颜色模型主要有HSV、RGB、HSI、CHL、LAB、CMY等。常用的特征提取与匹配方法如下:
1) 颜色直方图。颜色直方图(color histogram)是最常用的表达颜色特征的方法,它能简单描述一幅图像中颜色的全局分布,即不同色彩在整幅图像中所占的比例,特别适用于描述那些难以自动分割的图像和不需要考虑物体空间位置的图像,且计算简单,对图像中的对象的平移和旋转变化不敏感;但它无法描述图像中颜色的局部分布及每种色彩所处的空间位置。
当颜色特征并不能取遍所有取值时,在统计颜色直方图时会出现一些零值,这些零值对计算直方图的相交带来很大影响,使得计算的结果不能正确反映两幅图像之间的颜色差别。为解决上述问题,可利用累积直方图法。
2) 颜色集。颜色直方图法是一种全局颜色特征提取与匹配方法,无法区分局部颜色信息。颜色集是对颜色直方图的一种近似,首先将图像从RGB颜色空间转化成视觉均衡的颜色空间(如HSV空间),并将颜色空间量化成若干个柄(bin)。然后,用色彩自动分割技术将图像分为若干区域,每个区域用量化颜色空间的某个颜色分量来索引,从而将图像表达为一个二进制的颜色索引集。在图像匹配中,比较不同图像颜色集之间的距离和色彩区域的空间关系。因为颜色集表达为二进制的特征向量,可经构造二分查找树来加快检索速度,这对于大规模的图像集合十分有利。
3) 颜色矩。颜色矩(color moments)是另一种简单而有效的颜色特征提取与匹配方法。该方法的数学基础在于:图像中任何的颜色分布均可以用它的矩来表示。由于颜色分布信息主要集中在低阶颜色矩中,因此仅采用颜色的一阶中心矩、二阶中心矩和三阶中心矩就可以表达图像的颜色特征,它们分别表示图像的平均颜色、标准方差和三次根非对称性。该方法的另一个优点是它无需对颜色特征进行向量化。但因为没有考虑像素的空间位置,该方法仍存在精确度和准确度不足的缺点。
4) 颜色聚合向量。其核心思想是:将属于直方图每一个柄的像素分成两部分,如果该柄内的某些像素所占据的连续区域的面积大于给定的阈值,则该区域内的像素作为聚合像素,否则作为非聚合像素。
在目前图像处理的硬件条件下,直接对彩色图像的处理与分析是复杂而又耗时的,因此对彩色图像的处理通常都是先转化为灰度图像,然后再按照灰度图像处理方法进行处理。
图像的特征提取及其选择的目的是为了提高后续图像识别的准确性和鲁棒性。图像的特征提取实现了从图像空间到特征空间的转换,但是并非所有的特征都对后续的图像识别和分类有作用。如果特征提取的数量多,使得特征向量有较高的维数,这些高维特征中很可能存在冗余信息,从而导致图像处理结果的精确度下降;图像特征维度过高,还会使图像处理算法的复杂度高导致“维度灾难”。因此,对于高维图像特征,为了降低所提取图像特征维数之间的相关性,需要消除图像特征之间的依赖性,即降维处理,也就是从图像原始特征中找出真正有用的特征,以降低图像处理算法的复杂度,并提高处理速度和结果的精确度,这个处理过程就是特征的选择。
很多特征选择问题被认为是NP问题,因此,人们一般只能寻找特定问题的评价标准来保证所选择的特征是最优的,这也就造成了目前特征选择方法众多。目前,特征选择的方法包括:主成分分析法(PCA)、独立成分分析法(ICA)、Fisher分析法(FDA)、相关分析法(CFS)、自组织映射法(SOM)、Relief法、遗传算法、模拟退火法、Tabu搜索法及基于流行的非线性降维方法等。
PCA由Pearson首先引入,后来由Hotelling进行了发展。PCA是一种数学降维方法,其基本原理通过研究指标参数之间的相关性,寻求几个综合指标来代替原来众多的指标,使这些综合指标彼此之间互不相关且能尽可能地代表原来的信息量,并具有最大的方差;通过压缩变量个数,用较少的变量去解释原始数据中的大部分变量,剔除冗余信息,即将许多相关性很高的变量转化成个数较少、能解释大部分原始数据方差且彼此互相独立的几个新变量,即所谓的主成分。
PCA设法将原来众多具有一定相关性个指标,重新组合成一组新的互相无关的综合指标来代替原来的指标。将选取的第一个线性组合即第一个综合变量方差最大、信息最多,称为第一主成分;如果第一主成分不足以代表原来个变量的信息,再选取第二个线性组合即第二主成分,依此类推。
PCA是一种线性组合方法,它能在尽可能好的代表原始数据的前提下,能过线性变换将高维空间的样本数据投影到低维空间,因其计算简单且便于分析而应用广泛。
如果基于最小MSE来降低特征向量的维数,则PCA的结果是最优的,但因PCA所获得的特征向量的各分量之间是不相关的,故PCA无法满足特征向量的各分量之间是统计独立的。独立成分分析(ICA),最早应用于盲源信号分离(BBS)。ICA方法最早是由法国的Herault和Jutten于80年代中期提出来的,ICA理论的基本思想是从一组混合的观测信号中分离出独立信号,或者尽可能独立的信号对其他信号进行表征。
ICA的主要任务是给定一个维特征向量,确定一个×的变换矩阵(分离矩阵),使得变换后的向量的各分量满足互相统计独立的特性。ICA方法的关键是如何快速求取最优的分离矩阵,根据求取分离矩阵的方法,ICA算法有Infomax算法、峰度估计法、快速ICA算法等。
PCA和ICA所形成的新特征各分量之间是互不相关或是统计独立的,从理论上等价于使得二阶或高阶交叉累积量最小。如果根据二阶或高阶交叉累积量构造一个准则函数,则特征优化问题可理解为基于准则函数进行特征的优化,即通过最小化的准则函数,在概率意义上计算出问题的全局最优解,基于组合优化的特征选择就是基于上述原理的,常用的组合优化算法有遗传算法、模拟退火算法和Tabu搜索算法等。
遗传算法(GA)是由美国Michigan大学的Holland教授根据Darwin的生物进化论和Mendel的遗传变异理论提出的一种基于种群搜索的优化算法。其思想是随机产生初始种群, 通过选择(reproduction)、交叉(crossover)和变异(mutation)等遗传算子的共同作用使种群不断进化,最终得到最优解。
基于遗传算法的缺陷特征优化的基本思想是:先对待寻优的缺陷特征参数进行编码,按一定规模初始化种群,种群中的每一个体就代表了一个可能的解;然后根据适应度值函数计算每一个体的适应度值并依此决定遗传操作,再按一定的概率对种群进行交叉、变异,直至满足终止条件结束。
模拟退火算法是一种求解在规模组合优化问题的随机性方法,它以优化问题的求解与物理系统退火过程的相似性为基础,利用metropolis算法并适当控制温度的下降过程实现模拟退火,从而得到全局最优解。文献[110]提出了一种基于自适应模拟退火算法的特征选择方法,该方法将模拟退火算法嵌入到自适应遗传算法的循环体中,避免陷入局部最优解。
Tabu搜索法最早由美国Glover教授提出,它是对局部领域搜索的一种扩展,是一种全局逐步寻优算法。Tabu搜索法从一个初始可行解出发,选择一系列的特定搜索方向作为试探,选择实现让特定的目标函数值变化最多的搜索。为了避免陷入局部最优解,采用了一种灵活的“记忆”技术,对已经进行的优化过程进行记录和选择,指导下一步的搜索方向。为了能够逃出局部极值和避免循环,算法中设置了禁止表,当搜索的解在禁止表中时,则放弃该解。Tabu搜索法可以灵活地使用禁止表记录搜索过程,从而使搜索既能找到局部最优解,同时又能越过局部极值得到更优的解。
PCA和ICA等线性降维方法简洁直观、数学推导严谨,可较好的发现高维向量空间的线性子空间上的数据集的内部几何结构,具有广泛的应用。但线性降维方法难以解决高维空间的非线性流形学习问题。为此,基于流行学习的非线性降维方法也受到了科研者们的广泛关注,主要有局部线性嵌入(LLE)方法、局部保持映射法(LPP)、Isomap方法等。这些算法首先根据给定的样本数据集,定义一个描述成数据点相似度的关系矩阵,然后计算这个矩阵的特征值和特征向量,选择合适的特征向量投影到低维空间,从而得到低维嵌入向量。因所构建的关系矩阵不同,故有不同的算法。
统计模式识别(statistical pattern recognition)和句法(结构)模式识别(syntactic pattern recognition)是两种基本的模式识别方法。前者是模式的统计分类方法,即结合统计概率的贝叶斯决策系统进行模型识别的技术,又称为决策理论识别方法;后者的基本思想是把一个模式描述为较简单的子模式的组合,子模式又可进一步描述为更简单的子模式的组合,最终得到一个树状结构描述,利用模式与子模式分层结构的树状信息完成模式识别任务。数字图像的识别问题通常适用于统计模式识别,而句法模式识别主要用于遥感图像识别、文字识别等,目前,基于机器视觉的表面缺陷识别主要涉及统计模式识别。
统计模式识别按其实现方式又分为有监督学习的模式识别和无监督学习的模式识别。前者是在已知类别标签的特征集(即训练集)基础上进行分类器构建;后者也称为聚类,该方法不需要已知类别的训练集,分类器直接根据特征向量之间的相似性,将待分类的特征向量集合分为若干个子集。
监督模式识别主要有基于概率统计的分类器、线性分类器、人工神经网络分类器和支持向量机等。
1) 基于概率统计的分类器。基于概率统计的分类方法主要有基于最小错误率的贝叶斯决策、基于最小风险的贝叶斯决策。使用贝叶斯决策首先需要得到有关样品的总体分布知识,包括各类先验概率及类条件概率密度函数,计算出样品的后验概率,并以此作为判别函数的必要数据,设计出相应的判别函数及决策面。贝叶斯分类器可给出数学上的严格证明,在给出某些变量的条件下使分类的平均损失最小或是分类决策风险最小。尽管贝叶斯决策规则从理论上解决了最优分类器的设计问题,但其实施时样本特征空间的类条件概率密度形式一般很难确定,而利用Parzen窗等非参数方法估计分布又往往需要大量的样本,所以贝叶斯决策规则更多是具有理论上的指导意义,一般适用于有统计知识的场合,或是能利用训练样品估计出参数的场合。
张宏杰等人[111]基于贝叶斯图像模式识别技术的点焊质量评估,利用主成分分析消除图像特征间的互相关性,建立了基于最小风险贝叶斯图像识别技术的焊点质量分类器,有效地评判焊点质量;苏芳等人[112]通过贝叶斯理论进行多通道SAR图像测量级数据融合,充分利用像素的从属信息并获得单通道分类无法获取的分类结果,有效保留各通道有用信息并抑制图像中的斑点噪声。
2) 线性分类器。在实际应用中,往往不去求类条件概率密度,而是利用样本集直接设计分类器,即给定某个判别函数,利用样本集确定判别函数中的未知参数,即判别函数分类法。判别函数分类方法按其判别函数的形式可分为线性分类法和非线性分类法。前者主要有Fisher分类算法、感知算法LMSE分类算法等;后者主要有分段线性判别函数法(如近邻分类法、最小距离法)、基于核的Fisher分类算法、势函数法和支持向量机方法等。线性分类器算法简单,在计算机上实现容易,在模式识别中得到了广泛应用;对于模式识别的非线性问题,则用非线性分类器。
K最近邻(KNN)分类算法是最简单的机器学习算法之一,其核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。Lopez等人[113]使用KNN分类方法提取各通道的颜色特征进行瓷砖表面质量的分类;Mandriota等人[114]采用KNN算法结合和小波系数对轨道表面质量进行检测;Wiltschi等人[115]则基本最小距离分类方法对钢板图像进行表面质量检测;Pernkopf等人[116]采用耦合隐马尔可夫随机场合进行似然计算,结合贝叶斯网络分类器进行了钢坯表面缺陷检测。
3) 人工神经网络。人工神经网络(ANN)是一种应用类似于大脑神经突触联接的结构进行信息处理的数学模型,是在现代神经科学研究成果的基础上提出的,试图通过模拟大脑神经网络处理、记忆信息的方式进行信息处理。
ANN是由大量处理单元互联组成的非线性、自适应信息处理系统。1943年,心理学家McCulloch和数理逻辑学家Pitts建立了神经网络和数学模型,称为MP模型。60年代,人工神经网络得到了进一步发展,更完善的神经网络模型被提出,其中包括感知器和自适应线性元件等。20世纪80年代,美国加州工学院物理学家Hopfield提出了Hopfield神经网络模型,为神经计算机的研究做了开拓性的工作。不久,Rumelhart, Hinton, Williams发展了BP算法,迄今,BP算法已被用于解决大量实际问题。继而,Broomhead和Lowe用径向基函数(RBF)提出分层网络的设计方法。20世纪90年代初,Vapnik等提出了支持向量机(SVM)和VC(Vapnik-Chervonenkis)维数的概念。目前,已有近40种神经网络模型。
人工神经网络具有非线性、自适应、自组织、自学习能力、非局限性、非凸性和容错性等一系列特点,故在信息处理、模式识别和智能控制等领域有着广泛的应用前景。与其他技术的结合取长补短,以及由此而来的混合方法和混合系统,已成为一大研究热点。目前这方面工作有神经网络与模糊逻辑、专家系统、遗传算法、小波分析、混沌、粗糙集理论、分形理论、证据理论和灰色系统等的融合,并取得了一定的成果。
4) 支持向量机。人工神经网络方法具有一系列的优点,但有时也存在泛化能力不强、算法耗时较多、往往需要有较多训练样本等问题。支持向量机(SVM)是Vapnik根据统计学习理论于1995年提出的,它采用结构风险最小化(SRM)而非经验风险最小化(ERM)原理,通过将样本点所在的输入空间映射到高维的特征空间,以达到线性可分或者线性近似可分的目的。
所谓支持向量是指那些在间隔区边缘的训练样本点,支持向量机与神经网络类似,都是学习型的机制,但与神经网络不同的是SVM使用的是数学方法和优化技术,而且在传统的最优化问题中提出了对偶理论,主要有最大最小对偶及拉格朗日对偶。
支持向量机是一种有坚实理论基础的小样本学习方法,其最终决策函数只由少数的支持向量所确定,计算的复杂性取决于支持向量的数目而不是样本空间的维数。SVM的关键在于核函数,低维空间向量集通常难于划分,解决的方法是将它们映射到高维空间,只要选用适当的核函数,就可以得到高维空间的分类函数,这在某种意义上避免了“维数灾难”;而且少数支持向量决定了最终结果,这样可以剔除大量冗余样本,所以算法简单而且具有较好的鲁棒性。支持向量机理论在解决小样本、非线性及高维模式识别中表现出许多特有的优势,在表面检测、模式识别、故障诊断等方面有成功的应用,并表现出很高的有效性和鲁棒性。
无监督学习的模式识别的训练样本没有类别标签,主要以聚类分组来揭示模式结构,也称聚类。聚类是一个将数据集划分为若干组或簇的过程,使得同一类的数据对象之间的相似度较高,而不同类的数据对象之间的相似度较低。
目前出现了大量的聚类算法,其选择取决于数据的类型、聚类的目的。主要的聚类算法可以划分为如下几类:划分方法、层次方法、密度方法、网格方法以及模型方法。
1) 划分方法。划分法(partitioning methods)是聚类分析中最为常见的一种方法,其目的是将给定的数据对象集通过划分操作分成若干分组,每一个分组表示一个聚类。划分时需要预先指定聚类数目或聚类中心,通过反复迭代运算,逐步降低目标函数的误差值,当目标函数值收敛时,得到最终聚类结果。常用的划分法有:K-means、K-medoids、CLARA、CLARANS、K-prototypes等。
K-means算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。将K-means方法与其他技术结合可以提高K-means方法的聚类能力,文献[117]结合遗传算法一定程度上解决了全局最优或近似最优解的问题;文献[118]将免疫算法与K-means聚类相结合,提出了基于免疫规划的K-means聚类分析方法;文献[119]利用用窗口技术提高了K-means方法的聚类分析能力;文献[120]在聚类分类数据中应用禁忌搜索技术;此外,文献[121]提出了一种模糊K-prototypes算法,该算法融合了K-means和K-modes对数值型和分类型数据的处理方法,能够处理混合类型的数据;文献[122]中将模糊数学理论与K-means算法融合,对K-means算法进行了有效改进。
2) 层次方法。层次法(Hierarchical Methods)也称为树聚类算法,层次聚类是将数据对象集分解成几级逐级进行聚类,递归地对给定的数据对象集进行合并或分解,直到满足限制条件为止,其聚类结果最终以类别树的形式显示。层次方法根据分解方式的不同可以分为凝聚式(agglomerative)和分裂式(division)。层次算法不需要预先指定聚类的数目,但是在凝聚或分裂的层次聚类算法中,用户可以预先定义希望得到的聚类数目作为算法的结束条件,当该条件达到满足时,算法将终止。其代表算法有:BIRCH、CURE、CHAMELEO N、 ROCK、SBAC和BUBBLE等。
层次聚类的优点体现在算法能得到不同粒度的多层次聚类结构,缺陷在于没有全局优化的目标函数,合并或分裂点的选择比较困难,对噪声、孤立点数据比较敏感,不适于非凸型分布的数据对象集等。为此,研究者们给出了一些改进算法,如将层次聚类和其他的聚类分析技术进行集成,形成多阶段聚类等。
3) 密度方法。密度方法(density-based methods)的指导思想是,只要一个区域中的点的密度大于某个阈值,就把它加到与之相近的聚类中去,即通过数据密度(单位区域内的实例数)来发现任意形状的类簇。该方法与其他方法的一个根本区别是:它不是基于距离的,而是基于密度的,这样就能克服基于距离的算法只能发现“类圆形”的聚类的缺点。其代表算法有:DBSCAN、OPTICS、DENCLUE、GDBSCAN、FDC算法等。
基于密度的聚类算法的优点是一遍扫描,并可以很好的过滤噪声和孤立点数据,发现任意形状、不定个数的类;其缺点是算法复杂度较高,对于密度分布不均的数据集聚类效果不佳。
4) 网格方法。基于网格的方法采用一个网格数据结构,该结构具有多分辨率,通过这个数据结构可以将对数据对象的处理转化为对网格空间的处理。这种方法首先将数据空间划分成为有限个单元的网格结构,然后通过算法对网格空间进行分割进而实现聚类的目的。此聚类算法常常与其他方法相结合,特别是与基于密度的聚类方法相结合。其代表算法有:在高维数据空间中基于网格和密度相结合的聚类方法(CLIQUE算法),基于小波变换的聚类方法(Wave-Cluster算法),利用存储在网格中的统计信息的STING算法。
基于网格的方法的主要优点是执行速度快,它的时间复杂度仅依赖于量化空间中每一维上的单元数目;但该算法因网格单元的数目随着维数的增加而呈指数的增长故不适于高维数据,而且高效率以聚类结果的精确性为代价。
5) 图论算法。图论分裂聚类算法的主要思想是:构造一棵关于数据的最小生成树,通过删除最小生成树的最长边来形成类.基于图论的聚类算法主要包括RANDOMWALK、CHAMELEON、AUTOCLUST等。
6) 模型算法。基于模型的方法给每一个聚类假定一个模型,然后去寻找能够很好的满足这个模型的数据集。这样一个模型可能是数据点在空间中的密度分布函数或者其他。该方法基于目标数据集由一系列的概率分布所决定这一假设,通过构造反映数据对象空间分布的密度函数来进行聚类。该算法通常分为两种:基于统计学的方法和基于神经网络的方法。前者主要有以分类树的形式创建层次聚类的COBWEB算法及其扩展COBWEB算法;后者主要有竞争学习型和自组织特征映射型(SOM)等[123]。
以上传统的聚类方法都具有各自的优点,在各自的适用领域取得了较大的成功。但是,这些聚类方法也存在以下问题:在进行聚类之前都需要事先确定要得到的聚类的数目,然而在现实数据中,聚类的数目往往是未知的;处理大规模数据和高维数据的能力、计算效率、有效的消除噪声的影响等方面都有待于提高;此外,有的聚类算法对输入参数的取值十分敏感,而且参数的取值没有成熟的理论依据,只能依靠用户的经验来确定。除上述聚类方法外,学者们还研究了其他大量的聚类方法,下面列出了几类:
1) 模糊聚类方法。1969年,Ruspini首次提出了模糊聚类算法(FCM)。FCM是一种以隶属度来确定每个数据点属于某个聚类程度的算法,能保留初始图像的更多信息。然而,FCM没有考虑图像上下文中的空间信息,对噪声较敏感。学者们围绕FCM算法开展了大量研究,比如,李洁等人[124]采用ReliefF算法[125]确定各维特征的权重,提出了基于特征加权的模糊聚类新算法NFWFCA;Cai等人[126]结合局部空间和灰度信息,提出快速通用FCM聚类算法FGFCM,该算法计算简单,适合大幅灰度图像和有噪声和无噪声的多种类型图像;唐利明等人[127]结合变分水平集方法和模糊聚类,提出了一个基于变分水平集的图像聚类分割模型,该模型引入了一个基于图像局部信息的外部模糊聚类能量和一个新的关于零水平集的正则化能量,使得该模型对噪声图像的聚类分割更具鲁棒性;王雪等人[128]提出一种多相水平集模型协同空间模糊C-均值聚类(SFCM)的图像多目标分割算法, 即SFCM-MLS算法,用空间模糊聚类获取图像多目标粗分割结果,然后用粗分割结果定义多相水平集模型的初始水平集函数对图像做精分割,SFCM-MLS算法对初始位置不敏感,提高了图像多目标分割的准确性。
2) 迭代自组织数据分析算法。迭代自组织数据分析算法(ISODATA)的主要思想是首先根据最小距离准则获得初始聚类,再判断初始聚类结果是否符合要求。若不符合,则将聚类集进行分裂和合并处理,得到新的聚类中心,再判断聚类结果是否符合要求。如此反复迭代直到完成聚类操作。ISODATA与K-MEANS一样,聚类中心的位置通过样本均值的迭代运算决定,但ISODATA聚类中心数目不是固定的,而且反复修正,在迭代过程中可将一类一分为二,也可以两类合并,即“自组织”。ISODATA具有启发性、计算并不复杂,适用于识别致密聚类。时静洁等人[129]将ISODATA与蚁群算法(ACO)算法相结合,建立相关模型对有机化合物的黏度进行QSPR研究,解决了小样本、非线性和维数灾难等问题。
3) 模拟退火聚类算法。模拟退火算法(SA)最初由Metropolis等人于20世纪80年代初提出,其思想源于物理中固体物质退火过程与一般组合优化问题之间的相似性,通过模拟高温物体退火过程的方法来找到优化问题的全局最优或近似全局最优解。SA是一种启发式随机搜索算法,具有并行性和渐近收敛性,目前已广泛应用于图像识别、机器学习、神经网络等优化问题。如张引、潘云鹤[130]采用模拟退火技术求解最大似然聚类用于图像分割,解决了用迭代方法求解最大似然聚类只能得到局部最优解的问题.获得的图像分割效果优于迭代方法和著名的Otsu方法;Neethirajan等人[131]基于模拟退火算法对储粮害虫进行了识别分类。
4) 粗糙集方法。粗糙集理论是波兰科学家Pawlak提出的,它是一种新型的处理模糊和不确定知识的数学工具,揭示潜在的规律能有效地分析和处理不精确、不一致、不完整等各种不完备信息,并能从中发现隐含的知识和揭示潜在的规律[132-133]。它提供了一套比较完备的从小样本数据中寻找规律的系统方法,用其可找到描述正常模型的最小预测规则集,其不仅有利于提高检测速度,而且可应用于系统的实时检测。
目前,粗糙集理论已经在数据的决策和分析、模式识别、机器学习等方面有着成功的应用,已成为信息科学最活跃的研究领域之一。如文献[134]基于RS理论对带钢表面缺陷图像进行了识别分类,并同BP算法进行了对比,验证了基于粗糙集的分类识别算法的有效性。
此外,蚁群聚类算法、粒子群聚类算法、基于遗传算法的聚类方法、基于核的聚类算法等得到应用,广大学者们正致力于具有聚类能力强、自适应、效率高等特点的聚类算法研究,并注重将不同的聚类思想进行融合以形成新的聚类等新算法。如,王孙安等人[135]提出一种混沌免疫模糊聚类算法,该算法把混沌变量加载于免疫算法的变量群体中,利用混沌搜索的特点对群体进行微小扰动并逐步调整扰动幅度,提高了基于人工免疫进化算法的模糊聚类算法的搜索效率;吴一全等人[136]提出了一种利用核模糊C均值聚类和正则化的图像稀疏去噪方法,更有效地去除图像噪音,保留图像细节,改善图像视觉效果;Nunes应用一种人工免疫进化网络用于聚类[137]。
3 主要问题和发展趋势
基于机器视觉的表面缺陷检测将是未来研究和发展的主要方向,目前,基于机器视觉的表面缺陷检测理论研究和实际应用等环节均有可喜的成果,但仍存在下面主要的问题和难点:
1) 受环境、光照、生产工艺和噪声等多重因素影响,检测系统的信噪比一般较低,微弱信号难以检出或不能与噪声有效区分。如何构建稳定、可靠、鲁棒的检测系统,以适应光照变化、噪声以及其他外界不良环境的干扰,是要解决的问题之一。
2) 由于检测对象多样、表面缺陷种类繁多、形态多样、复杂背景,对于众多缺陷类型产生的机理以及其外在表现形式之间的关系尚不明确,致使对缺陷的描述不充分,缺陷的特征提取有效性不高,缺陷目标分割困难;同时,很难找到“标准”图像作为参照,这给缺陷的检测和分类带来困难,造成识别率尚有待提高。
3) 机器视觉表面缺陷检测,特别是在线检测,其特点是数据量庞大、冗余信息多、特征空间维度高,同时考虑到真正的机器视觉面对的对象和问题的多样性,从海量数据中提取有限缺陷信息的算法能力不足,实时性不高。
4) 与机器视觉表面检测密切相关的人工智能理论虽然得到了很大的发展,但如何模拟人类大脑的信息处理功能去构建智能机器视觉系统还需要理论上的进一步研究,如何更好的基于生物视觉认识、指导机器视觉得检测也是研究人员的难点之一。
5) 从机器视觉表面检测的准确性方面来看,尽管一系列优秀的算法不断出现,但在实际应用中准确率仍然与满足实际应用的需求尚有一定差距,如何解决准确识别与模糊特征之间、实时性与准确性之间的矛盾仍然是目前的难点。
随着计算机技术、信息技术、电子技术、传感器技术和仿生技术等的发展,机器视觉检测方法也必将得到迅速的发展。技术和市场需求等因素决定了机器视觉表面缺陷检测的发展趋势为:
1) MARR理论对计算机视觉发挥了巨大作用,其核心是将视觉理解为3D重建的过程。但是,从3D场景到2D图像是一个多对一的映射,在映射的过程中损失了深度信息;灰度是对场景的惟一的测量值,诸如光照、材料特性、朝向和距离等信息都无法反映;成像中由于噪声及环境等因素的干扰,都会使图像产生失真。为此,需要研究视觉检测新理论和新方法,如发展主动视觉、增强视觉系统的智能学习能力等。
2) 从生物视觉得到启发,吸收来自心理学、生理学等其他学科中生物视觉的最新研究成果,基于生物视觉机制为视觉检测提供研究新思路,模仿生物视觉多尺度、层次性的视觉特点,结合视觉任务,引入先验高级知识的指导,同时将机器视觉、机器听觉、机器嗅觉、机器触觉等多信息相互融合,突破单一视觉信息的局限性,也将成为机器视觉检测的发展方向之一。
3) 研究更具鲁棒性的图像处理和分析算法,提高图像处理的有效性和和执行效率,降低算法的复杂度,提高识别的准确性。在在线检测系统中,要特别注重实时性,视觉本身具有内在的并行性,为此,还在要理论、算法和技术等多方面研究视觉并行计算,提高视觉计算的速度。同时,进一步研究算法性能的评价方法,以对算法的效率和性能作了科学、准确的刻化和评价。
4) 研究完整3维场景重建方法。现有3维场景重建理论和算法基本都局限于对目标“可视”部分的重构,如果用Marr视觉计算理论来说,还主要停留在2.5维表达上,这种表达仅提供了物体可见轮廓以内的3维信息。如何恢复物体完整表面的信息,即包括物体表面不可见部分,是一个复杂但也亟待解决的问题。
5) 采用统一而开放的标准,构建标准化、一体化和通用化的解决方案,标准化与个性化的进一步统一,研发可靠性高、维护性好、便于不断完善和升级换代、网络化、自动化和智能化更高的机器视觉系统是今后的发展趋势。
4 结论
机器视觉系统的研究和应用范围涵盖了工业、农业、医药、军事、交通和安全等国民经济的各个领域,基于机器视觉的产品表面质量检测在现代自动化生产中得到了越来越多的重视和应用。
机器视觉表面缺陷检测系统中,图像处理和分析算法是重要的内容,通常的流程包括图像的预处理、目标区域的分割、特征提取和选择及缺陷的识别分类。每个处理流程都出现了大量的算法,这些算法各有优缺点和其适应范围。如何提高算法的准确性、执行效率、实时性和鲁棒性,一直是研究者们努力的方向。
机器视觉表面检测比较复杂,涉及众多学科和理论,机器视觉是对人类视觉的模拟,但是目前对人的视觉机制尚不清楚,尽管每一个正常人都是“视觉专家”,但难以用计算机表达自己的视觉过程,因此构建机器视觉检测系统还要进一步通过研究生物视觉机理来完善,使检测进一步向自动化和智能化方向发展。
下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。
下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。
下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。
交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~