(河南理工大學 電氣學院,焦作 454150)
隨著圖像處理技術(shù)和視覺計算技術(shù)在工業(yè)自動化生產(chǎn)中的快速發(fā)展,基于機器視覺引導的量測技術(shù)已經(jīng)在當今的工業(yè)生產(chǎn)中占據(jù)了舉足輕重的位置。進入二十一世紀以來,2D視覺測量方法已經(jīng)遠遠不能滿足工業(yè)生產(chǎn)的需求,對于一些高精度同時具有特殊的量測位置的產(chǎn)品也讓傳統(tǒng)的視覺檢測方法顯得式束手無策,因此基于3D視覺的測量技術(shù)受到研究者的廣泛關(guān)注,同時得到了快速發(fā)展。機器視覺算法的效果嚴重依賴于輸入圖像得質(zhì)量,表面缺陷檢測、深度測量、共面性檢測、曲面度檢測等均是3D視覺技術(shù)得優(yōu)勢。針對這些檢測方式2D相機想要取得一幅質(zhì)量好的圖像非常困難,3D激光測量技術(shù)的出現(xiàn)彌補了傳統(tǒng)視覺量測技術(shù)的缺陷,為空間3D信息的獲取提供了全新的技術(shù)手段,為信息數(shù)字化發(fā)展提供了必要的生存條件[1]。
汽車發(fā)動機是汽車的心臟,為汽車提供動力,發(fā)動機的正常運行是汽車安全行駛的保障。汽車發(fā)動機由很多種零件組裝而成,在零件生產(chǎn)過程中,大或小的零部件的不良都會直接影響到汽車正常行駛過程中發(fā)動機的安全,危害駕駛員的生命安全,因此對發(fā)動機的零部件實現(xiàn)快速而精確的測量尤為重要。本文對汽車的一種核心零件的進行高精度測量研究,針對測量部位是產(chǎn)品表面的凹陷深度提出了一種基于3D視覺的高精度加工件測量系統(tǒng)。陳方[2]提出了3D測頭和宏程序相結(jié)合一體式3D機床自動測量的方案,該技術(shù)價格相對比較昂貴,精度不穩(wěn)定,自適應性差。安宗權(quán)[3]等人提出了一種基于線激光的工件平面平坦度的測量,該方法采用平面均值算法,對產(chǎn)品底面水平度依賴性比較強,當產(chǎn)品不是絕對水平時精度會下降。
為了解決當前3D視覺測量技術(shù)對凹陷深度測量精度不佳的問題,本文提出了基于最小二乘法Huber法擬合空間平面算法,該算法以點到面的距離為研究方向,通過以產(chǎn)品表面為基準面,尋找凹陷最低點,最低點到基準面的距離就是真實的凹陷深度。該方法不會受到底面傾斜等因素的干擾,并且成本低廉,精度高,穩(wěn)定性強。本文通過組織架構(gòu)、硬件部分、軟件部分、現(xiàn)場結(jié)果與分析四大部分進行研究,加工件良品的凹陷深度范圍為1.45±0.15mm,精度要求為小于0.02mm,從精度可以看出測量本身存在一定的難度,對研究具有很大的意義和價值。
本文的3D視覺系統(tǒng)分為2D視覺和3D視覺兩大部分。其中2D視覺部分的流程為:2D上相機定位和模板匹配得出旋轉(zhuǎn)角度并返回給上位機角度信號,上位機控制機構(gòu)并旋轉(zhuǎn)產(chǎn)品,2D側(cè)相機測量產(chǎn)品的高度和寬度,同時3D相機采圖并通過算法測量出產(chǎn)品表面的凹陷深度返回給下位機OK或NG信號并保存數(shù)據(jù),下位機根據(jù)返回的信號做出判斷,對產(chǎn)品進行分類回收。3D視覺系統(tǒng)整體工作流程圖如圖1所示。2D視覺的作用不僅可以保證3D相機每次取到的圖像角度不會有太大的變化,同時可以減少小部分3D視覺測量算法的時間。本文研究的重點為3D視覺系統(tǒng)部分。
圖1 3D視覺系統(tǒng)整體工作流程
3D視覺系統(tǒng)是從攝像機獲取的圖像出發(fā),計算三維環(huán)境物體的位置、形狀等幾何信息,并由此重建和識別環(huán)境中的物體。線激光光源中的幾何信息幫助提取景物中的幾何信息,利用光平面照射在物體表面產(chǎn)生光條紋,在拍攝的圖像中檢測出這些條紋,它們的形態(tài)和間斷性,構(gòu)成了物體各可見表面與相機之間的相對測度[4,5]。通俗的講就是激光照射到3D物體表面,因為物體表面是存在高度變化的,導致激光線發(fā)生彎曲,通過傳送帶帶動物體運動,多條激光曲線拼接在一起就形成物體表面的輪廓[6]。實驗測試平臺如圖2所示。
圖2 實驗測試平臺
圖3 3D視覺測量對象
本次研究的3D視覺測量對象如圖3所示。產(chǎn)品為一個直徑約40mm的圓盤,測量位置1、2、3處凹坑的深度??紤]到2D相機所用的光源為紅色面光源,打光方式為背光源頻閃方式,整個流程速度比較快,藍色線激光會受到紅光干擾造成3D相機掃描取像不準確。為了避免紅光對藍色線激光的干擾,經(jīng)過計算與分析,3D視覺圖像的選取的視野應比測量對象的長度大一些,圖像的視野大小規(guī)定為50×50mm。2D相機進行產(chǎn)品尺寸測量時,3D相機掃描的起點并沒有在產(chǎn)品上,干擾可以降到最低。
3D視覺系統(tǒng)硬件主要由:3D相機、線激光、鏡頭、電源線、通信線、標定板等部分組成。3D相機采用Sick-RangerE50相機,分辨率為1536×512像素,3D相機電源為24V直流電源;鏡頭采用Schneider Makro-IRIS/C MOUNT的40mm C口鏡頭;激光采用2M級,20mW/450nm/10度發(fā)散角(Z-Laser);RS-232通信連接線;點陣標定板;一臺工業(yè)工控機。相機與激光架設(shè)采用三角測量架設(shè)方式,采集硬件架構(gòu)圖如圖4所示,激光采用藍色激光,垂直照射。3D相機與線激光光束方向夾角α的最佳角度范圍為30°~50°,本次實驗取α=30°。點陣標定板如圖5所示,斜面角度為16°。各硬件部分通過成本、精度等嚴格的計算之后進行選型,通過選型后搭建測試平臺比一體式3D采集器要廉價。
圖4 采集硬件架構(gòu)圖
圖5 點陣標定板
3D視覺系統(tǒng)軟件主要采用HALCON11.0軟件和Visual Studio2012軟件混合編寫。HALCON11.0軟件具有強大算法庫,3D視覺系統(tǒng)的顯示界面由Visual Studio2012軟件C#開發(fā)平臺進行編寫,該軟件同時負責與PLC的通訊、數(shù)據(jù)結(jié)果匯總等。Ranger Studio軟件負責3D相機標定。
軟件部分可以進行數(shù)據(jù)處理,通過3D相機采集到的圖像信息,生成產(chǎn)品空間X-Y-Z三個方向的數(shù)據(jù)點云信息。通過3維坐標與“點云”信息構(gòu)建產(chǎn)品得立體輪廓信息,對2D平面離散點通過最小二乘法算法擬合成一條直線進行改進,采用最小二乘法Huber方法把整個3維空間離散的點擬合為一個理想化空間平面,最終計算出產(chǎn)品表面任意興趣點到擬合之后空間平面的距離就等于產(chǎn)品表面任意興趣點處的凹陷深度。
3D系統(tǒng)邏輯架構(gòu)如圖6所示,待測產(chǎn)品隨著傳送帶運動至測量起點位置,激光感應裝置感應到產(chǎn)品,啟動激光,同時回傳給PLC信號,PLC發(fā)出+5V上升沿信號觸發(fā)3D相機采集數(shù)據(jù),產(chǎn)品移動50mm(視野大小)后,激光關(guān)閉,3D相機停止數(shù)據(jù)采集。
圖6 3D系統(tǒng)邏輯架構(gòu)圖
標定是視覺測量的關(guān)鍵環(huán)節(jié),標定精度直接影響對工件的測量精度[7]。2D圖像標定一般采用2D平面靶面標定法[8],2D圖像坐標系只有X-Y方向。3D相機標定的原理是通過保持空間坐標X-Y方向不變,Z方向坐標數(shù)據(jù)轉(zhuǎn)換為2D圖像的灰度值,通俗的講就是空間坐標系X-Y-Z(高度)轉(zhuǎn)變?yōu)?維平面坐標系X-Y-灰度值。3D相機標定時首先設(shè)置掃描起始行和行的數(shù)量,讓標定板掃描后的圖像充滿視野,其中任意相鄰兩個點的水平距離為△X=3.5mm,垂直方向距離△Z=△X×sin16°=0.965mm。通過亞像素邊緣提取后再橢圓擬合或利用灰度質(zhì)心法等,能夠較容易地得到圓(橢圓)中心亞像素精度提取。參數(shù)導入Ranger Studio后標定的圖像如圖7所示,圖7(a)為標定前的標定板圖像,圖7(b)為標定之后的標定板圖像。圖像由高度圖像轉(zhuǎn)換為未格式化的圖像數(shù)據(jù),并且圖像數(shù)據(jù)按像素連續(xù)地填充,并逐行逐行地填充。標定之后空間的X方向分辨率為0.026mm,Y方向分辨率為0.016mm,Z方向分辨率為0.006368mm。
圖7 標定板標定前后圖像對比圖
標定完成后采用HALCON11.0的算法庫讀取數(shù)據(jù)文件。采用算子read_sequence(:Image:HeaderSize,SourceWidth,SourceHeight,SourceWidth,SourceHeight,StartRow,StartColumn,DestWidth,DestHeight,PixelType,BitOrder,ByteOrder,Pad,Index,F(xiàn)ileName:)讀取像素類型為“real”的數(shù)據(jù)文件。其算子參數(shù)如圖8所示,其中參數(shù)Source Width為3D相機X方向分辨率為1536pixels,參數(shù)SourceHeight為掃描行數(shù)666行,SourceHeight=Y方向移動距離/Y分辨率,Y分辨率=傳送帶速度*循環(huán)采集時間。圖8中紅色箭頭指示為“點云”圖像數(shù)據(jù)存放的路徑。
圖8 算子參數(shù)
采用算子threshold(Image,Region,1,255)和reduce_domain(Image,Region,Reduced)算子對圖像進行處理,得到“real”型圖像。3D相機采集到的3D圖像和“real”型圖像如圖9所示。
傳送帶速度過快采集到的圖像容易失真,速度過慢會影響工作效率,經(jīng)過分析與計算,激光啟動時設(shè)置傳送帶的最佳速度為勻速15mm/s,整個運動過程為上料后先加速,激光掃描時勻速,收到處理結(jié)果后再加速。標定后的圖像如圖10所示,從圖10中可以清楚的看到經(jīng)過標定后圖像灰度值數(shù)值從Int型變換為Double型,灰度值的單位為mm。經(jīng)過標定之后真實深度值=產(chǎn)品基準平面平均灰度值-凹陷區(qū)域最低點灰度值。圖10中可以看出采集到的圖像中有很多噪聲,這些噪聲會對最后的精度造成干擾,中值濾波算子median_image(Image:ImageMedian:MaskType,Radius,Margin :)能夠有效抑制噪聲,可以很好的過濾掉椒鹽噪聲,可以得到高質(zhì)量的圖像。
圖9 3D圖像與“real”型圖像
圖10 標定后的圖像
中值濾波后的圖像如圖11所示。圖像噪聲處理之后分兩大部分進行:1)尋找產(chǎn)品表面三個位置凹陷處的最低點;2)尋找與產(chǎn)品最低點相對應的基準平面。經(jīng)過大量數(shù)據(jù)分析,這兩個部分具有緊密的聯(lián)系,凹陷處最低點和基準平面選擇的準確性,直接影響最后測量值的精度。
圖11 中值濾波后的圖像
尋找產(chǎn)品表面最低點的方法如下:采用閾值分割(二值化)算子threshold(Image:Region:MinGray,MaxGray :)。經(jīng)過閾值分割后可以得到產(chǎn)品表面三個凹陷區(qū)域,對三個區(qū)域進行開運算、閉運算和腐蝕處理,進一步去除干擾。最后用感興趣區(qū)域篩選算子select_shape(Regions,SelectedRegions:Features,Operation,Min,Max:)得到的三個穩(wěn)定的區(qū)域,接著對三個興趣區(qū)域進行排序,用For循環(huán)對每個區(qū)域進行單獨處理。算子min_max_gray( )和gray_features( )得到凹陷區(qū)域(region)的最小灰度值Min和凹陷區(qū)域的最小灰色值特性Value,然后取參數(shù)Difference_Value:=Min-Value,算子Threshold(Image,EndRegion,Value,Value+Difference_Value/2)對凹陷區(qū)域進行閾值分割,把凹陷區(qū)域最低點篩選出來。運用此算法流程可以篩選掉圖像中干擾,保證算法得到最低點具有極高的穩(wěn)定性和準確性。
基準平面選取的合理性同樣影響最后測量的精度。尋找基準平面:陳方提出的平面均值測量算法采用二值化算法和興趣區(qū)域篩選算法得到產(chǎn)品上表面區(qū)域,以篩選出的區(qū)域為基準面,利用的算子intensity(Regions,Image::Mean,Deviation)求出平面灰度值的平均值Mean。高度差=Mean-最低點灰度值Min。經(jīng)過大量的實驗測試以及對測量數(shù)據(jù)進行統(tǒng)計分析得:這種方法的前提條件是工件底座需要保證絕對水平,然而在實際生產(chǎn)中零件底面不可能絕對水平,底面是存在誤差的,并且加工件在3D掃描運輸過程中會發(fā)生輕微抖動造成加工件傾斜,運送平臺與產(chǎn)品底面不是絕對平行的,平臺允許存在0.01mm的機械誤差。以上多種因素的累加影響,使得測量精度遠超出了0.02mm的精度要求。
圖12 產(chǎn)品柱形底座多角度立體圖
在二維平面內(nèi)對一些離散的點,可以通過采用最小二乘法方法把這些離散的點擬合成一條直線。經(jīng)過深入的算法研究與學習發(fā)現(xiàn),在三維空間內(nèi)也可以實現(xiàn)運用最小二乘法把離散的空間點擬合為一個空間平面,點到擬合面的距離就是真實的高度差,并且這個高度差不會因為受到產(chǎn)品傾斜等因素的干擾而變化。如圖12所示為產(chǎn)品柱形底座多角度立體圖,紅色區(qū)域為產(chǎn)品柱形底座上表面擬合成的基準平面,黑色圓點為表面凹處最低點,h為最低點到平面的距離,從圖中可以看出高度h不會因為產(chǎn)品的傾斜而變化,精度比較高。
通過標定和新的視覺算法把產(chǎn)品表面所有點的坐標(x,y,灰度值)擬合為一個平面,分別計算出產(chǎn)品表面三個最低點到擬合基準平面的三個距離,這三個距離就是加工件表面三個凹坑的深度h。
采用Huber[9]法對平面進行抗差最小二乘法擬合估計。采用抗差估計最小二乘法Huber法,可以降低離群值的影響[10],可以對測量進行等價權(quán)處理,與傳統(tǒng)的最小二乘法相比,當測量的數(shù)據(jù)存在誤差,Huber法可以得到更精確的估計結(jié)果。
三維空間加權(quán)最小二乘法擬合平面算子采用fit_surface_first_order(Regions,Image:Algorithm,Iterations,ClippingFactor:Alpha,Beta,Gamma)。Regions為需要擬合的區(qū)域,Image為3D相機采到的圖像,Algorithm參數(shù)選擇′Huber′,采用加權(quán)最小二乘法擬合平面。Iterations為最大的迭代次數(shù);ClippingFactor為消除異常值的剪輯因子;Alpha為近似曲面的參數(shù)α;Beta為近似曲面的參數(shù)β;Gamma為近似曲面的參數(shù)γ。算子的參數(shù)公式如式(1)所示,點到面的距離D如式(2)所示。假設(shè)需要求點(x0,y0)到某平面的距離,式(1)中變量r_center為擬合區(qū)域中心X方向坐標;變量c_center為擬合區(qū)域中心Y方向坐標;r和c分別為式(2)中的x0和y0;Image(r,c)等于式(2)z0;z0為點(x0,y0)處灰度值;式(1)展為一般式如式(3)所示。
由式(1)~式(3)得:
由式(4)可得:
通過式(5)可以求出產(chǎn)品表面任意凹陷處最低點到產(chǎn)品表面的距離,相對應的最小二乘法(Huber法)擬合空間平面算法如圖13所示。
圖13 最小二乘法(Huber法)擬合空間平面算法
HALCON與Visual Studio2012配合時候需要用到HALCON的算法函數(shù)創(chuàng)建功能。自定義創(chuàng)建HALCON函數(shù)庫,把主要的算法寫入自定義得函數(shù)庫中,這樣做的優(yōu)點是:在HALCON轉(zhuǎn)C#格式的之后,我們在界面程序編寫的時候可以直接引用這些函數(shù)庫來處理,可以減少檢測時間,同時可以保證HALCON算法穩(wěn)定的運行。如圖14所示是HALCON主要算法及運行結(jié)果,算法處理時間t僅為0.015S,封裝后的算法(最終形式)及運行結(jié)果如圖15所示。
圖14 主要算法及檢測結(jié)果
圖15 最終的算法形式及測量結(jié)果
本次研究采用高度規(guī)測量、平面均值算法和最小二乘法Huber擬合空間平面算法三種方法對隨機挑選出的5個產(chǎn)品分別進行100次的重復測量,對測量數(shù)據(jù)進行深度分析,比較三種方法測量出的最大值與最小值的差值驗證三種算法的精度及穩(wěn)定性。表1為采用高度規(guī)對5個產(chǎn)品三個凹陷位置測量100次的精度結(jié)果,表2為采用平面均值法對5個產(chǎn)品三個凹陷位置測量100次的精度結(jié)果,表3為采用最小二乘法Huber擬合空間平面算法對5個產(chǎn)品三個凹陷位置測量100次的精度結(jié)果。由表1、表2和表3可知高度規(guī)測量方法隨著測量次數(shù)的增多,人工測量精度會越差,最大精度0.048mm。平面均值算法在平臺旋轉(zhuǎn)、傾斜等干擾下最大精度為0.03mm,超過了0.02mm。最小二乘法Huber擬合空間平面算法最穩(wěn)定,不會因為測量次數(shù)的增多導致精度下降、精度不受平臺旋轉(zhuǎn)、傾斜等因素的影響,精度可以達到0.01mm。
表1 高度規(guī)對5個產(chǎn)品三個凹陷位置測量100次的精度結(jié)果
表2 平面均值法對5個產(chǎn)品三個凹陷位置測量100次的精度結(jié)果
表3 Huber擬合空間平面算法對5個產(chǎn)品三個凹陷位置測量100次的精度結(jié)果
圖16為對產(chǎn)品1的三個凹陷位置重復測量100次,驗證采用Huber擬合空間平面算法的測量重復精度曲線圖,通過圖16中三個曲線的最大值和最小值的差值可以驗證測量的重復精度,如圖16所示,凹陷位置Point1處測量的重復精度為0.00995mm。凹陷位置Point2處測量的重復精度為0.00903mm,凹陷位置Point3處測量的重復精度為0.00831mm,三處凹陷位置綜合測量精度達到了0.01mm。圖17為用戶正常運行UI界面。
圖16 驗證Huber擬合空間平面算法測量的重復精度曲線圖
圖17 用戶正常運行UI界面
本文提出的3D視覺測量系統(tǒng)已成功應用于生產(chǎn)線。通過生產(chǎn)過程中大量的數(shù)據(jù)驗證,本系統(tǒng)具有運行穩(wěn)定、精度高、可靠性強的優(yōu)點。通過最小二乘法Huber擬合空間平面算法,測量精度達到了0.01mm,速度僅為0.02s。新算法以測量三個凹陷位置深度為例,還可適用于產(chǎn)品表面多處凹陷深度的測量、產(chǎn)品共面性程度的檢測、產(chǎn)品曲面度的檢測等等。實驗結(jié)果表明:本文研究的最小二乘法Huber擬合空間平面算法與傳統(tǒng)技術(shù)相比有更好的測量效果。