黨宏社 王 黎 周 強(qiáng)
(陜西科技大學(xué)電氣與信息工程學(xué)院,陜西西安,710021)
近年來(lái),我國(guó)造紙工業(yè)飛速發(fā)展,新上的現(xiàn)代化紙機(jī)幅寬多在9 m以上,車速在1800 m/min以上[1]。為確保這種現(xiàn)代化紙機(jī)生產(chǎn)的紙張質(zhì)量,需對(duì)紙機(jī)生產(chǎn)過(guò)程中產(chǎn)生的紙病進(jìn)行檢測(cè),并對(duì)紙機(jī)進(jìn)行維護(hù)。很多紙病的尺寸都小于1 mm2,為了能在紙機(jī)高速運(yùn)轉(zhuǎn)時(shí)識(shí)別出這種尺寸的紙病,需要高速、高分辨率的攝像機(jī)進(jìn)行圖像采集,這樣必然會(huì)產(chǎn)生大量的圖像數(shù)據(jù)。因此,紙病檢測(cè)系統(tǒng)需要有很強(qiáng)的數(shù)據(jù)處理能力,才能夠在整幅紙張中搜索紙病圖像和進(jìn)行紙病分類,并確保不發(fā)生漏檢和誤檢[2]。傳統(tǒng)的基于機(jī)器視覺(jué)的計(jì)算機(jī)紙病檢測(cè)系統(tǒng)成本較高,很難滿足現(xiàn)場(chǎng)大量數(shù)據(jù)的實(shí)時(shí)處理要求;采用FPGA+DSP的紙病檢測(cè)系統(tǒng)[3]能夠?qū)崿F(xiàn)對(duì)大量數(shù)據(jù)的處理,但針對(duì)不同類型和幅寬的紙機(jī)需要重新設(shè)計(jì)2種處理芯片的程序,降低了系統(tǒng)的通用性。因此,需要設(shè)計(jì)出一套通用的、可剪裁的系統(tǒng),通過(guò)軟硬件配置,快速實(shí)現(xiàn)整個(gè)紙病檢測(cè)系統(tǒng)的組建,降低系統(tǒng)設(shè)計(jì)成本。
紙病檢測(cè)分為紙病提取和紙病識(shí)別兩部分:①根據(jù)紙病的顯著特征,從整幅紙張圖像中分離出只含有紙病部位的圖像,實(shí)現(xiàn)紙病提取功能;②依據(jù)相關(guān)的紙病分類算法,對(duì)紙病部位圖像進(jìn)行識(shí)別,實(shí)現(xiàn)紙病識(shí)別功能[4]。本課題設(shè)計(jì)的基于FPGA的紙病提取系統(tǒng)主要完成紙病提取功能。該系統(tǒng)可以快速、有效地完成紙病部位圖像提取任務(wù),并能根據(jù)實(shí)際需求進(jìn)行性能擴(kuò)充,實(shí)現(xiàn)對(duì)幅寬更大紙機(jī)的紙病檢測(cè)功能。
基于FPGA的紙病提取系統(tǒng)的結(jié)構(gòu)框圖如圖1所示。攝像機(jī)對(duì)紙機(jī)生產(chǎn)中的紙張圖像信息進(jìn)行拍攝,圖像數(shù)據(jù)通過(guò)Camera Link硬件接口電路[5]傳送至FPGA,經(jīng)FPGA內(nèi)部的硬件邏輯電路進(jìn)行圖像處理,最后將得到的紙病圖像數(shù)據(jù)通過(guò)以太網(wǎng)發(fā)送至計(jì)算機(jī),完成紙病的提取任務(wù)。
圖1 紙病檢測(cè)系統(tǒng)結(jié)構(gòu)框圖
為了能夠?qū)Σ煌鶎挼募埛M(jìn)行紙病檢測(cè),可將多臺(tái)攝像機(jī)并排安裝在紙幅上方,并為每臺(tái)攝像機(jī)配備獨(dú)立的FPGA及相關(guān)接口硬件,實(shí)現(xiàn)系統(tǒng)的性能擴(kuò)展。各攝像機(jī)分別拍攝各自范圍內(nèi)的紙張圖像,并使用FPGA進(jìn)行圖像采集與紙病提取,多個(gè)FPGA通過(guò)數(shù)據(jù)整合,實(shí)現(xiàn)橫幅紙病提取。
紙病提取系統(tǒng)中FPGA實(shí)現(xiàn)的主要功能包括圖像采集、預(yù)處理、紙病掃描和數(shù)據(jù)上傳,其圖像數(shù)據(jù)處理流程如圖2所示。
圖2 紙病提取流程
除了數(shù)據(jù)上傳功能由FPGA內(nèi)嵌的NIOS II軟核處理器和外置的以太網(wǎng)控制器完成,其余功能都由FPGA內(nèi)部硬件電路實(shí)現(xiàn)。使用Quartus II軟件進(jìn)行程序設(shè)計(jì)、綜合、仿真與測(cè)試,通過(guò)FPGA實(shí)現(xiàn)紙病提取功能。
選用DALSA公司生產(chǎn)的Spyder 2系列中的一款線陣攝像機(jī),對(duì)勻速移動(dòng)的紙幅進(jìn)行拍攝。該攝像機(jī)能夠直接輸出黑白圖像,分辨率為2048×1。參照Camera Link Base規(guī)范設(shè)計(jì)攝像機(jī)控制與視頻接口硬件電路,得到攝像機(jī)的原始時(shí)序信號(hào)。FPGA根據(jù)攝像機(jī)信號(hào)時(shí)序編寫圖像采集模塊,得到原始圖像數(shù)據(jù),并同時(shí)通過(guò)設(shè)計(jì)的VGA顯示接口[6]將實(shí)時(shí)的紙張圖像畫面輸出,達(dá)到實(shí)時(shí)查看紙張生產(chǎn)過(guò)程的目的。
采用中值濾波對(duì)圖像噪聲進(jìn)行濾波,可以有效去除攝像機(jī)容易產(chǎn)生的椒鹽噪聲。在FPGA上以并行流水線的方式實(shí)現(xiàn)中值濾波[7],不僅速度快,而且,易于實(shí)現(xiàn)。
紙病掃描模塊的數(shù)據(jù)處理流程如圖3所示,主要由協(xié)調(diào)管理、閾值比較和數(shù)據(jù)轉(zhuǎn)移DMA三部分構(gòu)成。該模塊是紙病提取系統(tǒng)當(dāng)中的核心模塊,負(fù)責(zé)紙病提取的主要任務(wù)。
圖3 紙病識(shí)別模塊結(jié)構(gòu)框圖
協(xié)調(diào)管理模塊負(fù)責(zé)將像素灰度數(shù)據(jù)交給空閑的閾值比較模塊進(jìn)行紙病掃描,數(shù)據(jù)轉(zhuǎn)移DMA負(fù)責(zé)將閾值比較模塊提取出的數(shù)據(jù)從FIFO轉(zhuǎn)移至數(shù)據(jù)上傳模塊。
2.2.1閾值比較
在整幅紙張中,紙病部位的像素灰度與正常灰度有明顯差別[8],像素灰度偏大或偏小都可以判別為紙病。根據(jù)環(huán)境光線、照射光源光強(qiáng)、紙張顏色測(cè)試并確定出正常情況下紙張同一橫坐標(biāo)位置的平均灰度,并依據(jù)此值確定出可以判定為紙病灰度的上限閾值與下限閾值。
閾值比較模塊依據(jù)設(shè)定的上下限閾值處理圖像數(shù)據(jù),將灰度超出閾值范圍的像素進(jìn)行提取,工作流程如圖4所示。
圖4 閾值比較工作流程
模塊初始時(shí)處于就緒狀態(tài),被協(xié)調(diào)管理模塊激活后開(kāi)始處理濾波后的圖像數(shù)據(jù)。當(dāng)圖像灰度超出設(shè)定閾值時(shí)鎖存當(dāng)前檢測(cè)的像素點(diǎn)的坐標(biāo)信息,并將后續(xù)的像素點(diǎn)灰度存儲(chǔ)進(jìn)FIFO。當(dāng)處理的像素橫坐標(biāo)到達(dá)邊緣并連續(xù)多次未檢測(cè)出超出閾值的數(shù)據(jù)或FIFO達(dá)到最大緩沖時(shí),停止存儲(chǔ)并將等待數(shù)據(jù)轉(zhuǎn)移至DMA。
2.2.2協(xié)調(diào)管理
當(dāng)短時(shí)間內(nèi)出現(xiàn)大量紙病的情況時(shí),為了避免紙病像素灰度丟失,采用多個(gè)閾值比較模塊依次銜接工作的方式。在閾值比較模塊A完成一次紙病像素提取功能后,模塊A停止提取并準(zhǔn)備發(fā)送FIFO內(nèi)的數(shù)據(jù),同時(shí)啟動(dòng)閾值比較模塊B進(jìn)行接下來(lái)的紙病特征提取,直到B完成,C開(kāi)始。這樣可以確??偸怯姓诰途w的閾值比較模塊可以接收傳輸過(guò)來(lái)的圖像數(shù)據(jù),避免數(shù)據(jù)丟失、紙病漏檢。根據(jù)FPGA性能、后續(xù)通信消耗時(shí)間、可接受漏檢率等指標(biāo),可以計(jì)算出系統(tǒng)在最壞情況下需要的閾值比較模塊數(shù)量,并加入紙病識(shí)別模塊內(nèi)。
2.2.3數(shù)據(jù)轉(zhuǎn)移
當(dāng)數(shù)據(jù)轉(zhuǎn)移DMA檢測(cè)到有閾值比較模塊完成像素緩沖時(shí),啟動(dòng)數(shù)據(jù)傳輸功能。DMA直接將緩沖的數(shù)據(jù)通過(guò)專用的數(shù)據(jù)總線傳輸?shù)较到y(tǒng)內(nèi)存中,避免影響CPU的其他工作,能夠提高系統(tǒng)的整體性能[9]。
圖5 紙病掃描??煨盘?hào)仿真波形
設(shè)計(jì)出適合該系統(tǒng)的DMA控制器,負(fù)責(zé)紙病圖像像素?cái)?shù)據(jù)的快速轉(zhuǎn)移任務(wù)。DMA控制器能夠以接近100 Mb/s的帶寬及時(shí)轉(zhuǎn)移閾值比較模塊中FIFO內(nèi)的數(shù)據(jù),大大提高了紙病掃描模塊的性能。
2.2.4功能驗(yàn)證
使用Modelsim驗(yàn)證該模塊的功能,紙病掃描模塊的仿真信號(hào)如圖5所示,圖5為正在提取大量紙病數(shù)據(jù)的時(shí)刻。rHUB_SamplePart指示了正在運(yùn)行的閾值比較模塊編號(hào),看到該測(cè)試中使用了2個(gè)與之比較模塊,它們交替工作,將輸入的圖像讀取進(jìn)FIFO中。讀取的圖像由oCount(16進(jìn)制)信號(hào)進(jìn)行計(jì)數(shù),能達(dá)到FIFO最大存儲(chǔ)深度,使oDataReady_IRQ信號(hào)最高,并通知數(shù)據(jù)轉(zhuǎn)移DMA從oFifo_ReadData中讀出提取到的紙病數(shù)據(jù),并轉(zhuǎn)移到內(nèi)存中。oX_Latch和oY_Latch表示紙病數(shù)據(jù)的起始坐標(biāo)??梢詮姆抡嫘盘?hào)的密集程度(見(jiàn)圖5)看到仿真中第1行信號(hào)為閾值比較模塊的數(shù)據(jù)處理時(shí)間,數(shù)據(jù)速率為40 MHz,而第3行DMA轉(zhuǎn)移數(shù)據(jù)的速率為100 MHz。這說(shuō)明在該仿真條件中,使用2個(gè)閾值比較模塊就能夠?qū)崿F(xiàn)紙病數(shù)據(jù)提取,并保證不丟失數(shù)據(jù)。
依據(jù)Avalon總線標(biāo)準(zhǔn),將由FPGA硬件實(shí)現(xiàn)的圖像采集、預(yù)處理和紙病掃描功能封裝成為用戶自定義IP核,并在Qsys系統(tǒng)集成工具中將該自定義IP核作為NIOS II處理器的外設(shè)來(lái)使用[10-11]。紙病提取自定義IP核Camera在Qsys的連線方式如圖6所示,使用總線連接到了NIOS II處理器的數(shù)據(jù)與指令總線、SDRAM總線,并為該模塊分配了一個(gè)中斷編號(hào)。
圖6 自定義IP核
該IP核的信號(hào)包括以下幾類:時(shí)鐘、復(fù)位和中斷信號(hào),Avalon總線信號(hào),攝像機(jī)圖像采集信號(hào),VGA圖像輸出信號(hào), IP核測(cè)試信號(hào)。憑借NIOS II處理器的靈活性和IP核的高可配置性,可以方便地配置出適合不同類型紙機(jī)的紙病提取系統(tǒng),增強(qiáng)系統(tǒng)的適應(yīng)能力。
NIOS II處理器通過(guò)配置與調(diào)用紙病提取IP核模塊提取紙病數(shù)據(jù),然后通過(guò)以太網(wǎng)控制器DM9000A實(shí)現(xiàn)數(shù)據(jù)上傳。將紙病數(shù)據(jù)按照一定格式打包并借助LwIP協(xié)議棧[12]通過(guò)以太網(wǎng)發(fā)送至計(jì)算機(jī),計(jì)算機(jī)對(duì)接收到的數(shù)據(jù)進(jìn)行解析后即可得到原始的、只含有紙病部位數(shù)據(jù)的紙張圖像,實(shí)現(xiàn)整個(gè)系統(tǒng)紙病提取目的。
為了檢驗(yàn)紙病提取系統(tǒng)的功能,在寬度為2 m的圓柱形紙卷上手工涂繪4處紙病樣本,并將其以5 r/s的速度勻速轉(zhuǎn)動(dòng),這樣就能夠使攝像機(jī)拍攝到含有紙病信息的連續(xù)紙張圖像。圖7為CCD攝像機(jī)拍攝到的紙張圖像,需要該系統(tǒng)對(duì)其進(jìn)行處理與紙病提取,并最終將紙病圖像數(shù)據(jù)上傳至計(jì)算機(jī)。
圖7 帶有紙病的紙張圖像
計(jì)算機(jī)通過(guò)網(wǎng)絡(luò)接收到紙病部位數(shù)據(jù)后,首先需要依據(jù)協(xié)定好的數(shù)據(jù)格式進(jìn)行紙病圖像重組。如圖8所示的上位機(jī)對(duì)接收到的數(shù)據(jù)進(jìn)行解析,并最終將紙病圖像呈現(xiàn)到軟件界面。仔細(xì)觀察可以看到圖7中的4處紙病均有顯示,又由于測(cè)試紙卷是勻速轉(zhuǎn)動(dòng),4個(gè)紙病會(huì)在上位機(jī)界面中周期性出現(xiàn)。紙病提取系統(tǒng)的功能基本實(shí)現(xiàn)。
圖8 上位機(jī)軟件顯示
在如上測(cè)試中,同時(shí)對(duì)數(shù)據(jù)傳輸過(guò)程中的帶寬占用進(jìn)行了測(cè)試。攝像機(jī)拍攝到的圖像數(shù)據(jù)約為4.7 MB/s,而經(jīng)過(guò)紙病提取系統(tǒng)處理后,只將紙病部位的圖像灰度提取并傳輸,占用的網(wǎng)絡(luò)帶寬平均僅為8.39 kB/s。與完全由計(jì)算機(jī)進(jìn)行圖像處理相比,經(jīng)紙病提取模塊處理后再由計(jì)算機(jī)處理更具優(yōu)勢(shì),不僅降低了計(jì)算機(jī)的計(jì)算負(fù)荷,并且為同一臺(tái)計(jì)算機(jī)處理多個(gè)紙病提取模塊的數(shù)據(jù)創(chuàng)造了空間。
上位機(jī)從紙病提取模塊接收到的數(shù)據(jù)內(nèi)包含有像素灰度、坐標(biāo)以及攝像機(jī)編號(hào)等信息,上位機(jī)根據(jù)這些信息即可還原出真實(shí)的紙病形狀、灰度及其所處位置。依據(jù)相關(guān)紙病分類算法進(jìn)一步編寫紙病判定與分類程序,即可完成一整套紙病檢測(cè)系統(tǒng)的設(shè)計(jì)。
幅寬較大的紙機(jī)需要配備相應(yīng)數(shù)量的紙病提取模塊,并對(duì)整體系統(tǒng)重新配置與組網(wǎng),多個(gè)紙病提取模塊協(xié)同工作共同構(gòu)成性能更強(qiáng)的紙病提取系統(tǒng),實(shí)現(xiàn)
寬幅紙機(jī)的紙病提取功能。
研究并設(shè)計(jì)了一套紙病提取系統(tǒng),實(shí)現(xiàn)了對(duì)紙病部位的圖像提取。設(shè)計(jì)中充分考慮了紙機(jī)生產(chǎn)中的實(shí)際情況與需求,解決了紙病漏檢、圖像數(shù)據(jù)量較大和通用性低等問(wèn)題。將該系統(tǒng)應(yīng)用于紙病檢測(cè)系統(tǒng)設(shè)計(jì)中,能夠加快系統(tǒng)設(shè)計(jì),降低系統(tǒng)組建成本,提高系統(tǒng)工作穩(wěn)定性。
參 考 文 獻(xiàn)
[1] 徐志鵬. 造紙過(guò)程中紙病檢測(cè)關(guān)鍵技術(shù)研究[D]. 無(wú)錫: 江南大學(xué), 2005.
[2] 劉鑄紅. 基于機(jī)器視覺(jué)的紙張表面紙病檢測(cè)系統(tǒng)[J] . 中華紙業(yè), 2009, 30(4): 64.
[3] 古 帥, 邱書(shū)波. 基于FPGA+DSP的紙張紙病視覺(jué)檢測(cè)系統(tǒng)的設(shè)計(jì)[J] . 中華紙業(yè), 2010, 31(6): 48.
[4] 周露露. 基于機(jī)器視覺(jué)的紙頁(yè)紙病檢測(cè)算法的研究[D]. 濟(jì)南: 山東輕工業(yè)學(xué)院, 2012.
[5] 朱齊丹, 劉進(jìn)業(yè), 康 嶺. Camera Link硬件接口電路設(shè)計(jì)[J]. 應(yīng)用科技, 2008, 35(8): 57.
[6] 朱奕丹, 方怡冰. 基于FPGA的圖像采集與VGA顯示系統(tǒng)[J]. 計(jì)算機(jī)應(yīng)用, 2011, 31(5): 1258.
[7] 郭 帥. 基于FPGA的高速圖像處理研究[D]. 成都: 中國(guó)科學(xué)院研究生院光電技術(shù)研究所, 2007.
[8] 孫建鎮(zhèn), 邱書(shū)波, 劉 芹. 紙病檢測(cè)方法的研究進(jìn)展[J]. 中華紙業(yè), 2005, 26(9): 56.
[9] 何 瓊, 陳 鐵, 程 鑫. 基于FPGA的DMA方式高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J]. 電子技術(shù)應(yīng)用, 2011, 37(12): 40.
[10] 劉 杰. 基于模型的設(shè)計(jì)(Qsys篇)[M]. 北京: 機(jī)械工業(yè)出版社, 2012.
[11] 周學(xué)功, 彭澄廉. SOPC Builder中IP構(gòu)件的設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2005, 26(2): 293.
[12] 時(shí)建雷, 肖鐵軍. 面向LwIP的Nios II網(wǎng)絡(luò)驅(qū)動(dòng)程序開(kāi)發(fā)[J]. 微計(jì)算機(jī)信息, 2008, 24(2): 36.