新聞中心

        EEPW首頁 > 設計應用 > 基于ZYNQ的流水線食品外觀檢測系統設計

        基于ZYNQ的流水線食品外觀檢測系統設計

        作者:王明全 胡芯暢 關欣然 李根旺 時間:2019-05-29 來源:電子產品世界 收藏

          王明全,胡芯暢,關欣然,李根旺

        本文引用地址:http://www.104case.com/article/201905/401018.htm

          (東北大學計算機科學與工程學院,遼寧 沈陽 110819)

          摘要:針對圖像處理技術在食品加工領域的應用,提出了一種基于平臺的流水線食品外觀辨別檢測系統設計方案。該系統采用FPGA+ARM架構的-7000平臺實現,利用單目攝像頭進行圖像采集,并將采集后的視頻圖像進行預處理以及VDMA視頻圖像顯示,之后采用對射式光電開關達到流水線上食品目標的檢測目的,最后通過圖像測量方法提取食品特征。該系統解決了流水線上不規則辨別問題,可應用于食品加工質量檢測領域。

          關鍵詞:

          0 引言

          隨著人們物質生活水平的提高,對食品質量要求也越來越高,而國家經濟的快速發展促進食品生產速度隨之提升,因此,如何在流水線上保證生產速度的同時檢測食品質量已逐漸成為研究問題。

          目前,市面上存在的圖像傳感器中,大多以模板匹配的方法對特定規格的產品進行檢測,如車牌、餅干、門窗等,而對于許多不規則的食品如鳳爪、鴨翅、蝦仁等卻無法對其包括產品尺寸、傳送方向等進行有效檢測。本設計采用具有雙核的ARM-Cortex TM -A9處理系統(PS)和Artix-7可編程邏輯(PL)的ZYNQ作為主控制和算法處理單元,通過圖像測量方法提取不規則食品外觀共同特征,是進一步檢測食品傳送方向是否與流水線方向一致,以及食品缺損問題的關鍵。

          從我國食品發展行業趨勢來看,市場上需要能夠應用在流水線上的高精度、針對無特定性狀食品檢測處理的圖像傳感器,因此其具有十分廣闊的市場前景。

          1 系統的總體結構

          整個系統由圖像采集模塊、圖像處理模塊、VGA顯示模塊、機械執行模塊以及光電開關組成。如圖1所示。

          圖像處理模塊是整個系統的控制核心。圖像采集單元通過單目攝像頭OV5640對食品生產線上的食品成品進行采集,由光電開關檢測當前圖像采集區域是否有完整食品傳入,將觸發信號傳送給ZYNQ平臺對實時采集到的圖像數據進行灰度化、閾值分割、圖像膨脹、,以實現運動食品的檢測,并對當前檢測食品傳送方向是否正確以及是否存在缺損作出判斷。通過控制分揀開關,將次品與合格品分類集中,方便下一步的產品生產包裝工藝。

          視頻圖像顯示單元是在FPGA控制下對處理前后的視頻圖像進行顯示 [1] 。其中圖像測量算法是基于背景顏色的圖像分割算法,它是本文在灰度閾值分割算法基礎上提出的一種適合本系統的算法。

          2 圖像采集及顯示系統設計

          圖像采集系統平臺的設計主要包括以下幾個部分:單目OV5640攝像頭模組,用來實現圖像的采集;ZNYQ-7000系列開發板用來實現攝像頭采集、數據存儲與傳遞以及完成圖像處理算法;VGA顯示器用來顯示攝像頭實時采集的圖像以及經ZYNQ開發板處理后的結果。

          2.1 OV5640攝像頭模塊

          本模塊設計中采用美國OmniVision公司的CMOS圖像傳感器OV5640。OV5640擁有2590×1944的感光陣列,能夠以15幀的500萬像素的分辨率記錄圖像,并且可對輸出數據格式、圖像分辨率、輸出幀率以及圖像特性等進行配置,滿足許多應用需求 [2] 。其攝像頭模組通過DVP接口和FPGA連接實現圖像的傳輸,具體參數及主要特性如下:

          (1)具有標準的SCCB接口;

          (2)支持多種視頻輸出格式:RAW RGB、RGB565/555/444、YCbCr422等;

          (3)支持VGA、QVGA以及1080P分辨率輸出;

          (4)支持數字視頻端口(DVP)并行輸出接口和雙車道MIPI輸出接口。

          OV5640圖像數據采集模塊是整個系統的輸入模塊,它主要負責將攝像頭采集到的圖像數據傳送到FPGA例化的存儲器中,使用DVP傳輸視頻時,PCLK為像素時鐘,HREF為行同步信號,VSYNC為場同步信號,數據線為8 bit,在FPGA中配置RGB565輸出。

          OV5640芯片采集的數據通過FPGA軟核VDMA0、VDMA1分別用作視頻的輸入,將數據寫入與PS端相連的DDR中,以及視頻的輸出。ARM核完成對存儲數據的圖像處理及分析算法。使能的VDMA在DDR中讀取相應的數據,數據經過圖像測量算法提取特征后再輸出。VDMA獲取的數據均為符合AXI4協議的32位數據,經過32位數據轉24位RGB 888格式數據后,根據VGA輸出協議,在相應的時序控制下,依次轉換為DVI數據輸出到VGA顯示器中 [3]

        4.png

          2.2 VDMA配置模塊

          VDMA是針對視頻圖像處理的一個特殊的DMA。在ZYNQ-7000的PS中,包含處理器和DDR存儲器控制器;而在PL中,實現AXI DMA和AXI數據FIFO。通過AXI-Lite總線,處理器與AXI DMA通信,用于建立、初始化和監控數據傳輸。VDMA有一個AXI4 MemoryMap接口,用于對存儲器進行讀寫視頻數據,AXI4-Lite接口用于讀取VDMA狀態以及配置VDMA的參數;AXI4-Stream接口用于視頻的輸入和輸出。VDMA系統結構原理如圖2所示。

          在該設計中,AXI_MM2S和AXI_S2MM是存儲器映射的AXI4總線,提供了對DDR存儲器的訪問。AXIS_MM2S和AXIS_2MM是AXI4 Stream總線,它可以連續的傳輸數據,而不需要提供地址信息 [4]

          2.3 VGA顯示設計

          VGA顯示模塊分為:上電等待模塊、寄存器配置模塊、攝像頭采集模塊、SDRAM控制模塊以及系統控制模塊。其中FIFO控制模塊原理機制如圖3所示。

          由于視頻圖像數據通過ZYNQ系統的高速AXI_HP0口輸出,系統使用AXI_VDMA IP核來通過AXI_interconnect連接ZYNQ系統的HP0口,AXI_subset_converter來進行數據格式的轉換,轉換為24位的視頻圖像數據,V_axi4s_vid_out IP將視頻流裝換成RGB888的視頻格式信號。最后視頻圖像通過自定義IP核(rgb2dvi)轉換成TMDS信號驅動VGA顯示器顯示圖像。構架好的系統如圖4所示。

          2.4 光電開關檢測設計

          為減少圖像數據處理量,并較準確確定視頻圖像流中哪一幀中食品進入到單目攝像頭圖像采集區域內,系統設計中采用對射式光電開關來檢測目標,并將觸發信號傳送到ZYNQ中,在間隔一定時間后處理當前幀圖像,確保其采集食品圖像的完整性。

          采用對射式的光電開關可分辨不透明的反光物體,有效距離大,不易受干擾,靈敏度高,并且響應時間快,可將觸發信號傳送給ZYNQ平臺的I/O口作為進行圖像測量的起始信號。

        5.png

          3 系統軟件設計

          圖像處理部分包括:圖像預處理、圖像膨脹及基于圖像測量的。軟件設計流程如圖6。

          3.1 圖像預處理設計

          針對不規則食品外觀的檢測,首先要對圖像進行預處理,再進一步用圖像測量算法提取圖像特征。本文提取的特征是基于灰度圖像的,需將采集到的24位真彩色圖轉換為灰度圖

        6.png

          由于光源和實際拍攝的情況,采集到的圖像可能含有噪聲,為排除噪聲的影響,先對圖像進行去噪的處理。根據項目需要,采用中值濾波的方法。這種非線性的圖像平滑法對脈沖干擾級的椒鹽噪聲抑制效果較好,能保護邊緣少受模糊的影響。

          3.2 圖像形態學處理

          為了更加明顯區分背景與目標,需將灰度圖進行二值化處理來區分鳳爪與傳送帶。采用閾值分割的方法,根據閾值將圖像中灰度級大于閾值的像素點和小于像素值的像素點分開,從而實現圖像分割 [5]

        7.png

          其中,T為預設的閾值,從0~255中取值,具體大小由工業流水線實際環境決定,根據多次試驗可選取150作閾值分割,是目標為黑色,背景為白色。

        8.png

          根 據 圖像 特 征 提 取算 法 識 別 的要 求 , 需 通過遍歷像素值所在區域通過黑白像素值邊界的跳躍次數來區分爪趾的數目及食品被放置方向與傳送帶方向是否一致,因此需要保證目標的連通性要完整,將得到的二值化圖像進行一輪腐蝕膨脹,以消除噪聲點,使不連續的地方連接起來,為下一步的圖像識別及特征提取做基礎。

          本系統中以鳳爪為例,對二值化后的目標鳳爪進行圖像膨脹,采用15×15大小的方陣集合做膨脹的結構元素。關鍵源代碼如下(定義flag為記錄結構元素區域內各像素值與運算后的結果):

          for(j=0;j<height;j++){

          for(i=0;i<width;i++){       //對二值圖遍歷

          flag=1;       //賦初值

          //采用15×15大小結構元素作掩膜處理

          for(m=j-1;m<j+15;m++){

          for(n=i-1;n<i+15;n++){

          if(image_in[j][i]==0||image_in[m][n]==0)

          {flag=0;break;}

          else{flag=1;}}

          if(flag==0){break;}}

          //根據flag值來輸出膨脹后結果

          if(flag==0){image_out[j][i]=0;}

          else{image_out[j][i]=255;}}}}

          通過圖像膨脹后的結果如圖7所示:可去除二值化結果中的不連續的噪聲點及食品本身瑕疵的影響。

          3.3 圖像測量算法設計

          機器視覺定位的最終目的是利用工業相機采集運動食品的圖像,再通過算法確定運動目標的特征點與特征邊緣,以方便進行機械分揀 [6] 。對于在高速流水線上采集到的視頻圖像流進行處理,首先,通過光電開關的觸發信號在視頻流中確定食品目標已全部進入圖像采集區域,對該幀圖像作圖像識別,并在確定幀圖像后,識別目標送入方向是否正確及是否存在殘缺。

          對于閾值化并經過圖像膨脹處理后,目標區域是完整的連通區域,可通過遍歷查詢提取該不規則圖像邊緣特征。從鳳爪這個研究對象的特點來看具有以下特性:

          (1)從形狀上看,鳳爪共有4個指頭,其中一端較短,其余三個指頭較長,中間者為最長。骨干部分占整個長度的一半左右。

          (2)從顏色上看,鳳爪色澤絳紅,深淺程度基本一致,掌心部分偏暗紅。

          以上分析,作為待識別的鳳爪,雖然是不規則形狀,但無論從顏色還是形狀上,都能保持一個較穩定的特性,因此在編寫算法程序中,可通過數組記錄圖像的每行像素值黑白邊界跳躍次數,以此提取流水線上加工食品特征,并根據不同食品特征要求通過遍歷特征數組及測量算法作判別,按照判別結果啟動分揀開關將食品歸入不同的箱中。

          4 結論

          本文針對食品流水線上的圖像外觀辨別問題進行了分析與解決方案的提出,利用圖像測量的方法對不規則食品進行特征提取,并采用ARM+FPGA結構的實時圖像處理平臺以及光電開關的結合,使系統小型化,利于后期進一步開發、成本降低,便于針對特定應用定制等優勢、具有較高的工程應用參考價值,流水線食品辨別系統擁有廣闊的應用空間。

          參考文獻

          [1].杜文略,劉建梁,沈三民等.基于FPGA的運動目標檢測系統設計[J].電子技術應用,2014,40(11):36-42.

          [2].張震.基于FPGA的USB3.0高速圖像采集系統設計與圖像特征提取算法研究[D].西安電子科技大學開發板的攝像頭采集與處理系統實驗設計與實現[J].計算機教育,2018(4):23-26.

          [3].何賓,張艷輝.Xilinx Zynq-7000嵌入式系統設計與實現[M].北京:電子工業出版社.2016.

          [4].吳長冶.食品(蝦仁)分揀系統中的圖像處理算法的研究[D].南京理工大學.2012.

          [5].李明.運動食品機器視覺的識別與定位技術的研究[D].哈爾濱商業大學.2014.

          [6].胡健.基于Zynq的智能相機圖像處理流水線程序優化與實現[J].通信設計與應用.2017(10):3-4.

          作者簡介

          王明全(1973-),男,博士,講師,主要研究方向:信號與信息處理.

          本文來源于科技期刊《電子產品世界》2019年第6期第41頁,歡迎您寫論文時引用,并注明出處




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 宁波市| 吉林市| 蒲城县| 鄂伦春自治旗| 延安市| 平江县| 安平县| 开原市| 汉川市| 台东县| 灯塔市| 洪江市| 许昌市| 惠来县| 原阳县| 项城市| 红原县| 平顶山市| 肥西县| 铜山县| 扎兰屯市| 安远县| 如东县| 姚安县| 郓城县| 迭部县| 昭平县| 保德县| 惠东县| 台北县| 靖安县| 崇信县| 谷城县| 湟源县| 高碑店市| 南宁市| 溧水县| 沛县| 桓台县| 泰宁县| 金堂县|