?

基于粒子群優化的雙凸透鏡缺陷Otsu閾值分割算法

2023-03-04 07:49戚云濤曾壽金方宇軒蔡曉潔沈慶梅
福建工程學院學報 2023年6期
關鍵詞:麻點劃痕灰度

戚云濤,曾壽金,方宇軒,蔡曉潔,沈慶梅

(1. 福建理工大學 機械與汽車工程學院,福建 福州 350118;2. 福建優恩立光電科技有限公司,福建 福州 350000)

雙凸透鏡是光學玻璃通過切割、研磨、清洗、鍍膜等操作后得到的透鏡,因加工技術的限制,不可避免地會出現一些如麻點、劃痕等不同類型的缺陷[1]。根據《光學零件表面疵病》(GB1185-2006)規定的一般表面瑕疵要求[2],零件最大尺寸范圍在10~30 mm的瑕疵面積公差為5 mm ×0.25 mm。本課題研究對象為直徑14 mm的雙凸透鏡,通過目視觀察的方法易受主觀因素影響,很難準確辨別出缺陷類型和大小[3]。因此本課題依靠機器視覺和圖像處理進行實時的缺陷檢測,通過圖像分割[4]將目標缺陷和背景區分出來,從而獲取缺陷圖像。

一般的圖像分割算法包括閾值分割[5]、邊緣檢測[6]、區域生長[7]等。針對缺陷檢測,常采用的算法主要有閾值分割和邊緣檢測。Otsu圖像分割算法[8]通過計算兩區域之間的最大類間方差值求出分割閾值,算法簡單,但其計算量隨著維度的提升而急劇增加、從而導致實時處理能力下降。因此啟發式搜索優化算法也被引入圖像分割中。其中受鳥群覓食啟發的粒子群優化算法(particle swarm optimization, PSO)由于收斂速度較快、參數少、算法簡單而被廣泛應用于圖像處理領域。但標準的PSO算法會出現早熟收斂,陷入局部最優的問題,需要進行改進和優化。郭宗建等[9]通過融入一種新的慣性權重并構建了一種新的極值擾動的方法,提高了粒子跳出局部最優的能力。Song等[10]在位置更新公式中引入約束因子來控制速度的權值,以減少搜索過程中的盲目性,提高收斂速度。

然而,上述研究均未考慮雙凸透鏡缺陷工業檢測的實時性需求,沒有對運行時間和精度提升進行綜合性優化。綜上,本課題提出了一種基于最大類間方差法的雙閾值圖像分割算法,使用改進粒子群算法對最大類間方差法進行優化。

1 雙凸透鏡缺陷檢測預處理

由于雙凸透鏡的反射折射特性,本課題的樣本選用低角度環形光源進行打光,檢測系統選用CMOS面陣相機(大恒圖像公司的MER-630-60U3C相機)采集雙凸透鏡圖像。透鏡中除主要缺陷目標外還有其他噪聲干擾,會產生少量峰值,這些信息對缺陷提取會造成較大影響,因此需要對采集圖像進行預處理,選用合適濾波方案和ROI(region of interest)提取方案剔除這些無關信息。

1.1 圖像濾波

圖像濾波是常見的消除噪聲方式,包括頻率域濾波和空間域濾波[11]。頻率域濾波算法復雜、計算速度慢;而空間域濾波應用模板卷積對圖像的每個像素進行局部處理,算法簡單,處理速度快。為滿足實時性需求,本研究對圖像的去噪考慮采用空間域濾波的方式進行預處理。常見的去噪濾波主要有線性濾波和非線性濾波兩種,比如高斯和均值濾波屬于線性濾波,而中值和雙邊濾波則屬于非線性濾波。

本課題通過高斯濾波、雙邊濾波、中值濾波和均值濾波分別對帶有缺陷的灰度原始圖像進行濾波處理。由于缺陷占原始圖像比例較小,為了更清晰地展現濾波效果,截取了100×100像素大小的局部缺陷,觀察實驗結果,如圖1~圖4所示。圖1為粗劃痕缺陷原始圖及用4種濾波方法處理后的對比圖;圖2為強麻點缺陷原始圖及用4種濾波方法處理后的對比圖;圖3為細劃痕缺陷原始圖及用4種濾波方法處理后的對比圖;圖4為弱麻點缺陷原始圖及用4種濾波方法處理后的對比圖。

圖1 粗劃痕圖像濾波對比圖Fig.1 Coarse scratch image filtering comparison

圖2 強麻點圖像濾波對比圖Fig.2 Strong pockmark image filtering comparison

圖3 細劃痕圖像濾波對比圖Fig.3 Fine scratch image filtering comparison

圖4 弱麻點圖像濾波對比圖Fig.4 Weak pockmark image filtering comparison

從圖1~圖4可見,高斯濾波處理后仍然含有少量的噪聲,但劃痕缺陷細節丟失的較少;中值濾波和均值濾波處理有效去除了不必要的脈沖噪聲,但缺陷細節信息丟失得較為嚴重;雙邊濾波不僅較好保留了光學鏡片劃痕缺陷的細節,而且有效去除了噪聲,視覺上處理效果最佳。

為了更客觀地評價不同濾波算法的去噪效果和關鍵信息的保留程度,引入均方誤差(MSE)和峰值信噪比(PSNR)作為評價指標[12]。MSE值越小,PSNR值越大,則說明濾波降噪之后的圖像更加接近原圖像,降噪效果更好。如式(1)和式(2)所示:

(1)

(2)

式(1)中,f(i,j)表示圖像在像素點(i,j)處的灰度值;g(i,j)表示濾波處理后的圖像在像素(i,j)處的灰度值;h×w表示圖像的大小。式(2)中,n表示每個像素的比特數。

通過對圖1~圖4的4種缺陷原始圖像處理后的濾波效果圖進行分析,得出PSNR評價指標,如表1所示。

從表1可知,4種缺陷原始圖像在雙邊濾波處理后,比高斯濾波、中值濾波和均值濾波處理后的PSNR值更高。說明經過雙邊濾波平滑處理后的圖像更接近原圖像,降噪效果更好。通過直觀觀察和評價指標綜合得出,雙邊濾波處理效果優于其他濾波,因此本課題用雙邊濾波對雙凸透鏡缺陷圖像進行濾波處理。

1.2 感興趣區域提取

本課題主要研究目標是雙凸透鏡內的缺陷檢測,透鏡外的部分需要剔除,以減少無關信息的干擾。因透鏡外輪廓呈圓形,故圓形的檢測是提取透鏡主體的關鍵步驟。常用的圓檢測方法[13]有霍夫圓變換、最小二乘法擬合圓等,其中應用比較廣泛的是霍夫圓變換。本課題采用OpenCV庫中的HoughCircles()函數,對透鏡圖像外輪廓進行提取,再對原圖內部構造圓形掩膜,對掩膜部分提取出透鏡區域,關鍵步驟如圖5所示。

圖5 感興趣區域提取圖Fig.5 Region of interest extraction

2 粒子群算法優化Otsu

2.1 Otsu算法

Otsu算法把圖像分割為目標和背景兩個區域,通過計算兩個區域的方差值大小進行對比,方差值越大,說明目標和背景兩區域的差異越大,使得方差值最大的灰度值被認為是最佳的分割閾值。

設H=(0,1,2,…,L-1)為灰度圖像的L個不同的灰度值,ni表示灰度值為i(i∈H)的像素數,總的像素數為:

(3)

灰度值為i的像素點在整幅圖像所占比例為pi,pi計算公式為:

(4)

因此得出:

(5)

實際上,Otsu算法可以擴展到任意數量的閾值,本研究考慮將圖像分割成3部分,因此需要兩個閾值k1和k2將灰度圖像分割成3個區域,其中灰度值范圍在[0,k1]的像素點歸為C1類,灰度值范圍在[k1+1,k2]的像素點歸為C2類,灰度值范圍在[k2+1,L-1]的像素點歸為C3類,則3類區域的概率分別為P1、P2、P3,計算公式為:

(6)

3類區域的概率滿足式(7):

P1+P2+P3=1

(7)

求得3類的平均灰度值分別為μ1、μ2、μ3,計算公式為:

(8)

得出灰度圖像的整體平均灰度為μH,計算公式為:

μH=P1μ1+P2μ2+P2μ2

(9)

根據以上公式可以求出C1、C2、C3之間的類間方差σ2的值:

σ2=P1(μ1-μH)2+P2(μ2-μH)2+P3(μ3-μH)2

(10)

對于比較簡單的灰度圖像,Otsu單閾值的分割效果比較理想;而對于較為復雜的圖像,則需要將Otsu推廣到多閾值來改善分割效果。由于Otsu算法是通過遍歷所有灰度級來求取最佳分割閾值的,因此計算量很大,難以滿足實時處理的要求。

2.2 粒子群優化算法

PSO算法首先生成一組隨機的粒子群x=(xi1,xi2,…,xiD),i=1,2,…,N。其中,N代表種群規模的大小,D代表粒子的維度空間。

粒子的速度更新公式是由記憶項、自身認知項、群體認知項組成的。權重大小和粒子的當前速度矢量構成了記憶項。當前指向粒子自身最好的矢量構成了自身認知項,體現了粒子的搜索行動含有自身經驗的部分。粒子當前指向群體中最優的矢量構成了群體認知項,體現了粒子之間的合作共享。粒子搜索就是通過將自己的經驗和同伴中最好的經驗綜合考慮,來決定下一步如何行動。每個粒子的搜索距離大小和方向選擇是由粒子的速度矢量決定的,粒子的速度更新如式(11)所示:

vi,j(t+1)=wvi,j(t)+c1rand1(pbestij(t)-

xij(t))+c2rand2(gbestj(t)-xij(t))

(11)

其中,j∈{1,2,…,D},xij(t)表示維度為j的粒子xi在第t次的迭代位置,vij(t)表示維度為j的粒子xi在第t次的迭代速度,pbestij(t)表示維度為j的粒子xi在之前t次迭代中最優的個體位置,gbestj(t)表示整個粒子種群在之前t次迭代中最優的位置,c1和c2代表著學習因子,一般設定為2,w表示慣性權重,rand1和rand2是在[0,1]上隨機分布的數值。當粒子速度更新完成之后,粒子的位置也相應更新。粒子位置更新由當前位置和當前速度向量構成,如式(12)所示:

xij(t+1)=xij(t)+vij(t+1)

(12)

根據式(11)(12)即可得出如圖6所示的粒子位置和速度更新示意圖。

圖6 位置和速度更新示意圖Fig.6 Location and speed updates

圖6中,3條虛線方向代表著影響粒子迭代后位置的前提因素,分別是粒子當前速度、當前粒子最優值和全局粒子最優值。3條實線代表著記憶項、自身認知項和群體認知項。點劃線則代表著粒子更新后的速度,決定了粒子更新后的位置。

假設優化問題是最大值問題,若當前時刻粒子的目標函數值比其歷史最優值還大,則用當前的目標值對應的位置替換其歷史最優位置,pbesti(t+1)更新方式如式(13)所示:

(13)

其中,f是目標函數。

假如當前粒子的歷史最優值比全局最優值更大,則用當前粒子的歷史最優值對應的位置替換其全局最優位置,gbest(t+1)更新方式如式(14)所示。

(14)

3 改進粒子群優化Otsu

3.1 改進的粒子群優化算法

關于慣性權重w的更新策略中,線性遞減更新策略的應用最為廣泛[14]。但線性遞減更新策略在迭代初期階段容易搜索不到最優值范圍,從而在后期易陷入局部最優。為增強粒子前期全局搜索能力,提升后期局部收斂速度,式(11)中記憶項部分的w權重選擇非線性遞減函數,如式(15)所示:

(15)

其中,t為當前迭代次數,T為最大迭代次數,為了讓粒子在初期迭代階段有較大權重,后期讓粒子減小權重wmin取0.4,wmax取0.9。

為減少搜索過程中的盲目性,提高收斂速度,在位置更新式(12)中引入約束因子α來實現控制速度的權值。

xij(t+1)=xij(t)+αvij(t+1)

(16)

α=0.1+w

(17)

傳統粒子群優化算法中的約束因子為1。α引導粒子在最佳位置附近盤旋,α的改進控制了速度對位置的影響,從而更好地提高了算法的收斂性。

當粒子陷入局部最優時,為跳出局部最優,應當加入新的粒子群進行擾動,這也導致種群規模擴大,從而增加了計算量。因此提出一種新的策略來更新粒子群,在保持粒子群總數不變的同時,提高粒子的多樣性,并提高收斂速度。具體策略為:當全局最優值保持一定迭代次數不變時,通過式(11)和(12)隨機產生一定數量的粒子,假設為W個,其中初始總粒子群數量為N個。隨機產生的W個粒子與N個原始粒子相加得到W+N個粒子,根據目標函數值對其進行從大到小重新排序。為了保持總粒子群數量不變,保留前N個粒子,剔除后W個粒子,使得粒子跳出局部最優,從而尋得全局最優。根據式(14)判斷當粒子的歷史最優值大于全局最優值,替換了全局最優位置之后,將該粒子的位置參數和速度參數進行重新隨機分布,激活該粒子的全局搜索能力,以防止該粒子陷入局部最優解,丟失尋優能力。

3.2 改進粒子群優化算法的Otsu圖像雙閾值分割算法步驟

改進粒子群優化算法的框架流程如圖7。

圖7 算法框架流程圖Fig.7 Algorithm framework flow chart

4 實驗結果及分析

為了驗證改進粒子群優化算法的Otsu圖像雙閾值分割效果,分別對劃痕和麻點兩張含有缺陷的圖像進行處理,圖像的尺寸為1 200×1 200像素。算法在Windows10、2.30 GHz處理器、16 GB內存上處理;編程環境為Visual Studio 2022,并且采用OpenCV庫對透鏡進行處理。參數設定為:粒子數目N為30,vmin=-10,vmax=10,c1=c2=2,wmin=0.4,wmax=0.9,最大迭代次數T=200,W為0.1 T,維度空間D=2。分別采用自適應算法、最大熵算法、一維Otsu單閾值算法、二維Otsu單閾值算法、雙閾值Otsu算法、PSO+Otsu算法、改進PSO+Otsu算法對劃痕和麻點缺陷透鏡進分割,局部放大缺陷位置后,圖像尺寸為100×100像素的分割效果如圖8和圖9所示。

圖8 劃痕圖像閾值分割Fig.8 Scratch image threshold segmentation

圖9 麻點圖像閾值分割Fig.9 Pockmark image threshold segmentation

由圖8可見,自適應存在部分缺陷丟失的情況,最大熵、一維Otsu和二維Otsu存在缺陷不連續、斷連的情況,沒有將劃痕缺陷較好地分割出來,而雙閾值Otsu、PSO+Otsu和改進PSO+Otsu能夠較為完整地提取出缺陷區域,分割得比較完整。由圖9可見,麻點圖像閾值分割效果圖中自適應存在缺陷邊界不明確的問題,最大熵、一維Otsu和二維Otsu存在缺陷斷連,且麻點內部出現空隙等問題,沒有較為完整地提取出麻點缺陷,而雙閾值Otsu、PSO+Otsu和改進PSO+Otsu能夠較為完整地提取出整體的缺陷部分。但改進PSO+Otsu算法和雙閾值Otsu、PSO+Otsu算法在處理時間上有所區別,本研究針對劃痕和麻點兩張缺陷圖像,選取一維Otsu、雙閾值Otsu、PSO+Otsu和改進PSO+Otsu進行對比,每個算法均運行30次,并且針對運行時間、最佳閾值、最優迭代次數和適應度值,在去除最高值和最低值后,對數據進行取平均值處理,具體結果如表2所示。

表2 透鏡缺陷平均實驗結果表Tab.2 Average experimental results of lens defects

分析表2可知,一維Otsu算法雖然平均處理時間較短,但是只有單個閾值,分割效果差。雙閾值Otsu算法在處理劃痕圖片時,需要遍歷所有灰度級來得到最佳分割閾值,雖然能獲取最優的適應度值,從而尋找到最優的兩個閾值,但是計算量大,導致運行時間長。通過數據得出改進PSO+Otsu比雙閾值Otsu的運行時間節省約52.7%。PSO+Otsu雖然結合了粒子群的優勢,但尋得最優解所需的迭代次數更多。通過數據得出改進PSO+Otsu比PSO+Otsu在運行時間上節省約32.3%的時間,并且在尋得最優適應度值時存在誤差,說明有個別實驗中粒子群有陷入局部最優的情況出現,且無法跳出局部最優。

PSO+Otsu和改進PSO+Otsu收斂速度的差距如圖10、11所示。從圖10、11可知,改進PSO+Otsu算法在前期能較快的收斂至目標適應度值,且當適應度值保持一段時間不變時,也就是粒子陷入局部最優時跳出局部最優的能力也優于PSO+Otsu算法。

圖10 劃痕迭代收斂圖Fig.10 Scratch iterative convergence

圖11 麻點迭代收斂圖Fig.11 Pockmark iterative convergence

5 結論

為解決雙凸透鏡實時缺陷檢測中圖像閾值分割存在的精度不高,檢測速度慢的問題,本研究以雙凸透鏡的劃痕和麻點作為研究對象,提出一種基于改進粒子群算法優化Otsu閾值分割的方法。在標準PSO+Otsu的基礎上,引入一種改進的PSO優化算法,對粒子多樣性和失去活性方面進行優化。通過對含有劃痕和麻點的缺陷圖像進行多實驗和多算法的檢測。實驗證明該優化算法在分割精度上均優于自適應、最大熵、一維Otsu、二維Otsu和PSO+Otsu分割算法。在檢測速度上均快于雙閾值Otsu和PSO+Otsu算法。實驗數據顯示該優化算法能有效提升雙凸透鏡缺陷檢測的檢測速度和精度。

由于本研究僅針對Otsu分割算法進行粒子群優化,沒有多角度分析粒子群優化對傳統分割算法的性能提升,如何拓展優化算法至其他分割算法是未來的工作重點。

猜你喜歡
麻點劃痕灰度
微合金酸洗板表面麻點缺陷成因及控制技術
采用改進導重法的拓撲結構灰度單元過濾技術
富馬酸盧帕他定治療皮膚劃痕癥的療效觀察
基于灰度拉伸的圖像水位識別方法研究
如何消除灰鑄鐵缸體麻點缺陷
親水箔延伸率異常降低的形成原因分析
冰上芭蕾等
基于最大加權投影求解的彩色圖像灰度化對比度保留算法
410S冷軋鋼帶表面麻點缺陷分析
基于灰度線性建模的亞像素圖像抖動量計算
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合