湯 偉 王先通,* 王 鋒 王孟效 邱錦強
(1.陜西科技大學(xué)電氣與信息工程學(xué)院,陜西西安,710021;2.浙江力諾流體控制科技股份有限公司,
浙江瑞安,325200;3.陜西西微測控工程有限公司,陜西咸陽,712081)
?
基于FPGA和CCD相機(jī)的紙病檢測系統(tǒng)的設(shè)計與實現(xiàn)
湯偉1王先通1,*王鋒2王孟效3邱錦強1
(1.陜西科技大學(xué)電氣與信息工程學(xué)院,陜西西安,710021;2.浙江力諾流體控制科技股份有限公司,
浙江瑞安,325200;3.陜西西微測控工程有限公司,陜西咸陽,712081)
摘要:針對高速紙機(jī)紙病檢測時,圖像數(shù)據(jù)處理量大和實時性的要求,文中采用FPGA(Field Programmable Gate Array)和線陣CCD(Charge-coupled Device)相機(jī)技術(shù),介紹了一種高速紙病檢測系統(tǒng)的設(shè)計。利用FPGA并行性和高速運算能力的特點,控制線陣CCD實現(xiàn)高速下圖像采集和進(jìn)行紙病圖像預(yù)處理,抓取出紙病圖像并上傳到上位機(jī),然后利用灰度閾值分割和二值圖像分型盒維數(shù)的方法確定紙病類型。結(jié)果表明,該設(shè)計有效提高了紙病檢測速度,降低了成本。
關(guān)鍵詞:FPGA;紙病檢測;Sobel邊緣檢測;Open CV;分型盒維數(shù)
隨著科學(xué)技術(shù)的進(jìn)步,造紙工業(yè)正向高速度、高精度和自動化方向發(fā)展,紙幅幅寬可達(dá)15 m,紙機(jī)速度可達(dá)1800 m/min[1]。但是,紙機(jī)高速運行也加大了出現(xiàn)紙幅缺陷的風(fēng)險,進(jìn)而影響產(chǎn)品質(zhì)量,所以,紙幅表面缺陷檢測越來越受到造紙企業(yè)的關(guān)注。線陣CCD(Charge-coupled Device)相機(jī)的光電信號轉(zhuǎn)換和自掃描速度非???具有很好的動態(tài)采集效果,可以解決高速運行紙幅的圖像采集問題。高速、高分辨率的CCD相機(jī)在進(jìn)行圖像采集時,必然會產(chǎn)生大量的圖像數(shù)據(jù),對圖像處理系統(tǒng)的數(shù)據(jù)處理能力和實時性提出了非常高的要求。傳統(tǒng)的基于機(jī)器視覺的計算機(jī)紙病檢測系統(tǒng),檢測速度慢、成本高,難以滿足高速紙幅缺陷檢測的實時性,而基于FPGA(Field Programmable Gate Array)和DSP(Digital Signal Processor)的紙病檢測系統(tǒng)又具有結(jié)構(gòu)復(fù)雜、開發(fā)周期長、通用性較差的缺點[2]。為了解決這些問題,在研究紙病檢測系統(tǒng)原理的基礎(chǔ)上,本文設(shè)計了一種基于FPGA和計算機(jī)的高速紙病檢測系統(tǒng)。
1紙病檢測系統(tǒng)原理
如圖1所示,系統(tǒng)開機(jī)后,由Avalon總線實現(xiàn)對CCD相機(jī)的初始化配置,由NIOS Ⅱ軟核處理器控制圖像采集模塊[3]。在圖像采集模塊的控制作用下,線陣CCD相機(jī)采集LED光源照射下的高速運行的紙幅信息,將光學(xué)信號轉(zhuǎn)換成電信號。電信號經(jīng)過A/D轉(zhuǎn)換之后,為防止數(shù)據(jù)丟失先緩存到FIFO(先入先出)緩存中,然后傳輸?shù)絊DRAM1。在SDRAM控制器的作用下,再從存儲器中提取圖像數(shù)據(jù),并傳輸?shù)綀D像預(yù)處理模塊。如果經(jīng)過邊緣檢測確定有紙病,則抓取出紙病圖像存入到SDRAM2中,同時提取紙病信息,包括所在幀的行、場位置信息,再經(jīng)過封裝之后和SDRAM2中原圖像數(shù)據(jù)傳輸?shù)缴衔粰C(jī),根據(jù)上傳的紙病圖像數(shù)據(jù)由上位機(jī)判別出紙病類型。如果經(jīng)過處理之后沒有發(fā)現(xiàn)紙病,則不上傳圖像數(shù)據(jù),將FIFO緩存清除。
2紙病檢測系統(tǒng)組成
基于FPGA和CCD相機(jī)的紙病檢測系統(tǒng)由硬件部分和軟件部分組成,該系統(tǒng)的結(jié)構(gòu)框圖如圖1所示。
2.1線陣CCD相機(jī)
圖像傳感器是紙病檢測系統(tǒng)中的一個關(guān)鍵環(huán)節(jié),線陣CCD相機(jī)將采集到的模擬信號傳送給視頻處理電路,以去除復(fù)位脈沖干擾和噪聲信號,并進(jìn)行A/D轉(zhuǎn)化,將模擬信號轉(zhuǎn)換成數(shù)字信號并傳輸給FPGA外部SDRAM進(jìn)行數(shù)據(jù)緩存。在表面檢測過程中,可
圖1 基于FPGA和CCD相機(jī)的紙病檢測系統(tǒng)框圖
采用面陣CCD和線陣CCD;對于高速運行的紙幅來說,更適合采用線陣CCD。本系統(tǒng)中圖像采集設(shè)備為DALSA公司的Spyder3 Color系列雙線CCD線陣工業(yè)數(shù)字?jǐn)z像機(jī)。該系列使用DALSA獨有的雙線掃描傳感器(Dual-line Sensor),通過雙線彩色(Biliner Color)技術(shù)將線陣傳感器上的一條線交替感應(yīng)R、B分量信息,另一條線感應(yīng)G分量信息,然后以插值的方法得到每個像素的RGB分量信息。該系列相機(jī)采用Camera Link串行接口,傳輸距離可達(dá)100 m。
為了去除復(fù)位脈沖干擾和噪聲信號,圖像信息經(jīng)過CCD相機(jī)采集之后需進(jìn)入視頻處理電路,其組成單元主要包括:前置放大、相關(guān)雙采樣、箝位、濾波輸出、行緩沖、輸出接口電路等。從CCD器件接受的信號經(jīng)過前置放大后成為差分信號輸出,然后進(jìn)入CDS進(jìn)行相關(guān)雙采樣處理,得到初步去噪后的信號;再經(jīng)過低通濾波器濾除CCD驅(qū)動脈沖的脈沖干擾,由增益放大電路放大到A/D轉(zhuǎn)換器需要的電壓,進(jìn)行A/D變換得到數(shù)字信號,并由緩存器緩存,由LVDS接口芯片驅(qū)動后輸出。
2.2Camera Link接口
Camera Link接口是一種數(shù)字通信接口,由National Semiconductor公司的Channel Link技術(shù)發(fā)展而來,具有數(shù)據(jù)傳輸速率高、數(shù)據(jù)接口輸出采用線數(shù)少、連接電纜容易制造、通用性好的優(yōu)點。標(biāo)準(zhǔn)的Camera Link接口提供3類信號,分別是高速相機(jī)控制信號、低速串行命令通信信號和高速視頻信號。高速相機(jī)控制信號是4對LVDS差分信號,即相機(jī)控制信號1(CC1)、相機(jī)控制信號2(CC2)、相機(jī)控制信號3(CC3)及相機(jī)控制信號4(CC4),分別是外同步信號、重置信號、向前信號及保留信號。低速串行命令通信信號是2對LVDS信號SerTFG和SerTC,進(jìn)行相機(jī)與板卡之間異步通信信號,實現(xiàn)對相機(jī)的配置和對相機(jī)寄存器的查詢[4]。
2.3FPGA
FPGA作為軟件部分的載體,是整個系統(tǒng)的控制核心。在時序驅(qū)動模塊,FPGA生成時序脈沖控制線陣CCD器件進(jìn)行自掃描,采集圖像數(shù)據(jù),實現(xiàn)光信號到電信號的轉(zhuǎn)變[5]。FPGA采用Altera公司Cyclone Ⅳ系列中的EP4CE10資源,它具有10320個邏輯單元(LEs)、46個M9K存儲器模塊,每個模塊都具有9 kb的嵌入式SDRAM存儲器,并且可以根據(jù)需要配置成單端口、雙端口RAM以及嵌入式FIFO存儲器或者ROM;還具有8個PLL、10個全局時鐘網(wǎng)絡(luò),可以滿足不同模塊的時鐘頻率。有23個嵌入式18×18乘法器,可以實現(xiàn)DSP處理密集型應(yīng)用。其最大用戶接口179個,具有高達(dá)840 Mb/s發(fā)送器(Tx)、875 Mb/s接收器(Rx)的LVDS接口,能支持高達(dá)200 MHz的DDR2 SDRAM和167 MHz的DDR SDRAM,可以充分滿足高速視頻緩存。
2.4上位機(jī)軟件
上位機(jī)軟件采用基于VC 2010和Open CV的開發(fā)平臺。Open CV是由Intel公司資助的開源計算機(jī)視覺庫,由一系列C函數(shù)和C++類構(gòu)成,能夠?qū)崿F(xiàn)圖像處理和計算機(jī)視覺方面的很多通用算法。Open CV的功能非常強大,能夠?qū)崿F(xiàn)對圖像數(shù)據(jù)的操作、對圖像和視頻的輸入輸出、對矩陣和向量的操作以及線性代數(shù)的算法程序和對各種結(jié)構(gòu)進(jìn)行分析等。利用以上平臺開發(fā)出相應(yīng)程序,對上傳到上位機(jī)的紙病圖像數(shù)據(jù)實現(xiàn)雙閾值化,計算二維盒維數(shù),根據(jù)紙病圖像的灰度特征和二維盒維數(shù)特征識別紙病類型。
3紙病檢測系統(tǒng)設(shè)計
3.1FPGA內(nèi)部邏輯設(shè)計
在系統(tǒng)設(shè)計中,如果把所有的圖像信息全部上傳到上位機(jī),用PC判斷有無紙病和紙病類型,會占用大量的CPU內(nèi)存,不但功耗大,而且,計算速度慢、效率低,達(dá)不到實時性的功效。所以,在系統(tǒng)設(shè)計中采用的方案是,FPGA接收從CCD相機(jī)傳送的圖像數(shù)據(jù),并緩存到外部SDRAM中,然后圖像處理模塊從SDRAM中讀取圖像數(shù)據(jù)。如果FPGA判斷出圖像數(shù)據(jù)出現(xiàn)紙病,則提取出幀地址信息、相應(yīng)像素點的位置信息等,封裝后經(jīng)以太網(wǎng)傳送到上位機(jī),進(jìn)行進(jìn)一步的紙病識別并顯示。在軟件實現(xiàn)時,可以通過調(diào)用宏功能模塊、編寫Verilog HDL代碼,構(gòu)建相應(yīng)功能模塊,以實現(xiàn)整個系統(tǒng)邏輯。軟件部分包括CCD相機(jī)配置模塊、圖像采集模塊、SDRAM控制器模塊、圖像預(yù)處理模塊和PC上位機(jī)模塊。
圖2 行有效信號時序
圖3 場有效信號時序
3.1.1圖像捕捉模塊設(shè)計
圖像數(shù)據(jù)傳輸與行、場有效信號的時序關(guān)系如圖2和圖3所示。在行有效信號為高電平時,在每個PCLK時鐘周期,傳感器送出一個10位的像素數(shù)據(jù),本設(shè)計中圖像為1280×1024分辨率,因此,在一個行有效的時間段內(nèi),圖像捕捉模塊共接受1280個像素。在幀有效信號為高電平時,共接受1024行數(shù)據(jù)。
3.1.2SDRAM控制器模塊設(shè)計
在SDRAM控制器模塊的控制下,信號從外部SDRAM進(jìn)入圖像預(yù)處理模塊,進(jìn)行圖像邊緣檢測,提取紙病信息。本設(shè)計所選用的FPGA具有46個9k RAM塊,考慮到圖像的容量和動態(tài)圖形處理功能的擴(kuò)展,選用存儲容量為32 MB的外部SDRAM,將其在存儲空間上劃分成SDRAM1和SDRAM2,各占2個BANK塊,有16 MB存儲空間。由于采集到的每個像素RGB分量各為10位,則每個圖像數(shù)據(jù)為30位,而每個BANK有16 bit數(shù)據(jù)寬,顯然用1個16位寬度的BANK不能存儲1個像素,需采用2個BANK合并存儲像素,即將R[9∶0]和G[9∶5]存入到第1個BANK中,將G[4∶0]和B[9∶0]存入到第2個BANK中。
SDRAM控制器至少需要完成激活、讀寫操作、預(yù)充電、刷新和空操作等5個主要功能。激活:SDRAM在進(jìn)行讀寫操作前,必須先將位于相應(yīng)BANK中的行地址進(jìn)行激活,然后才能對相應(yīng)區(qū)域進(jìn)行讀寫。此時,地址線上的地址是由行地址和BANK選擇地址組成。讀寫操作:將圖像數(shù)據(jù)讀出或?qū)懭隨DRAM中。由于采用2個BANK合并存儲像素,所以SDRAM控制器中需要仿真成4個數(shù)據(jù)端口(2個寫端口和2個讀端口),在同一時刻將1個像素RGB從2個BANK中同時寫入或讀出。預(yù)充電:對工作行中的所有存儲體進(jìn)行數(shù)據(jù)重寫,并復(fù)位其行地址。刷新操作需要滿足一定的時間要求,必須在一定的時間段內(nèi)完成1次刷新操作,否則會出現(xiàn)數(shù)據(jù)丟失或者不穩(wěn)定的情況。
3.1.3圖像預(yù)處理模塊設(shè)計
將從相機(jī)采集的圖像數(shù)據(jù)經(jīng)FIFO緩存后傳輸?shù)絊DRAM1中,直到寫滿之后,傳輸?shù)綀D像預(yù)處理模塊進(jìn)行邊緣檢測和紙病區(qū)域的提取。由于CCD相機(jī)輸出的圖像數(shù)據(jù)是RGB格式,而邊緣檢測算法是基于圖像的灰度,所以在處理之前要先進(jìn)行圖像數(shù)據(jù)的格式轉(zhuǎn)換,可以通過轉(zhuǎn)化公式(1)來實現(xiàn)。但是,由于FPGA不便于進(jìn)行浮點數(shù)運算,所以要將式(1)等號右邊各項乘以128后相加所得值,再右移7位來等效代換,得到式(2),進(jìn)而避免浮點數(shù)運算。
Gray=R×0.299+G×0.587+B×0.114
(1)
Gray=(R×38+G×75+B×15)?7
(2)
邊緣檢測算法通過梯度算法來實現(xiàn),經(jīng)典的邊緣算法有:Sobel模板、Prewitt模板、Roberts模板、Laplace模板等。其中,Sobel算法具有計算簡便、檢測效果好等優(yōu)點,應(yīng)用較為廣泛[6]。本設(shè)計采用3×3的模板卷積計算邊緣檢測值,其中,圖4是3×3像
圖4 3×3像素窗口
素窗口,p1~p9為相鄰的9個像素,中間像素p5為待檢測像素。根據(jù)Sobel算法對此像素窗口中p5灰度進(jìn)行濾波運算,計算公式如式(3)和式(4)。
(3)
(4)
式(3)中,X、Y是2組3×3的Sobel矩陣算子,分別為橫向和縱向的權(quán)值。式(4)中,P為像素窗中9個相鄰像素的矩陣,Gx和Gy分別代表經(jīng)橫向和縱向的邊緣檢測的亮度差分值;G為邊緣檢測值,若此幅值大于局部閾值D,則可判斷像素點p5為邊緣像素;其中,局部閾值D可由其3×3鄰域內(nèi)所有邊緣檢測值的平均值確定。
根據(jù)Sobel算法,對于像素p5點的邊緣檢測,利用式(3)和式(4)計算完成。用FPGA實現(xiàn)圖像邊緣檢測算法步驟。
圖6 Sobel邊緣檢測圖像
步驟Ⅰ:通過調(diào)用移位寄存器Line Buffer獲取3×3的窗口數(shù)據(jù),其原理如圖(5)所示。其中,Altera提供了基于RAM的移位寄存器Line Buffer,即FIFO(先入先出)模塊。
該宏功能模塊共設(shè)置了3個tap。每個tap存儲1024個像素,3個tap將像素分成3行成為一個像素處理窗;隨著時鐘周期,每個數(shù)據(jù)向下一列傳遞,刷新像素數(shù)據(jù)窗數(shù)據(jù)。該模塊主要的輸入/輸出信號描述見表1。
用Verilog HDL語言描述調(diào)用Line Buffer實現(xiàn)3×3的窗口數(shù)據(jù)。
圖5 單行緩存實現(xiàn)3×3數(shù)據(jù)窗口
在獲得3×3窗口所需的像素后,調(diào)用宏功能模塊設(shè)計運算電路,實現(xiàn)Sobel算法中的乘加及開方運算。
步驟Ⅲ:若oDATA為0,則p5為邊緣像素點,計數(shù)器Counter加1;下一個時鐘周期到來時刷新數(shù)據(jù)窗口,重復(fù)步驟Ⅰ,直到讀取出一幀數(shù)據(jù)。若Counter大于給定閾值,則認(rèn)為圖像中存在紙病,則把SDRAM2中的圖像數(shù)據(jù)上傳到上位機(jī);如果Counter小于給定閾值,則可以認(rèn)為圖像中不存在紙病,則把SDRAM2中數(shù)據(jù)清零。
表1 主要輸入/輸出信號描述
4種常見紙病圖像的Sobel邊緣檢測圖像如圖6所示。
3.2上位機(jī)模塊設(shè)計
上位機(jī)模塊讀取存儲在硬盤中的圖像數(shù)據(jù),提取出包含紙病區(qū)域的最小矩形,根據(jù)缺陷區(qū)域輪廓的面積、盒維數(shù)等信息,識別出紙病類型,并在人機(jī)界面中顯示出來。圖7顯示了常見紙病,如黑斑、孔洞、褶皺和裂痕等;分析它們的特點,不難發(fā)現(xiàn)孔洞和黑
圖7 常見紙病圖像及其二值化圖像
斑的形狀特征比較接近,褶皺和裂痕的形態(tài)特征十分相似;僅從紙病的灰度、形狀、面積很難將它們區(qū)分開來。根據(jù)紙病圖像的形態(tài)特征、灰度特征和分形特征,采用基于圖像形態(tài)和盒維數(shù)的紙病識別方案[7]。首先采用雙閾值法從背景中分割出紙病區(qū)域,然后計算反映紙病形狀類型的盒維數(shù),最后結(jié)合圖像灰度閾值和盒維數(shù)計算結(jié)果,確定紙病的具體類型。為了確定不同類型紙病的盒維數(shù)分布特征,取包含黑斑、裂痕、孔洞和褶皺的各25個紙病樣本,編程計算不同紙病圖像的盒維數(shù),分析所得結(jié)果,求出盒維數(shù)分布范圍和均值(見表2)。由表2可以看出,黑斑和孔洞的幾何形態(tài)傾向于圓形分布,盒維數(shù)比較接近;裂痕和褶皺的幾何形態(tài)傾向于線性分布,盒維數(shù)比較接近,但是幾何形態(tài)不同的紙病類型盒維數(shù)差別較大。從圖7可以看出,孔洞和黑斑的二值化圖像差別很大,裂痕和褶皺的灰度均值差別也很大。所以,結(jié)合紙病圖像的盒維數(shù)和灰度均值很容易識別出紙病的類型。
表2 不同類型紙病盒維數(shù)分布特征
在VC++和Open CV平臺中編程實現(xiàn)雙閾值分割算法,二值化紙病圖像,再在二值化圖像中提取出紙病區(qū)域所在最小矩形,然后傳輸?shù)胶芯S數(shù)計算程序,計算出圖像的盒維數(shù)。最后,結(jié)合表2和紙病圖像灰度,判別及輸出紙病。
4結(jié)束語
基于FPGA(Field Programmable Gate Array)的硬件數(shù)字電路,處理數(shù)據(jù)時具有并行性、計算速度快的優(yōu)點,對于算法簡單、步驟單一的低級圖像處理算法如圖像濾波、邊緣檢測等具有非常好的適應(yīng)性。與傳統(tǒng)的基于機(jī)器視覺相比,該系統(tǒng)能夠快速判斷出是否有紙病產(chǎn)生,同時,僅將紙病圖像數(shù)據(jù)傳輸?shù)缴衔粰C(jī),大大減少了計算機(jī)的工作量,縮短了紙病檢測的時間,提高了整個系統(tǒng)的實時性。與基于DSP(Digital Signal Processor)嵌入式系統(tǒng)的紙病檢測系統(tǒng)相比,該系統(tǒng)具有并行處理程度高、集成度高、可移植性好和硬件電路結(jié)構(gòu)簡單等優(yōu)點。Open CV作為一個開源的計算機(jī)視覺庫,采用優(yōu)化的C代碼編寫,能夠充分利用多核處理器的優(yōu)勢,而且,簡單易用,可以很方便開發(fā)出計算幾何、閾值化等相關(guān)應(yīng)用程序。本設(shè)計能夠在滿足實時性的基礎(chǔ)上,識別出常見紙病,基本上達(dá)到了設(shè)計目的,但對于不常見紙病的識別能力有限,有待進(jìn)一步研究。
參考文獻(xiàn)
[1]張輝, 王淑梅, 程金蘭, 等. 我國制漿造紙裝備科學(xué)技術(shù)的發(fā)展[J]. 中國造紙, 2011, 30(4): 55.
[2]黨宏社, 王黎, 周強. 基于FPGA的紙病提取系統(tǒng)的設(shè)計[J]. 中國造紙學(xué)報, 2014, 29(3): 43.
[3]Peng Hui. Design and Implementation of Video Image Capture and Display System Based on FPGA[J]. Computer Science and Application, 2014, 4(19): 22.
[4]劉慧忠, 湯偉. 基于FPGA的紙病檢測預(yù)處理算法的實現(xiàn)[J]. 中國造紙學(xué)報, 2014, 29(1): 56.
[5]Merwan Birem, Francois Berry. Dream Cam: A modular FPGA-based smart camera architecture[J]. Journal of System Architecture, 2014, 60(6): 519.
[6]楊波, 周強, 張剛強. 基于幾何及灰度特征的紙病檢測算法研究[J]. 中國造紙, 2011, 30(9): 51.
[7]殷燕屏, 熊智新, 胡慕伊. 基于閾值分割及分形特征的紙病圖像識別算法研究[J]. 中國造紙學(xué)報, 2011, 26(4): 41.
(責(zé)任編輯:關(guān)穎)
Design and Implementation of Web Inspection System Based on FPGA and CCD Camera
TANG Wei1WANG Xian-tong1,*WANG Feng2WANG Meng-xiao3QIU Jin-qiang1
(1.SchoolofElectricalandInformationEngineering,ShaanxiUniversityofScience&Technology,Xi’an,ShaanxiProvince, 710021;2.ZhejiangLinuoFlowControlTechnologyCo.,Ltd.,Rui’an,ZhejiangProvince, 325200;3.ShaanxiXiweiProcessAutomationEngineeringCo.,Ltd.,Xianyang,ShaanxiProvince, 712081) (*E-mail: 347598407@qq.com)
Abstract:Web inspection of high speed paper machine requires processing a large amount of image data and real-time reacting. Based on the technology of FPGA (Field Programmable Gate Array) and CCD (Charge-coupled Device) linear array camera, this paper introduced a high speed web inspection system. Taking advantage of parallelism and high speed calculating capability of FPGA, it was easy to control linear array CCD achieving high-speed image acquisition, pre-processing paper defects image and extracting the images and upload to the host computer. Then the method of gray threshold segmentation and two value image fractal box dimension were used to identify the type of paper defects. Experimental results showed that this design was able to effectively improve the detection speed and reduce the cost.
Keywords:FPGA; web inspection; Sobel edge detection; Open CV; fractal box dimension
中圖分類號:TS736+.2
文獻(xiàn)標(biāo)識碼:A
文章編號:1000- 6842(2016)01- 0057- 06
作者簡介:湯偉,男,1971年生;教授;主要研究方向:工業(yè)智能控制及工業(yè)高級過程控制。*通信聯(lián)系人:王先通,E-mail:347598407@qq.com。
基金項目:陜西省重點科技創(chuàng)新團(tuán)隊計劃項目(2014KCT-15)。
收稿日期:2015- 07- 02