国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

FPGA的視頻流圖像采集和預(yù)處理系統(tǒng)設(shè)計(jì)*

2018-10-15 06:08:24,,,,,
關(guān)鍵詞:像素點(diǎn)灰度預(yù)處理

,,,,,

(1.南京航空航天大學(xué) 航天學(xué)院,南京 210016;2.南京航空航天大學(xué) 民航學(xué)院)

引 言

隨著圖像處理技術(shù)和嵌入式處理芯片的發(fā)展,將DSP芯片、ARM芯片等嵌入式處理器應(yīng)用于圖像處理領(lǐng)域是目前研究的熱點(diǎn)[1-2]。DSP芯片是一種編譯效率高、指令執(zhí)行速度快的CPU芯片,ARM芯片尋址靈活、功耗低,但是它們的串行結(jié)構(gòu)也不適用于對(duì)實(shí)時(shí)性要求較高的圖像處理。

現(xiàn)場(chǎng)可編程門陣列(FPGA)是一種可以并行運(yùn)算、實(shí)時(shí)處理和可開發(fā)資源豐富的高集成度專用集成電路(ASIC)[3],適用于單位時(shí)間內(nèi)處理數(shù)據(jù)多、需要數(shù)據(jù)處理速率高的圖像處理系統(tǒng),相較于傳統(tǒng)DSP和ARM,具有更快的數(shù)據(jù)處理速率和使用靈活性[4]。在圖像采集和預(yù)處理系統(tǒng)的開發(fā)中,使用FPGA可設(shè)計(jì)并行或串行處理的硬件電路[5-7],易于在原有設(shè)計(jì)的基礎(chǔ)上進(jìn)行更多功能設(shè)計(jì)的拓展。隨著FPGA具有越來越豐富的可用資源和更加廣泛的應(yīng)用場(chǎng)景,Xilinx和Altera(現(xiàn)在被英特爾收購)相繼推出了具有不同特色的FPGA嵌入式開發(fā)平臺(tái),進(jìn)一步推動(dòng)了FPGA的廣泛應(yīng)用。

本系統(tǒng)采用Xilinx公司推出的Zynq-7000系列全可編程片上系統(tǒng)(SoC,System on Chip)Zedboard,該系列平臺(tái)集成了雙核Arm Cortex-A9處理器和FPGA架構(gòu),功耗低、資源豐富[8-10]。同時(shí)在SDK的軟件平臺(tái)下可依據(jù)IP核的功能編寫程序驅(qū)動(dòng)IP核,滿足本系統(tǒng)的設(shè)計(jì)需求。

1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)

系統(tǒng)采用OV7670圖像傳感器實(shí)現(xiàn)圖像采集、預(yù)處理和傳輸,其他控制模塊采用Zedboard的可編程邏輯(Programmable Logic,PL)實(shí)現(xiàn),處理后的圖像輸入到VGA顯示器上,同時(shí)其預(yù)處理后的圖像數(shù)據(jù)保存于處理器系統(tǒng)(Processing System,PS)的內(nèi)存單元DDR3中。系統(tǒng)整體結(jié)構(gòu)如圖1所示。

圖1 系統(tǒng)結(jié)構(gòu)原理圖

系統(tǒng)上電后,通過SCCB協(xié)議控制OV7670圖像傳感器的內(nèi)部寄存器,完成OV7670的配置。由OV7670圖像傳感器和圖像采集模塊進(jìn)行視頻流圖像的捕獲,并對(duì)捕獲的640×480像素的彩色圖像進(jìn)行色彩變換,轉(zhuǎn)化為灰度圖像。然后把彩色圖像信息和灰度圖信息輸出到圖像縮比IP核,得到160×120像素的灰度圖,這兩種圖像信息經(jīng)由DataMover傳輸模塊、互聯(lián)模塊和控制模塊存入內(nèi)存單元DDR3中,內(nèi)存單元中的可供調(diào)用的640×480像素的彩色圖像、640×480像素的灰度圖像和160×120像素的灰度圖像信息,也可經(jīng)由DataMover傳輸模塊和VGA接口輸出模塊以30 fps的刷新率顯示到VGA顯示器上。

本系統(tǒng)采用著名的彩色轉(zhuǎn)灰度心理學(xué)公式來實(shí)現(xiàn)彩色圖像到灰度圖的轉(zhuǎn)化,采用雙線性插值法的算法思想實(shí)現(xiàn)圖像的縮比。

2 硬件系統(tǒng)搭建

使用Xilinx公司的FPGA開發(fā)工具Vivado 2017.4完成硬件系統(tǒng)各模塊的設(shè)計(jì)。

2.1 圖像采集模塊設(shè)計(jì)

圖像采集模塊由OV7670圖像傳感器、capture 捕獲IP核和capture_control 捕獲控制IP核共同組成。其中OV7670圖像傳感器通過PMOD口轉(zhuǎn)接板與Zedboard開發(fā)板連接,可以寫入640×480像素、16位色彩深度的圖像信息;capture_control IP核實(shí)現(xiàn)SCCB協(xié)議對(duì)OV7670寄存器的寫操作,通過查看寫寄存器操作對(duì)應(yīng)的三個(gè)BIT位判斷OV7670配置情況;camera IP核從8位并行總線讀取數(shù)據(jù),將兩個(gè)連續(xù)的8位總線數(shù)據(jù)組成一個(gè)16位的像素點(diǎn)。

OV7670圖像傳感器采集圖像數(shù)據(jù)傳遞到capture IP核中,由于圖像像素深度為16位,而SCCB總線只能并行傳遞8位數(shù)據(jù),所以需要在capture IP核中將前后兩個(gè)8位總線數(shù)據(jù)合成為16位的像素點(diǎn),以R、G、B三色信息分別占5、6、5位的方式存儲(chǔ),如圖2所示。

圖2 RGB輸出時(shí)序框圖

關(guān)鍵代碼如下:

assign data16={t8[7:0],data8[7:0]};

wire [31:0] data32={8'b0,data16[15:11],3'b0,data16[10:5],2'b0,data16[4:0],3'b0};

data16為由總線上前后兩個(gè)8位數(shù)據(jù)組成的16位像素點(diǎn),data32的低24位存放了R、G、B數(shù)據(jù),高8位存放8位的灰度圖數(shù)據(jù)。此外還需在capture IP核中實(shí)現(xiàn)生成緩存地址addr的功能,以便于圖像數(shù)據(jù)緩存。當(dāng)場(chǎng)同步信號(hào)VSYNC為高時(shí),將地址生成器清零,則表示一幅圖像傳輸完畢。

2.2 圖像預(yù)處理模塊

圖像處理可實(shí)現(xiàn)目標(biāo)的檢測(cè)、識(shí)別、跟蹤等,可根據(jù)需求的不同完成不同的設(shè)計(jì)處理。在目標(biāo)區(qū)域提取、邊緣檢測(cè)等算法中實(shí)現(xiàn)的灰度轉(zhuǎn)換和圖像縮放可以作為圖像預(yù)處理提前進(jìn)行實(shí)現(xiàn)。

本模塊先將640×480像素的RGB彩色圖像信息進(jìn)行灰度轉(zhuǎn)化,然后將灰度圖數(shù)據(jù)、RGB三色數(shù)據(jù)以32位字的形式輸出給圖像縮比IP核,在圖像縮比IP核中將灰度圖數(shù)據(jù)按比例縮小得到160×120像素的灰度圖數(shù)據(jù)。至此可獲取三組數(shù)據(jù)信息:640×480像素的彩色圖像信息、640×480像素的灰色圖像信息和160×120像素的灰色圖像信息。將這三組數(shù)據(jù)通過傳輸模塊存入內(nèi)存單元中,供處理器調(diào)用,同時(shí)通過傳輸模塊將圖像信息傳遞給具有VGA接口的顯示器輸出。

2.2.1 圖像灰度轉(zhuǎn)化IP核設(shè)計(jì)

彩色位圖由R、G、B三個(gè)分量組成,灰度圖則只包含亮度信息,不包含彩色信息,通過量化亮度值的方式表示灰度圖。彩色圖像轉(zhuǎn)化到灰度圖運(yùn)用著名的心理學(xué)公式[11]:

Gray=0.299×R+0.587×G+0.114×B

(1)

將capture IP核得到的R、G、B數(shù)據(jù)根據(jù)公式計(jì)算得出灰度圖數(shù)據(jù)。然而在硬件中無法表示小數(shù),所以將其系數(shù)放大1000倍再表示為32位的十六進(jìn)制數(shù):

(2)

將R、G、B數(shù)據(jù)分別與上述系數(shù)相乘得到灰度圖數(shù)據(jù),使用去尾法,對(duì)轉(zhuǎn)換后的數(shù)據(jù)取最高10位數(shù)據(jù)。將這10位灰度圖數(shù)據(jù)輸出給后續(xù)的圖像縮比IP核,同時(shí)取代表示整數(shù)的高8位灰度圖數(shù)據(jù),與R、G、B三色數(shù)據(jù)以32位字的形式輸出給圖像傳輸模塊。

2.2.2 圖像縮比IP核

圖像縮放常用的方法有:鄰近插值法、雙線性插值法和三次卷積法。使用鄰近插值法進(jìn)行圖像縮放會(huì)有嚴(yán)重的鋸齒效應(yīng),使用三次卷積法進(jìn)行縮放得到的圖像清晰,但計(jì)算量大、計(jì)算精度高、硬件實(shí)現(xiàn)難度大,而使用雙線性插值法得到的圖像質(zhì)量高、像素值連續(xù),計(jì)算難度低,適合在硬件上實(shí)現(xiàn)。

圖3 圖像縮比原理圖

雙線性插值法通過分別在X、Y方向進(jìn)行線性插值得到縮放后的圖像。圖像縮比IP核的功能是將640×480的灰度圖像按比例縮小至160×120的灰度圖像,原理如圖3所示。O為縮小后的灰度圖像中的一個(gè)像素點(diǎn),它的值由此點(diǎn)對(duì)應(yīng)于原640×480灰度圖的周圍的16個(gè)像素點(diǎn)決定。16個(gè)像素點(diǎn)與O點(diǎn)的距離不同,其對(duì)O像素值的影響力也不同,所以其在計(jì)算O點(diǎn)的灰度值時(shí)所占的權(quán)值不同,距離越近所占權(quán)值越大。將O點(diǎn)映射到每行可得到此行4個(gè)點(diǎn)相對(duì)于O的距離。

其他三行計(jì)算相似,得到ab、AB、AB'和ab'的值,然后再根據(jù)距離不同得出最終O點(diǎn)的像素值,計(jì)算公式如下:

(3)

為了實(shí)現(xiàn)此IP核,先用兩個(gè)寄存器counter_col[9:0]和counter_row[8:0]分別代表輸入的原灰度圖的列數(shù)和行數(shù),其低2位counter_col[1:0]和counter_row[1:0]可表示4×4的16個(gè)像素點(diǎn)的坐標(biāo),而在param [counter_row[1:0],counter_col[1:0]]中存放著16個(gè)像素點(diǎn)對(duì)應(yīng)的權(quán)值。通過判斷16個(gè)像素點(diǎn)的坐標(biāo)分別將對(duì)應(yīng)像素點(diǎn)的灰度值和權(quán)值相乘再累加,將最后得到的像素值取高8位存放在寄存器small_data[31:0]中,先得出的像素值存放在small_data低8位,當(dāng)small_data存滿后再以32位字的形式輸出。

2.3 圖像傳輸模塊

圖像傳輸模塊的功能是實(shí)現(xiàn)數(shù)據(jù)在PL與PS間的交互。由于本系統(tǒng)需要傳輸連續(xù)的圖像,數(shù)據(jù)量大且傳輸速度快,這就要求PL能夠以足夠的帶寬傳輸連續(xù)大量的數(shù)據(jù)到DDR3存儲(chǔ)器,而且PL能夠獨(dú)立于處理器主動(dòng)地從DDR3中取數(shù)。

圖4 DataMover MM2S原理圖

PL部分用AXI STREAM表示,DDR3內(nèi)存一般用映射地址Maped Memory表示,則從PL搬運(yùn)數(shù)據(jù)到DDR的方向表示為S2MM,從DDR搬運(yùn)數(shù)據(jù)到PL的方向表示為MM2S。使用DataMover的MM2S功能實(shí)現(xiàn)數(shù)據(jù)從DDR3傳輸?shù)絇L,即從MAPED MEMORY里面取得數(shù)據(jù)之后傳遞給AXI STREAM的下游設(shè)備,需要一個(gè)AXI FULL MASTER從AXI 總線獲取數(shù)據(jù),然后AXI STREAM MASTER 將數(shù)據(jù)傳遞給下游的PL,命令接口和狀態(tài)接口使用了AXI_STREAM,方便與 PL連接,并且使用了先入先出隊(duì)列,實(shí)現(xiàn)完全的異步工作,如圖4所示。S2MM實(shí)現(xiàn)數(shù)據(jù)從DDR3傳輸?shù)絇L,傳輸方向與MM2S相反,原理與其相同。

DataMover通過AXI-Connect模塊與處理器芯片High-Performance AXI Ports連接,再經(jīng)過連接DataMover_ctrl的cmd_tvalid和cmd_tready等信號(hào)實(shí)現(xiàn)控制數(shù)據(jù)的傳輸。

2.4 VGA接口輸出模塊

在之前的圖像采集和預(yù)處理模塊中,已經(jīng)將640×480像素的彩色圖像進(jìn)行了預(yù)處理,然后經(jīng)由傳輸模塊輸入到DDR3中,所以VGA接口輸出模塊可直接從DataMover核中取數(shù)據(jù)刷新到VGA顯示器中。VGA接口顯示的原理如圖5所示。

圖5 VGA接口顯示原理圖

VGA顯示原理是對(duì)一屏圖像逐行進(jìn)行掃描,H_syn(行同步信號(hào))標(biāo)示一行的結(jié)束,掃描完一屏再對(duì)下一屏逐行掃描,V_syn(場(chǎng)同步信號(hào))標(biāo)示一屏的結(jié)束。H_Active和V_Active標(biāo)示要顯示的區(qū)域。由于協(xié)議是基于經(jīng)典的CRT顯示器,電子槍除了需要同步信號(hào)外,還需要多一些延遲時(shí)間來進(jìn)行調(diào)整,這就需要Front_porch(前停)和Back_porch(后停)。行掃描時(shí)序執(zhí)行順序:H_syn—H_Back_porch—H_Active—H_Front_porch;場(chǎng)掃描時(shí)序執(zhí)行順序:V_syn—V_Back_porch—V_Active—V_Front_porch。VGA輸出IP核依此原理進(jìn)行設(shè)計(jì),用計(jì)數(shù)器pixel_count和line_count分別記錄行內(nèi)的像素點(diǎn)時(shí)鐘數(shù)和行數(shù),當(dāng)這兩個(gè)計(jì)數(shù)器分別對(duì)應(yīng)顯示區(qū)域所處位置時(shí),允許顯示,其他時(shí)間則進(jìn)行消音輸出。

3 軟件開發(fā)

軟件開發(fā)過程為在Xilinx公司的開發(fā)工具SDK中編寫驅(qū)動(dòng)各IP核模塊的程序,從而達(dá)到圖像的采集、在VGA上連續(xù)顯示和通過串口將三組圖像信息打印的目的。

4 系統(tǒng)運(yùn)行與測(cè)試

通過圖像傳感器采集一幅640×480的圖像輸入到圖像采集模塊、預(yù)處理模塊、傳輸模塊,通過具有VGA接口的顯示器顯示結(jié)果,并將640×480的原圖信息、640×480的灰度圖信息和160×120的灰度圖信息通過串口打印出來。

圖6為經(jīng)過該系統(tǒng)預(yù)處理后的VGA顯示圖像。左上角160×120區(qū)域顯示的是經(jīng)系統(tǒng)處理后的灰度圖,剩下的區(qū)域顯示的是未經(jīng)處理的原始圖像。

圖6 VGA顯示圖

將通過串口得到的640×480的原始圖像在Matlab平臺(tái)上按照IP核設(shè)計(jì)時(shí)的原理進(jìn)行灰度轉(zhuǎn)化和圖像縮比,得到160×120的灰度圖,如圖7(a)所示,而圖7(b)則為在此FPGA系統(tǒng)平臺(tái)上利用預(yù)處理IP核實(shí)現(xiàn)灰度轉(zhuǎn)化和縮比后得到的160×120的灰度圖。

圖7 預(yù)處理結(jié)果圖

拍攝不同場(chǎng)景并得到多組預(yù)處理系統(tǒng)灰度圖和Matlab平臺(tái)灰度圖,將同一幅原始圖像的兩個(gè)不同平臺(tái)的處理圖進(jìn)行對(duì)應(yīng)點(diǎn)差異值計(jì)算,得到最大差異值和最小差異值。計(jì)算100組圖像后得到的最大差異值和最小差異值分別為0.0046/px和1.39×10-4/px。

在預(yù)處理算法原理相同、實(shí)現(xiàn)平臺(tái)不同的情況下,經(jīng)過多次實(shí)驗(yàn)對(duì)比發(fā)現(xiàn),兩者處理結(jié)果基本一致。但是由表1的耗時(shí)對(duì)比可以看出,使用本嵌入式系統(tǒng)可降低算法耗時(shí),為處理更復(fù)雜的算法縮短了處理時(shí)間。

表1 預(yù)處理系統(tǒng)和Matlab處理耗時(shí)對(duì)比

結(jié) 語

猜你喜歡
像素點(diǎn)灰度預(yù)處理
采用改進(jìn)導(dǎo)重法的拓?fù)浣Y(jié)構(gòu)灰度單元過濾技術(shù)
基于灰度拉伸的圖像水位識(shí)別方法研究
基于canvas的前端數(shù)據(jù)加密
基于預(yù)處理MUSIC算法的分布式陣列DOA估計(jì)
基于最大加權(quán)投影求解的彩色圖像灰度化對(duì)比度保留算法
基于逐像素點(diǎn)深度卷積網(wǎng)絡(luò)分割模型的上皮和間質(zhì)組織分割
基于灰度線性建模的亞像素圖像抖動(dòng)量計(jì)算
淺談PLC在預(yù)處理生產(chǎn)線自動(dòng)化改造中的應(yīng)用
絡(luò)合萃取法預(yù)處理H酸廢水
基于自適應(yīng)預(yù)處理的改進(jìn)CPF-GMRES算法
盐城市| 浦东新区| 南雄市| 陆良县| 会东县| 潮安县| 集安市| 贵南县| 芦溪县| 开鲁县| 陆丰市| 平陆县| 齐齐哈尔市| 海原县| 榆社县| 南丰县| 湖北省| 桂阳县| 中江县| 湘潭市| 衢州市| 阳高县| 满洲里市| 哈密市| 中江县| 勃利县| 桃园县| 泌阳县| 栾城县| 光山县| 旅游| 虹口区| 涪陵区| 花莲县| 徐汇区| 广饶县| 油尖旺区| 西峡县| 桐乡市| 铁力市| 交口县|