黄 健,宋执环,陈文伟,李 斌
(工业控制技术国家重点实验室,浙江大学工业控制研究所,浙江杭州 310027)
铜加工过程中,铜成分是实现生产过程自动控制的关键质量参数,需要能够快速准确地检测样本的铜成分质量指标。然而,由于高温和腐蚀性等因素,该参数在线检测成为成套控制系统应用中的一个技术难题。现有工艺下,铜成分测量一般采用先将铜液冷却固化成铜块,再到化验室进行离线分析检测的方法。
近年来,出现了一些基于图像特征的铜成分分析方法,如文献[1]提出了一种基于彩色图像特征的铜成分软测量方法,文献[2]提出了一种基于色调强度的二元铜合金铜成分分析方法。在基于图像特征的铜成分分析过程中,具有检测价值的区域主要位于铜块截面上某个部位(通过打磨等处理),这样能否获取一块有检测价值的区域必将影响最终铜成分分析的准确性。这里,称这样一块有检测价值的区域为感性趣的区域(region of interest,ROI)。目前,基于图像特征的铜成分分析方法中基本采用人为选取ROI的方法,但在铜成分分析仪表产品化的情况下,仪表必须实现ROI自动提取的功能,并且ROI的提取必须具有鲁棒性,能适应复杂背景的情况。当前ROI提取方法不少,但没有一种方法具有普遍性,也没有一种有效的方法适用于铜块ROI提取。
本文针对这种情况,提出了一种复杂背景下不规则铜块ROI快速提取的方法—SBRE(seed-based ROI extraction)方法,具有在线计算量小的优点,适用于性能相对较差的嵌入式平台。
假设背景单一,且在灰度分布上和铜块相差很大,这种情况下铜块区域的确定是相对容易的,阈值分割的方法就能很好地将铜块区域用矩形框标记出来。遵循自动检测的原则,本文采用迭代选择阈值法分割来区分铜块区域和背景,并用矩形框REC标记铜块区域。
对于一个铜块合金样本,铜块截面是最具有检测意义的区域,而铜块截面和侧面无论灰度分布色彩分布上都比较接近,无监督的方法很难将它们区别开来。这里加入一些先验知识,当铜块被测量时,截面朝上,截面的位置肯定位于侧面的上方。把矩形框REC从上往下按顺序分割为4块区域,对第一块区域内的铜块区域I,假设其全部属于铜截面区域,否则,铜截面宽度连铜块宽度的1/4都不到,再去测量其成分就变得毫无意义了。因此,凸边形区域I的中心点O也必在铜截面区域内,并且是一个相对远离铜截面边界区域的点。这里把O点作为种子点,通过该种子点与铜块边缘相结合的方法,可以不断更新种子点去近似真正的铜截面中心点,并获得一块较大的ROI,其具体流程如图1。
图1 ROI提取流程图Fig 1 Flow chart of ROI extraction
1)提取出矩形框REC内的铜块灰度子图S;
2)对图像S1进行Canny算子边缘检测[3]获得边缘图像S1,选取合适的阈值,铜块截面与侧面间的边缘必会呈现在S7中;
3)在图像 S1 中,从O点出发,沿着 0°,45°,90°,135°,180°,225°,270°,315°方向寻找铜截面边缘点或 S1 图像边界点;
4)若找到边缘点,则计算此边缘点所在边缘长度;若边缘长度小于35,则认为此边缘点只是铜截面内部纹理的一部分,跳到步骤(3),继续沿着原方向搜索;若边缘长度大于35,则认为找到了该方向上的截面边缘点,记录该点;若该点已是315°方向,跳到步骤(4);反之,跳转到步骤(3),沿下一个方向继续搜索,找到图像S1边界点的情况与找到截面边缘点的情况一样;
5)因为铜截面可当成凸边形,其中心点必在截面内部,本文将步骤(4)找到的8个方向上的铜截面边缘点(或边界点)的中心近似为铜块截面中心O0;
6)若迭代次数大于50,或者O0和O点的距离小于5(采用欧氏距离[4]),更新O0点为O点,跳转到步骤(7);反之,更新O0点为O点,跳转到步骤(3);
7)记录O点到0°,180°2个方向上的铜截边缘点(或边界点)的最短距离Lx,O点到90°,270°2个方向上的铜截面边缘点(或边界点)的最短距离Ly,选择以O点为中心点、(2Lx×0.5)为长、(2Ly×0.5)为宽的矩形区域为 ROI。这样,可使ROI在铜块截面内部。
为了方便下文比较,称此种方法为SRE(single-background ROI extraction)方法。
从前文提出的ROI提取方法可以看出,它主要由3个步骤组成:1)选取种子点;2)确定中心点;3)选取ROI。而ROI的提取由种子点和铜截面边缘确定(前文是针对铜块区域子图片做的边缘检测,有可能会因为铜块区域矩形框误差带入一些边界,但这都是为了计算快速,其实这些边界也可认为是铜截面区域的近似边界),如式(1)(Seed为种子点,Edge为铜截面边缘)
其实,只要种子点在铜截面内部,更新截面中心点多次后(迭代时间足够长),截面中心点就会重合于一点,另外整幅检测图像的边缘必定包含铜块边缘,于是式(1)可转变为式(2)(Edge0为整幅图像的边缘,CuS为整块铜截面区域)
至此,ROI的提取被分成了2个独立的步骤:1)选取种子点;2)根据边缘选取ROI。其中,第二个步骤具有通用性,与背景复杂度无关,因为它是基于铜截面内部种子点和边缘(截止于铜截面边缘)提出的方法,自然独立于铜块所处背景了。于是,只有选取种子点的步骤与背景复杂度有关了,从选取种子点的背景是整幅图像也可以直观地看出这一点。
这样一来,从复杂背景下提取ROI的问题可以转化为从复杂背景下选取一个种子点的问题。把这种基于种子点的ROI提取方法称为SBRE方法。
对于一幅具有复杂背景的铜块图像来说,要想把铜截面里的一点找出来,自然要知道铜截面有别于其它部分的特征。一幅图像的特征基本有2种:颜色特征和纹理特征,由于铜截面的纹理特征与其它物体相比并没有特别显著的地方,本文选取一组样本的颜色特征作为建模依据,符合模型的即为疑似铜块截面点。要挖掘最有效的颜色特征,就要选择合适的颜色空间。颜色空间指的是某个三维空间中的一个可见光子集,它包含某个颜色域的所有颜色。一般图像常采用RGB三元色彩空间表示,但RGB三色空间中两点间的欧氏距离与颜色距离不呈线性比例,换句话说,就是颜色受亮度的影响较大,RGB颜色空间不具有进行彩色图像处理所要求的独立性和均匀性指标。然而绝对满足独立性和均匀性的颜色空间是不存在的[5],只能找到一种在较大范围内符合这2种特性的颜色空间。通过实验,本文采用了HSV颜色空间,H为色彩信息,S为纯度,V为色彩的明亮程度,其与R,G,B(归一化到[0,1]区间)的转换关系如下[6]
由于铜截面图像包含一些深色划痕和噪声,为消除它们的影响,对每个样本(铜截面子图像,共27个,如图2)的所有像素点的H,S,V值作一个平均,得到27个(H,S,V)数据。本文研究背景下的所有铜块根据其特性可以分为两类:一类铜含量高于90%(一类);另一类铜含量在50%~70%之间(二类)。把这27个样本根据其铜含量分为两类,这27个样本的平均(H,S,V)值必定在2个长方体L1,L2内部,如图 3。其中,H1min,H1max,S1min,S1max,V1min,V1max分别对应一类铜截面的H最小值,H最大值,S最小值,S最大值,V最小值,V最大值,H2min等的定义类似。
通过对27组铜截面样本图像的分析,它们的实际值如表1所示。
以上提到HSV颜色空间的2个长方体L1和L2就是铜截面颜色特征模型。对于铜块图像中的像素点,只要其(H,S,V)值在这2个长方体内,就称此像素点为疑似铜块截面点。
图2 27个ROI样本Fig 2 27 ROI samples
表1 模型参数Tab 1 Parameters of HSV model
图3 HSV模型示意图Fig 3 Diagram of HSV model
首先,对HSV模型二值化后的图像K提出3个假设:
1)此图像内的前景点只有铜截面点、铜侧面点以及颜色类似于铜截面的物体点;
2)前景点主要集中在截面和铜侧面,且颜色类似铜截面的物体点相对很少;
3)前景点主要集中在截面,铜侧面上前景点相对很少。
事实上,以上三点假设在大多数情况下成立(背景里没有比铜块大且颜色与铜截面极其相似的物体,铜侧面面积小于铜截面,且(H,S,V)值与截面有所区别)。
假设图像K的分辨率为W×H,Rectangle为长和宽分别为W/2,H/2的矩形框,将该矩形框在图像K内不断平移,计算落在该矩形框内的前景像素点数量N,得到N最大的矩形框RECT,则RECT内的子图像K1必然也符合前面的3个假设:
1)第一条假设显然成立;
2)当铜块区域长和宽均小于RECT时,整个铜块区域在RECT内部(因为第二条,颜色类似铜截面的物体点几乎不影响RECT的位置),当铜块区域长或宽小于RECT时,RECT包裹铜块的部分区域而远离颜色类似铜截面的物体点,因此,对于RECT子图像而言,主要包含铜块区域的点,颜色类似铜截面的物体点相对很少,假设(2)成立;
3)第三条假设的证明与第二条类似。
可以看出:通过对RECT子图像按照对图像K的方法再进行多次迭代后,矩形框收缩于铜截面内部,只要取其内一点作为种子点就可以了。
本文设计的算法正是基于这三条假设的,如图4,其中矩形框搜索的步长为20/1.2n-1,n为迭代次数,初始步长选20的原因是为了加快搜索速度,而另一方面是因为初始搜索精度不需要很高,而随着矩形框的缩小搜索逐渐细化。
图4 BSRE方法流程图Fig 4 Flow chart of BSRE method
图5显示了6种不同背景环境下使用本文提到的2种方法提取铜块ROI的情况(左起依次表示SRE提取ROI情况、SBRE方法矩形框迭代收缩情况、SBRE方法提取ROI情况,矩形框为所提取的ROI)。前2种环境为背景单一的情况,铜块和背景对比很明显;后4种环境则是背景复杂的情况,背景中有可能存在和待检测铜块颜色接近的物体,如手指、非检测铜块等。其中,每一种背景环境对应的3张图片依次表示SRE提取ROI情况、SBRE方法矩形框迭代收缩情况(黑色部分为经过HSV模型处理后的疑似铜块截面点)、SBRE方法提取ROI情况。从图5可以看出:单一背景环境下2种方法都能准确地从铜块截面提取出ROI(获得ROI的位置和大小差不多),在复杂背景下SRE方法就显得无能为力了,有可能提取到背景干扰物体的截面,而SBRE方法则依然能准确地提取到铜块截面。
表2显示了SBRE方法的性能,处理速度基本在100ms左右,非常快速,适合移植到嵌入式设备。其中,用于测试的图片大小为720×576,计算机配置:操作系统为Ubuntu10.10(32 bit);CPU 为 InetlCentrinoDuoT2400(1.83 GHz);内存为 2 GB;g++ 版本为 4.4。
表2 SBRE方法处理时间Tab 2 Time consumed by SBRE method
图5 六种不同背景下的SRE/SBRE方法比较Fig 5 Comparison of SRE/SBRE method under 6 backgroungds
ROI提取是图像分析处理的前期步骤,因为图像背景有可能很复杂,很多情况下很难定位到前景的位置,更不用说前景ROI的提取了,因此,这也是图像处理领域的难题之一[7]。本文首先提出了一种完整的单一背景下提取铜截面ROI的方法,进而抽象ROI提取问题,将该问题分割为2个步骤:第一步为背景相关的种子点提取;第二步为背景无关的ROI确定,并提出了SBRE方法。复杂背景下的SBRE方法首先建立HSV颜色模型,然后通过不断更新步长收缩搜索矩形最终使搜索矩形框完全位于铜截面内部,进而确定种子点,最终确定ROI。实验结果表明:该方法法准确、快速,适用于对实时性要求较高的场合。同时,这种方法对具有颜色特征的截面提取具有普遍性,很容易推广。
[1] 张宏伟,宋执环.基于彩色图像特征的铜成分软测量模型[J].上海交通大学学报,2011,45(8):1211 -1215.
[2] Kim Chanwook,Kim Hanggoo,Suk Hangil.A study on the composition determination of Cu alloys by image processing technology[J].Solid State Phenomena,2006,116 -117:795 -798.
[3] Canny J.A computational approach to edge detection[J].IEEE Trans on Pattern Analysis and Machine Intelligence,1986,8:679-714.
[4] Wang Liwei,Zhang Yan,Feng Jufu.On the Euclidean distance of images[J].IEEE Transactions on Patter Analysis and Machine Intelligence,2005,27(8):1334 -1339.
[5] Gonzales R C,Woods R E.Digital image processing[M].Beijing:Publishing House of Electronics Industry,2004:416 -482.
[6] 阮秋琦.数字图像处理学[M].北京:电子工业出版社,2001.
[7] Sezgin M,Sankur B.Survey over image thresholding techniques and quantitative performance evaluation[J].Journal of Electronic Imaging,2004,13(1):146 -165.