黃春霞
(廈門理工學院 光電與通信工程學院,福建 廈門 361024)
邊緣是圖像最基本的特征之一,測量系統中的參數測量是通過處理被測物體圖像的邊緣而獲得物體的幾何參數的過程,被測零件的邊緣定位精度直接影響最終的測量結果。因此,邊緣檢測技術是參數測量的基礎和關鍵。邊緣檢測技術從接觸式發展到非接觸式測量。接觸式測量主要利用一些機械量儀,直接接觸工件邊緣表面進行檢測;而非接觸式測量主要利用光學測量儀,進行掃描或者投影工件邊緣進行檢測,后者具有無損傷、精度高、檢測速度快等優點,因此應用越來越廣泛。非接觸式邊緣檢測技術常見的有投影成像檢測法、激光反射檢測法、激光遮斷檢測法[1-4]。
對于要檢測工件徑向距離的場景,當工件邊緣不平整時,用激光反射檢測法誤差會比較大,而用激光遮斷檢測法視場范圍又太小,綜合考慮,采用電荷耦合器件(CCD)投影成像檢測法效果會好的多,該方法適用于超薄工件的邊緣檢測,在工業中應用廣泛。其核心檢測部件是CCD圖像采集傳感器,配以光源進行工作,光源于CCD傳感器上方安裝,被測工件放在光路中間,工件遮擋光路的部分會在CCD成像單元上形成陰影。投影成像檢測法不能直接獲取工件邊緣點的坐標,而且要對采集的圖像配以一定的圖像處理算法進行處理,以此找到工件邊緣點的像素坐標。而CCD器件又分有面陣CCD和線陣CCD兩種,因此投影成像檢測法分別對應面陣CCD投影成像檢測法和線陣CCD投影成像檢測法。
面陣CCD投影成像檢測法,CCD傳感器采集的是一副二維的面陣圖像。目前二維圖像像素級邊緣檢測算法常用的有Roberts,Sobel,Canny,LOG算子等,這些算子的形式簡單,易于實現且速度快,但定位精度差,對噪聲敏感。由于面陣CCD投影成像檢測法對被測對象直接成像,無需掃描控制電路、驅動機構等,設備相對簡單,獲取被測物體二維信息的速度較快,但是單個面陣成像面積較小,適用于測量較小物體。由于生產技術的制約,單個面陣CCD的面積很難達到一般工業測量對視場的需求[5-8]。
線陣CCD投影成像檢測法,CCD傳感器采集的是一維圖像,一幀圖像處理的結果是一個邊緣點的坐標,因此為了獲取工件整周邊緣的信息,CCD線陣投影成像檢測法必須配合掃描運動,這對圖像處理有實時性的要求。這種采用線陣CCD作為傳感器再配合執行機構帶動工件旋轉以掃描檢測工件的邊緣,在針對大視場,實時性,高精度測量的場合尤其常見,比如在光刻機中硅片傳輸分系統里為了完成硅片預對準對硅片邊緣的檢測。本文提出基于線陣CCD圖像邊緣檢測方法,圖像采集配合旋轉軸掃描運動,對工件邊緣整周進行圖像采集。針對線陣CCD采集工件邊緣的每幀圖像,主要從圖像平滑濾波、基于梯度算子邊緣粗定位,擬合區間搜索、最小二乘直線擬合邊緣精確定位幾個方面對圖像邊緣檢測技術進行研究,結合圖像ID對應旋轉臺角度位置精確定位出工件邊緣點極坐標位置,為工件后續特征識別提供計算數據。算法運用硅片預對準臺中的硅片邊緣線陣CCD采集的圖像進行驗證,結果表明,該方法檢測精度達到亞像素級別,處理效率高,可適用于大視場,實時性,高精度測量的場合[9-15]。
待測工件邊緣的上下方分別固定放置點光源和CCD傳感器,CCD傳感器一維列陣傳感器方向朝向工件旋轉中心安裝,目的是為了測量工件的徑向距離。常見的如圖1所示的這種透射式光路,點光源發出的散射光束一部分被工件遮擋,一部分直接照射在CCD傳感器上成像,CCD傳感器上的光敏單元能夠感應光的強弱,從而獲得電壓信號,再通過模數轉換獲得數字圖像信號[16]。工件在旋轉臺帶動下旋轉,圖像采集配合旋轉臺掃描運動,通過邊緣檢測可以獲取工件整周邊緣點坐標位置,從而計算工件特征信息(如形心位置等)。具體采樣原理是,根據采樣頻率,運動驅動控制卡對旋轉軸編碼器計數,到位后,向基于DSP的圖像處理卡發出觸發信號,圖像處理卡向基于FPGA的圖像采集卡下發控制指令,后者通過CAMERALINK協議與CCD傳感器通訊,來接收CCD圖像數據,并且負責圖像數據的平滑濾波和梯度值計算,粗定位出邊緣位置,然后把處理后的結果,即粗定位的邊緣位置坐標,以及截取粗定位的邊緣點附近段數據上傳給圖像處理卡(DSP),DSP接著進行下一步擬合區間搜索和最小二乘擬合精確定位出邊緣位置。旋轉臺旋轉一周后,DSP獲得工件整周邊緣點的坐標位置,把這些坐標信息上傳給上位機,上位機再進行如工件形心等特征識別計算。通過圖像采集卡FPGA的前期處理,可以大大減少其與圖像處理卡DSP之間的通訊數據量,FPGA和DSP這種分工處理模式發揮了各自處理芯片的優勢,大大提高了運算處理效率。測量系統如圖1所示。[17]

圖1 測量系統
該方法結合了粗定位和參數擬合兩大步,具體流程是首先對圖像進行濾波,然后根據圖像在邊緣點上有灰度躍變的特點,計算灰度梯度算子,搜索出梯度極大值或者首次較大值以粗略確定邊緣位置,粗定位精度是像素級的;由于CCD圖像信號在邊緣是漸變過程,所以在粗位置兩端左右向外擴展一小段,對該段區域進行最小二乘直線擬合,從而獲取亞像素級的邊緣點坐標位置。線陣CCD圖像邊緣檢測算法流程如圖2所示[18-20]。

圖2 線陣CCD圖像邊緣檢測算法流程
在邊緣檢測中往往是是先通過對原始圖像的灰度值求取一階導數,以此方法檢測出邊緣點的存在,再使用二階導數過零點定位出邊緣的具體位置。由于在導數的應用中,結果對噪聲很敏感,所以必須首先使用一個濾波器來減少噪聲對邊緣檢測性能的影響。圖像平滑的主要作用就是為了要降低噪聲對檢測結果的影響。
圖像平滑濾波的方法有多種,如中值濾波是圖像平滑的方法之一,其通常是以某像素點為中心作為一個窗口,把附近區域里的像素的灰度值根據特定的順序如從大到小排列,在窗口中間的像素的灰度值是濾波后的值。決定中值濾波效果好壞的是計算機中使用到的像素的數量和附近區域的范圍。它是一種非線性濾波器,有其自身的相對于其他濾波器的優越性:首先它能夠有效的抑制噪聲和脈沖的干擾并且能夠保持圖像的邊緣,它的不足之處在于其對高斯噪聲的抑制效果并不是很有效。
而高斯濾波器是屬于一種線性平滑濾波器,它對于消除正態分布的噪聲效果非常顯著,它是通過高斯函數的形狀來選擇權值的,不管是在空間域上還是在頻率域上都是非常有應用價值的低通濾波器。高斯濾波器用像素相鄰域的加權平均值來代替該點的像素值,而每一領域像素點的權值是隨該點距中心點的距離單調增減的,這避免了平滑運算造成的圖像失真。高斯函數的傅里葉變換頻譜是單瓣的,這意味著平滑圖像不會被不需要的高頻信號(噪聲)所污染,同時保留了大部分所需的信號(如邊緣)[21]。通過比較不用算法的優劣,本文選用高斯濾波器對圖像進行平滑濾波。
關于高斯濾波器的模板選擇,可用楊輝三角形的第n行作為高斯濾波器的一個具有n點的一維逼近權值,綜合考慮計算量和濾波效果,這里n取為經驗值5,楊輝三角形的第5行是[1 4 6 4 1],用該行代表的權值作為模板對圖像進行高斯濾波。圖3是一幀線陣CCD原始圖像灰度分布圖,圖4是經過高斯平滑濾波后的線陣CCD圖像灰度分布圖,對比濾波前后的一維灰度分布,濾波后的圖像被平滑并且有效保護了過渡區域。

圖3 一幀線陣CCD原始圖像灰度分布圖

圖4 濾波后的線陣CCD圖像灰度分布圖
圖像的邊緣是灰度值梯度較大或極大的地方,是圖像的最基本特征,對于數字圖像來說,可以用一階差分代替一階微分。針對線陣CCD測量系統,在工件邊緣區域灰度對比度變化明顯,若工件表面不透光,則邊緣位置灰度值梯度具有極大值;若工件表面會透光,則邊緣位置灰度值梯度具有較大值,此時可設定一個閾值,閾值可根據工件表面透光情況來設定,搜索第一個梯度大于該閾值的位置即為邊緣位置。基于梯度算子搜索得到的邊緣位置只能達到像素級精度,所以是粗定位。
數字圖像經過平滑濾波后的一維圖像f(i),i=1,2,...[i表示像素位置,f(i)表示灰度值],梯度算子公式是:
G(i)=abs(f(i-1)-f(i))
(1)
G(i)為灰度圖像的灰度梯度值,對灰度梯度值遍歷找到極大值點,或者大于設定閾值GTH的第一個點,其對應的像素位置i即為邊緣粗定位坐標。
理想的邊緣信號是一個階躍函數,如圖5所示。而在實際采集中,由于存在像差和衍射效應,CCD采集到的實際邊緣信號是一個逐漸增大的漸變信號[4],其邊緣區域灰度變化如圖6所示。

圖5 理想邊緣信號

圖6 邊緣區域灰度變化示意圖
為了獲得邊緣精確位置,需要對粗定位的邊緣點附近段數據進行直線擬合,所以先要搜索擬合區域。由于通過求取灰度梯度獲得的初始邊緣位置由該點及相鄰兩點的灰度值決定,在隨機噪聲的影響下,結果可能不太穩定。為了得到穩定的邊緣,采用基于最小二乘法的直線擬合方法能夠有效地抑制隨機噪聲的影響,這樣處理之后可以使得邊緣檢測的結果更加穩定。
以粗邊緣點為中心,左右各取12個點的像素數據為搜索區域,該區域設為[a,b],12即為以粗邊緣點為中心的搜索半徑r的值。a,b間的區域只有中間部分即[nc,nd]段的像素數據用于直線擬合,該擬合段根據灰度上下門限值進行搜索確定。
線陣CCD灰度變化范圍為0~255,可以選取[a,b]間最右側n個像素點的均值設定為灰度的上限值為GH,選取[a,b]間最左側n個像素點的均值設定為灰度的下限值為GL(n一般要小于等于搜索半徑r的一半,上文r取12,故n取為5較為合適)。從a點向b點搜索,找到灰度大于GL的第一個點為nc;然后從b點向a點搜索,找到灰度小于GH的第一個點為nd;nc和nd之間的那部分區域作為需要直線擬合的區域。
通過上一步得到了擬合區域之后,采用最小二乘直線擬合來精確定位邊緣位置。
設用于擬合邊緣信號的直線方程為:
G(n)=k*n+l
(2)
邊緣圖像的實測灰度值是g(n),由最小二乘原理求參數k和l,使得:
(3)
的值最小,這樣就可以保證每個點離直線的距離絕對值是最小的。將M分別對k和l求偏微分,并令其偏微分為0,得:
(4)
(5)
由式(4)和(5)得:
(6)
(7)

Ak+Bl=C
(8)
Bk+El=D
(9)
由式(8)和(9)解得參數:
(10)
(11)
設定一個位于GH和GL之間的灰度值Gref,Gref可以通過實際的工況確定,也可以利用下式獲得
Gref=(GH+GL)/2
(12)
這樣根據式(2)可以求得位于nc,nd的邊緣點ns
ns=(Gref-l)/k
(13)
ns即為精確邊緣位置。
實驗裝置是光刻機硅片傳輸分系統中硅片預對準臺CCD測量系統,如圖7所示。CCD傳感器安裝在硅片下方,已經封裝在圖中黑色罩殼里,硅片上方是點光源,硅片由機械手從片庫的片盒中取出,放置在預對準旋轉臺的真空吸盤上,由于片盒存有間隙,放置在預對準旋轉臺上的硅片存在2 mm范圍的隨機偏心和隨機缺口方向。在半導體芯片制作過程中硅片需要多重曝光,光刻機的視野很小,在將硅片傳送到光刻機工件臺上進行曝光前,硅片必須進行納米級對準。從微米級的偏差到納米級的對準,一次定位難以做到,所以中間先需要經過硅片預對準臺進行微米級的預對準,即預對準臺要把硅片偏心調整在微米級范圍內,缺口偏向調整在微弧度范圍內。為了有效識別硅片形心和缺口位置特征,需要CCD傳感器配合旋轉臺掃描運動采集硅片邊緣數據,定位出硅片整周邊緣點坐標,經過CCD坐標系到旋轉臺坐標系的坐標變換,從而獲取硅片邊緣整周徑向極坐標值,再應用預對準算法算出偏心和缺口坐標位置,從而指導執行機構做相應的硅片偏心、方向調整。線陣CCD邊緣檢測定位精度對預對準后續算法的執行有很大的影響。為了驗證本文所提CCD邊緣檢測方法的重復性定位精度和效率,把它們應用在硅片預對準臺硅片邊緣線陣CCD測量系統中。

圖7 硅片預對準臺CCD測量系統
所謂的重復性定位精度實驗,就是在同一位置采集多組圖像數據,然后應用算法分別計算邊緣點坐標,要保證定位坐標的重復性。判斷準則是應用俄國數學家P.L.Chebyshtv的3-sigma法則,假設有n個離散的數值:a[0],a[1],…,a[n-1],樣本均值m為,
(14)
(15)
(16)
3-sigma法則又叫經驗法則,最常在統計中用于預測最后結果。在得到數據的標準差,并在可以收集確切的數據之前,該規則可作為一個對即將到來數據結果的粗略估計。在統計學中,經驗法則是在正態分布中,預測距平均值小于一個標準差,即在平均值距離[-1σ,+1σ]范圍之間的數據占67%;預測距平均值小于二個標準差,即在平均值距離[-2σ,+2σ]范圍之間的數據占95.45%;預測距平均值小于3個標準差,即在平均值距離[-3σ,+3σ]范圍之間的數據占99.76%。在工業測量中,常對超過25組的測量數據計算3sigma值來確定其測量的重復性定位精度。
3σ理論應用到本系統中,只要在同一個邊緣位置,采集n(n≥25)組線陣CCD圖像,對每幀圖像應用本文所提的邊緣檢測算法,即獲得n個邊緣點在CCD坐標系下的位置坐標(以像素為單位),再計算這些位置坐標的3σ值,只需3σ值達到亞像素精度,即表示該算法至少能達到99.73%的合格率,可視作算法達到本文所提的亞像素精度要求。
驗證算法圖像的獲取,是在硅片同一邊緣位置采集1 000次共獲得1 000幅線陣CCD一維圖像,每幀圖像包含1 004個像素,每個像素對應一個灰度值,所以每幀圖像有1 004個代表灰度值的數據。為了顯示方便,把同一位置的1 000幅一維圖像灰度數據上傳上位機,上位機開辟一個高1 000,寬1 004的無符號整型內存空間,即unsigned char[1 000,1 004]來存圖像灰度數據,把這些數據保存在一個圖像文件中,打開后就得到一幅像素大小為高1 000,寬1 004的二維圖像,實為同一位置采集的一維圖像數據從上到下拼接在一起組合而成的。分別在硅片3個不同位置這樣采集拼接三次,則獲得如圖8所示的3幅二維圖像,其中圖8(c)還改變了CCD的焦距,所以圖像表現得更加模糊。

圖8 實驗采集CCD拼接二維灰度圖像
針對這3個位置,分別采用兩種邊緣檢測算法進行指標結果比較,一種是直接對拼接的二維圖像采用圖像增強、平滑濾波、應用SOBEL算子的二維邊緣檢測算法[22]。圖9是針對CCD拼接二維圖8(a)應用該算法步驟得到的邊緣檢測過程結果圖,最后獲得的1 000個邊緣點坐標,畫出其折線如圖10所示,再對這1 000個坐標位置計算3σ值,結果為3.436像素,如表1第一行所示;而針對CCD拼接二維圖8(b)、圖8(c)計算邊緣坐標的3σ值分別是3.579和6.364像素。可以看出用該二維圖像邊緣檢測算法,算法重復性定位精度是像素級別,定位精度對圖像清晰度十分敏感,當圖像模糊時,該算法的定位精度會大大下降。這里FPGA和DSP主要作用是做圖像采集控制和數據傳輸,并不做任何數據處理,因此這兩種芯片的優勢沒有發揮出來;DSP把所有數據上傳上位機,上位機把所有圖像數據拼接成二維圖像后再進行邊緣檢測,數據通訊量較大,需要占用上位機系統內存較大空間,不過后臺時鐘顯示圖像處理耗費時間為116 μs(針對1 004*1 000圖像大小),算法效率較高。

圖9 針對圖8(a)基于Sobel算子邊緣檢測過程結果

圖10 針對圖8(a)二維圖像邊緣檢測得邊緣坐標點

表1 兩種邊緣檢測算法重復性定位精度結果比較
另一種采用本文所提的算法,各幅圖像的每行分別應用本文所提的一維圖像邊緣檢測算法定位出邊緣坐標位置,獲得的1 000個邊緣點坐標,計算3σ值。如圖11是針對CCD拼接二維圖8(a)里1 000幅一維圖像數據分別應用本文所提算法得到的邊緣檢測結果,獲得的1 000個邊緣點坐標,用它們畫出的折線圖;對這1 000個坐標位置計算3σ值,為0.339像素,如表1第一行所示;而針對CCD拼接二維圖8(b)、圖8(c)中的一維圖像數據計算邊緣坐標的3σ值分別是0.365和0.491像素。可以看出用本文所提一維圖像邊緣檢測算法,算法重復性定位精度是亞像素級別,定位精度對圖像清晰度不敏感,當圖像模糊時,算法的定位精度雖然有所下降,但是也能達到亞像素級別。另外該算法在主頻200 M的DSP板上運行,編譯環境為CCS2.2,設置-02優化選項,使用定時器獲取的運行時間小于17 000 CPU周期(約85 μs),需要耗費的時間是微秒級。根據采樣定理,圖像處理時間只要小于每次圖像采集間隔時間的一半,即滿足實時性需求。例如對于硅片預對準臺,旋轉臺旋轉1周用時1 s,硅片邊緣需要采集2 000點,每點采樣周期約是30 ms,遠遠大于每幀圖像處理時間,因此滿足數據采集實時性要求。另外,DSP傳送給上位機直接就是邊緣點坐標位置,上位機無需再做圖像處理。綜上所述,對比兩種邊緣檢測算法的結果,可以看出本文所提算法重復性定位精度更高,充分利用了各種處理芯片的運算優勢,運算速度快,數據通訊量小,可適用于實時性要求高的應用場合。

圖11 針對圖8(a)一維圖像邊緣檢測得邊緣坐標點
本文提出基于線陣CCD圖像邊緣檢測方法,圖像采集配合旋轉軸掃描運動,對工件邊緣整周進行圖像采集,針對每幀圖像運用圖像平滑濾波、基于梯度算子邊緣粗定位、擬合區域搜索、最小二乘直線擬合邊緣精定位幾個步驟,結合圖像ID對應旋轉臺角度位置從而定位出工件邊緣點極坐標位置,為工件后續特征識別提供計算數據。實驗表明,該方法定位精度達到亞像素級別,采集的圖像質量對方法定位精度有一定影響,實際工作中,CCD焦距最好要調節好,光強調整適中使得邊緣位置明暗變化明顯;另外方法計算效率高,計算時間小于90 μs,適用于大視場,實時性,高精度測量的場合。