粟序明,方成剛,洪榮晶,趙子樂
(1.南京工業(yè)大學機械與動力工程學院,江蘇 南京 210009;2.江蘇省工業(yè)裝備數(shù)字制造及控制技術(shù)重點實驗室,江蘇 南京 210009)
在工業(yè)應(yīng)用中,軸類作為不可或缺的零件,廣泛地應(yīng)用于各類工程領(lǐng)域;目前,軸類零件參數(shù)測量一般通過游標卡尺、螺旋測微器以及三坐標測量等方式實現(xiàn),這類測量方式都需要接觸零件表面,會導致零件表面出現(xiàn)一定程度地損傷,而基于機器視覺的測量具有非接觸性、非破壞性、精度高以及速度快等特點,因此越來越受到測量應(yīng)用領(lǐng)域的青睞。另一方面,人員測量不可避免地出現(xiàn)如效率低、可靠性差、因疲勞導致誤檢等現(xiàn)象,難以滿足如今制造業(yè)實行的實時、快速、在線和非接觸檢測的要求[1],而基于機器視覺的測量方法填補了人工檢測存在的缺陷。
在機器視覺的軸類零件測量研究領(lǐng)域,文獻[2]研究了基于MATLAB 軟件結(jié)合改進的自適應(yīng)中值濾波,實現(xiàn)了軸尺寸的測量,但是存在精度不高、未列出詳細的標定與算法實現(xiàn)過程等問題;文獻[3]研究了基于可移動的多臺相機進行分段采集圖像系統(tǒng),結(jié)合使用遠心鏡頭與相應(yīng)的算法實現(xiàn)了對軸參數(shù)的提取,但是存在如不能一次進行采集、受到視場小的限制、在移動的后需要進行重新標定才能獲得準確數(shù)據(jù)等等問題;
針對軸類零件的二維尺寸、傾斜角度以及中心定位檢測以及以上存在的問題,開發(fā)了一套新的測量算法;實際測量的軸,如圖1 所示。通過算法對CCD 相機采集來的背光軸的灰度圖片進行一系列的預(yù)處理、二值化、邊緣提取修正以及根據(jù)坐標跳變來確定前軸端與下個軸端之間的像素點,從而實現(xiàn)了對軸的關(guān)鍵參數(shù)一次性提??;最后,通過對CCD 相機標定與畸變校正,得到了像素坐標與實際坐標的精確轉(zhuǎn)換,求得了軸的中心、關(guān)鍵尺寸以及在空間中的傾斜角度,同時完成了可視化GUI 設(shè)計。
圖1 實際測量軸Fig.1 Actual Measurement Axis
由于相機存在畸變,會對測量精度造成很大的影響,為了獲取高精度的測量值,CCD 相機的標定必不可少。采用文獻[4]的黑白棋盤格標定方法,結(jié)合MATLAB 2016a 的Camera Calibration toolbox 工具箱對CCD 相機進行標定,獲得其內(nèi)、外參數(shù),并轉(zhuǎn)換為投影矩陣,同時依據(jù)內(nèi)外參數(shù)進行了相應(yīng)的畸變校正[5-6];其中,標定使用的硬件有500 萬像素的CCD 相機;選用有效面積為36mm,方格尺寸為4mm 的標定板;可調(diào)節(jié)光度的背光燈源及可調(diào)相機支架;為了保證精度,選擇視場為60*60mm 的平面進行標定,視覺平臺,如圖2 所示。
圖2 視覺平臺Fig.2 Vision Platform
內(nèi)參數(shù)反映的是相機本身的情況,外參數(shù)反映相機在空間中的具體情況,兩者對后續(xù)的畸變校正具有重要作用[7-8];獲取內(nèi)外參數(shù)的第一步,通過CCD 相機采集15 張不同位姿的標定板圖片,預(yù)先保存到一個文件夾中。然后打開MATLAB calibration toolbox載入保存好的圖片,如圖3(a)所示;開始運行標定,設(shè)置checkerboard square 參數(shù)為4mm,運行后可生成相應(yīng)的內(nèi)、外參數(shù);標定結(jié)果的平均投影誤差,如圖3(b)所示。以及相機與標定模板的三維空間模型,如圖3(c)所示。
圖3 標定模版與結(jié)果圖Fig.3 Calibration Template and Result Chart
獲取的內(nèi)部參數(shù),如表1 所示。且選取一張投影誤差最小的標定模版來獲取外部參數(shù),如表2 所示。
表1 內(nèi)部參數(shù)Tab.1 Intrinsic Parameters
表2 外部參數(shù)Tab.2 Extrinsic Parameters
經(jīng)過標定后,由獲取的內(nèi)部參數(shù)可知,CCD 相機存在徑向畸變而切向畸變可以忽略不計,因此需要對徑向進行矯正;依據(jù)Brown 模型[9]可得:
其中,(u′,v′)和(u,v)分別為矯正后和畸變下的歸一化圖像坐標,且,此處考慮徑向和切向畸變,式(1)與式(2)中第一個括號內(nèi)的值稱為徑向畸變量,由光學鏡頭徑向曲率變化引起,離相機中心越遠,圖像點沿徑向移動的變形量就越大;式(1)與式(2)第二個括號內(nèi)的值稱為切向畸變量,來源于相機組裝過程,是指相機鏡頭的主光軸偏離圖像中心,從而使顯示的畸變圖像關(guān)于中心點不對稱,k1~k3為標定所得的鏡頭切向畸變參數(shù),p1~p2為徑向畸變。
針對軸的傾斜角度、關(guān)鍵尺寸測量及中心定位等問題,開發(fā)了一套新的自檢測算法,算法具體流程圖,如圖4 所示。(1)采用CCD 相機獲取軸的背光圖像;(2)由于采集的圖片較大,需將原始圖像縮小后再進行相應(yīng)的處理,減小后續(xù)的處理難度;(3)通過對圖像開啟和閉合、二值化、邊緣提取等預(yù)處理后,可求得物體傾斜角,然后將圖像旋轉(zhuǎn)至標準水平圖;由于在旋轉(zhuǎn)過程中會導致邊緣部分像素丟失,因此采取了形態(tài)學膨脹和區(qū)域填充,然后再進行邊緣處理;
(4)將邊緣圖像數(shù)值化,通過新開發(fā)的算法,求得軸的相關(guān)目標參數(shù)。
圖4 算法流程Fig.4 Algorithm Flow
3.2.1 圖像縮小及灰度化
通過CCD 相機采集軸的灰度圖像,其像素占據(jù)大小為(2592×1944)像素,如圖5(a)所示。由于圖像數(shù)據(jù)量過大,不便于后續(xù)處理,因此對圖像進行縮小5 倍后再進行后續(xù)處理。為了保證采集圖像的完全灰度化,因此在圖像縮小后,灰度圖像進行再次灰度處理,處理結(jié)果,如圖5(b)所示。
3.2.2 對圖像進行開啟和閉合
由于環(huán)境中不可避免地會存在各種噪音,對圖像的質(zhì)量有較大的影響;為了提高圖像處理的質(zhì)量,圖像去除噪聲必不可少。采用MATLAB 中提供的濾波算法對圖形進行開啟和閉合操作,實現(xiàn)了圖像平滑和去噪,提高了圖像處理效率和質(zhì)量,處理結(jié)果,如圖5(c)、圖5(d)所示。
圖5 原始圖像灰度處理與濾波Fig.5 Original Image Grayscale Processing and Filtering
3.2.3 圖像二值化與邊緣提取
圖像二值化是將灰度圖像轉(zhuǎn)變?yōu)楹诎讏D像,是圖像分割算法的重要組成部分。將測量的對象保留為黑色,圖像背景設(shè)置為白色[10]。其原理是通過設(shè)定一個閾值,小于設(shè)定閾值則視為背景像素,反之,則視為目標像素。設(shè)原始圖像為g(x,y),經(jīng)過二值化后為t(x,y),閾值為P∈(0~1),具體表達式如下:
由式(3)可知,閾值作為二值化的核心參數(shù),選擇一個合適的閾值顯得尤為重要,通常可通過實驗驗證法或自適應(yīng)求取閾值。通過一系列實驗,確定閾值盡可能選在(0.8~0.9)之間為宜,處理結(jié)果,如圖6(a)所示。
圖像經(jīng)過二值分化后,需要進行圖像邊緣提取。由圖像邊緣反映目標對象的尺寸信息、定位信息以及傾斜角度信息等,而且圖像邊緣化后可以將大量的數(shù)據(jù)簡化為目標邊緣數(shù)據(jù),可以減少占用內(nèi)存和降低后續(xù)處理難度;邊緣提取有較多的檢測算子,如Roberts、Canny、Prewitt、Sobel 以及Log 算子等,由于Canny 算子邊緣檢測方法不易受噪聲的干擾,能夠直接檢測到真正的弱邊緣[4、10],在噪聲的情況下,也能較好的提取邊緣;因此,采用Canny 算子進行邊緣檢測,處理結(jié)果,如圖6(b)所示。
圖6 灰度圖二值與邊緣檢測Fig.6 Grayscale Binary and Edge Detection
首先,軸的定位包含兩個主要的參數(shù),即傾斜角度與質(zhì)心位置。通過邊緣提取后,需要對邊緣進行數(shù)值化,然后進行相應(yīng)的數(shù)值計算;其中,獲取質(zhì)心的關(guān)鍵是將數(shù)值化后的邊緣點集合轉(zhuǎn)變?yōu)橐粋€坐標集合,然后使用[y,x]=find(k5)與mean 算法求取平均值(x0,y0),具體表達式如下:
獲得軸的質(zhì)心后,采用MATLAB 內(nèi)置算法,直接求取了軸的傾斜角度,簡化了算法過程,提高了運算效率。
圖7 水平放置標準圖Fig.7 Horizontal Standard Map
經(jīng)過以上的處理后,圖像已經(jīng)數(shù)值化,而且獲取了軸的中心與傾斜角度,接下來主要是圍繞求取軸的各段直徑和長度,開發(fā)的算法結(jié)合傾斜角以及判別函數(shù),巧妙地將傾斜軸圖像水平放置且標準化,即經(jīng)過算法處理后都會轉(zhuǎn)變?yōu)榻y(tǒng)一的狀態(tài)特征,解決了軸測量時任意擺放的問題,且達到圖形簡單化的目的,如圖7所示。圖形簡化后,在軸的端面會出現(xiàn)一個x坐標值至少對應(yīng)3 個相同的y坐標值的情況,稱之為跳變現(xiàn)象,通過算法判別軸的端面處的坐標點后,并對坐標點進行提?。欢?,在每一軸段只需提取相同x對應(yīng)的兩個y坐標值以及多個y值對應(yīng)的x坐標,即可求取各段的長度與軸徑。軸水平放置后,不一定是所要求的標準形狀,如圖8(a)、圖8(b)所示。旋轉(zhuǎn)后都不是標準圖形,因此需要對水平的軸,進行標準模式判別,從而做出相應(yīng)的調(diào)整。軸的中心一般更接近于較大直徑的軸端。依據(jù)標準圖像中心坐標的x′0和圖像最小x之差與圖像最大x和中心坐標的x′0之差m進行比較,如果判定不是標準圖像,則進行旋轉(zhuǎn)圖形180°,即可得到標準圖像。
圖8 水平放置后需要調(diào)整的情況Fig.8 The Need to Adjust after Horizontal Placement
通過實驗發(fā)現(xiàn),旋轉(zhuǎn)為標準圖形后,會導致部分像素丟失,如圖9(a)所示。為了填補丟失的像素點,保持圖形連續(xù)性,采用了圖形膨脹、填充再邊緣化處理,處理結(jié)果,如圖9(b)~圖9(d)所示。由于膨脹后提取的邊緣尺寸會相應(yīng)地變動,因此在求得各像素尺寸后,還需減去相應(yīng)的像素值,從而得到精確值。經(jīng)過上述標準化處理后,即可進行尺寸的提取。該算法核心為循環(huán)判斷,從而獲取相應(yīng)的目標點,由此能自動準確定位至目標過渡點,即可求得d1、d2、d3、d4及軸各段的長度尺寸L0、L1、L2、L3;最后,再乘以相應(yīng)圖像縮小倍數(shù)的倒數(shù),就可以求得各尺寸的像素值,通過標定得到像素與實際尺寸之間轉(zhuǎn)換關(guān)系,就可以獲得實際尺寸值。
圖9 邊緣處理圖Fig.9 Edge Processing
實驗操作系統(tǒng)采用Windows7 64 位筆記本電腦,軟件為MATLAB R2016b,以及直徑不同的45#鋼四段軸為實驗對象。將四張任意放置的圖片輸入算法中,驗證其有效性,原始圖片,如圖10(a)所示。處理結(jié)果,如圖10(b)所示。
圖10 四種不同位姿圖和處理結(jié)果圖Fig.10 Four Different Posture and Processing Results
為了便于觀察尺寸對應(yīng)關(guān)系,使用CAD 繪制二維圖形,如圖11(b)所示;依據(jù)生成的標定參數(shù)以及矯正[11]后的各標定后角點像素值,使用兩點距離公式,求得所有標定板相鄰兩點之間的間距,然后求得平均值。已知標定板方格的邊的尺寸為4mm,最終可求得像素與實際尺寸之間比值為16.9066piexs/mm。軸在不同位置情況下的測量結(jié)果,如表3 所示。
表3 實驗結(jié)果與標準值的比較Tab.3 Comparison of Experimental Results with Standard Values
且進行求取結(jié)果平均值再和標準尺寸作相對誤差分析;從表中可以看出,測量存在一定的誤差,原因可能來源于硬件本身的精度,光源亮度調(diào)整不合適以及實驗環(huán)境的影響等。為了便于客戶以及研究人員的參考及使用,為此還設(shè)計了可視化界面GUI,界面,如圖12 所示。GUI 界面設(shè)計執(zhí)行按鈕包括載入處理圖片,圖像預(yù)處理,獲得傾斜角,獲取標準水平圖形,獲取軸的各段長和直徑,以及退出等。載入的圖片以及處理后的圖片都會顯示在界面上,獲得的參數(shù)也會顯示在右側(cè)黃色的方框中,這不僅能有效的查看圖像處理過程,而且能更有效地檢查是否在處理過程中出錯,方便了開發(fā)系統(tǒng)的使用,增加了便捷度,所以GUI 設(shè)計具有必要性。
圖11 目標軸的二維圖形Fig.11 Two-Dimensional Graphic of the Target Axis
圖12 GUI 界面Fig.12 GUI Design Interface
(1)基于MATLAB 軟件,開發(fā)了一套軸類零件定位與測量系統(tǒng)。系統(tǒng)實現(xiàn)了對軸類零件的定位以及關(guān)鍵尺寸的測量,同時也設(shè)計了可視化GUI 界面;
(2)介紹了CCD 相機標定和畸變校正方法,系統(tǒng)實現(xiàn)了對多段軸的中心、傾斜角度以及關(guān)鍵尺寸的提取。通過實驗獲得的平均定位誤差為0.1mm,平均角度誤差為1°,平均尺寸測量誤差為0.2mm,驗證了算法的有效性且滿足工業(yè)應(yīng)用要求;
(3)該測量與定位算法具有很好的延展性和可移植性,在工業(yè)中具有很大的應(yīng)用價值,在保證一定精度的前提下,減輕了工人的勞動力,節(jié)省了大量的設(shè)備與人工成本;
(4)下一階段的實驗研究目標是針對復(fù)雜工況下的復(fù)雜零件的測量以及進一步提升精度,為機器視覺領(lǐng)域提供新的思路和研究方法。