摘 要:提出一種基于數學形態學定位和模糊模板匹配及垂直投影相結合的字符分割算法。先通過形態學運算得到一系列候選區域,根據先驗知識從中找出封裝體所在區域,再利用模糊模板匹配的方法找到字符區域,通過字符垂直投影進行單個字符分割。通過大量的實驗表明,該算法能夠有效解決集成電路印字定位和字符分割的問題,并具有較好的魯棒性。
關鍵詞:印字定位;字符分割;數學形態學;垂直投影
中圖分類號:TP391.41文獻標識碼:A
文章編號:1004-373X(2010)06-125-03
Research of Positioning and Segmentation for Printing Character on Integrated Circuit
LU Jun,MAO Weimin,ZHU Weiliang,PI Zhisong
(The 58th Research Institute,China Electronic Technology Group Corporation,Wuxi,214035,China)
Abstract: An algorithm using mathematical morphology positioning and fuzzy template matching together with the vertical projection to segment the printing characters is proposed.The algorithm utilizes morphological operation to detect the candidate regions at first,finds out the package area based on a priori knowledge,uses fuzzy template matching method to find out the character area,at last uses the vertical projection algorithm to segment single character.A large number of experiments show that the algorithm can realize pesitioning and segmentation of the printing character on the integrated circuit package,and the algorithm has good robustness.
Keywords:printing character position;character segmentation;mathematical morphology;vertical projection
集成電路(IC)是信息產業的核心和基礎,隨著技術的革新,硅成本已迅速下降,然而測試成本卻基本保持不變。據報道,現在芯片測試成本可能占到芯片成本的一半。因此提高集成電路產品檢測技術是整個產業發展的關鍵。產品外觀檢測是集成電路生產中一項重要的工序。傳統的目檢,由于人工成本高,效率低,很難適應現代化生產,自動化檢測技術的研究已經成為集成電路外觀檢測的關鍵內容。對IC產品的印字進行檢測能有效避免產品混批、方向錯誤等致命問題,是IC外觀檢測中必不可少的一個環節。實現自動化的印字檢測具有非常重要的現實意義。
目前工業上對IC檢測基本都是人機交互式模板匹配,該方法是將人工選擇印字的區域作為模板,然后選定查找區域,通過區域內模板匹配的結果來判定印字是否符合要求。該方法需要人工較多的干涉,特別是在選擇字符模板時,對單個模板字符的框選有一定的難度,需要操作人員具有一定的經驗。尋找一種自動的字符分割算法,能快速有效地提高操作人員的工作效率,減少工作強度,符合現代化生產的趨勢。
本文采用一種基于數學形態學的方法提取印字區域,并采用模糊模板匹配和垂直投影相結合的方法對提取的印字區域進行分割。
1 封裝體定位方法
1.1 數學形態學
數學形態學[1]是一種非線性的圖像分析和處理理論,它能實現形態學分析和處理的并行運算,大大提高了圖像處理的運算速度。數學形態學主要是通過構造適合圖像分析要求的結構元,對圖像進行各種形態學變換,以此來實現想要獲得的效果。其中,膨脹和腐蝕是形態學的兩個最基本運算。對圖像中的某一像素f(x,y),使用結構元g進行灰度形態學膨脹與腐蝕運算的定義分別為:
膨脹:
(f⊕g)(x,y)=maxi,j{f(x-i,y-j)+g(-i,-j)}(1)
腐蝕:
(fΘg)(x,y)=mini,j{f(x-i,y-j)-g(-i,-j)}(2)
膨脹是將圖像中與目標物體有接觸的背景點合并到物體中的過程,結果是使目標增大,孔洞變小,可填補目標中的孔洞,使其成為連通域。腐蝕則恰好相反,它可以使目標縮小,目標內的孔洞增大,并起到消除孤立噪聲的作用。
數學形態學中的開運算是先將圖像進行腐蝕,去除小于結構元的區域,然后再按相同的結構元進行膨脹,使得沒有被去除的區域恢復到與原來相似的大小。
開運算:
f#8226;g=(fΘg)⊕g(3)
1.2 封裝體定位
如圖1所示,載帶中的封裝體都為矩形,而且在整幅圖像中占的面積較大,根據這個特征,如果使用相當于封裝體大小和形狀的矩形結構元對圖像進行開運算,能有效獲得封裝體所在區域,并去除大部分干擾區域。在實現過程中,對結構元的選取是一個難點,若結構元選取不當,則直接影響最后的定位準確率。
在該系統中可以充分利用先驗知識,當攝像頭和載帶之間的距離一定時,各種封裝體在檢測圖像中所占的像素數基本保持不變,因此可以通過選用不同封裝類型來初始開運算的結構元參數。
開運算后,可能會出現若干塊候選區域,由于待檢測的集成電路一般都會出現在拍攝圖片的中央位置,根據這一特征,可以有效剔除其他干擾區域,進一步減小封裝體定位的難度。如圖2所示,該方法能有效提取封裝體區域。
圖1 印字圖像
圖2 封裝體區域提取結果
1.3 圖像預處理
拍攝到的圖像往往會因為光源光照不均或蓋帶反光等影響,出現局部亮度變化明顯的問題,并使得印字與塑封體表面的對比度較低,光照不均勻會對后續處理中的二值化結果產生嚴重的影響,因此需要對圖像進行光照校正。
高帽變換(Top-hat)是用較大的結構元對圖像先進行開運算,然后再用原圖像減去開運算的結果。開運算能在保留局部亮度的前提下去除局部細節變化,原圖像減去開運算相當于減去了大塊的局部亮度值,這樣能去除較平滑的大的區域,使得圖像的細節部分更為明顯,能改善背景光照不均的問題。如圖4所示,圖3中光照不均問題得到明顯改善,印字與背景之間的對比度得到顯著提高。
高帽變換:
h=f-f#8226;g(4)
圖3 封裝體區域圖像
圖4 高帽變換后結果圖
1.4 濾波處理
經過光照校正后的圖像還會有很多噪聲,對后續處理產生干擾,需要對圖像進行濾波。試驗發現,圖像中噪聲多為孤立亮點,中值濾波器能有效去除圖像中較小的孤立亮點。為此,本文選用一個大小為3×3的中值濾波器,處理方法是:濾波模板在圖像上逐個像素滑動,使其遍歷整幅圖像,對模板覆蓋的像素亮度進行排序,選取中間值替換模板中心所在的像素值。
1.5 封裝體區域二值化及傾斜校正
由于載帶空間比芯片稍大,可能會使芯片產生一定的傾斜。考慮到傾斜的字很難進行字符分割,必須進行字符傾斜校正。在進行傾斜校正之前,先要將圖像進行二值化處理。常用的二值化方法有全局法和局部法兩種。全局法在目標和背景分離明顯,直方圖分布成雙峰的圖像效果良好,但對于光照不均勻,噪聲較大的圖像效果明顯變差;局部法適用于局部變化較大的圖像,但實現速度慢,在二值化過程中容易造成字符的斷裂。本文已經做過光照矯正,如4圖所示,印字和背景間的對比度已經明顯提高,所以只需使用全局二值化。全局閾值的選取,選用了具有較好的穩定性和自適應性的Ostu方法[5]。
校正傾斜常用的方法是Hough變換法[6],其主要優點是受直線中的間斷點和噪聲影響較小,因而容易找到封裝體邊框直線,從而進行傾斜校正。圖5為二值化后的結果圖,印字和背景已完全分離出來,而且印字輪廓保持完好。
圖5 二值化處理結果圖
2 印字字符分割
不同公司生產的芯片會有不同的印字模式,比如有的印字為兩排,有的為三排,而且各排中字符間距也不一樣,各行出現的字符種類可能也不一樣,這給字符分割帶來了很大的困難。為了記錄各盤產品檢測信息,檢測前必須輸入產品批號、周期號、盤號等信息,同一公司的同種芯片字符分布信息是一致的,因此系統可以根據各公司不同的批號設定不同的芯片字符分布模式,并調用給字符檢測系統。
2.1 字符定位
通過前面封裝體定位得到的圖像,有時候會帶有封裝體邊緣等干擾信息。邊框可分為上下邊框和左右邊框。本文采用兩次掃描的方法,以消除封裝體上下邊框的干擾,再由模糊模板匹配確定左右邊界。
以兩行字符為例,獲得每排字符的具體算法如下:
(1)從印字區域的第一行開始計算0到1和1到0的跳變次數,看是否大于閾值TH;如果是,則記錄下該行數(記為h1);如果不是,則繼續向下搜索,直到找到第一次大于閾值的行h1;
(2)從h1繼續向下找,如果有跳變次數小于下限閾值TL時,記錄該行為h2;
(3)從h2繼續向下找,如果有跳變次數大于上限閾值TH時,記錄該行為h3;
(4)從h3往下找,計算跳變次數,如果小于下限閾值TL,則將該行數記為h4;
(5)從距第h1行的|h1-h2|/3處開始逐行向上搜索,直到遇到第一次跳變數小于閾值TH,將該行數記為ht1,如果找不到,hc1=h1; 從距第h2行的|h1-h2|/3處開始逐行向下搜索,直到遇到第一次跳變數小于閾值TH,將該行數記為hb1,如果找不到,hb1=h2。此時,ht1,hb1即為第一排字符的上下邊界,同理可得第二排字符的上下邊界ht2, hb2。
由于字符左右兩側的噪聲在垂直方向上的灰度投影呈現出與字符區域相似的情況,所以在分割字符之前,先進行字符左右邊界的定位。本文使用模糊模板匹配的方法對字符的左右邊界進行定位。一般的模板匹配是用已知的模板與圖像中的區域去比對,直到找到差別最小的那一個區域。這里把這一概念應用到字符定位中,但這里所用的模板并不是某一個具體的字符模板,而是經過處理后的字符統計特征,這種匹配方式屬于模糊匹配。本文以最后一排周期號字符為例,使用灰度跳變次數特征為匹配特征。
(1)先定義一個滑動模板,模板的高度和寬度大致與字符一致,并稍微留一點冗余,以確保模板能完全覆蓋整排字符區域;
(2)定義一個數組J(x),用于保存在每次滑動過程中模板內灰度跳變次數的總和;
(3)將窗口從左到右逐列滑動,記錄下每次模板內灰度跳變的總和,記入J(x);
(4)模板遍歷完成后,在數組J(x)中找到最大值,根據相對應的x值進行定位,進行字符區域分割,即可消除左右邊緣干擾。
實驗結果如圖6所示,該定位方法能有效確定字符的邊界。
2.2 分割字符
本文利用垂直投影法來進行字符分割,垂直投影實際上就是對每列像素做統計。字符分割算法的實現方法如下:
(1) 對字符區域做垂直方向的投影,定義一個數組R,把每一列的投影值與閾值T比較,大于T的置為1,小于T的置為0,保存到數組R中去;
(2) 定義數組S,找到數組R中所有為1的位置,如果在某列為1值的左右兩邊分別為0 1和1 0,則將該列在數組R中的位置保存到數組S中去;
(3) 依次提取在字符區域中S記錄的位置信息,計算相鄰位置的寬度Lk,并找出該區域內最大垂直投影值Tmax,令tk=Tmax/Lk,定義數組C=。其中,sb,se分別表示起始列和終止列的位置;
(4) 根據每一個區域C中T的值和區域的寬度L來判斷是不是字符。
字符分割的難點一般在于印字字符的傾斜和二值化過程中會產生斷裂和粘連,前面已進行了印字的傾斜校正,并且在二值化之前使用了高帽運算,可以很好地克服斷裂和粘連現象。
在字符分割的時候,數字1往往很難分割,因為其高寬比比較特殊。在引入T值判決條件后,可以有效地對其進行分割。
圖7為字符分割的結果。
圖6 字符定位結果圖
圖7 字符分割結果圖
3 實驗結果與結論
為了驗證算法的有效性,對算法進行了大量的仿真實驗。仿真環境為Matlab 2006a,CPU主頻為1.73 GHz。對8引腳和14引腳的集成芯片圖像各50張上的印字進行定位、分割實驗,印字模式有兩排和三排。字符分割成功率為98%以上。
對分割不成功的圖像進行分析,主要是因為印字在燙封下面,由于膜的存在,使得拍攝到的印字比較模糊,與塑封體的對比度較低,導致在二值化時,出現印字粘連、印字不完整等問題。
實驗結果表明,本文提出基于數學形態學的定位方法,可以較好地抑制無效區域的干擾,快速準確地提取出印字區域,同時也證明基于模糊模板匹配和垂直投影相結合的方法可以有效地分割印字字符。
參考文獻
[1]崔屹.圖像處理與分析——數學形態學方法及應用[M].北京:科學出版社,2000.
[2] 左奇,史忠科.一種基于數學形態學的實時印字圖像分割方法[J].中國圖像圖形學報,2003,8(3):281-285.
[3]于深洋,黃劍華,劉家鋒,等.基于水平梯度和形態學分析的車牌實時定位方法[J].計算機工程,2007,33(17):204-207.
[4]馮國進,顧國華,鄭瑞紅.基于自適應投影方法的快速印字定位[J].紅外與激光工程,2003,32(3):285-287.
[5]Ostu N.A Threshold Selection Method from Gray-level Histograms[J].IEEE Trans.on Systems,Man and Cybernetics,1979,9(1):62-66.
[6]張云剛,張水長.利用Hough變換和先驗知識的車牌字符分割算法[J].計算機學報,2004,27(1):130-135.
[7]胡新榮.一種改進的車牌字符分割算法[J].計算機工程,2006,32(3):191-192.
[8]高朝暉,黃衛.基于彩色圖像印字分割研究[J].公路交通與科技,2004(8):114-117.
[9] 遲曉君,孟慶春.基于投影特征值的車牌字符分割算法[J].計算機應用研究,2006,23(7):256-257.
[10]陳濤,楊晨暉,青波.基于投影和固有特征結合的車牌字符分割方法[J].計算機技術與發展,2009,19(5):45-47.