張春偉,彭善飛,劉曉峰
(中車青島四方機車車輛股份有限公司,青島 266111)
軌道車輛的零部件,涉及到安裝的形位尺寸較多,較容易出現(xiàn)尺寸形狀錯誤,傳統(tǒng)的檢驗用時較長且容易出錯,檢驗效率較低。出錯的零部件會造成不同程度的返工,大大地降低了生產(chǎn)效率。出于動車組零部件現(xiàn)有入庫檢驗面臨各種困難,所以本文引入視覺的方式,通過圖像采集設備獲取的零部件圖像,應用圖像處理相關算法,獲取目標的輪廓等信息,自動識別零部件邊緣輪廓,最終實現(xiàn)軌道車輛零部件的形狀尺寸參數(shù)測量。
本文采用基于機器視覺的非接觸式檢測方式,研究以車間應用為出發(fā)點,采用便攜式的檢測設備,對放置在生產(chǎn)現(xiàn)場的零部件進行拍照采集特征,然后運用基于Snake的區(qū)域分割算法獲取圖像中的零部件關鍵部位感興趣區(qū)域;之后運用透視變換對圖像進行校正,以解決檢測過程中的拍攝角度及便攜設備部署過程中的相對位置誤差;對校正后的圖像采用Sauvola算法對特征進行精確定位;之后對輪廓進行提取,并通過部署在檢測區(qū)域四角的標定靶進行設備定標,獲取圖像各像素與實際尺寸的對應關系,進行形狀分析和尺寸測量,進而與零部件的標準信息進行比對,判定零部件形位尺寸是否滿足要求,本研究的設計流程如圖1所示。
圖1 零部件形位尺寸視覺檢測設計流程圖
本研究以圖像采集設備為基礎,在位姿調(diào)節(jié)模塊的驅(qū)動下,圖像采集設備對放置在檢測區(qū)域的零部件進行檢測,由于設備采用便攜式的檢測方式,因此在檢測區(qū)域的四周放置標定靶,用于對設備定標,之后拍攝零部件的圖像,本設備為了克服生產(chǎn)現(xiàn)場復雜的環(huán)境干擾,配備補充照明燈,采用工業(yè)相機對零部件進行拍照,基于便攜設備的螺釘狀態(tài)檢測,選用典型小批量大規(guī)模設備中的柜門控制盤的螺釘作為檢測對象,檢測空間狹小,現(xiàn)場環(huán)境有光照及LED燈照明,采用工業(yè)彩色相機對設備進行拍照,由于圖像采集設備的部署由工人完成,因此采集圖像的位置存在20 cm的偏差,采集角度存在10°的偏差,如圖2所示,被檢測對象背景復雜,不利于螺釘定位。
圖2 零部圖像獲取效果圖
對于獲取的零部件圖像,首先需要對關鍵形位尺寸和特征進行提取,即從復雜的背景中提取感興趣區(qū)域。本文采用基于Snake的感興趣區(qū)域分割算法。
Snake[1]動態(tài)輪廓模型對于噪聲和對比度不敏感,擅長將目標從復雜背景中提取出來,因而選擇Snake模型用于本文的圖像感興趣區(qū)域ROI分割。
Snake需要先提供待分割圖像的初始輪廓,然后輪廓動態(tài)地沿能量降低的方向運動,直到收斂于目標對象的真實輪廓。
設C(p)為一條曲線,p是其參數(shù),K為曲率,T為切線,N為法線,其關系如下:
如圖3所示,二維平面上的曲線都可以用互相垂直的法線N和切線T的線性組合來表示。
圖3 Snake 曲線示意圖
Snake是基于能量的方法,以輪廓為參數(shù)構(gòu)造能量方程,使動態(tài)輪廓線與目標輪廓重合的時候模型能量最小,最小化能量方程,即可求出目標輪廓。如圖4,橢圓為初始輪廓,箭頭為動態(tài)輪廓的法向量,待分割的目標為三角形。
圖4 snake主動輪廓原理
對曲線(輪廓)上每個點構(gòu)造能量方程如下:
Cp為曲線的一階導數(shù)(斜率),Cpp為曲線的二階導數(shù),I為輪廓點處的的圖像梯度。
Snake模型的能量為內(nèi)部能量與外部能量之差,內(nèi)部能量即為曲線的一階導數(shù)與二階導數(shù)的平方,表示輪廓的平滑度。曲線不平滑,導數(shù)越大,從而內(nèi)部能量越大。最小化能量就要求內(nèi)部能量盡可能小,即曲線盡可能平滑。
用戶在感興趣目標的附近放置初始輪廓,Snake模型得到的輪廓線是封閉連續(xù)的,目標表面的陰暗變化不會生成獨立的輪廓線,可以提取出零部件感興趣區(qū)域(ROI)的外輪廓。另一種常見的輪廓提取方法是Canny[2]邊緣檢測,邊緣檢測也是輪廓提取。因為Canny算子沒有強調(diào)目標的輪廓必須是封閉的,目標表面紋理的顏色、陰暗變化也被誤當作邊緣檢測出來,就會有大量的偽邊緣。
圖5中,虛線為初始輪廓線,實線為主動輪廓線,實線外接矩形為感興趣區(qū)域ROI保存為圖6所示。
圖5 snake與canny輪廓提取對比
圖6 感興趣區(qū)域ROI
由于設備的部署工作均由操作工人完成,因此不可避免的存在拍攝角度和相對位置的差異,因此本方法在感興趣區(qū)域獲取后采用透視變換,對零部件的形位尺寸進行糾正,為后續(xù)的形位尺寸測量做準備。
由于攝像機拍攝物體時,大多時候并不是正投影垂直朝下拍攝物體,斜看物體時不能有效地正確地看出測量出物體的尺寸,這時就要用到透視變換,將圖像校正為正投影的角度。所以,透視變換是視覺測量物體目標形位尺寸的前提。
透視變換[3](perspective transformation)是將圖片投影到一個新的視平面(viewing plane)上,也稱作投影映射(projective mapping)。透視變換后直線仍為直線,但平行關系喪失。如圖7所示。
圖7 透視變換原理
透視變換用矩陣形式表示如下:
透視變換同樣是一種改變對象尺寸和形狀的操作,一個平面圖形經(jīng)透視變換后可產(chǎn)生立體效果,同樣,立體效果通過透視變換反向變換也可以變?yōu)槠矫鎴D形。攝像機拍攝的圖像一般帶有一些立體效果,我們需要通過透視變換將帶有立體效果的圖像轉(zhuǎn)換為平面圖形,才利于后續(xù)的物體尺寸測量。因為形位尺寸測量為了確保準確性,必須在平面的基礎上進行測量。
相機拍攝得到的圖像是靜止的平面圖像,就是利用的透視投影變換。投影即透視。透視變換的透視縮小效應與人的視覺系統(tǒng)類似,即物體透視投影的大小與物體到視點的距離成反比。
對上一章節(jié)得到的ROI圖像進行透視變換的效果如圖8所示。
圖8 透視變換效果
驗證上述透視變換的效果,可以提升后續(xù)目標測量的準確性?;舴蜃儞Q對正圓的檢測具有非常好的效果,且速度比較快,下面用霍夫圓變換[4]檢測透視變換效果。
在笛卡爾直角坐標系中,圓的方程表示為:
(x-x0)2+(y-y0)2=r2
而用極坐標表示為:
其中:(x0,y0)為圓心坐標,r為圓的半徑,如此,圖像上的點(x,y)對應參數(shù)空間的(x0,y0,r),在參數(shù)空間尋找聚集點,就是圖像上檢測出來的圓。
基于現(xiàn)實考量,在實際項目操作時,由于霍夫Hough圓檢測對噪聲比較敏感,所以要先對圖像做中值濾波,因為中值濾波能夠有效的平滑椒鹽噪聲,且不像均值濾波模糊化過于嚴重[5]。
然后利用Canny算法找到邊緣,并利用Sobel算子求梯度,得到x軸方向和y軸方向的梯度后就能夠求邊緣點梯度的方向,即是半徑的方向,再通過邊緣點到已找到的圓心的距離來求得半徑值,只要有足夠多的邊緣點投某圓心一票,那該圓心和半徑就能準確找到。下面列出Hough圓變換分別檢測ROI圖和透視變換后圖的效果圖。
圖9 Hough圓檢測
從上面結(jié)果可以看到,透視變換起到了良好的效果,比原圖ROI更圓了,這有利于后續(xù)的目標形狀和尺寸測量。
對透視效果進行統(tǒng)計,運用千分尺測量了20個尺寸在150~200 mm范圍的零部件,圓度誤差在0.5 mm以下,滿足現(xiàn)場檢測要求。
視覺形位尺寸測量需要基于目標的輪廓。所以首先是目標的輪廓提取,而輪廓提取同時也能定位目標的位置,為后續(xù)的形狀、尺寸測量提供先決條件。
尋找輪廓前需要二值化圖像。由于在工業(yè)環(huán)境下拍攝零部件的照片有局部曝光不均的問題,全局閾值二值化不能顧及局部細節(jié),所以本文先采用Sauvola[6]局部二值化算法解決圖像局部曝光不均問題。
圖像二值化算法分為全局閾值方法與局部閾值方法兩種,閾值又分為動態(tài)閾值和固定閾值兩種。其中Sauvola是局部動態(tài)閾值方法的標桿算法。Sauvola要求輸入灰度圖像,以當前像素點為鄰域中心,計算其鄰域內(nèi)的灰度的均值與標準差來動態(tài)計算該像素點二值化判決的閾值,最后二值化。
設當前像素點為(x,y),該點鄰域為r*r,g(x,y)表示(x,y)處的灰度值,Sauvola算法的步驟如下。
1)計算r*r領域內(nèi)的灰度平均值m(x,y)與標準差x(x,y):
2)計算像素點(x,y)的閾值T(x,y):
其中:R是標準差的動態(tài)范圍,當輸入圖像為8 bit灰度圖像時,則R為128;k是用戶自定義的一個用于修正的參數(shù),k的取值對算法的結(jié)果影響不顯著,k的取值范圍為0~1之間。
Sauvola對透視變換后圖像進行局部二值化后的效果如圖10(a)所示。
因為本文將零部件上的圓孔作為測量對象,所以對sauvola二值化后的圖像進行反轉(zhuǎn)如圖10(b)所示。
圖10 Sauvola局部二值化及其反轉(zhuǎn)效果圖
從二值化的效果來看,Sauvola算法把零件上的幾個圓孔都比較準確地分割出來,更重要的是沒有遺漏某個圓孔。
因為圖像的分辨率不具有實際意義,若想對圖像中的目標進行實際長度測量,必須借助測量尺寸定標[7]。定標就是確定圖像中的一定數(shù)量像素與實際尺寸的比例?;蛘咴谂臄z圖像時,拍攝進目標旁邊的已知實際尺寸且規(guī)則物件,比如一枚硬幣。經(jīng)過透視變換等圖像處理后的零部件,統(tǒng)計出測量目標在圖像中的像素數(shù),乘以定標比例,即得出零部件圖像測量目標的實際尺寸。本研究采用在檢測區(qū)域四角布置標定靶點的方式對設備進行定標。
尺寸測量[8]相對形狀測量比較簡單。邊長、周長、面積等都是基于像素點累計的統(tǒng)計。任意方向斜線的像素點數(shù)由目標在水平方向上的像素數(shù)和豎直方向上的像素數(shù)運用勾股定理求出,故而邊緣之間的距離定標后即為所求元器件的尺寸。類似,周長、面積等都是以像素點為單位統(tǒng)計或計算像素點數(shù),周長就是輪廓點集合的個數(shù)(單位為1像素),面積就是輪廓所圍的所有的像素點數(shù)。統(tǒng)計像素得出的周長、面積等還不是物體真實的周長、面積等,乘以定標比例,就是物體的真實周長、面積。
圖11 零部件上圓孔尺寸測量
形狀測量參數(shù)的計算,簡單的有圓形度和周徑比。圓形度計算公式采用的是:e=(4π*面積)/(周長*周長),周徑比的周即周長,徑是指上面找到的輪廓最小外接矩形的長的一條邊。
還可以用圖像的幾何矩來計算圖像中目標的形狀參數(shù),圖像矩是描述圖像特征的算子,其中零階矩和一階矩計算形狀的質(zhì)心,二階矩計算形狀的方向。
若二維圖像的灰度用V(i,j)表示,零階矩代表圖像中像素點灰度的總和,表示為:
一階矩代表圖像的灰度中心,x軸和y軸分別表示為:
然后形狀的質(zhì)心坐標為:
這種基于輪廓計算物體一個連通域的質(zhì)心的方法,即使有外部噪聲干擾的情況下,計算出的質(zhì)心也不會有大的偏離,具有對噪聲不敏感的優(yōu)點。
為了驗證本研究的算法,進行了軌道車輛零部件的實驗工作,實驗選取軌道車輛上常用的零部件進行測試,選取3種各10個零部件,總計30幅圖像,共910個形位特征作為檢測對象。檢測環(huán)境為自然光照的車間現(xiàn)場,無陽光直射。如圖12所示。
圖12 實驗驗證對象圖
檢測系統(tǒng)選用18M像素高清工業(yè)相機,采用LED冷光源補充照明燈,每組零部件(3種零部件的各一個為一組)采用重新部署的方式。實驗結(jié)果如表1所示。
表1 實驗結(jié)果統(tǒng)計
對檢測結(jié)果進行分析,本方法的檢測率大于99.4%,檢測精度小于等于0.8 mm,該精度雖然不能用于對零部件進行加工質(zhì)量檢測,但可滿足入庫檢驗檢測、零部件篩選、零部件數(shù)字化存儲等多種應用模式。
軌道車輛的零部件,涉及到安裝的形位尺寸較多,較容易出現(xiàn)尺寸形狀錯誤,傳統(tǒng)的檢驗用時較長且容易出錯,檢驗效率較低。本文采用基于機器視覺的非接觸式檢測方式,采用便攜式的部署方式,對軌道車輛的幾種典型零部件進行了深入研究,給出軌道車輛零部件形位尺寸視覺檢測完整的技術解決方案和實現(xiàn),并對其中關鍵的算法步驟給予重點闡述、對比與驗證,尤其具有一定的實用性,通過感興趣區(qū)域分割、透視變換、二值化、形位測量等步驟,對零部件形位尺寸檢測具有較高的檢測率和檢測精度,在零部件形位尺寸入庫檢驗檢測的應用場景下達到了較好的效果。
由于軌道車輛零部件種類繁多,情況多樣,因此本文的研究只是針對其中較為普遍的特征進行檢測,后續(xù)研究應該集中在典型的矩形、三角形、線特征等特征上,以增加本方法的拓展性。