范哲意,周治國,劉志文
(北京理工大學(xué) 信息與電子學(xué)院,北京100081)
高素質(zhì)專門人才和拔尖創(chuàng)新人才培養(yǎng)是高等教育的重要發(fā)展任務(wù)之一[1],實(shí)踐教學(xué)在人才培養(yǎng)過程中發(fā)揮著舉足輕重的作用。我校信息與電子學(xué)院在國家“985 工程”三期建設(shè)項(xiàng)目的支持下,建設(shè)了“電子信息類大學(xué)生實(shí)踐創(chuàng)新平臺”,為培養(yǎng)高素質(zhì)創(chuàng)新人才提供了有利的條件,本文介紹的圖像處理實(shí)驗(yàn)平臺是其中面向“數(shù)字圖像處理”方向?qū)嶒?yàn)教學(xué)和創(chuàng)新活動的平臺。
“數(shù)字圖像處理”是電子信息類專業(yè)的重要專業(yè)課程之一,主要學(xué)習(xí)通過計(jì)算機(jī)對數(shù)字圖像進(jìn)行分析和處理的基本理論和方法,課程的理論性、實(shí)踐性強(qiáng),要求學(xué)生在掌握圖像處理和圖像分析的基本概念、基礎(chǔ)理論、典型方法的基礎(chǔ)上,掌握一定的實(shí)踐技能。在課程實(shí)驗(yàn)教學(xué)的基礎(chǔ)上,將圖像處理的理論知識和綜合應(yīng)用相結(jié)合,激發(fā)學(xué)生探索深層次的技術(shù)和應(yīng)用,積極開展創(chuàng)新實(shí)驗(yàn),將促進(jìn)學(xué)生創(chuàng)新意識和創(chuàng)新思維的培養(yǎng),提高實(shí)際動手能力和創(chuàng)新能力[2-4]。
本文采用的圖像處理實(shí)驗(yàn)平臺硬件架構(gòu)以FPGA為核心,同時引入了模型化設(shè)計(jì)[5]的方法為學(xué)生參與實(shí)驗(yàn)提供切入口,實(shí)驗(yàn)過程直觀簡便,便于學(xué)生參與實(shí)驗(yàn)。基于硬件平臺的實(shí)驗(yàn)系統(tǒng)往往因?yàn)閷W(xué)生對硬件架構(gòu)了解不足和繁瑣的開發(fā)流程使實(shí)驗(yàn)的效果大打折扣,模型化設(shè)計(jì)的方法為解決這個問題提供了途徑,可以有效地降低硬件平臺應(yīng)用程序的開發(fā)難度,很好地屏蔽各種不同目標(biāo)平臺之間的差異性[6],學(xué)生不用關(guān)心具體的硬件實(shí)現(xiàn)細(xì)節(jié),而是將工作的重心集中在核心算法和技術(shù)的開發(fā)。
實(shí)驗(yàn)系統(tǒng)選用XUPV5-LX110T[7]作為處理平臺,該平臺是是一款以XILINX 公司Virtex-5 系列芯片XC5VLX110T 為核心的FPGA 平臺,外圍接口豐富,同時還集成了視頻輸入和輸出模塊,可實(shí)時采集圖像并進(jìn)行分析和處理,非常適用于視頻和圖像處理的開發(fā)。其視頻輸入部分由AD9980 采樣芯片和VGA 接口組成,視頻輸出部分則由CH7301C 芯片和DVI 接口組成。
為了使學(xué)生集中于圖像處理算法和技術(shù)的研究和創(chuàng)新,提升實(shí)驗(yàn)教學(xué)和創(chuàng)新活動的效果,采用了基于System Generator 的模型化設(shè)計(jì)方法簡化了FPGA 開發(fā)的流程,為學(xué)生方便快捷切入實(shí)驗(yàn)提供了有效的途徑。
System Generator 是由Xilinx 公司和Mathworks 公司聯(lián)合開發(fā)的基于FPGA 的信號處理建模和設(shè)計(jì)工具[8],是一種系統(tǒng)級(或算法級)的設(shè)計(jì)工具,充分利用了Matlab/Simulink 強(qiáng)大的圖形化建模功能,使得用FPGA 設(shè)計(jì)DSP 系統(tǒng)完全通過Simulink 的圖形化界面進(jìn)行建模、系統(tǒng)級仿真,設(shè)計(jì)模型可直接向HDL 語言代碼轉(zhuǎn)換[9]。設(shè)計(jì)者在不懂硬件描述語言設(shè)計(jì)時,仍可以完成硬件設(shè)計(jì),先將處理算法抽象成為功能模塊,通過Simulink 建立系統(tǒng)的仿真模型,通過System Generator 模塊生成HDL 語言和工程,在ISE 中進(jìn)行仿真、綜合,并下載到FPGA 目標(biāo)平臺上進(jìn)行測試和實(shí)現(xiàn)。其工作原理如圖1 所示。
圖1 System Generator 工作原理
利用System Generator 模型化設(shè)計(jì)方法進(jìn)行實(shí)驗(yàn)的流程[10]主要包括:
(1)根據(jù)算法原理,在在Simulink 環(huán)境中搭建系統(tǒng)模型。
(2)在Simulink 環(huán)境中對系統(tǒng)模型進(jìn)行仿真分析,并進(jìn)行相應(yīng)的參數(shù)調(diào)整。
(3)啟動System Generator,完成系統(tǒng)模型到HDL代碼的轉(zhuǎn)換,生成完整的ISE 工程。
(4)在ISE 中調(diào)用生成的工程文件,進(jìn)行綜合、布線、時序分析。
(5)配置下載到目標(biāo)FPGA 平臺上實(shí)現(xiàn),進(jìn)行調(diào)試運(yùn)行。
下面以實(shí)時圖像的邊緣檢測算法實(shí)現(xiàn)為例來說明利用System Generator 模型化設(shè)計(jì)方法進(jìn)行實(shí)驗(yàn)的過程。
邊緣檢測是數(shù)字圖像處理的基礎(chǔ)問題之一[11],是圖像分析與識別的重要環(huán)節(jié),是目標(biāo)檢測和圖像分割的重要基礎(chǔ),在實(shí)時圖像處理中,利用Sobel 算子進(jìn)行物體的邊緣檢測是經(jīng)常用到的算法。
Sobel 算子是基于一階微分的邊緣檢測方法,計(jì)算簡單且能產(chǎn)生較好的檢測效果,對噪聲具有平滑作用,可以提供較為精確的邊緣方向信息。Sobel 邊緣檢測算法使用兩個方向算子(水平梯度算子和垂直梯度算子,見圖2)與圖像進(jìn)行卷積運(yùn)算得到水平梯度和垂直梯度,然后綜合水平梯度和垂直梯度求得灰度圖像中各個像素點(diǎn)的梯度值,設(shè)定檢測閾值,梯度值大于等于閾值的點(diǎn)為邊緣點(diǎn),反之則不是邊緣點(diǎn),從而實(shí)現(xiàn)邊緣檢測[12-13]。
圖2 Sobel 算子模塊
基于圖像處理平臺的實(shí)時圖像邊緣檢測流程主要包括以下幾個步驟:視頻圖像采集、彩色圖像轉(zhuǎn)換為灰度圖像、邊緣檢測和處理結(jié)果輸出。
視頻圖像采集功能由BPS(BEEcube Platform Studio)提供的VGA 模塊(見圖3)可以直接實(shí)現(xiàn),BPS工具是基于Simulink框架上的另一個系統(tǒng)級的、軟硬件協(xié)同開發(fā)的環(huán)境,可以自動生成特定硬件接口和相應(yīng)軟件驅(qū)動[14]。
圖3 VGA 接口模塊
彩色圖像轉(zhuǎn)換為灰度圖像[15]采用如下轉(zhuǎn)換矩陣
其中:Y 為象素點(diǎn)的亮度;R、G、B 分別為三基色的相對強(qiáng)度。利用System Generator 創(chuàng)建上述轉(zhuǎn)換模型如圖4 所示。該模塊實(shí)現(xiàn)彩色圖像到灰度圖像的轉(zhuǎn)換,同時將視頻的行、場同步信號傳遞到下級算法模塊。
根據(jù)Sobel 邊緣檢測算法原理,利用System Generator 創(chuàng)建的邊緣檢測算法模型如圖5 所示。
圖4 彩色與灰度圖像轉(zhuǎn)換模型
圖5 Sobel 邊緣檢測算法模型
上述彩色與灰度圖像轉(zhuǎn)換模型和Sobel 邊緣檢測算法模型可以分別封裝為一個RGB2Y 子模塊和一個EdgeDetection 子模塊,以便頂層系統(tǒng)模型調(diào)用,封裝好的子模塊如圖6 所示。
圖6 (a)RGB2Y 子模塊 (b)EdgeDetection 子模塊
結(jié)果輸出功能采用BPS 提供的DVI 模塊(如圖7所示)直接實(shí)現(xiàn)。將前端處理模塊產(chǎn)生的R、G、B 像素分量信號、行同步、場同步以及像素使能信號依次接入DVI 模塊,并實(shí)現(xiàn)視頻流輸出。由于前端邊緣檢測模塊輸出只包含一種顏色分量Y,這里DVI 模塊的R、G、B 端子均采用分量Y 輸入。
圖7 DVI 模塊
最后,由上述各子模塊構(gòu)建頂層系統(tǒng)模型如圖8所示。
這里選用一段交通監(jiān)控視頻圖像處理實(shí)驗(yàn)平臺對上述邊緣檢測模型進(jìn)行仿真測試,實(shí)驗(yàn)結(jié)果如圖9 所示,實(shí)驗(yàn)結(jié)果表明了實(shí)驗(yàn)系統(tǒng)的有效性。
圖8 頂層系統(tǒng)模型
圖9 (a)輸入視頻圖像(b)邊緣檢測結(jié)果
給出了一種基于FPGA 和System Generator 模型化設(shè)計(jì)方法的圖像處理實(shí)驗(yàn)平臺,并在該平臺上實(shí)現(xiàn)了基于Sobel 算子的實(shí)時圖像邊緣檢測算法。該實(shí)驗(yàn)平臺適用于圖像處理方面的實(shí)驗(yàn)教學(xué)和創(chuàng)新活動。目前已經(jīng)在我校電子信息技術(shù)實(shí)驗(yàn)中心投入使用,主要面向高年級本科生和研究生,為高素質(zhì)專門人才和拔尖創(chuàng)新人才培養(yǎng)提供了有效途徑。
[1] 教育部. 國家中長期教育改革和發(fā)展規(guī)劃綱要(2010-2020 年)[EB/OL]. 2010. http://www. moe. edu. cn/publicfiles/business/htmlfiles/moe/moe_177/201008/93785.html.
[2] 姜 珊,雙 凱.“數(shù)字圖像處理”課程的實(shí)驗(yàn)教學(xué)改革[J]. 實(shí)驗(yàn)室研究與探索,2006,25(5):644-646.
[3] 王漢萍,于海生,王 英,等. “數(shù)字圖像處理”實(shí)驗(yàn)體系模塊化的研究[J]. 實(shí)驗(yàn)室研究與探索,2007,26(12):31-33.
[4] 蔣 偉,官禮和,劉亞威. 數(shù)字圖像處理創(chuàng)新實(shí)驗(yàn)的研究與實(shí)踐[J]. 實(shí)驗(yàn)室研究與探索,2011,30(7):236-238,251.
[5] 劉 杰. 基于模型的設(shè)計(jì)及其嵌入式實(shí)現(xiàn)[M]. 北京:北京航空航天大學(xué)出版社,2010.
[6] 李 穎. Simulink 動態(tài)系統(tǒng)建模與仿真[M]. 西安:西安電子科技大學(xué)出版社,2009.
[7] Xilinx. XUPV5-LX110T Development System[EB/OL]. 2012.http://www.xilinx.com/univ/xupv5-lx110t.htm.
[8] 劉開健,吳光敏,樊則賓,等. 基于SYSGEN 的信號濾波系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 微計(jì)算機(jī)信息,2009,25(4-2):219-220,196.
[9] 牛斌凱,雍少為,張 建,等. 基于System Generator 開發(fā)數(shù)字信號處理系統(tǒng)[J]. 艦船電子工程,2010,30(1):129-132.
[10] 何錫君,陳華礎(chǔ). 基于System Generator 的DDS 設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代雷達(dá),2008,30(2):88-90.
[11] 趙 芳,欒曉明,孫 越. 數(shù)字圖像幾種邊緣檢測算子檢測比較分析[J]. 自動化技術(shù)與應(yīng)用,2009,28(3):68,72.
[12] 張麗紅,凌朝東. 基于FPGA 的Sobel 邊緣檢測應(yīng)用[J]. 電子技術(shù)應(yīng)用,2011,37(8):26-29.
[13] 姜炳旭,劉 杰,孫 可. Sobel 邊緣檢測的細(xì)化[J]. 沈陽師范大學(xué)學(xué)報(bào),2010,28(4):503-506.
[14] MathWorks. BEEcube Platform Studio[EB/OL]. 2012. http://www. mathworks. cn/products/connections/product_detail/product_57841.html.
[15] 劉慶祥,蔣天發(fā). 彩色與灰度圖像間轉(zhuǎn)換算法的研究[J]. 武漢理工大學(xué)學(xué)報(bào),2003,27(3):344-346.