陶 遷, 周志峰, 吳明暉, 王立瑞
(上海工程技術(shù)大學(xué) 機(jī)械與汽車工程學(xué)院,上海 201620)
工業(yè)生產(chǎn)中常常需要對反射表面的加工質(zhì)量進(jìn)行檢測,由于反射表面的反射特性,缺陷檢測和表面輪廓測量仍然是具有挑戰(zhàn)性的問題。三維接觸式測量是一種高分辨率的測量方法,可用于反射表面的缺陷檢測,但其檢測時間長,且可能會損傷被檢測表面。非接觸式光學(xué)檢測方式依賴于漫反射,如果沒有昂貴專用的設(shè)備或消除反射特性帶來的影響,不能直接應(yīng)用于反射表面檢測[1]。因此,目前反射表面的缺陷檢測大多依賴于人工檢測,工人從不同角度的目測和觸摸來判斷是否存在缺陷,這種檢測方式效率低、漏檢率高,且工作強(qiáng)度大。
為了改進(jìn)反射表面的缺陷檢測,國外研究人員提出并應(yīng)用了相位測量偏折術(shù)[2]。作為一種測量自由鏡面形狀的新技術(shù),相位測量偏折術(shù)可以為鏡面表面形貌分析提供連續(xù)的數(shù)據(jù),且具有較大的動態(tài)范圍,可以進(jìn)行全場測量。相位測量偏折術(shù)對鏡面表面形狀變化十分敏感,并且在測量相對變形時對系統(tǒng)標(biāo)定誤差的容忍度更高,因此將相位測量偏折術(shù)應(yīng)用于鏡面測量和缺陷檢測越來越受到人們的重視。袁婷等人[3]使用相位測量偏折術(shù)對一個凹球面鏡進(jìn)行三維面形測量;張蓮濤等人[4]對標(biāo)準(zhǔn)平面鏡和汽車后視鏡進(jìn)行檢測;張于北等人[5]使用四步相移法求取相位,利用相位差快速檢測出反光噴漆光滑表面的缺陷;姜碩等人[6]采用四步相移法結(jié)合格雷碼編碼來提取相位,提出消除相位誤差的方法,并在機(jī)身噴涂樣件表面對多種類型缺陷進(jìn)行檢測。德國Micro-Epsilon公司利用該技術(shù)開發(fā)了reflectCONTROL汽車噴漆表面缺陷檢測系統(tǒng),單個位置檢測用時少于1 s,可以檢測出最小缺陷尺寸為直徑0.3 mm[7]。
本文提出了一種基于相位測量偏折術(shù)的反射表面缺陷檢測方法,利用計算機(jī)生成格雷碼和多步相移法相結(jié)合的編碼結(jié)構(gòu)光,通過LCD屏幕投射到被測表面,單目相機(jī)采集反射圖案,進(jìn)行解碼和相位展開,再使用Canny算子提取出表面缺陷,最后搭建實驗裝置和編寫軟件,以汽車漆膜樣件為實驗對象,驗證本文方法的有效性。
相位測量偏折術(shù)的基本原理是反射定律,如圖1所示,被測表面上的缺陷會使光線發(fā)生偏轉(zhuǎn),缺陷位置的切線相對于表面的角度變化α,會使反射光線的角度變化2α和反射的條紋相位變化φ,因此相位測量偏折術(shù)對表面的梯度變化非常敏感,而且實際檢測區(qū)域的大小取決于物體的幾何形狀。
圖1 缺陷檢測系統(tǒng)原理圖
缺陷檢測系統(tǒng)裝置的主要設(shè)備包括相機(jī)(單目或多目)、LCD屏幕、被測工件和計算機(jī)。與傳統(tǒng)的結(jié)構(gòu)光投影三維重建不同,投影結(jié)構(gòu)光的設(shè)備由投影儀變?yōu)長CD屏幕,將計算機(jī)生成的結(jié)構(gòu)光條紋圖案依次顯示在LCD屏幕上,每張條紋圖案在被測表面上的反射都由相機(jī)來捕捉,通過對相機(jī)捕獲圖像的解碼來發(fā)現(xiàn)缺陷。如果要對反射表面進(jìn)行準(zhǔn)確的重建,需要確定系統(tǒng)參數(shù),比如相機(jī)到被測表面之間的距離、LCD屏幕與被測表面之間的距離等。此外,使用單個相機(jī)會存在高度和梯度的模糊問題,為了解決這個問題,需要引入額外相機(jī)、額外的LCD屏幕或距離傳感器[8]。本文使用相位測量偏折術(shù)的系統(tǒng)設(shè)置,目的是檢測出反射表面上局部梯度突變的位置,將所有疑似缺陷的部分提取,再從提取的部分中篩選出缺陷。因此,本文使用的方法不涉及表面高度信息,但這不影響缺陷的檢測,因此不需要這些額外的輔助器件和準(zhǔn)確的系統(tǒng)參數(shù)。
使用相位測量偏折術(shù)對反射表面進(jìn)行缺陷檢測,首先要根據(jù)系統(tǒng)檢測需求生成理想的結(jié)構(gòu)光圖案。該技術(shù)原本使用的是相移條紋,相移條紋的優(yōu)點是在離焦時不改變相位,使用時只需要相機(jī)穩(wěn)定地聚焦在被測表面即可。相位提取技術(shù)包括傅里葉變換法和多步相移法[9]。傅里葉變換法雖然只用單張圖案,但相位信息丟失嚴(yán)重,因此不適合用于缺陷檢測。多步相移法需投影多張相移條紋圖案,獲取的相位信息更加全面,被廣泛采用。多步相移法投影圖案的張數(shù)越多,誤差越小,但依然無法避免相位展開的誤差。本文提出在相位測量偏折術(shù)使用多步相移法的基礎(chǔ)上,額外增加格雷碼圖案構(gòu)成混合系統(tǒng),格雷碼的快速解碼和多步相移法的高精度相結(jié)合,增強(qiáng)相位提取的魯棒性。
格雷碼圖案在結(jié)構(gòu)光三維視覺中應(yīng)用廣泛,由亮條紋和暗條紋組成,暗條紋對應(yīng)格雷碼0,亮條紋對應(yīng)格雷碼1。格雷碼圖案雖然是一種簡單實用的方法,但具有一定的局限性,達(dá)到實際應(yīng)用的空間分辨率常常需要許多格雷碼圖案,n張格雷碼圖案表面最多可以劃分為2n塊區(qū)域。隨著格雷碼圖案張數(shù)的增多,條紋的分辨率越來越精細(xì),更小的條紋寬度通常會獲得更高的精度,但由于涉及測量過程的光學(xué)器件引入的誤差,正確的解碼會變得越來越困難,所以最小條紋寬度的要求在被測表面上相機(jī)觀察到的最小條紋黑白分界明顯。
格雷碼Gn-1Gn……G2G1G0和二進(jìn)制數(shù)Bn-1Bn……B2B1B0可以相互轉(zhuǎn)換,轉(zhuǎn)換公式如下:
a、n位二進(jìn)制數(shù)轉(zhuǎn)為格雷碼
Gn-1=Bn-1
,
(1)
Gi=Bi+1⊕Bi
.
(2)
b、n位格雷碼轉(zhuǎn)為二進(jìn)制數(shù)
Bn-1=Gn-1
,
(3)
Bi=Gi+1⊕Bi
,
(4)
(i=0,1,…,n-2)
.
格雷碼圖案的張數(shù)由圖案的大小和最小的條紋寬度決定,格雷碼圖案張數(shù)的計算如下:
,
(5)
,
(6)
式中,H為圖案高度;W為圖案寬度;m為條紋寬度;NH和NV分別是水平、垂直格雷碼圖案的張數(shù)。H、W、m為2的冪次方。
以H為512像素,W為256像素,m為32像素的格雷碼圖案為例,會生成如圖2(a)所示的5張垂直格雷碼圖案和圖2(b)所示的4張水平格雷碼圖案,可以將LCD屏幕分割為512個區(qū)域。
圖2 格雷碼圖案
對相機(jī)捕捉的格雷碼反射圖案解碼,就是將格雷碼轉(zhuǎn)為二進(jìn)制數(shù),再由二進(jìn)制數(shù)轉(zhuǎn)化為十進(jìn)制數(shù)的過程。格雷碼反射圖案需經(jīng)過二值化處理,亮條紋照射的區(qū)域灰度值設(shè)置為255,暗條紋照射的區(qū)域灰度值設(shè)置為0。按照格雷碼圖案投影順序讀取相機(jī)圖片中反射圖案區(qū)域內(nèi)像素點的灰度值,可獲得格雷碼。
多步相移法條紋圖案是由多張余弦條紋改變相位生成,前后兩張余弦條紋圖之間的相移增量是相同的,增量為2π/N,N為相移步數(shù)。N步相移法中,第n張垂直相移圖案的生成公式為:
,
(7)
式中,f(x,y)為(x,y)像素點處的灰度值;G為最大值灰度值,通常為255;T為條紋周期。
相移圖案一張接一張顯示在LCD屏幕上,每一張圖案投影的反射都被相機(jī)捕捉。捕捉的圖案灰度值強(qiáng)度表達(dá)式為:
,
(8)
(n=1,2,…,N)
式中,In(x,y)為捕捉的圖像中(x,y)像素點處的灰度值;a(x,y)為平均強(qiáng)度;b(x,y)為強(qiáng)度調(diào)制;Φ(x,y)為x或y方向的絕對相位值,可由包裹相位φ(x,y)展開來求取。對多步相移法圖案解碼的目的是求解φ(x,y),其計算公式為:
(9)
常用的多步相移法有三步、四步或更多步,其中四步相移法的應(yīng)用最為普遍[10],本文也采用四步相移法。四步相移法要生成水平、垂直各4張相移條紋圖案,圖案的大小與格雷碼圖案相同,相移條紋的周期T等于m。相鄰兩張圖案之間的相移為π/2,生成的四步相移法條紋圖案如圖3所示。
圖3 四步相移法條紋圖案
由于包裹相位是由四象限反正切函數(shù)求解得出,所以被限制在(-π,π)中。由包裹相位求得絕對相位的過程被稱為相位展開或解包裹。
傳統(tǒng)的相位展開技術(shù)可分為空間相位展開法和時間相位展開法??臻g相位展開法原理是將相鄰兩像素的包裹相位進(jìn)行比較,用后一位的減去前一位得到相位差,如果相位差小于-π,則后一位的包裹相位加上2π;如果相位差大于π,則后一位的包裹相位減去2π,展開結(jié)果一定要保證相位差在[-π,π]范圍內(nèi),相位才能是連續(xù)的,但缺點是誤差會傳播和累積[11]。時間相位展開法需要額外投射一系列不同頻率的條紋圖,條紋頻率隨著時間變化,相機(jī)圖片中的每個像素點可以沿著時間的路徑獨立地進(jìn)行相位展開,而不需要在二維圖像中尋找路徑。完全避免圖像中的噪聲點等對相位展開的影響,也可以避免空域相位展開中的誤差傳播[12],缺點是投影圖案較多,解碼時間較長。
本文方法的相位展開方式與傳統(tǒng)的相位展開方法相比,兼具效率與魯棒性[13],計算公式如下:
Φ(x,y)=φ(x,y)+K(x,y)π
,
(10)
式中,K(x,y)為條紋級數(shù),是由格雷碼圖案解碼獲得的十進(jìn)制數(shù),將所有十進(jìn)制數(shù)中的奇數(shù)加1變?yōu)榕紨?shù)后得來。相位展開的原理如圖4所示。
圖4 相位展開過程原理圖Fig.4 Schematic diagram of phase unwrapping process
在理想情況下,包裹相位φ(x,y)與條紋級數(shù)K(x,y)應(yīng)同步發(fā)生跳變,但實際情況中會出現(xiàn)圖5中Error指出的現(xiàn)象,稱為相位展開過程中的周期錯位現(xiàn)象[14]。這種現(xiàn)象主要是由于表面反射率低、環(huán)境光強(qiáng)較高、相機(jī)沒有聚焦在表面上、相機(jī)和LCD的非線性誤差[15-16]和LCD伽馬偏移效應(yīng)[17]等原因造成的格雷碼解碼誤差。
圖5 相位展開誤差
為了提高格雷碼解碼的準(zhǔn)確度,Daniel Scharsterin[18]提出了一種方法,在投影的格雷碼圖案基礎(chǔ)上,再將前格雷碼圖案取反,投影一組反格雷碼圖案。這種方式雖然可大大增加格雷碼解碼的準(zhǔn)確度,但會使格雷碼圖案數(shù)量翻倍,大大增加檢測時間,而且不能應(yīng)用于類鏡面檢測。本文使用另一種改善條紋解碼的方法,額外增加一種純白色和一張純黑色的圖案,設(shè)在純白色圖案和純黑色圖案投影下(x,y)像素點的灰度值分別為W(x,y)和B(x,y),第n張相機(jī)捕捉的反射圖案里(x,y)像素點的灰度值為Gn(x,y),若Gn(x,y)大于等于W(x,y)與B(x,y)的平均值,則(x,y)像素點為1,反之則為0。這種方法只需要增加兩張圖案,對檢測時間影響較小,但周期錯位現(xiàn)象依然存在,還需要使用周期修正方法。在上述改善方法下,周期錯位現(xiàn)象只會發(fā)生在一個包裹相位周期起始的1至2個像素。根據(jù)空間相位展開原理,一個包裹相位周期的起始可以通過領(lǐng)域分析知曉。如圖6所示,設(shè)包裹周期為(x1,xe),同一個包裹相位周期內(nèi)條紋級數(shù)必須是相同的,取周期內(nèi)數(shù)量最多的條紋級數(shù)作為該周期所有像素的條紋級數(shù)??蓪χ芷趦?nèi)所有條紋級數(shù)求解平均數(shù)后向下取整,結(jié)果即為該周期修正后的條紋級數(shù)K,求解過程如下:
圖6 條紋級數(shù)修正
.
(11)
為了準(zhǔn)確捕捉缺陷,先后求取x方向的絕對相位Φx(x,y)和y方向絕對相位Φy(x,y),可分別生成x方向和y方向的絕對相位圖,如圖7(a)、(b)所示。由于本文使用的是固定焦距的工業(yè)相機(jī),相機(jī)與被測表面的距離固定,投影區(qū)域的大小會受到反射表面的曲率變化影響,因此相機(jī)圖片中會存在投影區(qū)域和非投影區(qū)域。投影區(qū)域可提取連續(xù)相位,屬于低頻信號;非投影區(qū)域為斑點噪聲,屬于高頻信號,如圖7(c)所示;表面缺陷在絕對相位圖中表現(xiàn)為局部梯度畸變,屬于中頻信號,如圖7(d)所示。因此,缺陷檢測的第一步是從絕對相位圖中分割出投影區(qū)域。
圖7 絕對相位圖中的低頻信號與高頻信號
為了有效區(qū)分投影區(qū)域和非投影區(qū)域,引入Canny邊緣檢測算法[19],先對絕對相位圖進(jìn)行高斯核平滑濾波器來降噪,再用一階導(dǎo)數(shù)計算梯度大小和方向,最后用滯后閾值尋找出梯度的局部最大值,得到梯度幅值圖像,如圖8所示。低頻信號和中頻信號被全部過濾,高頻信號被提取,表現(xiàn)為高灰度值。
圖8 原始圖像與梯度幅值圖像
對梯度幅值圖像使用閾值處理可將高灰度值區(qū)域提取出來,再對提取結(jié)果進(jìn)行形態(tài)學(xué)閉運算來填補(bǔ)區(qū)域內(nèi)空洞與縫隙后形成掩膜。最后使用非投影區(qū)域的掩膜對絕對相位圖像做分割,可得到投影區(qū)域。
在投影區(qū)域分割步驟中,使用Canny算子提取高頻信號會把區(qū)域內(nèi)的表面缺陷和區(qū)域外的噪聲同時提取出來,但被提取的表面缺陷往往是不全的。非投影區(qū)域分割完成后,再對投影區(qū)域內(nèi)的圖像(如圖9(a))使用Canny算子提取缺陷,避免了區(qū)域外的高頻信號影響,滯后閾值的低閾值大小要比投影區(qū)域分割步驟中設(shè)定的低很多。投影區(qū)域被Canny算子處理后,區(qū)域內(nèi)缺陷被突顯出來,再對算法處理結(jié)果進(jìn)行閾值分割和連通域分析,可實現(xiàn)缺陷提取,結(jié)果如圖9(b)所示。
圖9 投影區(qū)域中提取缺陷過程
為了驗證本文介紹的檢測方式,搭建實驗系統(tǒng),以圖10(a)所示的汽車漆膜樣件(面積為185 mm×150 mm)為檢測對象。油漆表面上存在顆粒、劃痕、凹坑、掉漆4種缺陷。實驗系統(tǒng)裝置如圖10(b)所示,包括LCD屏幕(分辨率為1 920×1 080,像素尺寸為0.264 mm2,亮度為250 cd/m2)、顯示器支架、工業(yè)相機(jī)(分辨率為4 024×3 036,鏡頭焦距為12 mm)、工業(yè)相機(jī)支架、檢測對象。LCD屏幕中心點距離被測表面約為30 mm,相機(jī)距離被測表面約為300 mm。使用計算機(jī)生成結(jié)構(gòu)光條紋圖案,利用C#編寫程序,全屏幕顯示圖案和控制工業(yè)相機(jī)拍照。
圖10 檢測樣件和實驗裝置
實驗系統(tǒng)搭建需要注意以下幾點:(1)工業(yè)相機(jī)聚焦在樣件表面上;(2)屏幕與表面距離小于相機(jī)后景深;(3)環(huán)境光亮度較低且恒定;(4)被測表面后面的背景必須為非鏡面;(5)檢測時系統(tǒng)裝置應(yīng)保持禁止;(6)工業(yè)相機(jī)設(shè)置為同步采集;(7)結(jié)構(gòu)光圖案投影的間隔時間需保證工業(yè)相機(jī)從觸發(fā)到完成采集,如果時間間隔太短,可能會出現(xiàn)條紋重疊現(xiàn)象,太長會影響檢測效率。
本實驗結(jié)構(gòu)光圖案大小為1 024×1 024,最小條紋寬度為32個像素。將時間間隔設(shè)置為0.3 s,共投影16張格雷碼圖案和8張相移圖案,從開始投影結(jié)構(gòu)光圖案到提取出缺陷,共用時24.4 s。使用Canny算子處理絕對相位圖,分割出投影區(qū)域,滯后閾值的高低閾值分別為40和20;使用Canny算子在投影區(qū)域內(nèi)提取出缺陷,高低閾值分別為12和3。最終可檢測出樣件表面上2處缺陷,其中,最小缺陷為顆粒缺陷,直徑約為0.1 mm。整個檢測流程如圖11所示。
圖11 缺陷檢測流程圖
為了證明本文方法對不同材質(zhì)反射表面檢測缺陷的有效性,對表面上的異物附著、劃痕、凹坑和凸起等常見缺陷進(jìn)行檢測,表面缺陷和檢測結(jié)果的對比如圖12所示。圖12(a)、(b)為金屬表面,表面上存在劃痕、凹坑和變形;圖12(c)、(d)為油漆表面的凹坑缺陷,本文方法也準(zhǔn)確地將把該缺陷檢測出來。
圖12 其他檢測案例
本文提出了一種基于相位測量偏折術(shù)的反射表面缺陷檢測方法。在相位測量偏折術(shù)原理和系統(tǒng)組成的基礎(chǔ)上,采用格雷碼結(jié)合多步相移的結(jié)構(gòu)光,提高相位求解的準(zhǔn)確性。針對周期錯位現(xiàn)象提出有效的校正方法。獲取準(zhǔn)確的絕對誤差后,生成絕對相位圖像,分割投影區(qū)域后使用Canny算子提取缺陷。對汽車油漆表面、不銹鋼表面等常見反射表面進(jìn)行檢測,實驗結(jié)果表明:本文方法的檢測精度為0.1 mm?;緷M足對反射表面多種缺陷檢測的需求。