鄒振興 謝 云 林奇鴻 陳炳成
摘 要:介紹基于SOPC技術(shù)的PET瓶缺陷檢測(cè)系統(tǒng)的軟、硬件設(shè)計(jì)方法。利用SOPC Builder在FPGA芯片EP2C35F6726C上配置的NIOS Ⅱ軟核處理器作為控制核心,在Avalon總線上掛接接口模塊和用戶自定義邏輯模塊,于NIOS Ⅱ中使用C++編程實(shí)現(xiàn)圖像檢測(cè)判別準(zhǔn)則,并加上FPGA 的外圍單元,共同完成系統(tǒng)主要的功能設(shè)計(jì)。實(shí)驗(yàn)結(jié)果表明,該設(shè)計(jì)方法可行、可靠,檢測(cè)效果快速精確。該設(shè)計(jì)在圖像處理中采用并行處理設(shè)計(jì),其應(yīng)用上具有一定的幫助性和可借鑒性,也證明FPGA在圖像處理方面的優(yōu)越性。采用FPGA并行處理的方法進(jìn)行圖像識(shí)別,系統(tǒng)處理速度快、集成度高、成本低、維護(hù)方便。
關(guān)鍵詞:NIOS Ⅱ;SOPC Builder;FPGA;圖像處理
中圖分類號(hào):TP391.41文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1004-373X(2009)10-058-04
Design of PET Bottle Defect Detection System Based on SOPC
ZOU Zhenxing,XIE Yun,LIN Qihong,CHEN Bingcheng
(Faculty of Automation,Guangdong University of Technology,Guangzhou,510006,China)
Abstract:How to design software and hardware of PET bottle defect detection system based on SOPC is introduced.The NIOS Ⅱ soft-core is used to be as the controller in the FPGA chip EP2C35F6726C.Designing some interface modules and user-defined logic modules on the Avalon,using C++ program to achieve image processing in the NIOS Ⅱ,also some peripheral components is needed in the system design.The results show that the design is feasible and reliable,efficient and accurate test.It has some help on parallel image processing,at the same time,prove that FPGA method in image processing is superior.Using FPGA parallel processing method to achieve image recognition.The system is high efficiency,high integration,low cost and easy maintenance.
Keywords:NIOS Ⅱ;SOPC Builder;FPGA;image processing
0 引 言
隨著生活水平的提高,飲料的市場(chǎng)需求量也不斷增加,產(chǎn)品的質(zhì)量已成為生產(chǎn)廠商和消費(fèi)者關(guān)注的問(wèn)題。目前,市場(chǎng)上幾乎所有的飲料瓶都是采用PET(環(huán)保塑膠)切片來(lái)注塑加工成型的[1]。在進(jìn)行灌裝的工序時(shí),高速旋蓋子系統(tǒng)中PET瓶會(huì)出現(xiàn)蓋擰松、高蓋和歪蓋等情況;這些情況中輕微的會(huì)導(dǎo)致產(chǎn)品外觀不美觀,嚴(yán)重的會(huì)導(dǎo)致飲料內(nèi)部質(zhì)量發(fā)生變化。所以為了減少不合格品的數(shù)量,需要增加必要的檢測(cè)工序。
傳統(tǒng)的方法是在計(jì)算機(jī)中利用軟件實(shí)現(xiàn)圖像處理系統(tǒng),這是一個(gè)相對(duì)耗時(shí)的過(guò)程,而且對(duì)于處理速度要求很高的檢測(cè)系統(tǒng)來(lái)說(shuō),用這種方法也會(huì)逐漸不能滿足現(xiàn)代化大生產(chǎn)的高速生產(chǎn)節(jié)拍要求,給視覺(jué)檢測(cè)實(shí)現(xiàn)100%在線檢測(cè)方面帶來(lái)了局限性[2]。FPGA器件的可編程片上系統(tǒng)(SOPC)在設(shè)計(jì)的靈活性、功能的可裁剪性和軟硬件的可編程性上具有良好的集成度和成本較低等特點(diǎn)[3],為圖像處理系統(tǒng)帶來(lái)了新的解決方案,并具有極大的靈活性。目前并行處理是解決系統(tǒng)實(shí)時(shí)性問(wèn)題的有效方法。
1 系統(tǒng)硬件的實(shí)現(xiàn)
設(shè)計(jì)采用FPGA芯片EP2C35F6726C,利用SOPC技術(shù)設(shè)計(jì)實(shí)現(xiàn)一個(gè)能檢測(cè)PET瓶缺陷的系統(tǒng)。即針對(duì)PET瓶灌裝后高蓋、歪蓋等缺陷情況進(jìn)行快速檢測(cè)判別,以確定并報(bào)警剔除不合格產(chǎn)品。系統(tǒng)主要由圖像采集模塊、FPGA圖像處理模塊、圖像顯示模塊和判別模塊四部分組成。系統(tǒng)硬件平臺(tái)如圖1所示。
在生產(chǎn)線上待檢測(cè)產(chǎn)品經(jīng)過(guò)傳送帶輸送到達(dá)指定位置時(shí),光電傳感器產(chǎn)生感應(yīng)信號(hào),傳送帶停止一段時(shí)間,系統(tǒng)開(kāi)始進(jìn)行PET瓶缺陷檢測(cè)。按下按鍵后由圖像采集模塊(TRDB-DC2)采集圖像數(shù)據(jù),通過(guò)硬件器件,將數(shù)據(jù)RAW轉(zhuǎn)換成RGB格式,再進(jìn)行圖像預(yù)處理,并在SDRAM中保存相應(yīng)的數(shù)據(jù),以利于進(jìn)行后期圖像處理,同時(shí)也可以通過(guò)操作相應(yīng)按鍵在VGA上實(shí)時(shí)顯示出該圖像。系統(tǒng)在FPGA芯片EP2C35F6726C上配置的NIOS Ⅱ軟核處理器作為控制核心,并在Avalon總線上掛接相應(yīng)的接口模塊和用戶自定義邏輯模塊[4],與FPGA 的外圍單元共同完成系統(tǒng)后期的圖像處理、實(shí)時(shí)顯示剔除操作等功能。系統(tǒng)硬件設(shè)計(jì)框如圖2所示。整個(gè)設(shè)計(jì)采用自上而下的設(shè)計(jì)方法,在SOPC Builder中搭建系統(tǒng)硬件模塊。將所需的各功能模塊通過(guò)Avalon總線集成[5]。SOPC Builder具有強(qiáng)大的系統(tǒng)集成特性,充分利用現(xiàn)有的IP[6],大大縮短了設(shè)計(jì)周期,在很短的時(shí)間內(nèi)就可以構(gòu)建一個(gè)穩(wěn)定的系統(tǒng),進(jìn)而基于硬件完成系統(tǒng)中各模塊的軟件設(shè)計(jì),最后集合成系統(tǒng),如圖3所示。
在各模塊中主要介紹以下幾個(gè)模塊:
(1) 圖像采集模塊。圖像采集采用的是TRDB-DC2模塊。該模塊由1片高像素的CMOS圖像傳感芯片和1個(gè)聚焦鏡頭組成[7]。圖像采集通過(guò)CMOS Sensor采集圖像后,再由I2C總線對(duì)圖像傳感器進(jìn)行配置[8],然后再根據(jù)圖像傳感器的時(shí)序特性來(lái)讀取采集到的圖像點(diǎn)陣。由于采集到的圖像點(diǎn)陣是Bayer色彩空間,因而還要由相應(yīng)的算法將其轉(zhuǎn)換為RGB色彩空間,再把圖像點(diǎn)陣數(shù)據(jù)存入SDRAM,而VGA顯示部分則從SDRAM中讀取數(shù)據(jù)來(lái)顯示。SDRAM控制器采用雙口SDRAM控制方法[9]。圖像處理部分也可以從SDRAM中讀取數(shù)據(jù)來(lái)處理。其硬件模塊如圖4所示。
(2) 圖像預(yù)處理模塊。從SDRAM中讀取數(shù)據(jù),采用硬件語(yǔ)言對(duì)圖像預(yù)處理實(shí)現(xiàn)圖像的灰度變化、閾值分割和二值化處理。其硬件模塊圖如圖5所示。
(3) VGA硬件模塊。VGA控制器外接一個(gè)存儲(chǔ)器,以保存當(dāng)前顯示的數(shù)據(jù)??刂破鞲鶕?jù)不同時(shí)刻在VGA上顯示的像素位置,計(jì)算出存儲(chǔ)器中當(dāng)前數(shù)據(jù)存放的地址,并輸出存儲(chǔ)器地址(oAddress信號(hào))。外接存儲(chǔ)器控制器從該地址中讀取數(shù)據(jù),返回給VGA控制器(iRed,iGreen,iBlue)[10]。VGA控制器將顯示數(shù)據(jù)輸出到D/A轉(zhuǎn)換器上。依據(jù)其水平與垂直時(shí)序設(shè)計(jì)的VGA控制器如圖6所示。通過(guò)VGA controller器件,可以實(shí)時(shí)將圖像直接顯示在VGA上。
2 系統(tǒng)軟件實(shí)現(xiàn)
2.1 軟件總體設(shè)計(jì)
系統(tǒng)配置完成后,攝像頭獲取圖像,送入SDRAM 存儲(chǔ)器,每幀圖像經(jīng)轉(zhuǎn)換生成圖像數(shù)據(jù)進(jìn)入預(yù)處理模塊進(jìn)行灰度變化、閾值分割、二值化和邊緣跟蹤,使用硬件語(yǔ)言進(jìn)行處理和結(jié)合NIOS Ⅱ處理器進(jìn)行圖像的先后續(xù)處理和控制,處理后的圖像經(jīng)數(shù)模轉(zhuǎn)換在監(jiān)視器上實(shí)時(shí)顯示。系統(tǒng)軟件總流程圖如圖7所示。
2.2 圖像后處理算法的設(shè)計(jì)
2.2.1 NIOS中使用C++實(shí)現(xiàn)圖像檢測(cè)判斷準(zhǔn)則
(1) 求取瓶蓋上邊緣到基準(zhǔn)線的最大距離,先與標(biāo)準(zhǔn)瓶蓋的上邊緣到基準(zhǔn)線的標(biāo)準(zhǔn)距離比較,判斷瓶蓋旋封是否合格,大于標(biāo)準(zhǔn)距離,認(rèn)為瓶子不合格,剔除瓶子。
(2) 通過(guò)左邊緣直線、右邊緣直線分別和基準(zhǔn)線、上邊緣的直線之間的夾角來(lái)判斷瓶蓋旋封是否合格,如果4個(gè)夾角都在(90°-δ)內(nèi)(δ為一個(gè)允許的誤差,取一個(gè)很小的角度),認(rèn)為瓶子合格,否則瓶子不合格,剔除。
2.2.2 設(shè)計(jì)步驟
(1) 采集經(jīng)過(guò)適當(dāng)預(yù)處理的圖像數(shù)據(jù)后,首先找出瓶蓋和瓶身的分割線,該分割線位于瓶頸區(qū)域,通過(guò)分割線,確定瓶蓋所在區(qū)域,縮小了后面圖像的識(shí)別范圍,如圖8所示。
(2) 在PET瓶的瓶頸和瓶蓋部分有一個(gè)天然的分隔區(qū)域,在該分區(qū)區(qū)域內(nèi)能找出一條距離最長(zhǎng)的線段,規(guī)定該線段作為基準(zhǔn)線,并求出該基準(zhǔn)線與水平方向的夾角,如圖8中所示。
(3) 求取瓶蓋上邊緣上的點(diǎn)到基準(zhǔn)線的距離,找出上邊緣到基準(zhǔn)線距離最大的點(diǎn),并求出該最大距離d,然后根據(jù)第一條判斷準(zhǔn)則進(jìn)行判斷。
(4) 分別提取出瓶蓋左邊緣、右邊緣和上邊緣上的點(diǎn),接著采用Hough直線變換去除干擾點(diǎn);然后用最小二乘法線性擬合出3條,并求出其與水平方向的夾角。
(5) 利用已求出的4條直線與水平方向的夾角,可以求出左邊緣確定的直線(右邊緣確定的直線)與基準(zhǔn)線之間的夾角;左邊緣確定的直線(右邊緣確定的直線)與上邊緣確定的直線之間的夾角一共有4個(gè)角,然后根據(jù)第二條判斷準(zhǔn)則判斷瓶子是否合格,流程圖如圖9所示。
3 結(jié) 果
由系統(tǒng)檢測(cè)在VGA上顯示的背光光源效果、邊緣跟蹤效果圖分別如圖10和圖11所示。
由PC機(jī)處理的PET瓶缺陷檢測(cè),在灌裝線上實(shí)現(xiàn)檢測(cè)的,一般情況約為2~3瓶/s。經(jīng)采用基于FPGA芯片的SOPC方法處理實(shí)現(xiàn)檢測(cè)速度可達(dá)約90 ms處理完一瓶的圖像,且檢測(cè)
準(zhǔn)確率達(dá)99%以上。不僅滿足了系統(tǒng)的設(shè)計(jì)要求,也達(dá)到生產(chǎn)線速度性能指標(biāo)。
4 結(jié) 語(yǔ)
介紹系統(tǒng)各模塊的功能和設(shè)計(jì),依據(jù)設(shè)計(jì)的邏輯需求自制相應(yīng)的IP,如攝像頭驅(qū)動(dòng)CCD_Controller,SDRAM_Controller,VGA_controller,以及對(duì)外連接的PIO 組件,如按鍵Key_pio 和sw_pio等組成系統(tǒng)硬件的構(gòu)建,再由計(jì)算機(jī)生成硬件系統(tǒng)。在構(gòu)建的硬件系統(tǒng)上建立軟件設(shè)計(jì),并針對(duì)元器件在NIOS Ⅱ中的圖像處理程序設(shè)計(jì),闡述基于SOPC在圖像處理方面的設(shè)計(jì)方法。實(shí)際應(yīng)用證明了FPGA在圖像處理的可行性及在處理速度上的優(yōu)勢(shì)。
參考文獻(xiàn)
[1]趙穎全.西門子機(jī)器視覺(jué)系統(tǒng)在PET飲料瓶缺陷檢測(cè)中的應(yīng)用[J].可編程控制器與工廠自動(dòng)化,2006(4):123-124.
[2]嚴(yán)輝.基于FPGA的高速圖像處理系統(tǒng)的研究[D].天津:天津大學(xué),2004.
[3]任愛(ài)峰,初秀琴,常存,等.基于FPGA的嵌入式系統(tǒng)設(shè)計(jì)[M].西安:西安電子科技大學(xué)出版社,2004.
[4]李蘭英.NIOS Ⅱ嵌入式軟核SOPC設(shè)計(jì)原理及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2006.
[5]蔡偉綱.NIOS Ⅱ 軟件架構(gòu)解析[M].西安:西安電子科技大學(xué)出版社,2007.
[6]林振營(yíng),馬剛.基于NIOS Ⅱ 的SOPC嵌入式系統(tǒng)開(kāi)發(fā)解決方案[J].現(xiàn)代電子技術(shù),2007,30(6):79-80.
[7]張志剛.FPGA與SOPC設(shè)計(jì)教程DE2實(shí)踐[M].西安:西安電子科技大學(xué)出版社,2007.
[8]張廣軍.機(jī)器視覺(jué)[M].北京:科學(xué)出版社,2006.
[9]周望瑋.基于FPGA的SDRAM讀寫(xiě)雙口控制器設(shè)計(jì)[J].電子器件,2006,29(2):581-584.
[10]潘松,黃繼業(yè).SOPC技術(shù)實(shí)用教程[M].北京:科學(xué)出版社,2003.
[11]周心怡,朱曉欣.SPI總線接口的SOPC模塊設(shè)計(jì)與實(shí)現(xiàn).現(xiàn)代電子技術(shù),2008,31(2):6-8.
[12]張海英,郭書(shū)軍.USB接口芯片ISP1362及其在SOPC中的應(yīng)用.現(xiàn)代電子技術(shù),2007,30(14):76-78.