肖書(shū)浩,何 為,吳 蕾
(武昌首義學(xué)院,武漢 430064)
隨著機(jī)器視覺(jué)在工業(yè)生產(chǎn)中的應(yīng)用越來(lái)越普及,產(chǎn)品生產(chǎn)流水線(xiàn)上對(duì)自動(dòng)尺寸檢測(cè)的需求越來(lái)越多。目前,通用尺寸測(cè)量軟件基本上為國(guó)外品牌[1~3],這些測(cè)量軟件也只是提供一個(gè)開(kāi)發(fā)平臺(tái),需要用戶(hù)針對(duì)具體測(cè)量任務(wù)做二次開(kāi)發(fā)[4~6]。國(guó)內(nèi)也有很多這方面的研究,但主要應(yīng)用在一些特殊場(chǎng)景[7~13]。本文介紹了一種通用的應(yīng)用于產(chǎn)品流水線(xiàn)平面尺寸檢測(cè)的軟件系統(tǒng),該系統(tǒng)不需要用戶(hù)進(jìn)行二次開(kāi)發(fā),只需要通過(guò)不同測(cè)量工具的組合,就可以完成各種尺寸測(cè)量任務(wù)。為了達(dá)到通用的要求,在軟件結(jié)構(gòu)上設(shè)計(jì)了識(shí)別區(qū)(Region of Interest ,簡(jiǎn)寫(xiě)為ROI)和尺寸測(cè)量工具(Tool)的靈活層次架構(gòu)(C++類(lèi)),在算法上形成了一套完整的計(jì)算模型:ROI數(shù)據(jù)結(jié)構(gòu)表達(dá)、邊界點(diǎn)識(shí)別、平面曲線(xiàn)擬合和平面尺寸計(jì)算。該系統(tǒng)作為尺寸測(cè)量子系統(tǒng)已經(jīng)成功應(yīng)用在武昌首義學(xué)院與亞旭電子科技(江蘇)有限公司合作開(kāi)發(fā)的機(jī)器視覺(jué)軟件中。
圖1為系統(tǒng)框架示意圖。該系統(tǒng)用C++語(yǔ)言開(kāi)發(fā),使用OpenCV作為圖像與分析底層平臺(tái),使用QT作為界面和人機(jī)交互庫(kù)。
軟件界面與交互框架:實(shí)現(xiàn)軟件的界面和人機(jī)交互框架。
工業(yè)相機(jī)驅(qū)動(dòng)與配置模塊:各種型號(hào)工業(yè)相機(jī)驅(qū)動(dòng),相機(jī)拍照控制方式設(shè)置,相機(jī)參數(shù)設(shè)置。
圖1 平面尺寸檢測(cè)系統(tǒng)框架示意圖
工業(yè)相機(jī)標(biāo)定模塊:相機(jī)畸變矯正,圖像坐標(biāo)與世界坐標(biāo)的轉(zhuǎn)換[14]。
測(cè)量任務(wù)管理模塊:測(cè)量任務(wù)命名、保存和打開(kāi)。
測(cè)量工具設(shè)定模塊:測(cè)量工具的編輯。
自動(dòng)運(yùn)行模塊:系統(tǒng)進(jìn)行自動(dòng)測(cè)量,并輸出測(cè)量結(jié)果。
流水線(xiàn)上的產(chǎn)品尺寸檢測(cè)過(guò)程如圖2所示,開(kāi)始一個(gè)新尺寸檢測(cè)任務(wù)時(shí),必須先進(jìn)行測(cè)量工具設(shè)定,然后開(kāi)始自動(dòng)運(yùn)行。
1)測(cè)量工具設(shè)定
該設(shè)定只需在有新的測(cè)量任務(wù)時(shí)才需要(如圖2上圖所示)。選擇多個(gè)測(cè)量工具(Tool)來(lái)完成測(cè)量任務(wù),每個(gè)工具按以下步驟配置。
(1)選擇是否需要定位器。如果選擇了定位器,需要選取待測(cè)零件上幾何特征比較明顯且不易受到周?chē)螤罡蓴_的形狀為定位器。
(2)在需要識(shí)別平面曲線(xiàn)(直線(xiàn)或圓?。┑牡胤椒胖孟鄳?yīng)ROI。
2)自動(dòng)運(yùn)行
當(dāng)工業(yè)相機(jī)傳來(lái)需要測(cè)量的零件圖片時(shí),系統(tǒng)按以下步驟進(jìn)行每個(gè)測(cè)量工具的尺寸測(cè)量計(jì)算(如圖2下圖所示)。
(1)ROI定位:首先識(shí)別出定位器位置,并更新所有ROI的位置;
(2)平面曲線(xiàn)識(shí)別:通過(guò)ROI的識(shí)別算法,識(shí)別出每個(gè)ROI對(duì)應(yīng)的平面曲線(xiàn)(直線(xiàn)、園等);
(3)尺寸計(jì)算:通過(guò)多個(gè)ROI平面曲線(xiàn)計(jì)算需測(cè)量的尺寸(如:兩個(gè)平行線(xiàn)之間的距離)。
圖2 流水線(xiàn)產(chǎn)品尺寸檢測(cè)流程示意圖
下面將介紹該系統(tǒng)的關(guān)鍵技術(shù):系統(tǒng)底層結(jié)構(gòu)(C++類(lèi))設(shè)計(jì)和平面尺寸測(cè)量計(jì)算模型(ROI數(shù)據(jù)結(jié)構(gòu)表達(dá)、邊界點(diǎn)識(shí)別、平面曲線(xiàn)擬合和平面尺寸計(jì)算)。
為了實(shí)現(xiàn)尺寸測(cè)量的通用性,在軟件的底層設(shè)計(jì)上必須要有足夠的靈活性[15]。該系統(tǒng)設(shè)計(jì)了兩大C++類(lèi):ROI和Tool(如圖3所示)。ROI負(fù)責(zé)局部平面曲線(xiàn)的識(shí)別,Tool負(fù)責(zé)測(cè)量尺寸計(jì)算。圖3(a)表示了部分ROI的類(lèi),MeasureROI為曲線(xiàn)識(shí)別ROI,下面分直線(xiàn)識(shí)別(LineROI)、圓弧識(shí)別(CircleROI)等,RangeROI為分析與識(shí)別范圍ROI,下面分矩形(RectROI)等。
具體尺寸測(cè)量通過(guò)工具類(lèi)Tool來(lái)實(shí)現(xiàn)(如圖3(b)所示)。例如:DistanceTool為兩平行線(xiàn)間的距離測(cè)量,包含兩個(gè)LineROI作為成員變量,實(shí)現(xiàn)平行間的距離測(cè)量。CircleTool為園測(cè)量工具,包含一個(gè)CircleROI作為成員變量。HoughCircleTool是用霍夫方法測(cè)量園的工具,包含一個(gè)RectROI作為成員變量,HoughCircleTool常用作定位器使用。
圖3 ROI和Tool類(lèi)示意圖
在定義了ROI和Tool兩大類(lèi)后,系統(tǒng)在自動(dòng)運(yùn)行時(shí)就只需要遍歷所有Tool就可以了(如圖4所示)。
圖4 工具的遍歷示意圖
ROI是平面曲線(xiàn)識(shí)別的范圍。分為直線(xiàn)ROI和圓弧ROI(如圖5所示)。直線(xiàn)ROI用來(lái)識(shí)別直線(xiàn),圓弧ROI用來(lái)識(shí)別圓弧。為了便于計(jì)算,將所有ROI的數(shù)據(jù)(像素坐標(biāo),像素灰度值等)保存到一組矩陣容器中(或者是一個(gè)多通道矩陣容器,例如OpenCV中的Mat數(shù)據(jù)結(jié)構(gòu)),如圖5所示。這樣做的好處是,后面的算法可以作用在一個(gè)統(tǒng)一的容器上。因?yàn)镽OI的像素與原始圖片的像素不是精確對(duì)應(yīng),計(jì)算中要用到雙線(xiàn)性插值算法。
圖5 ROI與矩陣容器的對(duì)應(yīng)
圖6 圖像特定方向灰度梯度曲線(xiàn)
圖6顯示了在圓弧ROI中沿與圓弧法線(xiàn)方向搜尋邊界點(diǎn)的情形。通過(guò)灰度值梯度(一階導(dǎo)數(shù))的變化可以方便識(shí)別出邊界點(diǎn)(圖中白色填充的點(diǎn))[16]。
每個(gè)ROI中可以包含多條曲線(xiàn),本文只討論ROI只包含一條曲線(xiàn)(直線(xiàn)或者圓)。3.1節(jié)已經(jīng)識(shí)別出邊界點(diǎn),本節(jié)的任務(wù)就是由這些點(diǎn)擬合相應(yīng)的曲線(xiàn)(直線(xiàn)或圓?。?/p>
通過(guò)邊界點(diǎn)擬合平面曲線(xiàn)有很多算法,被廣泛使用的有:M-估計(jì)法(M-estimators)[17]和隨機(jī)抽樣一致算法(Random sample consensus,即RANSAC)[18],最小二乘法是M-估值法的一個(gè)特例。該系統(tǒng)使用了RANSAC算法,這種算法可以很好剔除異常點(diǎn),用于直線(xiàn)或圓擬合的流程圖如圖7所示。
圖7 曲線(xiàn)(圓或者直線(xiàn))擬合RANSAC算法流程圖
圖8 不同測(cè)量工具(Tool)通過(guò)ROI的組合完成測(cè)量任務(wù)
測(cè)量要達(dá)到通用的目的,必須能完成各種各樣的尺寸測(cè)量任務(wù)。本系統(tǒng)通過(guò)不同ROI之間的組合可以完成不同的測(cè)量任務(wù),圖8列舉了部分測(cè)量工具的ROI組合。
為了完成具體測(cè)量的計(jì)算,系統(tǒng)必須建立幾何計(jì)算的數(shù)學(xué)模型。下面介紹部分?jǐn)?shù)學(xué)計(jì)算模型和具體公式。
為了避免數(shù)據(jù)計(jì)算的溢出,直線(xiàn)可以用以下兩種方式表達(dá):
1)直線(xiàn)的通用表達(dá)式:
2)直線(xiàn)通過(guò)一個(gè)點(diǎn)(x0,y0),方向矢量為(u,v)的參數(shù)方程為:
圓心在(x0,y0),半徑為r的圓用參數(shù)方程表示:
圖9 點(diǎn)到直線(xiàn)距離
圖9中兩直線(xiàn)的方程表示為:
解方程可求出:
進(jìn)而可求出(xN,yN),最后可求出d。
圖10 直線(xiàn)與圓關(guān)系示意圖
如圖10所示,需要判斷直線(xiàn)(通過(guò)點(diǎn)(x0,y0),方向矢量為(u,v))與圓(圓心為(xc,yc),半徑為r)的關(guān)系(相切、相離和相交)。通過(guò)4.2節(jié)可以計(jì)算出點(diǎn)(xc,yc)到直線(xiàn)L的垂足(xN,yN)和距離d。
給定閾值deltaD(大于零的值),得到以下結(jié)論:1)如 果直 線(xiàn) 與 圓 相 切 ;2) 如 果d?r >deltaD ,直線(xiàn)與圓相離;3)如果d? r < ?deltaD ,直線(xiàn)與圓相交。
HoughCircleTool使用了霍夫變換(Hough transform)[19,20]的原理,將候選形狀從圖像空間映射到參數(shù)空間,并用統(tǒng)計(jì)學(xué)方式確定概率最大的形狀為識(shí)別結(jié)果。HoughCircleTool相比CricleTool,魯棒性更強(qiáng),可以大范圍搜尋幾何體,但識(shí)別精度較差,比較適用于定位器工具?;舴蜃儞Q內(nèi)容不在本文詳細(xì)討論。
本文介紹的系統(tǒng)通過(guò)底層靈活的類(lèi)設(shè)計(jì)和任務(wù)設(shè)定功能,實(shí)現(xiàn)了流水線(xiàn)上通用產(chǎn)品尺寸測(cè)量。該系統(tǒng)作為尺寸測(cè)量子系統(tǒng)已經(jīng)成功應(yīng)用在武昌首義學(xué)院與亞旭電子科技(江蘇)有限公司合作開(kāi)發(fā)的機(jī)器視覺(jué)軟件中。圖11顯示的是多個(gè)尺寸同時(shí)測(cè)量的情形,ROI中較粗的灰色線(xiàn)條為尺寸計(jì)算結(jié)果。
圖11 多個(gè)尺寸同時(shí)測(cè)量情形
[1]MVTec Software GmbH. Solution Guide I-Basic[Z].2014.
[2]Teledyne DALSA Incorporated. iNspect Express Software Users Manual[Z].2014.
【】【】
[3]Cognex Corporation.VisionPro 9.1 SR1 About This Release.2017.
[4]唐松,楊其華,劉剛海.基于Halcon的閥芯尺寸亞像素級(jí)測(cè)量[J].計(jì)算機(jī)工程與應(yīng)用,2017,53(3):237-241.
[5]朱先鋒,潘洪軍.基于Halcon的硒鼓缺陷檢測(cè)與一維尺寸測(cè)量[J].吉林大學(xué)學(xué)報(bào)(信息科學(xué)版),2014(3):308-315.
[6]郭超,馬麟.基于機(jī)器視覺(jué)的尺寸測(cè)量方法研究[J].機(jī)械工程與自動(dòng)化,2012(1):15-17.
[7]劉艷雄,張亮杰,毛華杰,等.基于機(jī)器視覺(jué)的精沖零件斷面缺陷檢測(cè)系統(tǒng)研究[J].制造業(yè)自動(dòng)化,2016,38(4):3-7.
[8]楊琨,高勇.基于機(jī)器視覺(jué)的夏比試樣缺口測(cè)量系統(tǒng)[J].制造業(yè)自動(dòng)化,2016,38(11):37-39.
[9]周應(yīng)斌,何林,劉持平,等.基于機(jī)器視覺(jué)的銑刀鈍化鈍圓半徑檢測(cè)[J].制造業(yè)自動(dòng)化,2015(2):46-49.
[10]李釗寶,汪新新,賈茜媛.基于機(jī)器視覺(jué)的工件尺寸高精度測(cè)量方法[J].計(jì)算機(jī)測(cè)量與控制,2015,23(6):1866-1870.
[11]郭瑞峰,袁超峰,楊柳,等.基于OpenCV的機(jī)器視覺(jué)尺寸測(cè)量研究[J].計(jì)算機(jī)工程與應(yīng)用,2017,53(9):253-257.
[12]張平生,張桂梅.基于機(jī)器視覺(jué)的管孔類(lèi)零件尺寸測(cè)量方法[J].機(jī)械設(shè)計(jì)與制造,2012(12):139-141.
[13]王冠英,胡心平,刁維龍.基于機(jī)器視覺(jué)的復(fù)雜形狀模具尺寸測(cè)量[J].計(jì)算機(jī)測(cè)量與控制,2015,23(3).
[14]尹英杰,徐德,張正濤,等.基于單目視覺(jué)的平面測(cè)量[J].電子測(cè)量與儀器學(xué)報(bào),2013,27(4):347-352.
[15]JohnLakos,洛科什,Lakos,等.大規(guī)模C++程序設(shè)計(jì)[M].機(jī)械工業(yè)出版社,2014.
[16]Steger C, Ulrich M,Wiedemann C. Machine Vision Algorithms and Applications[M].2008.
[17]Vaart A W V D, Wellner J A. M-Estimators[M].Weak Convergence and Empirical Processes. Springer New York,1996.
[18]Fischler M A, Bolles R C. Random sample consensus: a paradigm for model fitting with applications to image analysis and automated cartography[M].ACM, 1981.
[19]Hough P V C.Method and means for recognizing complex patterns[P].u.s:No.3019654,1962.
[20]Duda R O,Hart P E. Use of the Hough transformation to detect lines and curves in pictures[J].Communications of the Acm,1972,15(1):11-15.