999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于FPGA的自適應(yīng)實(shí)時(shí)視頻梯形矯正系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

2022-01-27 09:53:40索軍紅張冠茂趙漢卿
液晶與顯示 2022年1期
關(guān)鍵詞:檢測

索軍紅,張冠茂,喬 鑫,趙漢卿

(蘭州大學(xué) 信息科學(xué)與工程學(xué)院 光電子與電磁信息研究所,甘肅 蘭州 730000)

1 引 言

圖像作為承載信息的主要載體,其準(zhǔn)確性至關(guān)重要,但在獲取圖像的過程中往往會(huì)受到各種因素的干擾,使最終成像發(fā)生畸變,從而影響人們對實(shí)際情況的分析與判斷。圖像畸變可分為非線性畸變和線性畸變。非線性畸變主要是由于相機(jī)的制作工藝不完善造成的,致使實(shí)際成像模型與理想針孔成像模型不一致。非線性畸變中真實(shí)畫面與最終成像之間的映射關(guān)系雖然復(fù)雜,但對于特定相機(jī)而言,映射關(guān)系是固定的,無需在拍攝過程中實(shí)時(shí)計(jì)算,已有許多文獻(xiàn)對其進(jìn)行了較為充分的研究。線性畸變與相機(jī)的拍攝角度和運(yùn)動(dòng)狀態(tài)有關(guān)。梯形畸變作為線性畸變的一種,其成因是在實(shí)際的拍攝場景中,受限于拍攝距離和角度,攝像機(jī)往往不能垂直于被拍攝平面,造成最終成像結(jié)果產(chǎn)生梯形畸變[1-9]。梯形畸變矯正通常使用軟件實(shí)現(xiàn),無法滿足實(shí)時(shí)矯正的需求,如向芝慧小組結(jié)合兩步投影法和Harris角點(diǎn)檢測算法利用軟件矯正梯形畸變,但矯正時(shí)間以數(shù)百毫秒計(jì)[10];張宇小組基于OpenCV采用連接點(diǎn)法矯正梯形畸變,但只有在攝像機(jī)和被拍攝平面相對位置不變的情況下才能進(jìn)行實(shí)時(shí)矯正[11]。本文基于現(xiàn)場可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)提出了一種梯形矯正的新思路,采用配有XILINX artix-7XC7A100T-2FGG484I芯片的AX7103開發(fā)板為實(shí)驗(yàn)平臺,可以實(shí)時(shí)且自適應(yīng)地矯正梯形畸變。

2 梯形矯正系統(tǒng)的構(gòu)成及其工作原理

2.1 梯形矯正系統(tǒng)的硬件構(gòu)成

梯形矯正系統(tǒng)結(jié)構(gòu)框圖如圖1所示,其主要由OV5640攝像頭模塊、FPGA模塊、DDR3(Double Data Rate 3)存儲模塊、液晶顯示器模塊、按鍵模塊、以及其他必要模塊(電源模塊、時(shí)鐘模塊、配置電路)組成。FPGA模塊又由圖像采集模塊、灰度插值模塊、圖像預(yù)處理模塊、直線檢測模塊、參數(shù)計(jì)算模塊、DDR讀寫模塊和DDR控制模塊組成。

圖1 梯形矯正系統(tǒng)結(jié)構(gòu)框圖

進(jìn)行矯正時(shí),由OV5640攝像頭采集圖像,F(xiàn)PGA模塊對圖像進(jìn)行矯正,DDR3模塊負(fù)責(zé)緩存數(shù)據(jù),最終由顯示器顯示矯正后的圖像。

2.2 梯形矯正系統(tǒng)的工作原理

該系統(tǒng)的基本工作原理為:圖像采集模塊通過IIC總線協(xié)議配置OV5640攝像頭,使其按照640×480的分辨率和RGB565的格式將數(shù)據(jù)傳遞給FPGA芯片,最后經(jīng)由圖像采集模塊、DDR讀寫模塊和DDR控制模塊將數(shù)據(jù)存入DDR3中。

圖像預(yù)處理模塊讀取DDR3中緩存的原始圖像后對其進(jìn)行灰度轉(zhuǎn)換、Sobel邊緣檢測、形態(tài)學(xué)開運(yùn)算等處理[12],以達(dá)到濾除圖像干擾信息、降低后續(xù)處理運(yùn)算量的目的,便于直線檢測模塊進(jìn)行直線檢測。

直線檢測模塊可以提取出預(yù)處理后圖像中梯形畸變的兩條斜邊,并將斜邊參數(shù)、傾斜角度分別傳遞給參數(shù)計(jì)算模塊和視頻輸出模塊。

參數(shù)計(jì)算模塊利用斜邊參數(shù)計(jì)算出修復(fù)梯形畸變所需的映射參數(shù),之后將其傳遞給灰度插值模塊。

視頻流時(shí)序中相鄰場同步信號間除了顯示區(qū)間之外還有一段非顯示區(qū)間,如圖2所示。本設(shè)計(jì)可以利用顯示區(qū)間之后的非顯示區(qū)間時(shí)間段運(yùn)行直線檢測模塊和參數(shù)計(jì)算模塊,再結(jié)合錯(cuò)幀矯正的方法,即用上一幀得到的映射參數(shù)矯正下一幀的畫面,進(jìn)而實(shí)現(xiàn)視頻實(shí)時(shí)矯正的目的。

圖2 場同步信號時(shí)序圖

灰度插值模塊根據(jù)矯正圖像像素坐標(biāo)和映射參數(shù)計(jì)算出對應(yīng)原始圖像中的像素坐標(biāo),取出相應(yīng)坐標(biāo)的灰度值并進(jìn)行計(jì)算后作為矯正圖像像素的灰度值,由此得到矯正圖像,并將其傳輸給DDR讀寫模塊緩存。通過按鍵可以控制選擇何種灰度插值算法。

視頻輸出模塊生成視頻時(shí)序信號,在圖像顯示的不同區(qū)域分別讀取原始圖像、矯正圖像數(shù)據(jù)和梯形畸變的斜邊角度信息以及相關(guān)文字說明,以實(shí)現(xiàn)視頻圖像、矯正圖像和畸變程度的同屏顯示。

DDR讀寫模塊用于在DDR和不同模塊之間進(jìn)行數(shù)據(jù)緩存,并負(fù)責(zé)突發(fā)讀/寫請求信號和普通讀/寫請求信號的轉(zhuǎn)換,以充分利用DDR讀寫操作的高帶寬。

DDR控制器模塊按照固定順序仲裁多路DDR突發(fā)讀/寫請求,依據(jù)仲裁結(jié)果讀/寫DDR3中的數(shù)據(jù)。

3 梯形畸變矯正系統(tǒng)關(guān)鍵模塊的FPGA實(shí)現(xiàn)

3.1 直線檢測模塊

直線檢測模塊是系統(tǒng)中最核心的部分,用于尋找畫面中梯形畸變的兩個(gè)腰。本文采用的直線檢測算法為Hough變換法[13],是一種計(jì)算簡單、易于硬件實(shí)現(xiàn)的方法。Hough變換公式為:

ρ=xcosθ+ysinθ,

(1)

公式(1)可將(x,y)坐標(biāo)系中的直線轉(zhuǎn)換為(ρ,θ)坐標(biāo)系中的一個(gè)點(diǎn),將(x,y)坐標(biāo)系中的點(diǎn)轉(zhuǎn)換為(ρ,θ)坐標(biāo)系中的一條曲線。利用Hough變換可將檢測直線的問題轉(zhuǎn)化為檢測點(diǎn)的問題。

直線檢測模塊構(gòu)成及其工作流程原理如圖3所示。邊緣圖像信息由圖像預(yù)處理模塊輸出,邊緣點(diǎn)坐標(biāo)檢測模塊一方面基于邊緣圖像信息中的視頻流時(shí)序信號生成像素坐標(biāo),另一方面根據(jù)像素灰度值判斷當(dāng)前像素點(diǎn)是否為邊緣點(diǎn),進(jìn)而決定是否激活寫請求信號。FIFO緩沖器負(fù)責(zé)緩存邊緣點(diǎn)坐標(biāo)。若FIFO不為空,則數(shù)據(jù)控制模塊發(fā)出單個(gè)時(shí)鐘周期讀請求,并在30個(gè)時(shí)鐘周期內(nèi)不再發(fā)出,以保證每個(gè)邊緣點(diǎn)坐標(biāo)保持30個(gè)時(shí)鐘周期的輸出,供后續(xù)計(jì)算使用,讀地址也將在這30個(gè)時(shí)鐘周期內(nèi)循環(huán)加一。sinθ_cosθ_ROM中存儲著60°~89°范圍內(nèi)步長為1°的正、余弦函數(shù)值,并依據(jù)讀地址輸出相應(yīng)正、余弦函數(shù)值以供后續(xù)計(jì)算。ρ值計(jì)算模塊1按照公式(1)計(jì)算出ρ值,ρ值計(jì)算模塊2運(yùn)算過程中會(huì)將公式(1)中的加法更改為減法,如此可利用三角函數(shù)的對稱性在不增加存儲空間的情況下將角度檢測范圍擴(kuò)展至-89°~-60°。在一副分辨率為640×480的畫面中,直線傾斜角度范圍分別為60°~89°、-89°~-60°時(shí),ρ的取值范圍分別為0~800、-640~240。故可根據(jù)式(2)和式(3)分別計(jì)算投票地址。

圖3 直線檢測模塊結(jié)構(gòu)框圖

addr1=addrθ×800+ρ,

(2)

addr2=addrθ×880+640+ρ,

(3)

其中,addr1為合并1模塊的輸出地址,addr2為合并2模塊的輸出地址。

獨(dú)立時(shí)鐘雙口RAM IP核的讀、寫時(shí)鐘相位相反,頻率相同,以實(shí)現(xiàn)在單時(shí)鐘周期內(nèi)完成投票。投票記錄模塊時(shí)刻記錄最大得票數(shù)和次大得票數(shù)以及它們所對應(yīng)的(ρ,θ)值。為了避免最大得票數(shù)和次大得票數(shù)對應(yīng)的是同一條直線,只有在當(dāng)前得票數(shù)大于最大或次大得票數(shù),且當(dāng)前得票數(shù)對應(yīng)的ρ值與最大或次大得票數(shù)對應(yīng)的ρ值相差超過10個(gè)單位時(shí),才會(huì)更新相應(yīng)記錄。

比較判斷模塊接收到4條直線的得票數(shù),將得票數(shù)最多的兩條直線信息發(fā)送出去。

3.2 參數(shù)計(jì)算模塊

梯形畸變圖像與矯正圖像的空間變換關(guān)系如圖4所示。本系統(tǒng)應(yīng)用連接點(diǎn)法對像素進(jìn)行重定位,連接點(diǎn)法相較于兩步投影法,具有運(yùn)算步驟少,計(jì)算簡單的特點(diǎn),易于硬件實(shí)現(xiàn)。

圖4 空間變換關(guān)系

利用雙線性方程對該空間變換過程建模,即:

(4)

其中:(x′,y′)為畸變圖像中的像素點(diǎn)坐標(biāo),(x,y)為矯正圖像中的像素點(diǎn)坐標(biāo)。

公式(4)中共有k1~k8八個(gè)未知系數(shù),需要將4對映射點(diǎn)坐標(biāo)代入其中才能將全部系數(shù)求出。以視頻畫面的1/4高度和3/4高度作為梯形畸變的上下底邊,其與直線檢測模塊得到的兩條直線(梯形的兩個(gè)腰)相交于4點(diǎn),交點(diǎn)坐標(biāo)分別設(shè)為(120,y1),(120,y2),(360,y3),(360,y4)。其中,y1,y2,y3,y4的計(jì)算公式為:

(5)

其中(ρ1,θ1),(ρ2,θ2)分別為直線檢測模塊輸出的兩條直線信息。

相應(yīng)的,以梯形畸變中較長底邊為基準(zhǔn)構(gòu)造一個(gè)矩形,矩形的4個(gè)頂點(diǎn)即為畸變圖像中梯形頂點(diǎn)的映射點(diǎn)。其坐標(biāo)分別為(120,y1),(120,y2),(360,y1),(360,y2)或(120,y3),(120,y4),(360,y3),(360,y4)。

以梯形畸變的上邊是較長底邊為例,將4對映射點(diǎn)坐標(biāo)代入公式(4),得:

(6)

依據(jù)式(5)和式(6)設(shè)計(jì)的參數(shù)計(jì)算模塊結(jié)構(gòu)及其工作流程如圖5所示。坐標(biāo)計(jì)算模塊實(shí)現(xiàn)計(jì)算式(5)所需的功能,其運(yùn)行最大時(shí)鐘頻率低于系統(tǒng)時(shí)鐘頻率,故在該模塊前后各添加一個(gè)異步FIFO,以解決信號的跨時(shí)鐘域傳輸問題。參數(shù)求取模塊完成式(6)的計(jì)算,為了節(jié)省計(jì)算資源,全程采用了浮點(diǎn)數(shù)形式進(jìn)行計(jì)算。

圖5 參數(shù)計(jì)算模塊系統(tǒng)結(jié)構(gòu)

3.3 灰度插值模塊

矯正圖像和畸變圖像的像素點(diǎn)坐標(biāo)并非一一對應(yīng),通過公式(4)得到的映射坐標(biāo)值往往是一個(gè)小數(shù),此時(shí)就需根據(jù)鄰近像素的灰度值對該坐標(biāo)點(diǎn)進(jìn)行插值,常用的灰度插值算法有最鄰近法、雙線性插值法和雙三次插值法。最鄰近法選用距離映射坐標(biāo)最近像素點(diǎn)的灰度值作為映射坐標(biāo)的灰度值,計(jì)算最為簡便,但經(jīng)過插值后得到的圖像灰度不連續(xù),在圖像邊緣處會(huì)出現(xiàn)較明顯的鋸齒狀。雙線性插值法基于映射坐標(biāo)4個(gè)鄰像素的灰度值,在兩個(gè)方向上進(jìn)行線性加權(quán)后得到映射坐標(biāo)的灰度值,由此得到的插值后圖像灰度連續(xù),但計(jì)算比較復(fù)雜,可能會(huì)導(dǎo)致圖像輪廓模糊。雙三次插值法利用三次多項(xiàng)式逼近理論上的最佳插值函數(shù),映射坐標(biāo)的灰度值由其鄰近的16個(gè)像素點(diǎn)灰度值加權(quán)內(nèi)插求得,因此所得插值后圖像效果最好,但計(jì)算量也最大。

從計(jì)算復(fù)雜度、緩存資源消耗量的角度考慮,在硬件實(shí)現(xiàn)上放棄了雙三次插值算法,為了滿足不同需求,最鄰近法和雙線性插值法均被采用,在使用過程中通過按鍵進(jìn)行選擇。

通過公式(4)和公式(6)可知,畸變圖像和矯正圖像之間映射坐標(biāo)對的橫坐標(biāo)(行數(shù))一致,如圖6所示,故可以簡化相應(yīng)灰度插值算法。采用最鄰近法時(shí),取距離映射點(diǎn)y′最近像素點(diǎn)y2的灰度值作為y的灰度值。設(shè)y1點(diǎn)處灰度值為f1,y2點(diǎn)處灰度值為f2,則運(yùn)用雙線性插值法計(jì)算y點(diǎn)灰度值f的公式為:

圖6 簡化的坐標(biāo)映射關(guān)系

f=(y2-y′)×f1+(y′-y1)×f2,

(7)

灰度插值模塊系統(tǒng)結(jié)構(gòu)及其工作流程如圖7所示,輸入數(shù)據(jù)流分配單元、雙端口RAM和輸出數(shù)據(jù)流選擇單元共同構(gòu)成乒乓緩存結(jié)構(gòu),雙端口RAM大小為640×16 bit,以緩存矯正圖像當(dāng)前行所對應(yīng)的畸變圖像像素值。坐標(biāo)計(jì)算模塊先通過視頻時(shí)序信號生成矯正圖像像素坐標(biāo),再結(jié)合矯正參數(shù)計(jì)算映射坐標(biāo),最后由映射坐標(biāo)得到其鄰近像素坐標(biāo)和相應(yīng)權(quán)值,并分別送給乒乓緩存結(jié)構(gòu)和插值模塊。乒乓緩存結(jié)構(gòu)將鄰近像素坐標(biāo)作為讀地址并輸出相應(yīng)灰度值給到插值模塊。插值模塊接收灰度值和權(quán)值,并基于插值算法計(jì)算出當(dāng)前矯正圖像像素的灰度值,插值算法的選擇由按鍵控制。

圖7 灰度插值模塊系統(tǒng)結(jié)構(gòu)

4 實(shí)驗(yàn)結(jié)果及分析

為了驗(yàn)證本文所設(shè)計(jì)梯形矯正系統(tǒng)的可行性及穩(wěn)定性,使用Verilog語言編寫系統(tǒng)程序,采用XILINX公司的Vivado軟件為程序編譯平臺,對程序進(jìn)行綜合、布局布線,最終生成比特流文件并燒錄進(jìn)FPGA芯片。系統(tǒng)硬件結(jié)構(gòu)如圖8所示,OV5640攝像頭直插在FPGA開發(fā)板上,HDMI_O端口連接一個(gè)1 280×760分辨率的顯示器。

圖8 自適應(yīng)實(shí)時(shí)視頻圖像梯形矯正系統(tǒng)

開發(fā)板通電后,攝像頭傾斜一定角度拍攝目標(biāo)物體,實(shí)驗(yàn)場景如圖9所示。顯示器左端畫面為攝像頭采集的原始圖像,顯示器右端畫面為矯正后圖像,此外,畫面左上角顯示梯形畸變左、右兩腰與畫面中軸線的夾角,偏右為正值,偏左為負(fù)值,以表示梯形畸變幅度。并且當(dāng)移動(dòng)攝像頭時(shí),系統(tǒng)依然能實(shí)時(shí)顯示矯正后的畫面。

圖9 矯正處理顯示效果圖

實(shí)驗(yàn)結(jié)果表明,基于FPGA的視頻實(shí)時(shí)自適應(yīng)梯形矯正系統(tǒng)可以實(shí)現(xiàn)對640×480分辨率、60 Hz刷新率的視頻數(shù)據(jù)實(shí)時(shí)自適應(yīng)矯正,滿足日常使用需求。整個(gè)系統(tǒng)消耗的LUT資源占FPGA芯片總資源的25.66%,F(xiàn)F占用總資源的10.12%,BRAM占用總資源的20%,DSP占用總資源的9.17%,詳細(xì)資源占用情況如表1所示。

表1 FPGA資源使用情況

為進(jìn)一步突出本文所提出系統(tǒng)的實(shí)時(shí)性,將本系統(tǒng)與兩步投影法和軟件連接點(diǎn)法所耗時(shí)間進(jìn)行比較,比較結(jié)果如表2所示。其中畸變檢測時(shí)間為系統(tǒng)檢測到畸變幅度所消耗的時(shí)間,矯正時(shí)間指系統(tǒng)矯正完一幀圖像所需要的時(shí)間。從表2中可以看出,兩步投影法和軟件連接點(diǎn)法耗費(fèi)時(shí)間至少是本文方法的21倍和300倍,在攝像頭位置不斷改變的情景中,不具備實(shí)時(shí)性;而本文方法的畸變檢測時(shí)間和矯正時(shí)間均為1/60 s,結(jié)合錯(cuò)幀矯正策略即可實(shí)現(xiàn)對60 Hz視頻的實(shí)時(shí)矯正。

表2 時(shí)間分析

5 結(jié) 論

本文根據(jù)實(shí)踐的需求,針對圖像獲取過程中產(chǎn)生梯形畸變的問題,提出了一種自適應(yīng)實(shí)時(shí)視頻圖像梯形矯正系統(tǒng)的硬件結(jié)構(gòu)設(shè)計(jì)。利用錯(cuò)幀矯正的方法實(shí)現(xiàn)了視頻的實(shí)時(shí)矯正,提高了系統(tǒng)的應(yīng)用能力。通過乒乓緩存結(jié)構(gòu),使得在占用極小片上存儲資源的情況下可以連續(xù)不斷地對數(shù)據(jù)流進(jìn)行處理。基于梯形畸變圖像與矯正圖像之間特殊的映射關(guān)系,簡化了參數(shù)計(jì)算過程。利用場消隱時(shí)間完成矯正參數(shù)計(jì)算,可以有效提高畸變矯正的實(shí)時(shí)性。實(shí)驗(yàn)結(jié)果表明:系統(tǒng)可以支持對分辨率為640×480、刷新率為60 Hz的監(jiān)控視頻進(jìn)行自適應(yīng)矯正,且矯正畫面和監(jiān)控畫面之間的延時(shí)僅為1/60 s,矯正精度為1°,基本滿足監(jiān)控系統(tǒng)梯形矯正的要求。

猜你喜歡
檢測
QC 檢測
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
“幾何圖形”檢測題
“角”檢測題
“有理數(shù)的乘除法”檢測題
“有理數(shù)”檢測題
“角”檢測題
“幾何圖形”檢測題
主站蜘蛛池模板: 2018日日摸夜夜添狠狠躁| 2019年国产精品自拍不卡| 91蝌蚪视频在线观看| 久久综合久久鬼| 亚洲国产成人精品青青草原| 国产流白浆视频| 99手机在线视频| 国产日韩精品欧美一区灰| 久久精品aⅴ无码中文字幕| 国产综合精品日本亚洲777| 欧美人与牲动交a欧美精品 | 亚洲视频无码| 19国产精品麻豆免费观看| 五月天综合婷婷| 欧洲av毛片| av天堂最新版在线| 欧美国产日韩另类| 久久亚洲综合伊人| 欧美色丁香| 亚洲黄网在线| 国产无人区一区二区三区| a天堂视频| 欧美日韩国产在线观看一区二区三区| 日本国产精品一区久久久| 高潮爽到爆的喷水女主播视频 | 成人亚洲视频| 亚洲精品日产AⅤ| 精品国产一区91在线| 国产精品专区第1页| 国产网站黄| 亚洲无码电影| 国产91视频免费| 欧美人人干| 色网站在线视频| 色婷婷成人| 久久综合丝袜长腿丝袜| 婷婷色在线视频| 免费午夜无码18禁无码影院| 女人av社区男人的天堂| 色视频国产| 无码区日韩专区免费系列| 亚洲欧美自拍中文| 毛片最新网址| 5388国产亚洲欧美在线观看| 日韩av无码精品专区| 色噜噜在线观看| 91小视频在线观看| 啪啪国产视频| 97国产在线播放| 精品剧情v国产在线观看| 九九热视频在线免费观看| 日韩第九页| 亚洲第一区欧美国产综合| 精品三级网站| 国产精品3p视频| 一级一毛片a级毛片| 看av免费毛片手机播放| 好吊色妇女免费视频免费| 久久综合色视频| 激情成人综合网| 亚洲丝袜中文字幕| 啪啪啪亚洲无码| 中国国语毛片免费观看视频| 亚洲欧美不卡| 亚洲婷婷在线视频| 永久免费av网站可以直接看的 | 免费人成网站在线高清| 国产精品青青| 青青热久免费精品视频6| 免费一级毛片| 亚洲区欧美区| 不卡色老大久久综合网| 国产天天射| 亚洲无限乱码一二三四区| 免费视频在线2021入口| 欧美成人午夜视频免看| 国产乱人激情H在线观看| 免费人成视频在线观看网站| 四虎影视8848永久精品| 一区二区三区成人| 欧美成人手机在线视频| 真人高潮娇喘嗯啊在线观看|