本發明涉及半導體檢測技術領域,尤其是一種基于GPU的邊緣檢測圖像二值化方法,用以檢測掩膜版和晶圓缺陷。
背景技術:
半導體掩膜版和晶圓的檢測一般常見還是光學圖形檢測,不管是Die2DB還是Die2Die的方式,都涉及圖形學;
其中針對Die2DB來說,首先要對采集的圖進行二值化處理,二值化處理常見有全局二值化和局部二值化,針對全局閾值法來說,實現是簡單,高效,但是他的適用范圍相對有限,針對半導體的掩膜版、晶圓、薄膜電路等,由于光源或鏡頭等多方面的原因,會導致光照的不均勻,如果按照全局閾值方法來二值化,會導致圖片的邊緣信息丟失很多;如果按照局部閾值來處理,需要分割若干個區域進行處理,但是如何進行區域的劃分,也是比較復雜的問題,往往需要通過大量的試驗來確定,即便這樣,效果也不是最理想的,所以相比而言,這兩種方法都不是最佳的方法;
針對半導體的mask,wafer的光學檢測來說,在光照相對不均勻的情況,如果提供一種有效的二值化方法,是本領域技術人員迫切需要解決的核心技術問題之一。
技術實現要素:
本發明要解決的技術問題是:提出一種基于GPU的邊緣檢測圖像二值化方法,具有完整性高,實時性好的特點。
本發明所采用的技術方案為:一種基于GPU的邊緣檢測圖像二值化方法,包括以下步驟:
1)通過GPU服務器把采集到的灰度圖輸入到GPU中;
2)GPU的每個核負責處理原始圖片中的每行數據,進行像素灰度值的跳變檢測,按照設定的閾值T,求得每行數據的突變點,然后進行黑白處理;
3)按照步驟2)同樣的方法,GPU的每個核處理原始圖片的每列數;同樣進行像素灰度值的跳變檢測,按照設定的閾值T,求得每列數據的突變點,然后進行黑白處理;
4)把GPU處理后的行、列數據進行匯總處理,得到的數據便是最終的二值化圖。
本發明的有益效果是:本發明是以GPU為計算主體,采用邊緣檢測的方法進行二值化,GPU的每個核處理負責處理原始圖片的每行以及每列數據,進行像素灰度值得跳變檢測,把變化方向分為正負兩個方向,正方向表示由暗到亮,負方向表示由亮到暗,然后進行匯總,這樣能得到理想的二值化圖,保證圖案邊緣信息不丟失等特點,由于采用GPU處理,也能保證處理的實時性。
附圖說明
下面結合附圖和實施例對本發明進一步說明。
圖1是本發明的原始灰度圖;
圖2是本發明邊緣檢測原理圖;
圖3是本發明邊緣檢測二值化實際圖。
具體實施方式
現在結合附圖和優選實施例對本發明作進一步詳細的說明。這些附圖均為簡化的示意圖,僅以示意方式說明本發明的基本結構,因此其僅顯示與本發明有關的構成。
一種基于GPU的邊緣檢測圖像二值化方法,包括以下步驟:
步驟1,通過GPU服務器把采集到的一批灰度圖輸入到GPU的顯存中,由于GPU核心數較多,可以每次輸入多張圖像到GPU中進行處理,便于高效運算;
步驟2,根據當前光照環境,設定一個像素灰度值跳變閾值T,該值決定像素灰度值值是否發生了跳變;當然發生跳變,并不表示一定是黑白分界點,最終要求得同方向的最大值,所以該閾值的設定不一定要求非常準確,這樣該方法就有實際運用的價值了;
步驟3,獲取原始采集灰度圖像數據和閾值T后,GPU就開始檢測原始數據的行數據M,給每個GPU的核分配數據,每個核對應一行數據,例如圖2所示,每個核從左到右分析像素的灰度值(0到255閉區間),如果|Mi+1-Mi|>T,則納入統計列表中L(Mpi,...,MPi+n),直至跳變方向發生反轉,例如由正到負時,根據統計列表的數據,找出最大值Mmax=max(Mpi,...,Mpi+n);此時可認為最大值的X坐標為跳變點,根據跳變方向,判斷之前起始位置填充黑還是白,如果是正方向,則之前的行數據均為0,反之則為255;然后繼續往右方分析,直至當前行數據處理完畢,當負責該圖的所有核處理完成后,即可得到整個圖的矩陣TRm;
步驟4,按照步驟2同樣的方法,來檢測原始圖的列N數據,找出最大值Nmax=max(Npi,...,Npi+n),此時可認為最大值的Y坐標為跳變點,根據跳變方向,判斷之前起始位置填充黑還是白,如果是正方向,則之前的列數據均為0,反之則為255;然后繼續往下方分析,直至當前行數據處理完畢,當負責該圖的所有核處理完成后,即可得到矩陣TRn;
步驟5,根據行列兩個方向二值化的矩陣數據TRm和TRn進行匯總操,如果矩陣TRm(i,j)與TRn(i,j)中的像素值若有一個是0,則合并為0,反之為255;因為這些都是矩陣數據,非常適合GPU來并行計算,所以GPU的每個核一次只負責處理每一行或者列像素數據,故性能極其高效,最終得到一個完整的理想二值化圖像數據,如圖3所示。
以上說明書中描述的只是本發明的具體實施方式,各種舉例說明不對本發明的實質內容構成限制,所屬技術領域的普通技術人員在閱讀了說明書后可以對以前所述的具體實施方式做修改或變形,而不背離本發明的實質和范圍。