王 亞,余 宏,莫章潔,鄧 睿
(貴州師范學(xué)院物理與電子科學(xué)學(xué)院,貴州 貴陽 550018)
數(shù)字圖像處理技術(shù)應(yīng)用十分廣泛,其主要是將圖像信號轉(zhuǎn)換成數(shù)字信號,從而利用計算機對其處理。利用ZYNQ SOC 開發(fā)板的FPGA+ARM 架構(gòu),重構(gòu)嵌入式SOC 芯片系統(tǒng)架構(gòu)體系,結(jié)合Sobel 邊緣檢測算法,設(shè)計實現(xiàn)一種靈活且可重構(gòu)的嵌入式SOC 高速視頻圖像采集系統(tǒng)平臺。通過FPGA 邏輯資源實現(xiàn)較快的計算速度,又可利用ARM 處理器進行多樣化設(shè)計,可為不同的圖像識別類人工智能場景應(yīng)用提供高速且靈活的數(shù)據(jù)采集。具有靈活性高、功耗低、體積小、處理速度快等優(yōu)點。本次設(shè)計中,采用友晶(Terasic)公司的MT9P001 圖像傳感器采集圖像數(shù)據(jù),將其傳輸至FPGA 系統(tǒng)平臺,再由FPGA 系統(tǒng)平臺將圖像數(shù)據(jù)存儲至SDRAM 中。與此同時,內(nèi)部圖像處理模塊進行sobel邊緣檢測功能,并最終在TFT顯示屏上實時顯示。
傳統(tǒng)的嵌入系統(tǒng)開發(fā),以固定的單片機系統(tǒng)為主要的處理器核心,利用C 語言在keil 工具下進行軟件設(shè)計,從而實現(xiàn)應(yīng)用開發(fā)。在本項目的研究中,與傳統(tǒng)的嵌入式開發(fā)環(huán)境有所不同。以數(shù)字系統(tǒng)設(shè)計為核心,將FPGA 與單片機ARM 系統(tǒng)合為一體,在同一開發(fā)軟件平臺上同時進行軟硬件的靈活應(yīng)用開發(fā),具有很高的靈活性和自主性。所以對異構(gòu)多核開發(fā)框架、流程進行熟悉,核間通信、ARM 與FPGA 通信等開發(fā)應(yīng)用平臺進行研究,根據(jù)不同的需求更機動靈活地完成嵌入式的應(yīng)用開發(fā)。
圖1 系統(tǒng)整體框圖
邊緣是圖像的基本特征之一,其在圖像分析與視覺分析中發(fā)揮著重要作用,常用于人們識別物體的有效信息。圖像上不同亮度的區(qū)域之間的臨界就是“邊緣”的意思,在兩個不同區(qū)域的“邊緣”處有著許多像素點,這些像素點就組成了不同的坐標(biāo)。常用的邊緣檢測法是用圖像的灰度值來檢測圖像的邊緣。算法主要計算公式是一階或者二階導(dǎo)數(shù)。
Sobel 算法是一種基于3x3 的矩陣實現(xiàn)的邊緣檢測算法,是邊緣檢測常用的重要技術(shù)之一,采用離散型計算方法,用差分計算方式計算圖像亮度函數(shù)灰度的近似值。在邊緣檢測中,核心關(guān)鍵是圖像數(shù)據(jù)與Sobel 卷積核進行卷積運算,卷積核分為x 方向和y 方向,其中x 方向檢測水平邊緣,y 方向檢測垂直邊緣。其算法流程如圖所示。
圖2 Sobel 算法流程圖
圖3 3x3A 矩陣
總梯度為:
實際使用中,常化簡為絕對值形式:
梯度方向計算公式為:
如此,我們定義一個閾值M,如果G 大于M,則可認(rèn)為該點是一個邊界值,反之,則不是邊界值。
本論文中,硬件部分采用Altera 公司的QuartusII 集成開發(fā)環(huán)境進行硬件設(shè)計,軟件部分采用Artera 公司開發(fā)的SoC EDS 設(shè)計軟件進行軟件設(shè)計。SoC FPGA 的硬件設(shè)計部分,在QuartusII 集成開發(fā)環(huán)境下的Qsys 工具中進行,建立一個HPS硬核系統(tǒng):
創(chuàng)建QuartusII 工程,選擇具有ARM 硬核處理器的FPGA器件;
在Tools 中選擇Qsys 工具并新建Qsys 工程,在界面中添加HPS 處理器等IP 核,使用file->new component 配置好所需的信號,時序,端口等信息;
所有模塊添加完成后,根據(jù)信號類型以及自己希望的數(shù)據(jù)連接定制模塊間信號連接:
最后,為外設(shè)分配地址映射,以便軟件開發(fā)中獲取設(shè)備地址。
基于soC FPGA 的嵌入式軟件設(shè)計,采用Altera 公司推出的嵌入式系統(tǒng)設(shè)計軟件soC EDS,由soC EDS 開發(fā)套件下的ARM DS-5 開發(fā)環(huán)境設(shè)計視頻傳輸系統(tǒng)。ARM DS-5Debugger可通過USB-Blaster 連接目標(biāo)開發(fā)板并進行在線調(diào)試,也可基于ARM 架構(gòu)處理器的模型進行調(diào)試。
視頻圖像采集是一個視頻采集系統(tǒng)的最前端部分,圖像數(shù)據(jù)的優(yōu)劣性如分辨率,幀率等很大程度上決定著整體系統(tǒng)的性能指標(biāo)。本次設(shè)計圖像采集模塊采用TRDB-D5M 高清圖像傳感器,該傳感器采用Micron 公司的MT9P001 數(shù)字圖像傳感芯片,為1/2.5 尺寸CMOS 結(jié)構(gòu)感光元件,具有五百萬像素。采用40pin 的標(biāo)準(zhǔn)GPIO 母口,能夠與Artera 公司與友晶科技公司聯(lián)合推出的Del-soC 開發(fā)板的GPIOO 公口連接[7]。該攝像頭采用自動工作模式和可配置工作模式,默認(rèn)工作模式為可配置工作模式,通過12C 總線設(shè)置其內(nèi)部控制寄存器,對攝像頭的分辨率,像素時鐘等工作參數(shù)進行調(diào)節(jié)。
TRDB-D5M 圖像采集需要在FPGA 中用Verilog 硬件描述語言配置,通過讀取時序得到原始圖像。每次上電之后,圖像傳感器通過12C 配置正確參數(shù)以正常工作,配置參數(shù)通過12C_Controller 模塊傳遞給攝像頭控制芯片。圖像數(shù)據(jù)以掃描的方式輸出,當(dāng)LINE_VALID 信號為高時,輸出有效圖像數(shù)據(jù),否則將是0 值。
圖4 TRDB-D5B 圖像采集模塊
數(shù)據(jù)讀寫控制選擇SDRAM,其型號為HY57V2562GTR,擁有256Mbit 的容量,16bit 總線,地址線采用12 位行列地址設(shè)計,非常適合高寬帶和大容量的存儲設(shè)計。在進行實時圖像處理中,這一優(yōu)勢至關(guān)重要。HY57V2562GTR 還擁有如下特點:
采用標(biāo)準(zhǔn)SDRAM 協(xié)議;
接口電壓低,輸入輸出功率損耗降低;
內(nèi)部有4 個存儲陣列,可進行4Bank 操作;
器件所有引腳與LVTTL 接口兼容;
刷新周期8192 次/64ms。
HY57V2562GTR 在工作時,首先需要一個上電初始化過程,其次需要一個200us 的穩(wěn)定期。不同的SDRAM 穩(wěn)定期不同,在輸入穩(wěn)定期之后,需要對所有的L-Bank 預(yù)充電,使SDRAM內(nèi)部所有存儲器件進入待機狀態(tài)。預(yù)充電結(jié)束后,SDARM 內(nèi)部的刷新計數(shù)器會進行8 次刷新操作,不同的SDRAM 刷新次數(shù)不同,最后一階段配置模式寄存器。電初始化過程結(jié)束后,我們就能將采集到的圖像數(shù)據(jù)進行讀,寫,刷新等操作,并最終通過TFT 顯示屏實時顯示。
圖5 SDRAM 存儲陣列示意圖
傳統(tǒng)的VGA 顯示器采用的是模擬信號,而FPGA 輸出的是數(shù)字信號,若采用VGA 顯示器顯示,則需要在兩者之間加數(shù)模轉(zhuǎn)換模塊(DAC 模塊),這使得設(shè)計更加復(fù)雜化。同時,由于轉(zhuǎn)換芯片價格一般比較貴,這會造成成本的上升。TFT 顯示屏為數(shù)字信號顯示屏,省略了DAC 模塊,為使整體系統(tǒng)設(shè)計簡單化,我們選用了RGB 接口的TFT 顯示屏。TFT 顯示屏的掃描方式和VGA 顯示屏標(biāo)準(zhǔn)類似,故可按VGA 顯示器的設(shè)計方法驅(qū)動TFT 顯示器。
VGA 接口的時序分為行掃描和列掃描,電子束從屏幕左上方開始掃描,從左向右,自上而下。每行掃完后,電子束都回到屏幕下一行左邊的起始位置。這期間,CRT 對電子束進行消隱。每行結(jié)束時,用行同步信號進行行同步。掃描完所有行,用場同步信號進行場同步,并使掃描回到屏幕左上方。同時進行場消隱,預(yù)備下一場(幀)的掃描。不同VGA 顯示屏之間僅時序參數(shù)不一樣,可用相同方式進行設(shè)計。在設(shè)計VGA 驅(qū)動代碼時,將時序指標(biāo)進行參數(shù)化設(shè)計,以便在更換顯示屏?xí)r省去代碼編寫的重復(fù)性過程,只需更改參數(shù)便可完成驅(qū)動。
通過TRDB-D5M 高清攝像頭對實物圖的數(shù)據(jù)采集,本設(shè)計方案基本實現(xiàn)了sobel 邊緣檢測,且檢測結(jié)果正確。實時對數(shù)據(jù)進行了處理,完成了預(yù)期的設(shè)計目標(biāo)。
圖6 測試圖實物圖與顯示測試圖
通過FPGA-ARM 異構(gòu)系統(tǒng)平臺和TRDB-D5M 采集圖片數(shù)據(jù),以Sobel算子進行邊緣檢測。采用Verilog硬件設(shè)計語言編碼,控制TRDB-D5M 采集圖片視頻流數(shù)據(jù),并通過TFT 顯示屏進行顯示,驗證了整體系統(tǒng)的可行性。本設(shè)計方案對各個部分進行模塊設(shè)計,成功實現(xiàn)對視頻流數(shù)據(jù)進行Sobel 邊緣檢測的實時處理,使開發(fā)出性能更高、用途更廣泛的處理方法成為可能。