趙睿軒 周 強(qiáng) 王思琦
(陜西科技大學(xué)電氣與控制工程學(xué)院,陜西西安,710021)
在紙張生產(chǎn)過程中,由于設(shè)備故障、生產(chǎn)原料污染、人工操作不當(dāng)?shù)仍颍瑫a(chǎn)生一些影響紙張正常使用的缺陷,統(tǒng)稱為紙病。紙病的存在不僅影響紙張的外觀,而且會影響紙張的一些物理指標(biāo),嚴(yán)重時(shí)會使紙張成為廢品。而且,紙病的周期性出現(xiàn)預(yù)示著造紙?jiān)O(shè)備很可能出現(xiàn)了故障,需要及時(shí)檢修設(shè)備;所以,對紙病進(jìn)行檢測十分必要。隨著造紙技術(shù)自動化的提高,紙機(jī)車速越來越快,傳統(tǒng)的人工紙病檢測方法已難以滿足工業(yè)生產(chǎn)需求。而機(jī)器視覺技術(shù)隨著不斷的發(fā)展現(xiàn)已趨于成熟,應(yīng)用領(lǐng)域也越來越廣[1],在紙病檢測領(lǐng)域中也得到了越來越多的應(yīng)用。
傳統(tǒng)的基于機(jī)器視覺的紙病檢測系統(tǒng)主要以電耦合器件“(Charge Coupled Device,CCD)+個(gè)人電腦(Personal Computer,PC)”結(jié)構(gòu)模式為主[2-4],并常常使用數(shù)字信號處理(Digital Signal Process,DSP)或圖形處理器(Graphics Processing Unit,GPU)進(jìn)行加速,但都局限于使用計(jì)算機(jī)作為控制和處理數(shù)據(jù)核心。而隨著紙機(jī)車速的提高、紙幅的加寬以及對紙病辨識精度要求的提高,CCD相機(jī)采集到的海量圖像數(shù)據(jù),給系統(tǒng)的處理速度帶來了巨大沖擊。以串行方式工作的計(jì)算機(jī)中央處理器(Central Processing Unit,CPU)在圖像采集、預(yù)處理和紙病辨識的整個(gè)過程中越來越難以滿足系統(tǒng)數(shù)據(jù)處理的實(shí)時(shí)性要求[5]。如何提高海量數(shù)據(jù)下的數(shù)字圖像的處理速度一直是一個(gè)難題[6]。研究發(fā)現(xiàn),使用現(xiàn)場可編程邏輯門陣列(Field Programmable Gate Array,F(xiàn)PGA)代替PC機(jī)作為紙病檢測的控制處理核心更為合適[7-9]。相比于傳統(tǒng)的CPU與GPU等圖像處理器件,F(xiàn)PGA由于其結(jié)構(gòu)特點(diǎn),在圖像處理方面具有速度上的優(yōu)勢[10-11]。
許多學(xué)者對使用FPGA進(jìn)行紙病檢測進(jìn)行了研究并取得了一定的成果。黨宏社等[8]使用FPGA將含有紙病缺陷的幀圖像上傳至計(jì)算機(jī),一定程度上減輕了計(jì)算機(jī)的工作量。湯偉等[9]使用FPGA對采集到的紙病圖像進(jìn)行濾波去噪、邊緣檢測與質(zhì)心定位,完成對紙病圖像的預(yù)處理。劉勇等[12]提出使用包圍盒分割紙病區(qū)域,但僅適用于單一紙病缺陷的情況。王偉剛等[5]提出使用分塊包圍盒分割多紙病區(qū)域,但需多次存儲圖像才能完成處理。以上方法雖然對算法有局部改進(jìn),但并沒有改變以幀圖像為固定單元進(jìn)行處理的模式,都需要先緩存整幅圖像,后進(jìn)行圖像處理。此類方法不但在處理過程中需多次對幀圖像進(jìn)行緩存,才能輸出紙病區(qū)域圖像,而且在遇到兩幀圖像交界處存在紙病缺陷等復(fù)雜情況時(shí),還需進(jìn)一步處理。緩存完整的幀圖像再處理的方式會浪費(fèi)大量的時(shí)間,無法滿足實(shí)時(shí)硬件數(shù)據(jù)流的處理要求。
針對以上缺陷提取算法的不足,本課題提出了一種基于“選擇性緩存處理機(jī)制”的算法。該算法利用“僅緩存紙病行圖像并處理”的思想,在圖像預(yù)處理的同時(shí)標(biāo)記含有紙病缺陷的行圖像,并進(jìn)行特征提取等步驟。由于紙張生產(chǎn)過程中產(chǎn)生的紙病區(qū)域面積僅占整個(gè)紙張面積的萬分之一左右,因此,僅對紙病區(qū)域進(jìn)行緩存處理能大大減少系統(tǒng)的數(shù)據(jù)處理量,且流水線處理模式無需打斷連續(xù)的數(shù)據(jù)流,可以在很大程度上提高處理速度。
“CCD+FPGA”模式通過引入選擇性緩存處理機(jī)制并結(jié)合FPGA并行流水線的優(yōu)勢,可從根本上解決紙病檢測系統(tǒng)海量數(shù)據(jù)的實(shí)時(shí)性處理問題。
圖1 紙病檢測系統(tǒng)硬件結(jié)構(gòu)圖Fig.1 Hardware structure diagram of paper defect detection system
紙張表面質(zhì)量檢測的硬件系統(tǒng)主要由光源、圖像采集模塊、FPGA處理系統(tǒng)以及顯示器4部分組成,其結(jié)構(gòu)如圖1所示。
其中,系統(tǒng)光源為背光源,可以使待檢測紙張的缺陷信息輪廓清晰可見。圖像采集模塊包括CCD線陣相機(jī)與編碼器,線陣相機(jī)可以較好地拍攝到紙張?jiān)谶\(yùn)行時(shí)的圖像;編碼器用來實(shí)時(shí)檢測紙張運(yùn)行速度、控制CCD線陣相機(jī)行頻,實(shí)現(xiàn)圖像數(shù)據(jù)的同步采集;FPGA處理系統(tǒng)主要由工業(yè)相機(jī)控制模塊、低電壓分差信號-晶體管羅輯(LVDS-TTL)電平轉(zhuǎn)換模塊、預(yù)處理模塊、選擇性緩存處理機(jī)制控制模塊、同步動態(tài)隨機(jī)存儲器(Synchronous Dynamic Random Access Memory,SDRAM)控制模塊、支持向量機(jī)(Support Vector Machine,SVM)分類器模塊與視頻圖形陣列(Video Graphics Array,VGA)顯示控制模塊組成,配合圖像采集模塊完成對紙病圖像的采集處理與分類辨識。
1.2.1 傳統(tǒng)狀態(tài)機(jī)模式處理圖像的不足
目前,傳統(tǒng)的FPGA圖像處理模式為先緩存整幅圖像,再使用狀態(tài)機(jī)分步處理圖像。如圖2所示,若一幅紙病圖像需要濾波等7個(gè)步驟進(jìn)行處理,則FP?GA對應(yīng)搭建7個(gè)硬件邏輯塊分步處理,只有狀態(tài)機(jī)跳到相應(yīng)的狀態(tài),對應(yīng)的硬件邏輯塊才開始工作。
圖2 FPGA狀態(tài)機(jī)模式Fig.2 FPGAstatemachinemode
1.2.2 并行流水線模式處理圖像的優(yōu)勢
FPGA最大的優(yōu)勢在于其擁有并行流水線,無需緩存整幅圖像即可直接對數(shù)據(jù)流進(jìn)行流水線處理。如圖3所示,F(xiàn)PGA并行流水線模式同樣為7個(gè)步驟,F(xiàn)PGA搭建7級流水線模塊,同一時(shí)刻不同功能模塊同時(shí)在工作,圖片數(shù)據(jù)流經(jīng)多級處理完成。并行流水線大大提高了FPGA硬件模塊的使用效率,也提高了處理速度。
1.2.3 流水線處理模板的實(shí)現(xiàn)
本系統(tǒng)生成3×3流水線處理模板需要利用移位隨機(jī)存取存儲器(Shift Random Access Memory,Shift RAM)來完成。如圖4所示,先使用Shift RAM緩存2行圖像,與當(dāng)前輸入行數(shù)據(jù)組成3行,即可得到3×3模板。本系統(tǒng)使用行像素為2048的8位CCD相機(jī),則所需的Shift RAM深度為2048,數(shù)據(jù)寬度為8 bit。
圖3 FPGA并行流水線模式Fig.3 FPGAparallel pipelinemode
圖4 Shift RAM緩存3×3矩陣示意圖Fig.4 Shift RAMbuffer 3×3 matrix diagram
高速、高清的工業(yè)相機(jī)采集到的數(shù)據(jù)量過大所導(dǎo)致的檢測系統(tǒng)速度較低,是當(dāng)前紙病檢測系統(tǒng)研究所遇到的瓶頸問題。為了突破由于待處理圖像數(shù)據(jù)量過大所導(dǎo)致的檢測速度慢的障礙,需通過算法以減少待處理圖像的數(shù)據(jù)量。值得借鑒的是,人眼每秒鐘所攝入的場景信息約為40~50 M,而人腦可以處理的信息則只有幾百bit的量級。這樣的量級差使得輸入量與處理量不對等,所以產(chǎn)生了選擇注意機(jī)制:人腦僅對最感興趣的“視點(diǎn)”區(qū)域進(jìn)行記憶處理,而不會去記憶“余光”區(qū)域[13-15]。參考人眼視覺中的選擇注意機(jī)制,只關(guān)注含有紙病區(qū)域的部分,而無需注意大量的正常紙張區(qū)域,因此,本研究提出了“選擇性緩存處理”機(jī)制。該機(jī)制可大量減少待處理圖像數(shù)據(jù)量,從而提高紙病在線辨識的速度,以解決目前紙病檢測技術(shù)中的瓶頸問題。如圖5所示,傳統(tǒng)方法處理模式需要緩存整幅圖像,并對整幅圖像進(jìn)行特征值提取,待處理數(shù)據(jù)量巨大。而選擇性緩存處理機(jī)制僅僅緩存極少部分的紙病圖像,并進(jìn)行特征值提取,極大地減少了待處理的圖像數(shù)據(jù)量。
傳統(tǒng)的紙病檢測系統(tǒng)都是針對一幅完整的圖像進(jìn)行包圍盒分割或閾值分割等方法處理的[16],如圖6(a)所示,若紙病區(qū)域存在于兩幀圖像交界處,還需進(jìn)一步處理。而選擇性緩存處理機(jī)制與傳統(tǒng)方法最大的區(qū)別就是無需緩存整幅圖像再按幀進(jìn)行處理,而是直接在流水線上對行數(shù)據(jù)進(jìn)行預(yù)處理、標(biāo)記與檢測,并僅緩存含紙病標(biāo)記的行圖像數(shù)據(jù)進(jìn)行后續(xù)辨識,如圖6(b)所示。該機(jī)制能極大地減少FPGA所需緩存處理的數(shù)據(jù)量,減少SDRAM的使用,并大大縮短數(shù)據(jù)讀寫延遲,從而提高運(yùn)行速度。
選擇性緩存機(jī)制是以行像素為基本處理單元,在流水線上逐個(gè)像素地對每行數(shù)據(jù)進(jìn)行檢測。首先使用Shift RAM緩存一行像素,若發(fā)現(xiàn)像素點(diǎn)存在疑似紙病特征標(biāo)記,則將整行圖像緩存入SDRAM,拉高標(biāo)志位并記錄更新特征量及位置坐標(biāo)。直到連續(xù)幾行未檢出疑似紙病特征標(biāo)記則結(jié)束緩存,復(fù)位標(biāo)志位并將提取到的紙病特征送入SVM分類器中進(jìn)行分類辨識。選擇性緩存機(jī)制的處理過程如圖7所示。
2.2.1 紙病特征標(biāo)記與檢測
在一幅圖像中,設(shè)每個(gè)像素點(diǎn)的灰度值為Px,y[7,0],其中x代表該像素點(diǎn)在行中的位置,y代表該像素點(diǎn)所在的行數(shù),灰度值為8位。以flag_Px.y為每個(gè)像素Px,y的特征標(biāo)記。設(shè)正常紙張的灰度均值為gray_mean,其中g(shù)ray_mean∈(8'h00,8'hff)。以gray_mean為基準(zhǔn),認(rèn)為以δ為半徑的鄰域內(nèi)是正常紙張灰度。像素點(diǎn)特征標(biāo)記公式見式(1)。
圖5 傳統(tǒng)方法(a)與選擇性緩存機(jī)制(b)處理數(shù)據(jù)量比較Fig.5 Comparison of dataprocessingcapacity between traditional methods(a)and selectivebuffer mechanism(b)
圖6 選擇性緩存處理機(jī)制與傳統(tǒng)方法對比Fig.6 Comparison between selectivebuffer processing mechanism and traditional methods
圖7 選擇性緩存機(jī)制處理過程Fig.7 Processof selectivebuffer processingmechanism
2.2.2 紙病區(qū)域選擇性緩存
設(shè)紙病區(qū)域標(biāo)志位為start_f,一行紙病中存在疑似紙病標(biāo)記的像素點(diǎn)集記為Cy,則若某一行中存在像素被標(biāo)記,即Cy??,則拉高紙病區(qū)域標(biāo)志位start_f,代表已檢測到紙病區(qū)域上沿,開始緩存。若連續(xù)幾行未檢測到疑似紙病特征標(biāo)記,即Cy∈?,則將標(biāo)志位start_f復(fù)位,代表紙病區(qū)域已結(jié)束。紙病區(qū)域上下沿標(biāo)記如式(2)所示。
當(dāng)紙病區(qū)域標(biāo)志位被拉高,則開始向SDRAM中緩存圖像,直到紙病區(qū)域標(biāo)志位復(fù)位則結(jié)束緩存。此時(shí),SDRAM中已緩存僅含紙病區(qū)域行圖像,如圖8所示。
圖8 緩存紙病區(qū)域行圖像Fig.8 Lineimageof paper defect area
設(shè)整個(gè)紙病區(qū)域圖像左右邊界為xmin與xmax,則紙病區(qū)域的左右邊界可由式(4)求得。
確定紙病區(qū)域邊界后,SDRAM中緩存僅含紙病區(qū)域圖像,如圖9所示。
圖9 SDRAM中緩存的紙病區(qū)域Fig.9 The paper defect area in SDRAM
緩存完成僅含紙病區(qū)域圖像的同時(shí),紙病特征量也實(shí)時(shí)更新完成,之后將記錄的紙病特征量與紙病坐標(biāo)發(fā)送至SVM分類器中進(jìn)行辨識,對SDRAM中緩存的紙病圖像進(jìn)行分類。分類完成后,將分類結(jié)果與紙病區(qū)域圖像一同發(fā)送至上位機(jī)。
紙病檢測算法流程如圖10所示,主要包括圖像預(yù)處理、選擇性緩存處理機(jī)制、分類辨識3個(gè)部分。
為消除圖像中的噪聲,本系統(tǒng)首先使用中值濾波消噪,其次使用Sober算法提取紙病邊緣,再使用腐蝕膨脹算法濾除孤立邊緣噪點(diǎn);最后將邊緣信息與灰度圖像疊加得到去噪增強(qiáng)的灰度圖像,則可以獲得無噪聲的紙病邊緣與紙病灰度圖像信息,以供后續(xù)辨識處理。圖像預(yù)處理流水線如圖11所示。
在紙張行圖像預(yù)處理及邊緣標(biāo)記之后,選擇性緩存處理機(jī)制會根據(jù)行像素中是否存在標(biāo)記點(diǎn)作為緩存并處理該行圖像或僅更新灰度的基準(zhǔn)。若該行像素存在標(biāo)記,則將該行圖像緩存至SDRAM中,并記錄該行像素各特征量;若該行像素不存在標(biāo)記,則僅計(jì)算平均灰度,更新灰度基準(zhǔn),不緩存圖像。當(dāng)連續(xù)多行未標(biāo)記,則認(rèn)為緩存完成一幅紙病行圖像。
圖10 紙病檢測算法流程圖Fig.10 Flow chart of paper defect detection algorithm
常見的紙張缺陷包括黑斑、裂口、劃痕、孔洞、邊裂等。其中,依照形態(tài)特征可區(qū)分出條狀缺陷與塊狀缺陷,結(jié)合位置與灰度特征即可將以上5種紙病區(qū)分,如圖12所示。
本課題采集大量的紙病缺陷并對其進(jìn)行特征提取,結(jié)合特征量計(jì)算難度與區(qū)分度的考慮,最終選取周長(T)、面積(A)、周長的平方與面積比(E)、灰度均值(m)作為特征參數(shù)。表1列出了5種常見外觀紙病的特征值。
圖11 圖像預(yù)處理流水線Fig.11 Image preprocessing pipeline
其中,周長與面積像素點(diǎn)個(gè)數(shù)直接在流水線上進(jìn)行標(biāo)記與統(tǒng)計(jì)。通過Sober算法標(biāo)記邊界,邊界像素點(diǎn)的數(shù)量記為周長;通過動態(tài)雙閾值標(biāo)記紙病部分,標(biāo)記部分記為面積。通過計(jì)算E可以區(qū)分紙病的形態(tài)特征,再結(jié)合灰度均值進(jìn)行紙病分類。紙張表面缺陷特征量提取完成后,使用SVM分類器對缺陷進(jìn)行分類和識別。
圖12 常見的紙病類型Fig.12 Common types of paper defects
表1 5種常見外觀紙病的特征值Table 1 Eigenvalues of five common appearance paper defects
本系統(tǒng)開發(fā)平臺為Quartus II 13.1,F(xiàn)PGA運(yùn)行主頻為100 MHz,CCD相機(jī)實(shí)時(shí)輸出像素時(shí)鐘為40 MHz,一行為2048個(gè)像素點(diǎn)。設(shè)計(jì)工程采用模塊化設(shè)計(jì)。對項(xiàng)目編譯布局布線后,F(xiàn)PGA片內(nèi)資源占用情況如表2所示。由表2可知,該系統(tǒng)所占用的FPGA硬件資源極少,有效地減少了硬件成本。
為了驗(yàn)證本算法的實(shí)驗(yàn)處理效果,選取行像素尺寸為2048且具有不同大小、形狀以及位置紙張缺陷的多張紙幅進(jìn)行了測試。使用選擇性緩存處理機(jī)制進(jìn)行紙病提取與檢測,由于篇幅所限,僅給出了其中3張紙幅的測試結(jié)果,如圖13所示。
圖13(a)~圖13(c)顯示了具有不同復(fù)雜程度紙張缺陷的紙幅原始圖像。圖13(d)~圖13(f)分別為選擇性緩存處理機(jī)制緩存至SDRAM中的紙病區(qū)域行圖像。
緩存的疑似紙病行圖像經(jīng)流水線識別定位處理后,提取紙病區(qū)域與紙病特征量,將紙病特征量送入SVM分類器中進(jìn)一步分類,分類完成后,將分類結(jié)果與對應(yīng)的紙病區(qū)域圖像反饋回上位機(jī)(見圖14)。
實(shí)驗(yàn)表明,紙幅上紙張缺陷的大小、形狀以及位置并不會影響算法的執(zhí)行效率和精準(zhǔn)度,常見的紙張缺陷如黑斑、劃痕、孔洞、邊裂可以被準(zhǔn)確地提取并分類。由于該方法將邊緣檢測后的二值圖像與濾波后的灰度圖像相疊加,因此在預(yù)處理中已經(jīng)被邊緣檢測標(biāo)記出的紙病缺陷均可以被完整地提取出來。
表2 FPGA片內(nèi)資源占用情況Table 2 FPGA on chip resource usage
本課題所提方法(基于選擇性緩存處理機(jī)制的CCD+FPGA模式)及其他模式的處理效果對比如表3所示。由表3可知,在檢出率與辨識準(zhǔn)確率與其他模式大體相同的情況下,CCD+FPGA模式的處理速度比“CCD+PC”模式快了300倍,比“CCD+FPGA+PC”模式快了約2.5倍;而SDRAM占用相比于“CCD+PC”和“CCD+FPGA+PC”模式分別減少了3/4和2/3。由此可知,選擇性緩存處理機(jī)制可以在保證檢測精度的同時(shí)大幅提高檢測速度,減少存儲器資源占用。
圖13 紙張選擇性緩存處理區(qū)域數(shù)據(jù)與原數(shù)據(jù)對比Fig.13 Comparison between the data of paper selective buffer processing area and the original data
圖14 CCD+FPGA模式所提取的紙病缺陷Fig.14 Paper defectsextracted by CCD+FPGA mode
表3 CCD+FPGA模式與其他模式處理效果對比Table 3 Comparison of the treatment effect between CCD+FPGA mode and other modes
本課題提出了一種基于選擇性緩存處理機(jī)制的現(xiàn)場可編程邏輯門陣列(FPGA)紙病檢測系統(tǒng),該機(jī)制參考人眼視覺中存在選擇性注意機(jī)制的特點(diǎn),并結(jié)合FPGA的流水線并行優(yōu)點(diǎn),提出了一種無需緩存全部圖像而直接在圖片數(shù)據(jù)流上使用流水線模式進(jìn)行紙病預(yù)處理、檢測與辨識的方案。
選擇性緩存機(jī)制解決了傳統(tǒng)方法需要緩存整張圖片再作處理的局限,極大地節(jié)約了存儲器資源與存入讀取的時(shí)間消耗,可以更加快速地實(shí)現(xiàn)紙病的提取。該方案具有處理速度快、算法效率高、占用資源少、適應(yīng)能力強(qiáng)等優(yōu)點(diǎn),在現(xiàn)場實(shí)時(shí)性較強(qiáng)的應(yīng)用中優(yōu)勢尤為明顯,十分適合用于現(xiàn)代化高速紙機(jī)上的紙病缺陷檢測。
基于流水線并行的選擇性緩存處理機(jī)制不僅可用于紙病檢測系統(tǒng),因該機(jī)制檢測速度快且占用資源少,所以也尤其適用于其他高速圖像數(shù)據(jù)流的目標(biāo)檢測場合,如織物瑕疵檢測等,具有廣泛的應(yīng)用前景。