湯 偉 王先通,* 王 鋒 王孟效 邱錦強
(1.陜西科技大學電氣與信息工程學院,陜西西安,710021;2.浙江力諾流體控制科技股份有限公司,
浙江瑞安,325200;3.陜西西微測控工程有限公司,陜西咸陽,712081)
?
基于FPGA和CCD相機的紙病檢測系統(tǒng)的設計與實現(xiàn)
湯偉1王先通1,*王鋒2王孟效3邱錦強1
(1.陜西科技大學電氣與信息工程學院,陜西西安,710021;2.浙江力諾流體控制科技股份有限公司,
浙江瑞安,325200;3.陜西西微測控工程有限公司,陜西咸陽,712081)
摘要:針對高速紙機紙病檢測時,圖像數(shù)據(jù)處理量大和實時性的要求,文中采用FPGA(Field Programmable Gate Array)和線陣CCD(Charge-coupled Device)相機技術,介紹了一種高速紙病檢測系統(tǒng)的設計。利用FPGA并行性和高速運算能力的特點,控制線陣CCD實現(xiàn)高速下圖像采集和進行紙病圖像預處理,抓取出紙病圖像并上傳到上位機,然后利用灰度閾值分割和二值圖像分型盒維數(shù)的方法確定紙病類型。結果表明,該設計有效提高了紙病檢測速度,降低了成本。
關鍵詞:FPGA;紙病檢測;Sobel邊緣檢測;Open CV;分型盒維數(shù)
隨著科學技術的進步,造紙工業(yè)正向高速度、高精度和自動化方向發(fā)展,紙幅幅寬可達15 m,紙機速度可達1800 m/min[1]。但是,紙機高速運行也加大了出現(xiàn)紙幅缺陷的風險,進而影響產(chǎn)品質(zhì)量,所以,紙幅表面缺陷檢測越來越受到造紙企業(yè)的關注。線陣CCD(Charge-coupled Device)相機的光電信號轉換和自掃描速度非???具有很好的動態(tài)采集效果,可以解決高速運行紙幅的圖像采集問題。高速、高分辨率的CCD相機在進行圖像采集時,必然會產(chǎn)生大量的圖像數(shù)據(jù),對圖像處理系統(tǒng)的數(shù)據(jù)處理能力和實時性提出了非常高的要求。傳統(tǒng)的基于機器視覺的計算機紙病檢測系統(tǒng),檢測速度慢、成本高,難以滿足高速紙幅缺陷檢測的實時性,而基于FPGA(Field Programmable Gate Array)和DSP(Digital Signal Processor)的紙病檢測系統(tǒng)又具有結構復雜、開發(fā)周期長、通用性較差的缺點[2]。為了解決這些問題,在研究紙病檢測系統(tǒng)原理的基礎上,本文設計了一種基于FPGA和計算機的高速紙病檢測系統(tǒng)。
1紙病檢測系統(tǒng)原理
如圖1所示,系統(tǒng)開機后,由Avalon總線實現(xiàn)對CCD相機的初始化配置,由NIOS Ⅱ軟核處理器控制圖像采集模塊[3]。在圖像采集模塊的控制作用下,線陣CCD相機采集LED光源照射下的高速運行的紙幅信息,將光學信號轉換成電信號。電信號經(jīng)過A/D轉換之后,為防止數(shù)據(jù)丟失先緩存到FIFO(先入先出)緩存中,然后傳輸?shù)絊DRAM1。在SDRAM控制器的作用下,再從存儲器中提取圖像數(shù)據(jù),并傳輸?shù)綀D像預處理模塊。如果經(jīng)過邊緣檢測確定有紙病,則抓取出紙病圖像存入到SDRAM2中,同時提取紙病信息,包括所在幀的行、場位置信息,再經(jīng)過封裝之后和SDRAM2中原圖像數(shù)據(jù)傳輸?shù)缴衔粰C,根據(jù)上傳的紙病圖像數(shù)據(jù)由上位機判別出紙病類型。如果經(jīng)過處理之后沒有發(fā)現(xiàn)紙病,則不上傳圖像數(shù)據(jù),將FIFO緩存清除。
2紙病檢測系統(tǒng)組成
基于FPGA和CCD相機的紙病檢測系統(tǒng)由硬件部分和軟件部分組成,該系統(tǒng)的結構框圖如圖1所示。
2.1線陣CCD相機
圖像傳感器是紙病檢測系統(tǒng)中的一個關鍵環(huán)節(jié),線陣CCD相機將采集到的模擬信號傳送給視頻處理電路,以去除復位脈沖干擾和噪聲信號,并進行A/D轉化,將模擬信號轉換成數(shù)字信號并傳輸給FPGA外部SDRAM進行數(shù)據(jù)緩存。在表面檢測過程中,可
圖1 基于FPGA和CCD相機的紙病檢測系統(tǒng)框圖
采用面陣CCD和線陣CCD;對于高速運行的紙幅來說,更適合采用線陣CCD。本系統(tǒng)中圖像采集設備為DALSA公司的Spyder3 Color系列雙線CCD線陣工業(yè)數(shù)字攝像機。該系列使用DALSA獨有的雙線掃描傳感器(Dual-line Sensor),通過雙線彩色(Biliner Color)技術將線陣傳感器上的一條線交替感應R、B分量信息,另一條線感應G分量信息,然后以插值的方法得到每個像素的RGB分量信息。該系列相機采用Camera Link串行接口,傳輸距離可達100 m。
為了去除復位脈沖干擾和噪聲信號,圖像信息經(jīng)過CCD相機采集之后需進入視頻處理電路,其組成單元主要包括:前置放大、相關雙采樣、箝位、濾波輸出、行緩沖、輸出接口電路等。從CCD器件接受的信號經(jīng)過前置放大后成為差分信號輸出,然后進入CDS進行相關雙采樣處理,得到初步去噪后的信號;再經(jīng)過低通濾波器濾除CCD驅動脈沖的脈沖干擾,由增益放大電路放大到A/D轉換器需要的電壓,進行A/D變換得到數(shù)字信號,并由緩存器緩存,由LVDS接口芯片驅動后輸出。
2.2Camera Link接口
Camera Link接口是一種數(shù)字通信接口,由National Semiconductor公司的Channel Link技術發(fā)展而來,具有數(shù)據(jù)傳輸速率高、數(shù)據(jù)接口輸出采用線數(shù)少、連接電纜容易制造、通用性好的優(yōu)點。標準的Camera Link接口提供3類信號,分別是高速相機控制信號、低速串行命令通信信號和高速視頻信號。高速相機控制信號是4對LVDS差分信號,即相機控制信號1(CC1)、相機控制信號2(CC2)、相機控制信號3(CC3)及相機控制信號4(CC4),分別是外同步信號、重置信號、向前信號及保留信號。低速串行命令通信信號是2對LVDS信號SerTFG和SerTC,進行相機與板卡之間異步通信信號,實現(xiàn)對相機的配置和對相機寄存器的查詢[4]。
2.3FPGA
FPGA作為軟件部分的載體,是整個系統(tǒng)的控制核心。在時序驅動模塊,FPGA生成時序脈沖控制線陣CCD器件進行自掃描,采集圖像數(shù)據(jù),實現(xiàn)光信號到電信號的轉變[5]。FPGA采用Altera公司Cyclone Ⅳ系列中的EP4CE10資源,它具有10320個邏輯單元(LEs)、46個M9K存儲器模塊,每個模塊都具有9 kb的嵌入式SDRAM存儲器,并且可以根據(jù)需要配置成單端口、雙端口RAM以及嵌入式FIFO存儲器或者ROM;還具有8個PLL、10個全局時鐘網(wǎng)絡,可以滿足不同模塊的時鐘頻率。有23個嵌入式18×18乘法器,可以實現(xiàn)DSP處理密集型應用。其最大用戶接口179個,具有高達840 Mb/s發(fā)送器(Tx)、875 Mb/s接收器(Rx)的LVDS接口,能支持高達200 MHz的DDR2 SDRAM和167 MHz的DDR SDRAM,可以充分滿足高速視頻緩存。
2.4上位機軟件
上位機軟件采用基于VC 2010和Open CV的開發(fā)平臺。Open CV是由Intel公司資助的開源計算機視覺庫,由一系列C函數(shù)和C++類構成,能夠實現(xiàn)圖像處理和計算機視覺方面的很多通用算法。Open CV的功能非常強大,能夠實現(xiàn)對圖像數(shù)據(jù)的操作、對圖像和視頻的輸入輸出、對矩陣和向量的操作以及線性代數(shù)的算法程序和對各種結構進行分析等。利用以上平臺開發(fā)出相應程序,對上傳到上位機的紙病圖像數(shù)據(jù)實現(xiàn)雙閾值化,計算二維盒維數(shù),根據(jù)紙病圖像的灰度特征和二維盒維數(shù)特征識別紙病類型。
3紙病檢測系統(tǒng)設計
3.1FPGA內(nèi)部邏輯設計
在系統(tǒng)設計中,如果把所有的圖像信息全部上傳到上位機,用PC判斷有無紙病和紙病類型,會占用大量的CPU內(nèi)存,不但功耗大,而且,計算速度慢、效率低,達不到實時性的功效。所以,在系統(tǒng)設計中采用的方案是,FPGA接收從CCD相機傳送的圖像數(shù)據(jù),并緩存到外部SDRAM中,然后圖像處理模塊從SDRAM中讀取圖像數(shù)據(jù)。如果FPGA判斷出圖像數(shù)據(jù)出現(xiàn)紙病,則提取出幀地址信息、相應像素點的位置信息等,封裝后經(jīng)以太網(wǎng)傳送到上位機,進行進一步的紙病識別并顯示。在軟件實現(xiàn)時,可以通過調(diào)用宏功能模塊、編寫Verilog HDL代碼,構建相應功能模塊,以實現(xiàn)整個系統(tǒng)邏輯。軟件部分包括CCD相機配置模塊、圖像采集模塊、SDRAM控制器模塊、圖像預處理模塊和PC上位機模塊。
圖2 行有效信號時序
圖3 場有效信號時序
3.1.1圖像捕捉模塊設計
圖像數(shù)據(jù)傳輸與行、場有效信號的時序關系如圖2和圖3所示。在行有效信號為高電平時,在每個PCLK時鐘周期,傳感器送出一個10位的像素數(shù)據(jù),本設計中圖像為1280×1024分辨率,因此,在一個行有效的時間段內(nèi),圖像捕捉模塊共接受1280個像素。在幀有效信號為高電平時,共接受1024行數(shù)據(jù)。
3.1.2SDRAM控制器模塊設計
在SDRAM控制器模塊的控制下,信號從外部SDRAM進入圖像預處理模塊,進行圖像邊緣檢測,提取紙病信息。本設計所選用的FPGA具有46個9k RAM塊,考慮到圖像的容量和動態(tài)圖形處理功能的擴展,選用存儲容量為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控制器至少需要完成激活、讀寫操作、預充電、刷新和空操作等5個主要功能。激活:SDRAM在進行讀寫操作前,必須先將位于相應BANK中的行地址進行激活,然后才能對相應區(qū)域進行讀寫。此時,地址線上的地址是由行地址和BANK選擇地址組成。讀寫操作:將圖像數(shù)據(jù)讀出或寫入SDRAM中。由于采用2個BANK合并存儲像素,所以SDRAM控制器中需要仿真成4個數(shù)據(jù)端口(2個寫端口和2個讀端口),在同一時刻將1個像素RGB從2個BANK中同時寫入或讀出。預充電:對工作行中的所有存儲體進行數(shù)據(jù)重寫,并復位其行地址。刷新操作需要滿足一定的時間要求,必須在一定的時間段內(nèi)完成1次刷新操作,否則會出現(xiàn)數(shù)據(jù)丟失或者不穩(wěn)定的情況。
3.1.3圖像預處理模塊設計
將從相機采集的圖像數(shù)據(jù)經(jīng)FIFO緩存后傳輸?shù)絊DRAM1中,直到寫滿之后,傳輸?shù)綀D像預處理模塊進行邊緣檢測和紙病區(qū)域的提取。由于CCD相機輸出的圖像數(shù)據(jù)是RGB格式,而邊緣檢測算法是基于圖像的灰度,所以在處理之前要先進行圖像數(shù)據(jù)的格式轉換,可以通過轉化公式(1)來實現(xiàn)。但是,由于FPGA不便于進行浮點數(shù)運算,所以要將式(1)等號右邊各項乘以128后相加所得值,再右移7位來等效代換,得到式(2),進而避免浮點數(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)點,應用較為廣泛[6]。本設計采用3×3的模板卷積計算邊緣檢測值,其中,圖4是3×3像
圖4 3×3像素窗口
素窗口,p1~p9為相鄰的9個像素,中間像素p5為待檢測像素。根據(jù)Sobel算法對此像素窗口中p5灰度進行濾波運算,計算公式如式(3)和式(4)。
(3)
(4)
式(3)中,X、Y是2組3×3的Sobel矩陣算子,分別為橫向和縱向的權值。式(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(先入先出)模塊。
該宏功能模塊共設置了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)用宏功能模塊設計運算電路,實現(xiàn)Sobel算法中的乘加及開方運算。
步驟Ⅲ:若oDATA為0,則p5為邊緣像素點,計數(shù)器Counter加1;下一個時鐘周期到來時刷新數(shù)據(jù)窗口,重復步驟Ⅰ,直到讀取出一幀數(shù)據(jù)。若Counter大于給定閾值,則認為圖像中存在紙病,則把SDRAM2中的圖像數(shù)據(jù)上傳到上位機;如果Counter小于給定閾值,則可以認為圖像中不存在紙病,則把SDRAM2中數(shù)據(jù)清零。
表1 主要輸入/輸出信號描述
4種常見紙病圖像的Sobel邊緣檢測圖像如圖6所示。
3.2上位機模塊設計
上位機模塊讀取存儲在硬盤中的圖像數(shù)據(jù),提取出包含紙病區(qū)域的最小矩形,根據(jù)缺陷區(qū)域輪廓的面積、盒維數(shù)等信息,識別出紙病類型,并在人機界面中顯示出來。圖7顯示了常見紙病,如黑斑、孔洞、褶皺和裂痕等;分析它們的特點,不難發(fā)現(xiàn)孔洞和黑
圖7 常見紙病圖像及其二值化圖像
斑的形狀特征比較接近,褶皺和裂痕的形態(tài)特征十分相似;僅從紙病的灰度、形狀、面積很難將它們區(qū)分開來。根據(jù)紙病圖像的形態(tài)特征、灰度特征和分形特征,采用基于圖像形態(tài)和盒維數(shù)的紙病識別方案[7]。首先采用雙閾值法從背景中分割出紙病區(qū)域,然后計算反映紙病形狀類型的盒維數(shù),最后結合圖像灰度閾值和盒維數(shù)計算結果,確定紙病的具體類型。為了確定不同類型紙病的盒維數(shù)分布特征,取包含黑斑、裂痕、孔洞和褶皺的各25個紙病樣本,編程計算不同紙病圖像的盒維數(shù),分析所得結果,求出盒維數(shù)分布范圍和均值(見表2)。由表2可以看出,黑斑和孔洞的幾何形態(tài)傾向于圓形分布,盒維數(shù)比較接近;裂痕和褶皺的幾何形態(tài)傾向于線性分布,盒維數(shù)比較接近,但是幾何形態(tài)不同的紙病類型盒維數(shù)差別較大。從圖7可以看出,孔洞和黑斑的二值化圖像差別很大,裂痕和褶皺的灰度均值差別也很大。所以,結合紙病圖像的盒維數(shù)和灰度均值很容易識別出紙病的類型。
表2 不同類型紙病盒維數(shù)分布特征
在VC++和Open CV平臺中編程實現(xiàn)雙閾值分割算法,二值化紙病圖像,再在二值化圖像中提取出紙病區(qū)域所在最小矩形,然后傳輸?shù)胶芯S數(shù)計算程序,計算出圖像的盒維數(shù)。最后,結合表2和紙病圖像灰度,判別及輸出紙病。
4結束語
基于FPGA(Field Programmable Gate Array)的硬件數(shù)字電路,處理數(shù)據(jù)時具有并行性、計算速度快的優(yōu)點,對于算法簡單、步驟單一的低級圖像處理算法如圖像濾波、邊緣檢測等具有非常好的適應性。與傳統(tǒng)的基于機器視覺相比,該系統(tǒng)能夠快速判斷出是否有紙病產(chǎn)生,同時,僅將紙病圖像數(shù)據(jù)傳輸?shù)缴衔粰C,大大減少了計算機的工作量,縮短了紙病檢測的時間,提高了整個系統(tǒng)的實時性。與基于DSP(Digital Signal Processor)嵌入式系統(tǒng)的紙病檢測系統(tǒng)相比,該系統(tǒng)具有并行處理程度高、集成度高、可移植性好和硬件電路結構簡單等優(yōu)點。Open CV作為一個開源的計算機視覺庫,采用優(yōu)化的C代碼編寫,能夠充分利用多核處理器的優(yōu)勢,而且,簡單易用,可以很方便開發(fā)出計算幾何、閾值化等相關應用程序。本設計能夠在滿足實時性的基礎上,識別出常見紙病,基本上達到了設計目的,但對于不常見紙病的識別能力有限,有待進一步研究。
參考文獻
[1]張輝, 王淑梅, 程金蘭, 等. 我國制漿造紙裝備科學技術的發(fā)展[J]. 中國造紙, 2011, 30(4): 55.
[2]黨宏社, 王黎, 周強. 基于FPGA的紙病提取系統(tǒng)的設計[J]. 中國造紙學報, 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的紙病檢測預處理算法的實現(xiàn)[J]. 中國造紙學報, 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]. 中國造紙學報, 2011, 26(4): 41.
(責任編輯:關穎)
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
文獻標識碼:A
文章編號:1000- 6842(2016)01- 0057- 06
作者簡介:湯偉,男,1971年生;教授;主要研究方向:工業(yè)智能控制及工業(yè)高級過程控制。*通信聯(lián)系人:王先通,E-mail:347598407@qq.com。
基金項目:陜西省重點科技創(chuàng)新團隊計劃項目(2014KCT-15)。
收稿日期:2015- 07- 02