用于球形对象表面积实时检测的球带法 【技术领域】
本发明涉及一种用于球形对象表面积实时检测的球带法。
背景技术
对象的表面积检测技术是对象品质检测中的基本技术之一。在国家标准中,球形对象如梨、苹果、柑桔等等的分级标准分别对对象的着色面积、缺陷面积都有明确的要求,例如,对鲜梨的要求是优等品只允许一处轻微伤,且面积不得超过0.5cm2。在利用机器视觉技术进行对象着色面积和缺陷面积检测时,对对象着色部位和缺陷部位需采用不同的方法检出,但面积计算方法是一致的。
在利用机器视觉技术进行对象表面积计算时,球形对象成像时,由于投影关系,各像素点所代表的实际面积不尽相同,需进行一定的变换处理,以保证一定地检测精度。应义斌(应义斌,王剑平,蒋焕煜。对象直径和缺陷面积的机器视觉检测。农业工程学报。2002,18(5):216-220;应义斌。对象尺寸和面积的机器视觉检测方法研究。浙江大学学报。2000,26(3):229-232)采用像素点变换法,采用从三维物体的二维投影图像恢复物体表面的真实几何面积的方法,结合的面积修正方法,使缺陷面积计算的精度提高了35%,邓继忠(张泰岭,邓继忠。应用机器视觉技术对梨碰压伤的检测。农业工程学报。1999,15(1):205-209)依据所研究的梨、苹果等品种对象的外形以及碰压伤特征,提出了一个简单的计算碰压伤面积的数学模型,其测量精度在20%。
【发明内容】
本发明的目的在于提供一种用于球形对象表面积实时检测的球带法,用于球形对象的快速准确计算。
本发明采用的技术方案是:球带是待检测对象表面上一个待检测的窄长区域,其图像是宽度为一个像素水平线段,计算面积时,球带被看作是圆柱体侧面的一部分,根据水平线段的纵坐标计算得到圆柱体宽度h和半径r,通过其水平线段的起点和终点横坐标计算得到球带的圆心角α,通过计算h×r×α得到球带面积;对全部球带计算完成后再累加,即得到对象表面待检测区域的面积;在机器视觉系统中进行面积计算前采用涂色块标准球进行系统标定,即得到待检测对象表面待检测区域的真实面积。
所述的圆柱宽度h根据水平线段的纵坐标计算得到,是指:
h=R′2-(yB′-0.5)2-R′2-(yB′+0.5)2]]>
R’—球体名义半径R’,在图像边界搜索完成后,通过计算图像上对象的直径得到;
yB’—水平线段的纵坐标。
所述的圆柱半径r根据水平线段的纵坐标计算得到,是指:
r=R′2-yB′2/4]]>
所述的球带的圆心角α通过其图像水平线段的起点和终点横坐标计算得到,是指:
α=αB-αA
αA、αB分别由下式确定:
αAαB=arccos(xA′r),xA>=0arccos(xA′r)+π2,xA<0]]>
αB=arccos(xB′r),xB>=0arccos(xB′r)+π2,xB<0]]>
xA’,xB’—水平线段的起点和终点对应的坐标。
本发明具有的有益的效果是:以对象表面积的计算以线段方式进行,速度快,修正了由于投影关系而引起的畸变,对球形对象表面待检测区域的检测误差控制在10%以内。
【附图说明】
图1是球形待检测对象及其图像;
图2是待检测对象的Y-Z平面投影;
图3是待检测对象的X-Z平面投影;
图4是用于系统标定的标准球照片。
【具体实施方式】
如图1所示,球带是球形待检测对象表面上一个待检测的窄长区域,其图像是宽度为一个像素水平线段,计算面积时,球带被看作是圆柱侧面的一部分,根据水平线段的纵坐标计算得到圆柱宽度h和半径r,通过其水平线段的起点和终点横坐标计算得到球带的圆心角α,通过计算h×r×a得到球带面积,对全部球带计算完成后再累加,即得到对象表面ROI面积;在机器视觉系统中进行面积计算前采用涂色块标准球进行系统标定。
假定待检测的对象O表面有一小片区域为待检测区域(ROI)AB,采用图1所示的坐标系,该区域在机器视觉系统的像为水平线A’B’,当该区域足够窄时,其图像的宽度恰好为一个像素,此时,称AB为一条球带。待检测对象表面的ROI以看作是一系列球带拼接而成。
下面计算一条球带的面积:
假设待检测对象表面的球带AB在Y轴上的投影为O1,为计算方便,将AB所在的球环O1简化为圆柱,其上下底面分别通过C点和D点,圆柱体侧面通过CD的中心点E(如图2所示),AB在圆O1上对应的圆心角为α,CD对应的圆心角为θ(如图2所示),AB及O1的像分别为A’B’和O1’。
对照球体,分别计算圆柱体O1宽度h及圆柱半径r,进而计算出圆柱体O1的侧面积,然后计算球带AB所对应的圆心角α,从而确定AB段在整条球带上所占的份额,并计算出AB的实际面积。
对照对象在Y-Z平面的投影(如图2所示),圆柱体O1宽度h通过下式确定:
h=R′2-yC2-R′2-yD2---(1)]]>
R’—球体名义半径,在图像边界搜索完成后,通过计算对象图像的直径得到
yC,yD—C和D点纵坐标
式1中,C和D点纵坐标分别为:
yC=yB-0.5 (2)
yD=yB+0.5 (3)
将式2和3代入式1,yB为B点纵坐标,用B’点纵坐标代替,即:
h=R′2-(yB′-0.5)2-R′2-(yB′+0.5)2---(4)]]>
圆柱体O1的半径r通过下式确定:
r=R′2-(yD+yC)2/4---(5)]]>
将式2和3代入式5,得到:
r=R′2-yB′2/4---(6)]]>
对照对象在X-Z平面的投影(如图3所示),AB所对应的圆心角α通过下式确定:
α=αB-αA (7)
αA--O1A与X轴夹角
αB--O1B与X轴夹角
αA、αB分别由下式确定:
αA=arccos(xAr),xA>=0arccos(xAr)+π2,xA<0---(8)]]>
αB=arccos(xBr),xB>=0arccos(xBr)+π2,xB<0---(9)]]>
xA,xB—A和B横坐标
式4和5中,A和B点横坐标xA,xB,用A’和B’点横坐标代替。
即:
αA=arccos(xA′r),xA>=0arccos(xA′r)+π2,xA<0---(10)]]>
αB=arccos(xB′r),xB>=0arccos(xB′r)+π2,xB<0---(11)]]>
xA’,xB’—A’和B’横坐标
球带AB的面积为:
SAB=h×r×α (12)
SAB--AB面积值
这样就完成了一条球带的面积计算。
对整幅图像进行搜索,分别计算各球带的面积,通过累加即完成对ROI表面积的计算。
如图4所示,用3个标准球进行标定,这三个球按从左到右的次序分别为1、2、3号。标准球为黄底亚光橡胶球,在其表面按表1所指定的球冠直径分别涂上绿色油漆,代表ROI,将这些标标准球分别放入机器视觉系统视场内,使得涂上绿色油漆的色块正对镜头,由机器视觉系统完成对绿色部位表面积的检测。
对这3个标准球的直径、油漆形成的球冠表面的直径分别用游标卡尺进行检测,分别计算每一个球面上色块面积作为真值。机器视觉检测值及真值均记录在表1中。
表1 标准球参数
编号 球径/mm 油漆球冠直径/mm 油漆面积/mm2 检测值/mm2
1 66.00 35.40 10.68 11.30
2 64.50 23.00 4.30 4.70
3 66.30 17.00 2.31 2.61
对真值和机器视觉检测值作回归分析,得到的回归模型为:
ST=0.9644SM-0.2174 (13)
ST—真值
SM—机器视觉系统检测值
将式13作为模型编制成程序后输入机器视觉系统,然后就进行对象的表面积检测。
试验表明,对球形对象表面ROI的检测误差控制在10%以内。