聶陽 王博文 王宇鵬 梁蔭恩 唐偉健 趙國宏 徐碩
摘? 要:針對目前市場上嵌入式圖像處理平臺可擴(kuò)展性差的缺點,利用Zynq SOC嵌入式處理器ARM和FPGA結(jié)合的優(yōu)勢,文章提出基于Zynq SOC的嵌入式圖像處理系統(tǒng)設(shè)計方案。實驗結(jié)果表明,該方法不僅提高了圖像邊緣檢測質(zhì)量,而且具有實時性和可擴(kuò)展性好的優(yōu)勢。
關(guān)鍵詞:嵌入式系統(tǒng);Zynq;圖像處理;邊緣檢測
中圖分類號:TP391? ? ? ? 文獻(xiàn)標(biāo)志碼:A? ? ? ? ?文章編號:2095-2945(2020)23-0054-03
Abstract: Aiming at the disadvantage of poor scalability of embedded image processing platform on the market, we propose an embedded image processing system design scheme based on Zynq SOC with the advantages of Zynq SOC embedded processors ARM and FPGA. The experiment results show that the proposed method not only improves the quality of image edge detection, but also has the characteristics of real-time and scalability.
Keywords: embedded system; Zynq; image processing; edge detection
1 概述
圖像是人類獲取和交換信息的主要來源之一。因此,圖像處理的應(yīng)用已經(jīng)涉及人類生活的各個方面。目前,圖像處理在物聯(lián)網(wǎng)、機(jī)器識別和多媒體信息交換等領(lǐng)域得到了廣泛的應(yīng)用。但是,隨著圖像處理系統(tǒng)規(guī)模和復(fù)雜性的不斷增加,其硬件系統(tǒng)實現(xiàn)越來越復(fù)雜。為了滿足圖像處理算法的正確性和實時性,現(xiàn)場可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)已經(jīng)成為了實時圖像處理硬件平臺的理想選擇[1-2]。
近年來,隨著嵌入式處理器性能的不斷提高,嵌入式操作系統(tǒng)的不斷完善,以及網(wǎng)絡(luò)、通信多媒體、圖像處理技術(shù)的快速發(fā)展,基于嵌入式技術(shù)的圖像處理系統(tǒng)以其低廉的價格和便攜性成為圖像處理的一個發(fā)展方向。目前,市場上主流的嵌入式圖像處理系統(tǒng)大多采用ARM9、ARM11等系列微控制器。大部分的ARM微控制器硬件外設(shè)出廠時已經(jīng)固定,不利于用戶進(jìn)行硬件擴(kuò)展和升級,而ARM和FPGA相結(jié)合的多芯片圖像處理解決方案又會導(dǎo)致系統(tǒng)成本太高,同時還會造成系統(tǒng)資源的浪費,整體系統(tǒng)功耗較大。為了滿足市場的需求,美國Xilinx公司開發(fā)了Zynq系列全面可編程芯片,該系列芯片采用高性能Cortex-A9雙核處理器和FPGA相結(jié)合[3-4]。
本文采用Xilinx全面可編程芯片Zynq作為開發(fā)平臺,ARM處理器完成系統(tǒng)運行和數(shù)據(jù)交換,F(xiàn)PGA部分實現(xiàn)硬件擴(kuò)展和圖像處理算法。采用軟硬件協(xié)同設(shè)計的方法,完成嵌入式圖像處理系統(tǒng)的設(shè)計。相比于傳統(tǒng)的圖像邊緣檢測系統(tǒng),基于Zynq SOC的嵌入式系統(tǒng)不僅提高了圖像的檢測質(zhì)量,而且具有實時性和可擴(kuò)展性好的優(yōu)點。
2 系統(tǒng)整體設(shè)計結(jié)構(gòu)
ZYNQ是賽靈思公司(Xilinx)推出的新一代全可編程片上系統(tǒng)(APSoC),它將處理器的軟件可編程性與 FPGA 的硬件可編程性進(jìn)行完美整合,以提供無與倫比的系統(tǒng)性能、靈活性與可擴(kuò)展性。與傳統(tǒng)SoC解決方案不同的是,高度靈活的可編程邏輯(FPGA)可以實現(xiàn)系統(tǒng)的優(yōu)化和差異化,允許添加定制外設(shè)與加速器,從而適應(yīng)各種廣泛的應(yīng)用。Zynq-7000系列是Xilinx公司推出的全可編程片上系統(tǒng),主要包含PS(Processing System)和PL(Programmable Logic)兩部分。PL采用28nm工藝;PS以2個Cortex A9的ARM核為核心,還包括片上存儲器、片外存儲器接口(DDR)和一系列的外設(shè)接口。Zynq-7000系列將ARM CPU 和外設(shè)集成在一個芯片內(nèi),使得 Zynq-7000系列皆具處理器和 FPGA 雙重特性,特別適用于軟硬件協(xié)同設(shè)計。
系統(tǒng)平臺由攝像頭、顯示器和Zynq SOC開發(fā)板三部分構(gòu)成,結(jié)構(gòu)如圖1所示。攝像頭選用MT9V034,顯示器為21英寸戴爾液晶顯示器。Zynq SOC開發(fā)板選用ZedBoard開發(fā)板,該開發(fā)板板載512M的DDR3內(nèi)存。ZedBoard是Digilent公司開發(fā)的一款搭載Xilinx Zynq-7000全面可編程系統(tǒng)芯片的低成本開發(fā)板。該開發(fā)板可以基Linux,Android,Windows或基于其它操作系統(tǒng)進(jìn)行設(shè)計。Zynq-7000器件配備雙核ARM Cortex-A9處理器,該處理器與基于28nm Artix-7FPGA集成,具有優(yōu)異的性能功耗比和最大的設(shè)計靈活性,為嵌入式應(yīng)用實現(xiàn)高度差異化設(shè)計提供保證。
整個圖像處理系統(tǒng)的實現(xiàn)由處理系統(tǒng)和可編程邏輯協(xié)同完成。PS部分的ARM處理器負(fù)責(zé)運行操作系統(tǒng)、調(diào)用資源實現(xiàn)與PL的數(shù)據(jù)交換,并且完成應(yīng)用層QT程序的實現(xiàn)。PL部分主要實現(xiàn)攝像頭的圖像采集并通過VDMA到DDR3存儲器中保存數(shù)據(jù),同時將采集到的圖像進(jìn)行圖像處理,最后把處理好的圖像通過自定義設(shè)計的顯示模塊高清顯示。
3 圖像處理算法:邊緣檢測
所謂邊緣是指其周圍像素灰度急劇變化的那些象素的集合,它是圖像最基本的特征。邊緣存在于目標(biāo)、背景和區(qū)域之間,所以,它是圖像分割所依賴的最重要的依據(jù)。由于邊緣是位置的標(biāo)志,對灰度的變化不敏感,因此,邊緣也是圖像匹配的重要的特征。
邊緣檢測和區(qū)域劃分是圖像分割的兩種不同的方法,二者具有相互補(bǔ)充的特點。在邊緣檢測中,是提取圖像中不連續(xù)部分的特征,根據(jù)閉合的邊緣確定區(qū)域。而在區(qū)域劃分中,是把圖像分割成特征相同的區(qū)域,區(qū)域之間的邊界就是邊緣。由于邊緣檢測方法不需要將圖像逐個像素地分割,因此更適合大圖像的分割。邊緣大致可以分為兩種,一種是階躍狀邊緣,邊緣兩邊像素的灰度值明顯不同;另一種為屋頂狀邊緣,邊緣處于灰度值由小到大再到小的變化轉(zhuǎn)折點處。邊緣檢測的主要工具是邊緣檢測模板。
邊緣檢測的原理是檢測圖像特性發(fā)生變化的位置。不同的灰度圖像灰度不同,邊界處會有明顯的邊緣,利用該特征可以分割圖像。邊緣總是以強(qiáng)度突變的形式出現(xiàn),這被定義為圖像局部特性不連續(xù),如灰度的突變和紋理結(jié)構(gòu)的突變。圖像的邊緣包含了物體形狀的重要信息,它不僅在分析圖像時大幅度地減少了要處理的信息量,而且還保護(hù)了目標(biāo)的邊界結(jié)構(gòu)。邊緣檢測是圖像分割的經(jīng)典研究課題之一,直到現(xiàn)在仍然在不斷發(fā)展和改進(jìn),尤其是面向嵌入式系統(tǒng)的圖像檢測。Sobel算子對圖像進(jìn)行了二維空間梯度測量[5]。通常,它用于在輸入圖像的每個點找到近似的絕對梯度幅度。
Sobel算子每個卷積因子是進(jìn)行圖像的九十度旋轉(zhuǎn)。假設(shè)一個與Sobel算子維度相同的圖像片段,卷積的結(jié)果如下:
4 系統(tǒng)測試與驗證
基于Zynq SOC的嵌入式圖像處理系統(tǒng)由攝像頭負(fù)責(zé)圖像采集,Zedborad開發(fā)板負(fù)責(zé)系統(tǒng)的運行和邊緣檢測算法,系統(tǒng)的硬件模塊連接如圖2所示。從圖中可以看出,Zynq SOC是整個系統(tǒng)的核心,基于定制的IP模塊VDMA完成圖像的幀的緩沖,通過AXI互聯(lián)與DDR進(jìn)行數(shù)據(jù)的高速交互,最后利用HDMI接口輸出處理后的圖像,如圖3所示。
5 結(jié)束語
本文基于Zynq SOC全面可編程芯片完成了嵌入式圖像采集與處理系統(tǒng),系統(tǒng)利用Sobel算子實現(xiàn)了圖像的邊緣檢測。該系統(tǒng)充分體現(xiàn)了Zynq SOC芯片ARM處理器與FPGA可編程邏輯的優(yōu)勢。與傳統(tǒng)圖像處理硬件方案相比,基于Zynq SOC嵌入式圖像處理方法不僅提高了圖像處理的質(zhì)量,而且具有實時性和可擴(kuò)展性好的特點。
參考文獻(xiàn):
[1]李朗,張索非,楊浩.基于Zynq-7000的視頻處理系統(tǒng)框架設(shè)計[J].計算機(jī)技術(shù)與發(fā)展,2017,27(05):192-195.
[2]孟繁星.基于ZYNQ-7000的視頻圖像處理系統(tǒng)設(shè)計[J].信息通信,2015(08):60-62.
[3]郭豐收.Xilinx FPGA/Zynq設(shè)計中使用HLS實現(xiàn)OpenCV的開發(fā)流程[J].電子產(chǎn)品世界,2014,21(Z1):50-52.
[4]聶陽.基于Zynq的嵌入式系統(tǒng)教學(xué)研究[J].電子測試,2016(Z1):92-93.
[5]Lee C C. Elimination of redundant operations for a fast Sobel operator[J]. IEEE Transactions on Systems Man & Cybernetics,1983,SMC-13(2):242-245.