林磊,臧鐵鋼
(南京航空航天大學(xué) 機(jī)電學(xué)院,江蘇 南京 210016)
隨著我國(guó)近視人口不斷增加,眼鏡產(chǎn)業(yè)有著良好的市場(chǎng)前景。我國(guó)鏡片制造行業(yè)的生產(chǎn)自動(dòng)化水平已有一定提高,但是鏡片的質(zhì)量檢驗(yàn)仍停留在人工檢驗(yàn)階段[1]。人工檢驗(yàn)采用目視法檢測(cè)鏡片,其最大問(wèn)題在于產(chǎn)品的判別標(biāo)準(zhǔn)完全取決于檢驗(yàn)人員的經(jīng)驗(yàn)和水平,受人為因素和個(gè)體差異的影響,誤檢率相對(duì)較高。此外,人工檢驗(yàn)還存在人力成本高,檢測(cè)效率低,人眼易疲勞等問(wèn)題。因此,樹脂鏡片的自動(dòng)化檢測(cè)已成為眼鏡片制造行業(yè)技術(shù)發(fā)展的瓶頸。
國(guó)外在20世紀(jì)末已開始研究基于機(jī)器視覺(jué)的光學(xué)元件缺陷檢測(cè)方法,國(guó)內(nèi)對(duì)樹脂鏡片的表面疵病檢測(cè)也有一些研究。文獻(xiàn)[2]基于顯微散射暗場(chǎng)成像,對(duì)不同大小和形狀的球面鏡片缺陷進(jìn)行了檢測(cè)研究;文獻(xiàn)[3]采用暗場(chǎng)散射成像法采集光學(xué)元件表面疵病的圖像,設(shè)計(jì)了基于圖像處理的表面元件檢測(cè)系統(tǒng);文獻(xiàn)[4]利用光刻投影原理設(shè)計(jì)了一套基于亮場(chǎng)照明的顯微成像表面疵病檢測(cè)系統(tǒng);文獻(xiàn)[5]對(duì)鏡片中存在的疵病提取特征,研究了基于直線擬合和圓度判斷的分類方法;文獻(xiàn)[6]運(yùn)用改進(jìn)型歸一法對(duì)疵病目標(biāo)進(jìn)行自動(dòng)計(jì)數(shù),為自動(dòng)化分級(jí)系統(tǒng)的計(jì)數(shù)模塊提供了數(shù)據(jù)支持;文獻(xiàn)[7]基于機(jī)器視覺(jué)和Halcon圖像處理軟件完成了對(duì)鏡片圖像的采集和檢測(cè)軟件設(shè)計(jì)。但是鏡片疵病檢測(cè)研究應(yīng)用到工業(yè)實(shí)際還存在檢測(cè)效率不高、準(zhǔn)確率不達(dá)標(biāo)的問(wèn)題。其原因是鏡片中疵病明暗不一、形態(tài)大小不同,高質(zhì)量圖片的處理效率低。因而本文在基于邊緣算子的劃痕檢測(cè)[8]研究基礎(chǔ)上,主要研究如何提高鏡片檢測(cè)的圖像處理效率和識(shí)別疵病邊界的準(zhǔn)確性。
常見光學(xué)鏡片的表面疵病包括點(diǎn)雜質(zhì)、劃痕、毛絮、氣泡、凹坑和破邊[9]。本文在Canny邊緣檢測(cè)算法的基礎(chǔ)上,優(yōu)化機(jī)器視覺(jué)檢測(cè)算法,采用局部窗口最佳閾值法提取疵病邊緣,對(duì)不同明暗和形態(tài)的目標(biāo)疵病實(shí)現(xiàn)準(zhǔn)確分割。
鏡片疵病視覺(jué)檢測(cè)總體方案分為硬件圖像采集模塊和軟件算法模塊,如圖1所示。
圖1 疵病檢測(cè)方案設(shè)計(jì)
硬件裝置指圖像采集系統(tǒng),包括樹脂鏡片的照明系統(tǒng)、成像系統(tǒng)和輔助裝置,采集鏡片圖像,進(jìn)行圖像處理;軟件系統(tǒng)以圖像處理算法為核心,包含了圖像預(yù)處理、疵病邊緣檢測(cè)算法等。
本文研究對(duì)象為直徑75 mm的常用樹脂鏡片,基于暗場(chǎng)成像原理,采用環(huán)形光源0°角照射鏡片邊緣,如圖2所示。入射光線因疵病發(fā)生散射被成像系統(tǒng)接收,獲得暗背景下的明亮疵病圖像。
圖2 暗場(chǎng)成像
鏡片圖像如圖3所示,呈現(xiàn)黑暗的背景和明亮的疵病。對(duì)圖像提取圓形待檢測(cè)區(qū)域,選擇濾波器進(jìn)行混合濾波處理;提出一種基于局部窗口最佳閾值的改進(jìn)Canny邊緣檢測(cè)算法,準(zhǔn)確分離疵病邊界。
圖3 鏡片圖像
感興趣區(qū)域(region of interest, ROI)是圖像處理中選擇的一個(gè)圖像區(qū)域,這個(gè)區(qū)域是圖像處理和分析關(guān)注的重點(diǎn)。鏡片邊緣因粗糙不平發(fā)生光的散射,其在圖像中呈現(xiàn)一圈明顯的亮圈,利用霍夫(Hough)圓變換檢測(cè)鏡片輪廓,提取感興趣區(qū)域。本文依據(jù)隨機(jī)Hough變換算法[10],設(shè)計(jì)一種改進(jìn)的快速Hough圓檢測(cè)算法。具體思路如下:
1) 對(duì)每個(gè)像素行掃描,若該像素值大于灰度閾值T0,則存入圓邊界點(diǎn)存儲(chǔ)隊(duì)列D。
2) 從D中隨機(jī)取3個(gè)邊界點(diǎn),計(jì)算該邊界點(diǎn)的候選圓心和半徑,對(duì)圓心進(jìn)行投票。
3) 對(duì)D中剩下點(diǎn)集重復(fù)2)過(guò)程,得到所有邊界點(diǎn)計(jì)算的候選圓心。
4) 根據(jù)候選圓心投票結(jié)果的能量圖,對(duì)同一連通區(qū)域的候選圓心區(qū)域進(jìn)行非極大值抑制,得到最有可能圓心位置。若該圓心投票結(jié)果大于閾值Tc時(shí), 認(rèn)為該圓為真圓,否則舍棄。
Tc=kcπRc
(1)
式中:Rc為候選圓半徑;kc為真圓判別系數(shù)。
圖像中的亮點(diǎn)多為圓邊界,采用灰度閾值比較,將邊界點(diǎn)存入隊(duì)列D中,如圖4所示,間隔選取D中3個(gè)邊界點(diǎn),圓上非共線的3點(diǎn)計(jì)算圓心,如圖5所示。每3個(gè)邊界點(diǎn)確定1個(gè)候選圓參數(shù),對(duì)所有邊界點(diǎn)計(jì)算候選圓參數(shù),并對(duì)候選圓心作證據(jù)積累。
圖4 邊界點(diǎn)存取形式
圖5 計(jì)算候選圓心
由于鏡片圖像中圓的數(shù)量單一,整體圖形簡(jiǎn)單,可以在候選圓參數(shù)投票過(guò)程中忽略候選圓半徑,只對(duì)候選圓心作證據(jù)積累,得到投票能量圖。投票最高處即可能性最大的圓心位置,計(jì)算其投票閾值Tc。若投票數(shù)大于閾值則為真圓。為了便于展示,將投票結(jié)果歸一化到[0,255]區(qū)間,對(duì)應(yīng)的候選圓心投票能量圖局部放大結(jié)果如圖6所示。
圖6 候選圓心投票能量局部圖
當(dāng)圖像中混合有不同類型的噪聲時(shí),單一的濾波器無(wú)法達(dá)到同時(shí)降噪的要求[11]。鏡片圖像中存在混合噪聲,采用改進(jìn)的帶噪聲選擇的混合濾波方法,如圖7所示,對(duì)圖像中的脈沖噪聲和高斯噪聲進(jìn)行選擇性濾波。
圖7 混合濾波
對(duì)輸入原圖像進(jìn)行脈沖噪聲檢測(cè),脈沖噪聲判別準(zhǔn)則為
(2)
式中count[N(x,y)]為鄰域像素個(gè)數(shù)。
設(shè)計(jì)兩個(gè)閾值:Tυ用作判斷鄰域間像素灰度值的差別是否足夠大,Tn用作判斷灰度值差別大的像素?cái)?shù)量是否足夠多。
脈沖噪聲檢測(cè)判別采用5×5的檢測(cè)窗口,若窗口中央的像素值滿足式(2),認(rèn)為該像素點(diǎn)為脈沖噪聲,對(duì)該窗口進(jìn)行快速中值濾波處理。傳統(tǒng)的中值濾波是取5×5窗口內(nèi)所有的像素值進(jìn)行中值排序。為了提高此處中值濾波的效率,采用如圖8所示的模板進(jìn)行快速中值濾波,取模板內(nèi)9個(gè)像素值排序后的中間值替代原像素值。
圖8 快速中值濾波模板
對(duì)于非脈沖噪聲的像素值,采用雙邊濾波消除高斯噪聲的干擾,然后將兩個(gè)結(jié)果合并得到去噪輸出圖。
Canny邊緣檢測(cè)算法是JOHN Canny于1986年提出的邊緣檢測(cè)算法[12]。其應(yīng)用廣泛,在邊緣精確定位和抗噪兩方面平衡得很好,同時(shí)存在一些不足。在濾波處理中使用高斯函數(shù)進(jìn)行平滑,影響平滑標(biāo)準(zhǔn)差σ的選取與具體的圖像細(xì)節(jié)有關(guān);閾值需要人為憑經(jīng)驗(yàn)設(shè)定;基于全局的閾值,難以對(duì)不同形態(tài)的目標(biāo)疵病進(jìn)行檢測(cè),邊緣的分割不夠準(zhǔn)確等。本文基于Canny算法[13]提出一種改進(jìn)的局部窗口閾值邊緣檢測(cè)算法。
首先采用Sobel算子對(duì)去噪后圖像進(jìn)行邊緣檢測(cè),對(duì)得到的梯度圖選取較小的初始閾值T0,對(duì)梯度圖進(jìn)行閾值分割,確定大致的目標(biāo)疵病的位置和數(shù)量。統(tǒng)計(jì)圖像中的目標(biāo)疵病并對(duì)每個(gè)目標(biāo)劃分局部矩形窗口。對(duì)于梯度圖中的每個(gè)局部矩形窗口進(jìn)行最大類間方差法自動(dòng)閾值分割,如圖9所示。然后對(duì)邊緣進(jìn)行非極大值抑制和邊界跟蹤,確定完整的目標(biāo)疵病邊緣。算法流程如圖10所示。
圖9 局部窗口選取最佳閾值
圖10 局部窗口閾值的Canny邊緣檢測(cè)
本文采用的是某圖像公司的ALLied Vision系列的Manta G504工業(yè)數(shù)字相機(jī),軟件處理采用VS2015和OpenCV圖像處理庫(kù)。
分別采用OpenCV庫(kù)中的霍夫梯度圓檢測(cè)法和本文中改進(jìn)的快速Hough圓檢測(cè)算法,對(duì)圖3所示的鏡片灰度處理后提取圓形感興趣區(qū)域,實(shí)驗(yàn)結(jié)果如表1所示。
表1 不同圓檢測(cè)算法對(duì)比
從表1可以看出,本文算法與霍夫梯度法檢測(cè)的圓數(shù)值上十分接近,但是霍夫梯度圓檢測(cè)時(shí)間為1 239.67 ms,本文算法檢測(cè)圓的檢測(cè)時(shí)間為37.92 ms,對(duì)于單一的鏡片圖像圓檢測(cè)任務(wù)而言,采用本文算法效率更高。
圖11和圖12分別是Canny邊緣檢測(cè)算法和局部窗口閾值Canny邊緣檢測(cè)算法分割圖像,由于鏡片的表面疵病形態(tài)不一,散射明暗不同,Canny邊緣檢測(cè)算法提取的疵病邊緣不夠完整,本文算法對(duì)每個(gè)疵病局部窗口選取最佳分割閾值,能很好地實(shí)現(xiàn)疵病邊緣的精確提取。
圖11 Canny邊緣檢測(cè)結(jié)果
圖12 局部窗口閾值的Canny邊緣檢測(cè)結(jié)果
本文針對(duì)樹脂鏡片表面疵病缺陷檢測(cè)中的效率和分割準(zhǔn)確性的問(wèn)題進(jìn)行了研究。設(shè)計(jì)了一種改進(jìn)的快速Hough圓檢測(cè)方法獲取鏡片圖像感興趣區(qū)域,選擇混合濾波消除脈沖噪聲和高斯噪聲。同時(shí)提出基于局部窗口閾值的改進(jìn)Canny邊緣檢測(cè)算法,對(duì)預(yù)處理后的疵病圖像劃分局部窗口,在局部窗口內(nèi)選擇最佳閾值以完成邊緣的精確提取,獲得的疵病邊界清晰準(zhǔn)確。本文在鏡片視覺(jué)檢測(cè)算法的效率和準(zhǔn)確性兩方面進(jìn)行了優(yōu)化,滿足鏡片疵病自動(dòng)化檢測(cè)的需求。