王宏松,李杰
?。ㄉ虾3A贾悄芸萍加邢薰荆虾?201108)
摘要:針對(duì)現(xiàn)今工業(yè)薄膜生產(chǎn)過(guò)程中薄膜幅寬更大且生產(chǎn)更快的問(wèn)題,提出一種基于FPGA的快速薄膜瑕疵檢測(cè)系統(tǒng)方案。系統(tǒng)首先采用相關(guān)系數(shù)法準(zhǔn)確求出薄膜灰度圖像的最小重復(fù)周期,根據(jù)最小重復(fù)周期確定兩個(gè)比對(duì)圖像塊并求出差值圖像,其次將差值圖像二值化再進(jìn)行形態(tài)學(xué)處理,最后經(jīng)過(guò)面積約束條件找出薄膜瑕疵所在位置。其中充分利用FPGA并行處理的優(yōu)勢(shì),提高了圖像處理的速度。實(shí)踐結(jié)果表明,該系統(tǒng)能夠在300 m/min的薄膜生產(chǎn)線上成功檢測(cè)出瑕疵面積僅10個(gè)像素的瑕疵,在滿足實(shí)時(shí)薄膜瑕疵檢測(cè)的需求方面具有實(shí)際應(yīng)用效果。
關(guān)鍵詞:機(jī)器視覺(jué);瑕疵檢測(cè);FPGA;相關(guān)系數(shù);圖像匹配
0引言
現(xiàn)代薄膜被大量地用于生產(chǎn)生活。在薄膜的生產(chǎn)過(guò)程中,由于生產(chǎn)工藝及現(xiàn)場(chǎng)環(huán)境等因素影響,容易造成薄膜表面出現(xiàn)墨點(diǎn)、劃傷、破洞、褶皺、蚊蟲(chóng)等瑕疵。為了在生產(chǎn)過(guò)程中及時(shí)檢出薄膜表面的各種瑕疵,控制和提高薄膜產(chǎn)品的質(zhì)量,企業(yè)從傳統(tǒng)的人工目視抽檢逐漸發(fā)展為使用基于計(jì)算機(jī)軟件的在線瑕疵檢測(cè)系統(tǒng)[12]。隨著薄膜表面檢測(cè)質(zhì)量要求的日益提高,以及幅寬更寬、生產(chǎn)速度更快等更為嚴(yán)格的工藝要求出現(xiàn),單純依靠軟件來(lái)實(shí)現(xiàn)瑕疵檢測(cè)已經(jīng)不能滿足實(shí)際工程的需要[3]。
本文采用現(xiàn)場(chǎng)可編程門(mén)陣列(Field-Programmable Gate Array,F(xiàn)PGA)作為瑕疵檢測(cè)的核心處理單元,設(shè)計(jì)并實(shí)現(xiàn)了一種實(shí)時(shí)的瑕疵檢測(cè)系統(tǒng)。該系統(tǒng)具有檢測(cè)速度快、穩(wěn)定性好并容易配置新瑕疵種類等優(yōu)點(diǎn),可大大提高生產(chǎn)效率和降低制造成本。
1薄膜瑕疵檢測(cè)系統(tǒng)
目前薄膜瑕疵檢測(cè)系統(tǒng)大多采用工業(yè)計(jì)算機(jī)、線掃描相機(jī)、旋轉(zhuǎn)編碼器和線型光源的方案。在生產(chǎn)時(shí),由高亮LED組成的線型聚光冷光源采用透射或反射的方式照射在薄膜表面,通過(guò)與薄膜運(yùn)行同步的旋轉(zhuǎn)編碼器觸發(fā),使架設(shè)在生產(chǎn)線上的線掃描相機(jī)同步掃描,將相機(jī)采集到的薄膜圖像通過(guò)工業(yè)計(jì)算機(jī)上的采集卡實(shí)時(shí)傳送給圖像處理系統(tǒng)軟件進(jìn)行瑕疵識(shí)別處理。由于瑕疵圖像的灰階分布與正常圖像的灰階分布存在明顯差異,從而使系統(tǒng)能夠發(fā)現(xiàn)瑕疵,同時(shí)對(duì)瑕疵進(jìn)行有效的判定、分類及后續(xù)處理。
在實(shí)際生產(chǎn)中,對(duì)于幅面較寬的薄膜,可以采用多個(gè)線掃描相機(jī)并行采集圖像,同時(shí)傳送給工業(yè)計(jì)算機(jī)的方式。然而隨著幅寬增寬,生產(chǎn)運(yùn)行速度更快,單位時(shí)間內(nèi)采集得到的圖像數(shù)據(jù)量更大,目前常見(jiàn)的基于軟件的圖像處理方式越來(lái)越不能滿足實(shí)時(shí)性的要求。本文設(shè)計(jì)了一種基于FPGA的薄膜瑕疵檢測(cè)系統(tǒng),將主要的圖像瑕疵識(shí)別和處理交給以FPGA為核心的圖像處理單元,處理結(jié)果傳送給工業(yè)計(jì)算機(jī),這樣可以更好地適應(yīng)高速、高質(zhì)量生產(chǎn)的要求。圖3FPGA及主要接口電路
2系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)硬件由光源單元和圖像處理單元兩部分組成。光源單元包括LED線型光源和光源控制器,圖像處理單元?jiǎng)t由線掃描相機(jī)、FPGA圖像處理板以及旋轉(zhuǎn)編碼器組成??傮w框圖如圖1所示。
2.1光源單元電路
光源采用高亮大功率LED組成線陣分布,由光源控制器產(chǎn)生PWM信號(hào),通過(guò)高速雙金屬氧化物場(chǎng)效應(yīng)三極管(Metal Oxide Semiconductor Field Effect Transistor,MOSFET)驅(qū)動(dòng)器芯片MC34151放大,驅(qū)動(dòng)線型光源發(fā)光。LED在電路結(jié)構(gòu)上采用串并式排列,每一路串聯(lián)LED電路由一路PWM信號(hào)驅(qū)動(dòng),光源控制器可以輸出多個(gè)獨(dú)立的PWM信號(hào),分別驅(qū)動(dòng)多路LED電路。當(dāng)需要調(diào)節(jié)線型光源不同位置的亮度時(shí),只需獨(dú)立調(diào)整相應(yīng)位置對(duì)應(yīng)的LED串聯(lián)電路的PWM信號(hào)即可。PWM信號(hào)驅(qū)動(dòng)電路如圖2所示。
2.2圖像處理單元電路
圖像處理單元的核心采用ALTERA公司的Cyclone III系列FPGA,該系列FPGA采用TSMC的65 nm低功耗(Low Power,LP)工藝,提供豐富的邏輯、存儲(chǔ)器和數(shù)字信號(hào)處理器(Digital Signal Processor,DSP)功能,含有5 K~120 K邏輯單元(Logical Element,LE),288個(gè)數(shù)字信號(hào)處理(DSP)乘法器,存儲(chǔ)器容量達(dá)到4 Mbit。Cyclone III器件針對(duì)圖像處理應(yīng)用進(jìn)行了優(yōu)化,采用專業(yè)顯示I/O接口低電壓差分信號(hào)[4](LowVoltage Differential Signaling,LVDS),包括低擺幅差分信號(hào)和點(diǎn)對(duì)點(diǎn)差分信號(hào),每個(gè)鎖相環(huán)(Phase Locked Loop,PLL)可動(dòng)態(tài)配置,支持可變刷新率,以增強(qiáng)提高圖像處理功能和質(zhì)量。
圖像處理單元的主要電路包括FPGA集成電路、圖像數(shù)據(jù)輸入電路、DDR存儲(chǔ)器控制電路、圖像輸出接口電路等,其中Cyclone III FPGA及主要I/O接口電路如圖3所示。
3瑕疵檢測(cè)算法
薄膜瑕疵檢測(cè)算法流程如圖4所示。首先將采集到的長(zhǎng)L寬W的原始薄膜圖像進(jìn)行預(yù)處理,其中包括彩色圖像灰度化處理和對(duì)比度拉伸處理;其次,通過(guò)相關(guān)系數(shù)法求出薄膜圖片的最小重復(fù)周期t并獲得(L-t)×W參考圖像塊和相同大小的待檢測(cè)圖像塊,求出兩個(gè)圖像塊的差值圖像。之后將差值圖像轉(zhuǎn)為二值圖像并進(jìn)行形態(tài)學(xué)處理操作,獲得檢測(cè)結(jié)果圖像。最后,在檢測(cè)結(jié)果圖像中,當(dāng)其中有白色塊的面積大于所設(shè)定的閾值w時(shí),則該白色塊為薄膜瑕疵。
3.1模塊劃分
根據(jù)上述檢測(cè)算法流程,F(xiàn)PGA中應(yīng)主要包含圖像預(yù)處理[5]、檢測(cè)核心算法、存儲(chǔ)控制器和主控制器等功能模塊,如表1所示。表1模塊劃分模塊名稱功能主控制器負(fù)責(zé)器件整體功能的控制圖像預(yù)處理包括圖像格式轉(zhuǎn)換、對(duì)比度拉伸檢測(cè)核心算法對(duì)圖像計(jì)算相關(guān)系數(shù)、形態(tài)學(xué)處理等存儲(chǔ)控制器對(duì)存儲(chǔ)器進(jìn)行讀寫(xiě)控制,以實(shí)現(xiàn)圖像數(shù)據(jù)的暫存和更新其他模塊I/O接口(數(shù)據(jù)、控制信號(hào)等)、顯示輸出等
根據(jù)前述瑕疵檢測(cè)處理流程,整個(gè)圖像處理采用并行加流水線結(jié)構(gòu),分為8個(gè)步驟,對(duì)應(yīng)8個(gè)子模塊,如圖5所示。其中圖像預(yù)處理包括灰度變換、對(duì)比度拉伸,分別采用并行處理結(jié)構(gòu),以保證實(shí)時(shí)性;瑕疵檢測(cè)在圖像分塊的基礎(chǔ)上采用6級(jí)流水線,包括相關(guān)系數(shù)計(jì)算、差值處理、形態(tài)學(xué)處理、面積約束、瑕疵標(biāo)記和圖像拼接顯示,在時(shí)間上重疊復(fù)用各級(jí)流水線模塊,進(jìn)一步增加了處理的并行度,大大縮短了圖像處理的時(shí)間。
3.2圖像預(yù)處理
在圖像的采集和預(yù)處理過(guò)程中,需要改善圖像的質(zhì)量,增強(qiáng)有用信息。本系統(tǒng)中用到了彩色圖像灰度化處理和對(duì)比度拉伸處理。其中,圖像灰度化處理能夠減少后續(xù)圖像處理的運(yùn)算量,減少FPGA硬件的面積,從而降低應(yīng)用成本。本系統(tǒng)采用加權(quán)平均法對(duì)圖像進(jìn)行灰度化處理[6],其原理較為簡(jiǎn)單,不再贅述。典型數(shù)學(xué)表達(dá)式及實(shí)際應(yīng)用公式如式(1)、(2)所示:
圖像對(duì)比度拉伸[8]是一種簡(jiǎn)單且非常有效的空域增強(qiáng)方法。通過(guò)實(shí)驗(yàn)發(fā)現(xiàn),在原始薄膜圖像的灰度圖像上進(jìn)行恰當(dāng)?shù)膶?duì)比度拉伸是一種很好的圖像增強(qiáng)方式,可有效地增強(qiáng)薄膜瑕疵圖像,提高薄膜瑕疵檢測(cè)的精度。該方法由兩個(gè)基本步驟組成:(1)直方圖統(tǒng)計(jì),通過(guò)設(shè)定直方圖兩端的像素個(gè)數(shù)和占整個(gè)圖像像素個(gè)數(shù)的百分比來(lái)確定兩個(gè)端點(diǎn)a1和a2,灰度值小于a1的更改為0,灰度值大于a2的更改為255,本系統(tǒng)將這里的占比設(shè)定為0.005。(2)灰度值映射,在直方圖中,兩個(gè)端點(diǎn)之前的像素灰度值根據(jù)式(3)進(jìn)行像素灰度值的映射。映射原理是將原圖的灰度函數(shù)由一個(gè)變換規(guī)則映射成新的圖像函數(shù),即:
其中f(x, y)為原圖的灰度函數(shù),g(x, y)為增強(qiáng)后的灰度函數(shù),N為變換規(guī)則,即將a1~a2之間的像素灰度值按線性關(guān)系一一映射到0~255之間。
3.3核心檢測(cè)算法
核心檢測(cè)算法流程如圖6所示。
待檢測(cè)圖片經(jīng)預(yù)處理后獲得算法處理圖像。薄膜為固定周期的重復(fù)印刷制品。計(jì)算出薄膜的最小重復(fù)周期t。在L×W的算法處理圖像中,從首行開(kāi)始選取T×W(其中T<L)的感興趣區(qū)域作為目標(biāo)模版T(a, b),再?gòu)牡诙虚_(kāi)始每隔一行確定一個(gè)T×W的感興趣區(qū)域作為候選模版G(x+a,y+b),選取若干個(gè)候選模版。
本文采用去均值的歸一化相關(guān)函數(shù)(式(4))來(lái)判斷兩個(gè)模版的相似程度:
r(x,y)=
當(dāng)目標(biāo)模版T(a,b)和候選模版G(x+a,y+b)完全一樣時(shí),相關(guān)系數(shù)r(x,y)取最大值1。使r(x,y)取最大值的候選模版所在的行數(shù)即最小重復(fù)周期t。根據(jù)(L-t)×W參考圖像塊和相同大小的待檢測(cè)圖像塊,求出兩個(gè)圖像塊的差值圖像。
將差值圖像轉(zhuǎn)為二值圖像[9]并進(jìn)行形態(tài)學(xué)開(kāi)操作。為了去除生產(chǎn)中左右偏移和拉伸的干擾,將差值圖像進(jìn)行固定閾值二值化。為了有效計(jì)算單獨(dú)的白色塊面積,對(duì)二值圖像進(jìn)行形態(tài)學(xué)開(kāi)操作,即腐蝕和膨脹處理[10]。處理之后得到檢測(cè)結(jié)果圖像。
采用白色塊中白點(diǎn)(灰度值為255的像素)的個(gè)數(shù)等效描述白色塊的面積大小。如果白點(diǎn)的8鄰域中有其他白點(diǎn),則兩白點(diǎn)為同一白色塊。只要有白色塊的面積滿足瑕疵閾值,即為薄膜瑕疵。
3.4主控制器模塊
主控制器模塊負(fù)責(zé)控制圖像數(shù)據(jù)的輸入輸出、圖像在DDR中的暫存、流水線控制等過(guò)程,還包括了參數(shù)的配置控制。本模塊主要由有限狀態(tài)機(jī)構(gòu)成。三段式的狀態(tài)機(jī)由組合邏輯的狀態(tài)變化、時(shí)序邏輯的狀態(tài)切換及輸出邏輯組成。
為了提高瑕疵檢測(cè)處理流程中各個(gè)步驟的易控制性,將每個(gè)步驟都定義成3個(gè)狀態(tài),分別是“步驟x開(kāi)始”、“步驟x等待”、“步驟x結(jié)束”。因此,主狀態(tài)機(jī)的狀態(tài)歸納為:空閑、初始化、圖像數(shù)據(jù)輸入輸出、圖像在DDR中的暫存、圖像瑕疵檢測(cè)流水線、顯示輸出等狀態(tài),主狀態(tài)圖如圖7所示。
4實(shí)驗(yàn)結(jié)果與分析
為了驗(yàn)證系統(tǒng)的實(shí)時(shí)性以及檢測(cè)性能,采用3組不同花色的薄膜進(jìn)行實(shí)驗(yàn),每組2 000 m,其中分別有油污、蚊子、水印以及刀絲等瑕疵,為不合格薄膜產(chǎn)品。測(cè)試結(jié)果如圖8和圖9所示。
在3組薄膜產(chǎn)品的現(xiàn)場(chǎng)檢測(cè)實(shí)踐中,大于檢測(cè)閾值的瑕疵都能成功被檢測(cè)到。在薄膜瑕疵都能夠成功檢測(cè)出的條件下,薄膜瑕疵檢測(cè)速度達(dá)到300 m/min。因此,本文所設(shè)計(jì)的系統(tǒng)其檢測(cè)速度和檢測(cè)成功率都能夠滿足實(shí)際工業(yè)薄膜生產(chǎn)的需求。
5結(jié)論
本文通過(guò)分析薄膜瑕疵的圖像形態(tài),利用FPGA特有的高集成度、高速實(shí)時(shí)處理的特點(diǎn),設(shè)計(jì)了一種薄膜瑕疵檢測(cè)系統(tǒng)。設(shè)計(jì)了并行的圖像預(yù)處理功能以適應(yīng)更大幅寬的薄膜。將瑕疵檢測(cè)核心算法優(yōu)化為6級(jí)流水線結(jié)構(gòu),大大提高了資源利用率和并行度,在實(shí)踐中比傳統(tǒng)基于計(jì)算機(jī)的瑕疵檢測(cè)具有更低的硬件成本和更高的檢測(cè)速度,為大規(guī)模推廣提供了應(yīng)用參考。
參考文獻(xiàn)
?。?] 樊向黨,林波,沈文和. 塑料薄膜表面疵點(diǎn)檢測(cè)及識(shí)別方法研究[J]. 工業(yè)控制計(jì)算機(jī), 2011, 24(5):7475.
[2] 鐘球盛,胡廣華,李靜蓉. 光學(xué)薄膜表面微細(xì)缺陷在線檢測(cè)方法研究[J]. 機(jī)械設(shè)計(jì)與制造, 2011(10):102104.
?。?] 胡廣華,鐘球盛. 一種基于多目機(jī)器視覺(jué)的光學(xué)薄膜瑕疵檢測(cè)系統(tǒng)[J]. 機(jī)械設(shè)計(jì)與制造, 2012(4):162164
?。?] 焦文喆,翟正軍,任嵐昆.基于FPGA的圖像數(shù)據(jù)采集卡及其驅(qū)動(dòng)設(shè)計(jì) [J]. 國(guó)外電子測(cè)量技術(shù), 2010, 29(3):5659.
[5] 李長(zhǎng)莉,基于FPGA的CCD掃描缺陷檢測(cè)實(shí)時(shí)數(shù)據(jù)處理技術(shù)的研究[D]. 哈爾濱:哈爾濱理工大學(xué), 2008.
?。?] 溫杰,李錦明.基于FPGA的實(shí)時(shí)圖像邊沿檢測(cè)系統(tǒng)的實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用, 2015,41(10):6567.
?。?] 許蓓蕾,莊奕琪,湯華蓮,等.基于對(duì)象的多級(jí)圖像增強(qiáng)法[J].計(jì)算機(jī)應(yīng)用, 2011,31(6):15561559.
?。?] 李杰,周浩,張晉,等.基于粒子群優(yōu)化的模版匹配跟蹤算法[J].計(jì)算機(jī)應(yīng)用, 2015, 35(9):26562660.
?。?] 陳強(qiáng),朱立新,夏德深.結(jié)合Canny算子的圖像二值化[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2005, 17(6):13021306.
?。?0] 孫繼平,吳冰,劉曉陽(yáng).基于膨脹/腐蝕運(yùn)算的神經(jīng)網(wǎng)絡(luò)圖像預(yù)處理方法及其應(yīng)用研究[J].計(jì)算機(jī)學(xué)報(bào),2005,28(6):985990.