线缆字符图像的拼接方法研究
2017-07-10石守东汪瑞琪
池 潇 石守东 汪瑞琪 刘 华
1(宁波大学信息科学与工程学院 浙江 宁波 315211)2(浙江一舟电子科技股份有限公司 浙江 宁波 315191)
线缆字符图像的拼接方法研究
池 潇1石守东1汪瑞琪1刘 华2
1(宁波大学信息科学与工程学院 浙江 宁波 315211)2(浙江一舟电子科技股份有限公司 浙江 宁波 315191)
针对线缆字符图像光照不均匀、重叠区域较小、边缘化等问题,现有的图像拼接方法不能准确拼接,提出一种新的图像拼接方法。首先利用HSI彩色空间模型从图像中划分出待配准的线缆区域。然后提出基于线缆光照模型的图像分块算法对线缆区域图像进行分块,并构造相似检测公式对图像块进行分类,对不含字符的图像块直接赋值为白色背景块,对含字符的图像块利用大津法进行处理,得到线缆区域二值图。接着提出以字符宽度为特征的图像配准算法获得重叠区域在两幅线缆区域图像的行对应关系。最后以重叠区域的水平中心直线拼接得到一幅包含完整字符区域的宽图像。实验结果表明,相对于当前主流的FREAK算法,提出的方法能准确地对线缆图像进行拼接,拼接效果良好。
HSI彩色空间模型 相似检测公式 光照模型 图像分块 大津法 字符宽度 特征向量
0 引 言
随着机器视觉和计算机技术的快速发展,出现了一门基于计算机视觉的图像检测系统(简称图像检测技术)。与传统的检测技术相比,图像检测技术具有实时分析、实时控制、在线检测等功能。目前图像检测技术已经被广泛地应用到车牌识别、卫星遥感图像的处理、医学图像的分析、工业产品的检测等领域。
由于线缆上字符的自动识别可以有效地实现工业自动化和提升工业生产力,因此在实际应用中设计识别线缆上字符的系统对于企业来说是具有重大意义的。常用线缆的形状是圆柱体,通常一个图像采集器不能采集到一幅包含完整字符区域的线缆字符图像。在实际应用中,需要将三个图像采集器以等边三角形的形状围绕线缆进行排列,并对线缆进行图像采集,这样保证了不同图像采集器采集到的线缆字符图像是同一尺度并且线缆区域是水平的,相邻两幅图像仅存在垂直方向上的区域重叠。本文主要的研究对象是包含部分线缆字符区域的两幅线缆字符图像,并且在字符区域有部分重叠,需要对它们进行垂直方向上的拼接,得到一幅包含完整线缆字符区域的宽图像,为识别线缆上的字符作准备。
目前图像拼接方法按照图像配准算法主要分为两类:基于区域的和基于特征的[1-2]。基于特征的方法是利用图像的特征来估计图像之间的变换,而不是利用图像全部的信息,这些特征主要包括图像的特征点[3-4]、轮廓和一些不变矩[5-6]等。基于区域的方法是从待配准图像中取一小窗口的图像与参考图像中同样大小的图像进行统计的相关比较,把相似性测度最大的两个窗口的中心作为一对同名像点,然后利用这些同名像点求解变换模型,相似性测度一般采用灰度差的平方和、相关系数、傅里叶变换、小波变换[7-8]等。
由于线缆的形状导致线缆光照不均匀,基于区域的方法不能准确度量区域之间的相似性,并且重叠区域较小且处在图像的边缘,使得采集到的特征点较少或者没有,导致图像间的变换参数计算不准确,因此本文提出了一种图像拼接方法,流程如图1所示,主要包括以下几个步骤:
步骤1 利用HSI彩色空间模型分别对两幅线缆字符图像进行线缆定位,将待拼接的线缆区域从图像中划分出来。
步骤2 利用本文提出的基于线缆光照模型的图像分块算法分别对两幅线缆区域图像进行分块,并构造相似检测公式将图像块进行分类,对不含字符的图像块直接赋值为白像素背景块,对含字符的图像块利用大津法进行处理,得到线缆区域二值图。
步骤3 针对步骤2得到的线缆区域二值图像,提出以字符宽度作为特征的图像配准算法,得到重叠区域在两幅线缆区域图像中的行对应关系。
步骤4 以重叠区域的水平中心直线作为两幅线缆区域图像的拼接位置,得到包含完整字符区域的宽图像。
图1 线缆图像拼接方法流程
1 线缆定位
线缆定位,是将线缆区域从采集到的图像中划分出来,仅对线缆区域进行后续操作,使得图像拼接方法更加快速。
在一般情况下,是由R、G、B三种基色分量来表示一幅彩色图像。使用R、G、B三种基色分量描述的彩色图像对光照强度的变化非常敏感[9]。而且三基色分量之间相关度又相当高。因此直接对R、G、B三基色设置阈值的上下限很难对线缆图像进行线缆定位,且最终得到的线缆区域图像效果不理想。
通过对线缆图像进行分析,相对于背景线缆区域的色调特征明显区别于背景,所以将RGB彩色空间转换到HSI彩色空间进行处理。
HSI彩色空间是一种人眼能够分辨的空间模型,其中H代表色度,S表示饱和度,I代表亮度,RGB到HSI的转换如下:
(1)
(2)
(3)
利用式(1)得到线缆图像的色调分量,用投影的方法定位线缆的垂直位置,具体步骤如下:
步骤1 将色调分量进行水平投影,并对投影图进行中值滤波,在滤波后的投影图中找出最大的投影值记为MaxLineSum,记录最大值对应的行记为MaxLine。
步骤2 从所记录的最大值的行开始分别向上向下两头独立检查水平投影值,如果某一投影小于MaxLineSum×α(α为经验常数),则停止搜索,然后分别记下边界位置为TopLine和BottomLine,依据边界位置划分出线缆区域。
2 基于图像分块的线缆区域图像二值化
线缆区域图像二值化,是将线缆上的前景(字符)与背景进行分割。目前常用的二值化算法主要分为两类,即全局阈值方法和局部阈值方法。全局阈值方法是对整幅图像选定一个固定的阈值,这种方法仅在图像的前景和背景有较好的划分,即满足灰度直方图的双峰模型的情况下能够取得良好的效果。典型的全局阈值方法主要有Otsu[10]方法、HistogramPeaks[11]方法、K-means[12]方法等。与全局阈值方法不同,局部阈值方法阈值的选取是逐个像素的,该阈值依赖于像素点邻域的灰度值分布情况。典型的局部阈值方法有Niblack[13]方法、Sauvola[14]方法、Nick[15]方法等。
针对线缆图像的采集,如图2所示为线缆的光照分析,其中A、B分别为线缆曲面上的两点,O为线缆横截面的圆心。在实际应用中,可假设光源近似为平行光源。
图2 线缆的光照分析
由光照模型可知,线缆曲面上的照度由光源在该处的光强和光线与曲面法线的夹角确定。如线缆曲面上(x,y,z)处的照度I(x,y,z)由光源在该处的光强P(x,y,z)和光线与曲面法线的夹角θ(x,y,z)确定,计算公式如(4)所示:
(4)
可知在平行光源条件下线缆曲面的光照分布是不均匀的,具体表现为线缆曲面上垂直坐标不相等的两点所受的光照强度不同,而垂直坐标相等的两点所受的光照强度相同。
根据上述特点,提出基于图像分块的二值化算法。首先提出基于线缆光照模型的图像分块算法对线缆区域图像进行分块,其次构造相似检测公式将图像块进行分类,对不含字符的图像块直接赋予为白色背景块,对含字符的图像块利用大津法进行处理,得到线缆区域二值图,算法的流程如图3所示。
图3 基于图像分块的二值化算法流程
2.1 基于光照模型的图像分块
基于光照模型的图像分块,是将线缆区域根据线缆的光照模型分割成互不相交的图像块,使得每个图像块近似光照均匀。
依据线缆曲面所受光照的特点,将线缆图像在水平方向上不进行子块的划分,子块的划分仅基于垂直方向上,线缆区域图像划分示意如图4所示。
图4 线缆区域图像的子块划分示意图
由于线缆的半径较小,因此当光源是平行光源时,可假设到达线缆曲面上各点的光照强度为同一常数P,并且因为线缆区域图像是上下对称的,所以仅需对上半部分进行分块,下半部分的分块以其为参照进行分块。通过上述分析,基于线缆光照模型的图像分块算法具体实现如算法1所示。
算法1 基于线缆光照模型的图像分块算法
Input
1:Image——线缆区域图像
2:P——光照度
3:L——分割阈值
Output
4:Regions——各图像块
5:
6:Procedure partitionsAlg
5: Illums = [];
6: Pos = [];
7: for i = 90:180
8: Illums = [Illums -P*cos(i/180*pi)];
9: end
10: for j = 0:L:P
11: temp = Illums >= j;
12: indexs = find(temp ~= 0);
13: Pos = [Pos indexs(1)];
14: end
15: if j ~= P
16: Pos = [Pos 90];
17: end
18: Pos = Pos *size(Image,1)/180;
19: Regions = cell(1,length(Pos)-1);
20: for k = 1:length(Pos)-1
21: Regions{k}=Image(Pos(k)+1:Pos(k+1),:);
22: end
23:end partitionsAlg
2.2 判定图像块是否包含字符
判定图像块是否包含字符,是为了将图像块进行分类:不含字符的和含字符的图像块。因为此时直接对不含字符的图像块进行二值化操作会将背景误分类为字符,理想情况是背景全置为白。
通过对线缆的光照模型分析,提出相似检测公式对图像块进行分类:
(5)
其中MaxBlock1和MinBlock1分别为极差图像块中的最大灰度级与最小灰度级,极差图像块是在所有的图像块中最大灰度级和最小灰度级之差最大的图像块,可认定此块是包含字符的。MaxBlock2和MinBlock2分别为任意图像块中的最大灰度级与最小灰度级。
因为最终各点成像的灰度与其照度近似满足正比关系,并且每个图像块可认为是近似光照均匀的,即同一块中各点的光照度相同,所以当待测图像块包含字符时,式(5)为真,当待测图像块不含字符时,式(5)则为假。通过上述分析,图像块分类算法具体实现如算法2所示。
算法2 基于相似检测公式的图像块分类算法
Input
1:Regions——各图像块
2:K——阈值
Output
3:Flags——标记
4:
5:Procedure classifyAlg
6: RegionsMin = [];
7: RegionsMax = [];
8: Max = 0;
9: Min = 0;
10: Flags = [];
11: for i = 1:length(Regions)
12: RegionMin = min(Regions{i}(:));
13: RegionsMin = [RegionsMin RegionMin];
14: RegionMax = max(Regions{i}(:));
15: RegionsMax = [RegionsMax RegionMax];
16: if (RegionMax - RegionMin) > (Max-Min);
17: Max = RegionMax;
18: Min = RegionMin;
19: end
20: end
21: for j = 1: length(Regions);
22: Fir = double(Max)/double(RegionsMax(j));
23: Sec = double(Min)/double(RegionsMin(j));
24: temp = abs(Fir-Sec);
25: if temp < K
26: Flags = [Flags 1];
27: else
28: Flags = [Flags 0];
29: end
30: end
31: end classifyAlg
进行图像块分类时,首先遍历所有图像块Regions,将每块的最大灰度值和最小灰度值分别存放在RegionsMax、RegionsMin中,并记录极差图像块的最大灰度值和最小灰度值在Max、Min。然后利用式(5)对图像块进行分类标记,并将结果存储在Flags中,其中1表示是含有字符的图像块,0表示背景块。
2.3 大津法原理
(6)
(7)
(8)
其中:
(9)
(10)
(11)
(12)
则最优阈值T可以由式(13)得到:
(13)
3 基于字符宽度的线缆图像配准
基于字符宽度的线缆图像配准,是找出重叠区域在线缆区域图像中的行对应关系。
由线缆图像的采集模型可知,线缆上的字符在水平方向上不存在透视形变问题,通过计算每个字符在每一行上的宽度构造特征向量,在此基础上提出以字符宽度为特征的图像配准算法,算法步骤如下:
步骤1 分割出内接字符区域的矩形作为处理区域。设两幅线缆区域二值图像为A1、A2,对它们分别采用水平和竖直的投影法,得到内接字符区域的矩形区域。
步骤2 计算每个字符在该行的宽度,并构造对应的特征向量集合。设处理区域为B1、B2,大小分别为Width1×Height1、Width2×Height2,其中Width1、Width2表示宽度,Height1、Height2表示高度。以下仅对处理区域B1的特征向量集合进行计算,待处理区域B2的计算类似在此不再赘述,计算步骤如下:
(1) 将处理区域向竖直方向进行投影,分割出内接单个字符的矩形区域,假设分割出的矩形区域个数为Num。
(2) 对分割出来的每个矩形区域进行行遍历,对每一行分别从左到右、从右到左扫描,并分别记录第一个黑像素的坐标,将其分别存储在St、Ed数组中,并计算字符在该行的宽度(特殊的情况是字符在该行的宽度为0),存储在Wid数组中,St、Ed、Wid的大小均为Height1×Num。例如假设此时遍历的是第i个矩形区域的第j行,对应的第一个黑像素的坐标分别存储在St[j][i]、Ed[j][i]中,可知该字符在该行的宽度Wid[j][i]计算如下式:
Wid[j][i]=Ed[j][i]-St[j][i]
(14)
通过以上分析,对应的以字符宽度构造特征向量集合的算法实现如算法3所示。
算法3 以字符宽度构造特征向量集合的算法
Input
1:CharsRe——多个高度相同且内接单个字符的矩形块
2:Height——矩形块的高度
Output
3:Wid——特征向量集合
4:Procedure featuresetAlg
5: Num = length(CharsRec);
6: Wid = zeros(Height,Num);
7: St = zeros(Height,Num);
8: Ed = zeros(Height,Num);
9: for i = 1:Height
10: for j = 1:Num
11: Char = CharRec{j};
12: for m = 1:size(Char,2)
13: if Char(i,m) == 0
14: St(i,j) = m;
15: break;
16: end;
17: end;
18: for n = size(Char,2):-1:1
19: if Char(i,n) == 0
20: Ed(i,j) = n;
21: break;
22: end
23: end;
24: Wid(i,j) = Ed(i,j)- St(i,j);
25: end
26: end
27:end featuresetAlg
进行构造特征集合时,首先对每个矩形区域Char的每一行分别从左到右、从右到左扫描,并记录第一个黑像素的坐标,将其存储在St、Ed中。然后用式(14)计算字符在该行的宽度并存储在Wid中,其中Wid数组中存放的即是特征向量集合。
步骤3 找出重叠区域在两幅线缆区域图像中的行对应关系。假设对处理区域B1、B2进行步骤2操作后得到的特征向量集合分别是Wid1和Wid2。由于图像仅在垂直方向上存在重叠,因此对B1中的每个特征向量(即每一行),在B2中寻找最佳匹配特征向量,将寻找到的最佳匹配特征向量的行角标保存在长度为Height1的Matched数组中,其中Matched数组记录的即是重叠区域在两幅线缆区域图像中的行对应关系。例如对于Wid1中的第i个特征向量,计算在Wid2中的最佳匹配特征向量步骤如下:
遍历Wid2中的每个特征向量,计算该特征向量与Wid1中的第i个特征向量间的差异度,并将最小差异度对应的特征向量的行角标保存在Matched[i]中,对没有匹配到的特征向量作标记∞存储在数组中。例如当该特征向量是Wid2中的第j个时,与Wid1中的第i个特征向量的差异度dis为:
(15)
在计算特征向量间的差异度时,对特征向量之间的各分量差设置阈值,当分量差超过阈值时直接进行与下一个特征向量的差异度计算,可进一步减少匹配计算所耗费的时间。
步骤4 对得到的Matched数组进行中值滤波,其中记录的就是重叠区域在处理区域B1、B2中的行对应关系。
4 线缆图像的拼接
线缆图像的拼接,是依据拼接的位置将两幅图像进行拼接,得到一幅包含完整字符区域的宽图像。
由于线缆图像在边缘上对字符的扭曲程度最大,因此将重叠区域的水平中心直线作为线缆图像的拼接位置。设重叠区域在处理区域B1、B2中的起始位置分别为S1和S2,终止位置分别为E1、E2,计算水平中心直线如下式:
(16)
将处理区域B1中的第Index1行与处理区域B2中的第Index2进行垂直拼接即可得到一幅包含完整字符区域的宽图像。
5 实验结果与分析
本文图像采集平台是对工业流水线上线缆图像采集过程的模拟,它包括CCD高速摄像机、图像采集卡、LED平行光源、线缆传动装置、圆柱形腔体。该平台将三个CCD高速摄像机以等边三角形的形状固定在一个圆柱体腔体上,腔体内部均匀分布着LED平行光源,腔内的光照强度为1000lx。首先利用线缆传动装置将线缆从腔体中间通过,然后通过CCD高速摄像机获取线缆图像,并将其数字化后存储于图像采集卡中,最后通过VGA接口在PC机上显示。本文实验均在IntelCorei5-4590 3.30GHzCPU,4GB的内存环境下进行,仿真工具为Matlab2014b。以下是采集到的两幅分辨率为768×256的线缆图像,如图5所示。
图5 彩色线缆图像
首先利用线缆定位算法分别对它们进行处理,并在此基础上对线缆区域图像灰度化处理,得到如图6所示。
图6 灰度化后的线缆区域图像
通过大量实验结果表明,在线缆定位算法中,当经验值为0.4~0.6时,能有效分割出线缆区域。当经验值大于0.6时,划分的线缆区域过小,导致划分的线缆区域不包括重叠区域。当经验值小于0.4时,划分的线缆区域包含大量的背景,导致后续的二值化算法不能有效分割出前景(字符)。
然后利用本文提出的基于图像分块的二值化算法分别对两幅线缆区域图像进行处理,其中光照分割得到最终的二值图像如图7所示。图8是直接利用大津法对两幅线缆区域图像进行全局阈值分割的结果,图9是直接利用大津法对两幅线缆区域的所有图像块进行二值化的结果,图10是利用局部阈值中具有代表性的Nick、Niblack算法对两幅线缆区域图像进行二值化的结果,其中的参数值是参照了作者的建议参数值。
图7 线缆区域二值图像
图8 线缆区域二值图像
图9 线缆区域二值图像
图10 Nick、Niblack二值化后的线缆区域图像
通过大量实验结果表明,在基于图像分块的二值化算法过程中,当光照分割间隔为10,相似度阈值为0.25时,二值化效果较好。当光照分割间隔太小时,导致图像分块过多,二值化类似于局部阈值,耗费的时间长。当光照分割太大时,导致图像块中仍存在光照不均匀问题,二值化类似于全局阈值,二值化效果差。同样地,当相似度阈值太小或太大时,使得图像块被错误分类,二值化效果差。
由以上实验结果可知,本文提出的基于图像分块的二值化算法能有效地对线缆图像的前景(字符)和背景进行分割。
接着利用本文提出的基于字符宽度的图像配准算法对两幅线缆区域二值图进行处理,得到重叠区域在线缆区域图像中的行对应关系,如表1所示。
表1 部分Matched数组
由表1可知,重叠区域的起始位置在两处理区域中分别对应的是第33行、第5行,终止位置在两处理区域中分别对应的是第38行、第12行。
最后利用线缆图像的拼接方法将两处理区域进行拼接,通过表1可知是将第一个处理区域中的第35行与第二个处理区域中的第8行进行垂直拼接,在此基础上用大小为3×3的结构元素进行一次膨胀,得到最终的完整字符区域的线缆区域图像如图11所示。
图11 包含完整字符区域的线缆区域图像
为了证明方法的有效性,对线缆图像图5采用目前比较主流的FREAK算法进行拼接,实验结果如图12所示。
图12 FREAK算法检测到的特征点
由实验结果可知,得到的特征点稀疏且不在重叠区域的范围内,无法准确地对线缆图像进行拼接。
6 结 语
本文针对实际应用中线缆图像的拼接进行了研究,由于两幅线缆图像的重叠区域较小、边缘化、光照不均匀等特点导致现有的图像配准算法不能准确拼接,因此提出了一种图像拼接方法。首先利用彩色空间模型从两幅线缆图像中划分出待配准的线缆区域。然后提出基于线缆光照模型的图像分块算法对线缆区域图像进行分块,并构造相似检测公式将图像块进行分类,对不含有字符的图像块直接赋值为白色图像块,对含字符的图像块利用大津法进行处理,得到线缆区域的二值图像。接着提出以字符宽度为特征的图像配准算法获得重叠区域在两幅线缆区域图像的行对应关系。最后基于重叠区域的水平中心直线拼接两幅线缆区域图像,得到包含完整字符区域的宽图像。实验结果表明,相对于当前主流的FREAK算法,本文提出的方法能准确地对线缆图像进行拼接,拼接效果良好。但是本文的图像采集平台仅是对生产流水线上的环境进行模拟,下一步工作将在嵌入式设备上实现该拼接方法,并在实际生产场景中应用,进而更好地检验算法的鲁棒性。
[1] Brown M,Lowe D G.Automatic panoramic image stitching using invariant features[J].International journal of computer vision,2007,74(1):59-73.
[2] 王娟,师军,吴宪祥.图像拼接技术综述[J].计算机应用研究,2008,25(7):1940-1943.
[3] Lowe D G.Distinctive image features from scale-invariant keypoints[J].International journal of computer vision,2004,60(2):91-110.
[4] Ma X,Liu D,Zhang J,et al.A fast affine-invariant features for image stitching under large viewpoint changes[J].Neurocomputing,2015,151:1430-1438.
[5] Cao F,An B,Qin C.Multi-planar Image Stitching Method Based on Structural Feature Matching[J].IETE Technical Review,2015,32(4):284-293.
[6] 何宾,陶丹,彭勃.高实时性 F-SIFT 图像拼接算法[J].红外与激光工程,2013,42(S02):440-444.
[7] 李业伟,华臻,李晋江.采用显著区域匹配的图像拼接算法[J].计算机工程与应用,2012,48(10):204-207.
[8] Xie X,Xu Y,Liu Q,et al.A study on fast SIFT image mosaic algorithm based on compressed sensing and wavelet transform[J].Journal of Ambient Intelligence and Humanized Computing,2015,6(6):835-843.
[9] 黄春艳,杨国胜,侯艳丽.基于颜色直方图和空间信息融合的图像分割算法[J].计算机工程与应用,2005,41(3):85-87.
[10] Otsu N.A threshold selection method from gray-level histograms[J].Automatica,1975,11(285-296):23-27.
[11] Jain A K,Dubes R C.Algorithms for clustering data[M].Prentice-Hall,Inc.,1988.
[12] Prewitt J,Mendelsohn M L.The analysis of cell images[J].Annals of the New York Academy of Sciences,1966,128(3):1035-1053.
[13] Niblack W.An introduction to digital image processing[M].Strandberg Publishing Company,1985.
[14] Sauvola J,Pietikäinen M.Adaptive document image binarization[J].Pattern recognition,2000,33(2):225-236.
[15] Khurshid K,Siddiqi I,Faure C,et al.Comparison of Niblack inspired Binarization methods for ancient documents[C]//IS&T/SPIE Electronic Imaging. International Society for Optics and Photonics,2009:72470U-72470U-9.
RESEARCH ON STITCHING METHOD OF CABLE CHARACTER IMAGE
Chi Xiao1Shi Shoudong1Wang Ruiqi1Liu Hua2
1(CollegeofInformationScienceandEngineering,NingboUniversity,Ningbo315211,Zhejiang,China)2(ZhejiangYizhouElectronicTechnologyCo.,Ltd,Ningbo315191,Zhejiang,China)
Aiming at the problems such as non-uniform illumination, small overlap area and marginalization, the existing stitching methods can not be accurately stitched, and a new stitching method is proposed. Firstly, the HSI color space model is used to divide the cable region to be registered from the image. Then, an image segmentation algorithm based on the cable illumination model is proposed to segment the image of the cable region, and a similar detection formula is constructed to classify the image blocks. The image blocks without characters are directly assigned to white background blocks, and the image blocks are processed by the Otsu’s algorithm to obtain the cable region binary image. Furthermore, an image registration algorithm based on the character width is proposed to obtain the row-to-line correspondence between the overlapping areas in the two cable region images. Finally, a horizontal center line of the overlapping area is stitched to obtain a wide image containing the entire character region. Experimental results show that the proposed method can stitch the cable image accurately, and the splicing effect is good compared with the current mainstream FREAK algorithm.
HSI color space model Similar detection formula Illumination model Image partition Otsu’s algorithm Character width Feature vector
2016-06-14。浙江省重中之重开放基金项目(XRXL1312);宁波市产业技术应用重大专项(2016B10020)。池潇,硕士,主研领域:计算机视觉,图像处理。石守东,副教授。汪瑞琪,硕士。刘华,工程师。
TP391.4
A
10.3969/j.issn.1000-386x.2017.06.035