基于圆弧的原木轮廓的识别与验证
2017-01-20林耀海王长缨王雪平林甲祥林培杰
林耀海,景 林,王长缨,王雪平,林甲祥,林培杰
(1.福建农林大学计算机与信息学院,福建福州350002;2.福州大学物理与信息工程学院,福建福州350116)
基于圆弧的原木轮廓的识别与验证
林耀海1,景 林1,王长缨1,王雪平1,林甲祥1,林培杰2
(1.福建农林大学计算机与信息学院,福建福州350002;2.福州大学物理与信息工程学院,福建福州350116)
针对原木端面存在相交圆、阴影等导致原木轮廓难以获得完整的圆轮廓问题,提出了基于圆弧的原木轮廓识别方法.首先分析了圆弧在数字化图像中的性质,从各种边缘线条中区分出圆弧边缘;其次,定义验证模型,以判断识别结果是否为合格圆.结果表明,该方法可以从大量干扰的边缘中找到轮廓,并利用部分轮廓边缘识别原木端面.
原木端面图像;轮廓识别;检尺自动化;验证
原木轮廓识别是原木检尺自动化的主要环节,通过图像处理可以获得木捆中每根原木检尺的直径,并统计根数.关于原木轮廓识别方法的研究集中在对圆目标、类圆目标的识别.首先,从图像中分离出原木端面区域,主要方法有:提取图像二值化后的原木端面区域[1-3];通过在小波域中提取边缘信息[4,5]分离出原木端面区域;用主成分分析法(principal component analysis,PCA)提取原木端面主要区域[6].识别原木端面轮廓的主要方法有计算识别出的圆与原木区域像素点的重叠程度[1]、Hough变换[4,5]、曲线拟合[2,6-8]和最小二乘法[3]等.
对原木进行内径的识别和根数的统计,其核心问题是检测类圆目标,从而实现对原木轮廓的识别.圆形目标检测最为常见的方法有Hough变换及在Hough变换基础上改进的方法[9-10].但是,当原木轮廓不规则,或由于阴影、遮挡等原因致使原木轮廓变形,该方法的效果则不佳.基于Hough变换的改进算法有:适合于小目标的闭合曲线中圆轮廓识别[9];适合于单个目标的缺口圆的检测[10].算法设计和参数设置[11]主要针对成捆钢管端面图像中内外边缘造成的错误识别,与原木端面图像有一定差异.
不同于Hough变换的圆检测方法[12-14],文献[12]借助轮廓边缘一对平行的切线确定直径,进而确定圆心和半径;文献[13]的方法需要借助于一对在圆内相交的弦确定圆心.但是,在原木端面轮廓识别问题上,边缘图中往往很难找到这样一对平行切线或弦,这是因为如果边缘提取算子的阈值较低,原木端面的纹理也会留下边缘;如果提取算子的阈值较高,那么部分原木轮廓只能留下一段圆弧.文献[14]的方法可用于内部纹理较复杂的原形目标检测,比如瞳孔图像.但是当图像中圆形对象较多时,梯度向量对较多,算法的精确性会降低.
综上所述,利用圆检测方法来识别原木轮廓有很大的局限性.而基于圆弧识别原木轮廓却有很大的灵活度.因为,即使原木轮廓不规则,或由于阴影、遮挡等原因致使原木轮廓变形,它的轮廓也会存在圆弧.本文方法是将原木轮廓识别过程中“从图中识别出圆”改进为“从图中识别出圆弧”;然后计算该圆和原木边缘图中的边缘重叠度,以此作为验证信息;最终正确识别图中圆弧所对应的原木轮廓.
1 材料与方法
1.1 材料
本文所用原木端面数字图像取自福建永安某林场.本文算法通过Matlab2015实现.
1.2 方法
1.2.1 圆弧性质分析 原木端面图经过边缘提取后的圆弧,存在相交圆、干扰边缘等情况(图1).下面通过分析圆弧的性质识别出圆弧.
性质1:在同一个圆中,同样长度的圆弧对应的弦长度是一样的.
性质2:把圆弧分成4个象限,当对于第1、3象限的圆弧从左上向右下方向扫描时,第1象限的圆弧上,θ1>θ2,yM>yN;第3象限的圆弧上,θ1<θ2,yM<yN.
性质3:把圆弧分成4个象限,当对于第2、4象限的圆弧从右上向左下方向扫描时,第2象限的圆弧上,θ1<θ2,yM<yN;第4象限的圆弧上,θ1>θ2,yM>yN.
性质4:把圆弧分成4个象限,当对第1、3象限的圆弧从右下向左上扫描时,第1象限的圆弧上,θ1<θ2,yM>yN;第3象限的圆弧上,θ1>θ2,yM<yN.
性质5:把圆弧分成4个象限,当对第2、4象限的圆弧从左下向右上扫描时,第2象限的圆弧上,θ1>θ2,yM<yN;第4象限的圆弧上,θ1<θ2,yM>yN.
根据性质2和性质3,则有.
性质6:当所扫描的线条是圆弧,且对该线条的点由上到下进行扫描,则(θ1-θ2)(yM-yN)>0.
根据性质4和性质5,则有.
性质7:当所扫描的线条是圆弧,且对该线条的点由下到上进行扫描,则(θ1-θ2)(yM-yN)<0.
A、B、C是先后扫描到的3个点;θ1、θ2分别表示弦AB与X轴的夹角、弦AC与X轴的夹角,M(xM,yM)、N(xN,yN)分别表示圆弧AC的中心、弦AC的中心.
原木端面边缘图是由边缘线条和干扰线条组成.对于每一个线条来说,线条上相邻两点有8种位置关系,如图6所示.当从左上向右下方向扫描第1、3象限圆弧时,相邻点的位置关系为1、2、3;当从右上向左下方向扫描第2、4象限圆弧时,相邻点的位置关系为3、4、5.当扫过线条上的点时,根据相邻点的位置关系,利用性质6或性质7完成对干扰边缘的筛选.
1.2.2 原木轮廓验证模型 当识别出某一段圆弧后,根据该段圆弧确定1个圆O,即确定相应的圆心和半径.但是,同一个原木的轮廓,可能断裂为多段圆弧,从而被识别为多个圆.这时,需要一个原木轮廓的验证模型.
根据圆弧被识别出的圆O的圆心和半径,若圆O曲线上的点接近于边缘图像Edge中的边缘点,那么圆O就更可能是一个原木的轮廓.可以通过多次试验获得1个阈值T,并通过该阈值来判断圆O是否为正确的原木轮廓.由于被处理图像的采集场所相对固定,因此试验获得的阈值对同一个原木图像采集系统是有效的.验证模型可以描述为:
在式(2)中,Di表示像素点i周围的一块小区域,Edge为原木端面图边缘提取后得到的图像.理想情况下,如果识别出来的圆O上面的点i正好与Edge上的某个点重叠,则点i为正确识别的点.但工程上,原木端面边缘存在噪声,因此,在式(2)中加入了Di.
1.2.3 基于圆弧的原木轮廓识别方法 原木轮廓识别过程有2个步骤:先从原木端面图像中分离出原木端面区域,然后对该区域进行原木轮廓识别.本文首先采用PCA方法[6]完成第1个步骤,得到原木端面区域图;然后用Canny算子对原始图边缘进行提取,得到边缘图;并根据原木端面区域图,去除非原木端面区域的边缘;最后基于圆弧的原木轮廓识别,完成第2个步骤.
边缘检测后得到的原木边缘图由一系列边缘点组成,存在相邻关系(图6)的一组边缘点组成一段边缘.如果某一段边缘上连续的若干个(用常量d_arc表示像素点的数量)点,都满足性质1,那么这段边缘就可以假定为一段圆弧.将这段圆弧的2个端点记为A、B;固定A、B,继续扫描这段圆弧所在边缘的像素点,得到C点;有A、B、C三点后,利用性质6或性质7来判断C点是否是圆弧的一部分.若C是圆弧的一部分,则继续扫描这段圆弧所在边缘上的点.在这个过程中C与B的间隔点数目为1、2、3、…、d_step(d_step是一个常量).
采用本文方法识别验证算法,主要步骤如下.
第1步:定义并赋值常量d_arc、d_step;
第2步:扫描原木区域图,直到当前位置是原木斑块,且该斑块还未被识别;
第3步:记录原木斑块邻接的边缘线条,若存在未被识别的一段,记为ed(ed[i]表示边缘线条上的第i个边缘点),则跳到第4步;若不存在,则跳到第2步.
第4步:在边缘线条ed上,找到适合于作圆弧起始点的位置ed[i],记为arc_Start.
第5步:点ed[i]记为A,ed[i+d_arc]记为B.
第6步:建立循环,其中j=1到d_step,ed[i+d_arc+j]记为C,根据性质1、6、7判断C是否属于圆弧边缘.如果点C属于圆弧,则令j=j+1;否则,跳出循环.
第7步:若j=d_step,则令i=i+d_step,跳到第5步;否则,跳到第8步.
第8步:点C记为arc_End,利用arc_Start到arc_End拟合出一个圆,记为O.
第9步:利用验证公式判断圆O是否是合格的圆.若圆O合格,圆O相应原木斑块区域标注为已识别,跳到第2步;否则,跳到第3步..
在第4步中,在边缘线条ed上找到适合于作圆弧起始点的位置,该操作具体实现分如下两步.
(1)建立循环j=1到d_step,利用空间两点的距离公式计算ed[i+j]和ed[i+d_arc+j]两点的距离,记为d[j].
(2)建立循环j=1到d_step,若d[j]与数组d的均值差距小于1,程序结束,返回值i;否则i=i+1,跳到(1)步.
上述2个步骤中,弦长由空间两点的距离公式计算可得,并存储于数组d[j]中;弧长用ed[i+j]和ed[i+d_arc+j]之间像素点的个数来代替,即d_arc.因为,线条上的点是离散的,所以上述计算弧长时产生了误差.因此算法中并不要求d[j]中每个数都相等,而是d[j]与数组d的均值差距小于1.
2 结果与分析
2.1 试验软件平台与参数设置
Canny算子阈值设置为0.34,d_arc、d_step设置为5;验证模型的Di为3×3方快,阈值T=0.47.
选择2张原木端面图片完成试验,与Hough圆检测方法作对比;对比的Hough圆检测函数,调用的是Matlab2015提供的imfindcircles函数.原木轮廓识别过程的第1个步骤都是采用PCA方法[6].图7是原木存在遮挡情况的识别结果对比,图8为存在不规则原木轮廓情况的识别结果比.原木轮廓接近于圆形,原木轮廓方法的识别结果就是在存在原木的位置标注出圆形轮廓.用红色圆圈标识本文方法的原木轮廓识别结果,用标识圆圈表示Hough方法的原木轮廓识别结果.
2.2 存在遮挡情况的识别结果
边缘检测结果如图7a所示,然后检测出圆弧(图7b),接着将试验结果分别以边缘图、原始图作为背景显示本文方法的识别结果(图7c、7d),最后以原木端面区域图作为背景显示Hough方法的识别结果(图7e).
在图7中,通过Hough方法检测出9个圆,9个圆位置、大小正确.采用本文方法识别24个圆,位置、大小都正确.从识别轮廓数目角度分析,与Hough方法相比,采用本文方法对原木轮廓更有鲁棒性.本文方法的不足之处是原木端面轮廓不规则(图7e)、原木端面边缘不是连续圆弧(图7a).采用Hough方法和本文方法都不能识别的原因是:Hough方法对目标的检测依赖于目标是否为圆,而本文方法对目标的检测依赖于识别结果的验证值(式1)是否达到阈值.原木轮廓常常不是准确的圆,只是近似圆,所以采用Hough方法无法准确识别,而采用本文方法却可以准确识别.
2.3 存在不规则轮廓的识别结果
在图8中,采用Hough方法检测出7个圆,6个圆位置、大小正确,1个圆位置错误(在同一个原木轮廓上,识别2个圆);采用本文方法识别11个圆,10个圆位置、大小正确,1个圆位置正确,大小不对.结果表明在原木轮廓识别问题上本文方法比Hough方法具有更强的鲁棒性.
2.4 需要借助人机交互的识别结果
图9的原始图见图1,标注1和2的原木需要人工指出是否被正确识别.原因是1处的原木轮廓为多段圆弧组成,各段圆弧拟合的圆各不相同;2处原木端面色彩无法被正确识别为原木.
3 小结
本文利用原木端面轮廓具有“存在圆弧”的特征,对原木轮廓进行识别,并且利用圆弧验证以减少由于人工参与原木轮廓识别造成的识别结果不精确.本文方法适用于圆目标检测领域中由于遮挡、拍照角度、阴影等原因,图像中的圆形目标仅仅留下部分圆弧的情况.
[1]栾新,朱铁一.等长堆积原木材积的自动检测[J].计算机应用与软件,1999,16(6):61-64.
[2]景林,黄习培.成捆原木计算机图像检尺系统研究及应用[J].计算机应用,2006,26(s2):137-139.
[3]梅振荣,任洪娥,朱朦.基于非线性最小二乘原理的原木端面识别算法[J].计算机工程与应用,2012,48(2):177-178.
[4]樊尚春,龙德帆,庞宏冰.原木材积自动化检测系统[J].中国造纸,2003,22(3):27-29.
[5]龙德帆,樊尚春,庞宏冰.用于原木材积检测的图像处理与分析算法[J].北京航空航天大学学报,2005,31(1):82-85.
[6]景林,林耀海,温永仙,等.结合色彩特征和空域特征的成捆原木轮廓识别[J].计算机系统应用,2013,22(7):196-199.
[7]黄习培,景林.原木端面图像检尺直径识别算法的研究[J].林业机械与木工设备,2006,34(1):24-26.
[8]景林,林耀海,黄习培.基于多特征的成捆原木端面轮廓识别方法[J].计量学报,2015,36(4):370-374.
[9]段黎明,汪威,张霞.改进的Hough变换实现圆检测[J].计算机集成制造系统,2013,19(9):2 148-2 152.
[10]周封,杨超,王晨光,等.基于随机Hough变换的复杂条件下圆检测与数目辨识[J].仪器仪表学报,2013,34(3):622-628.
[11]周显恩,王耀南,李康军,等.一种多次随机圆检测及拟合度评估的瓶口定位法[J].仪器仪表学报,2015,36(9):2 021-2 029.
[12]JIA L Q,PENG C Z.A new circle detection method based on parallel operator[C].Xi′an:IEEE Press,2012:1 085-1 090.
[13]KIM H S,KIM J H.A two-step circle detection algorithm from the intersecting chords[J].Pattern Recognition Letters,2001,22(6):787-798.
[14]RAD A A,FAEZ K,Qaragozlou N.Fast circle detection using gradient pair vectors[C].Sydney:CSIRO Publishing,2003.
(责任编辑:叶济蓉)
Outline identification and verification of cross section of log based on arc edges
LIN Yaohai1,JING Lin1,WANG Changying1,WANG Xueping1,LIN Jiaxiang1,LIN Peijie2
(1.College of Computer and Information Science,Fujian Agriculture and Forest University,Fuzhou,Fujian 350002,China;2.College of Physics and Information Engineering,Fuzhou University,Fuzhou,Fujian 350116,China)
To address difficulty in outline identification due to intersect circles and shadow on the cross section of bundled log,a method of outline extraction of logs cross section based on arc edges was proposed.At first,properties of arc edges in digital image were illustrated to identify real arc edge.Then,confirmation model was given to estimate whether the recognized circles were the outlines of real log cross section.Validation results showed that the proposed method was able to eliminate interferences and effectively target the outline of logs.
image of cross section of bundled logs;outline extraction;automatic scaling;validation
TP273
:A
:1671-5470(2016)06-0649-06
10.13323/j.cnki.j.fafu(nat.sci.).2016.06.007
2016-03-23
:2016-05-25
福建省自然科学基金资助项目(2014J01073);福建省教育厅资助项目(JA12103);国家自然科学基金资助项目(31300473、41401458);国家林业局948资助项目(2013-4-65).
林耀海(1981-),男,讲师,博士.研究方向:图像处理、智能信号处理.Email:lyh953@qq.com.