• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

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

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

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

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

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

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

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

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

      圖2 場(chǎng)同步信號(hào)時(shí)序圖

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

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

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

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

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

      3.1 直線檢測(cè)模塊

      直線檢測(cè)模塊是系統(tǒng)中最核心的部分,用于尋找畫面中梯形畸變的兩個(gè)腰。本文采用的直線檢測(cè)算法為Hough變換法[13],是一種計(jì)算簡(jiǎn)單、易于硬件實(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變換可將檢測(cè)直線的問(wèn)題轉(zhuǎn)化為檢測(cè)點(diǎn)的問(wèn)題。

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

      圖3 直線檢測(cè)模塊結(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ù)以及它們所對(duì)應(yīng)的(ρ,θ)值。為了避免最大得票數(shù)和次大得票數(shù)對(duì)應(yīng)的是同一條直線,只有在當(dāng)前得票數(shù)大于最大或次大得票數(shù),且當(dāng)前得票數(shù)對(duì)應(yīng)的ρ值與最大或次大得票數(shù)對(duì)應(yīng)的ρ值相差超過(guò)10個(gè)單位時(shí),才會(huì)更新相應(yīng)記錄。

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

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

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

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

      利用雙線性方程對(duì)該空間變換過(guò)程建模,即:

      (4)

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

      公式(4)中共有k1~k8八個(gè)未知系數(shù),需要將4對(duì)映射點(diǎn)坐標(biāo)代入其中才能將全部系數(shù)求出。以視頻畫面的1/4高度和3/4高度作為梯形畸變的上下底邊,其與直線檢測(cè)模塊得到的兩條直線(梯形的兩個(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)分別為直線檢測(cè)模塊輸出的兩條直線信息。

      相應(yīng)的,以梯形畸變中較長(zhǎ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)。

      以梯形畸變的上邊是較長(zhǎng)底邊為例,將4對(duì)映射點(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,以解決信號(hào)的跨時(shí)鐘域傳輸問(wèn)題。參數(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)并非一一對(duì)應(yīng),通過(guò)公式(4)得到的映射坐標(biāo)值往往是一個(gè)小數(shù),此時(shí)就需根據(jù)鄰近像素的灰度值對(duì)該坐標(biāo)點(diǎn)進(jìn)行插值,常用的灰度插值算法有最鄰近法、雙線性插值法和雙三次插值法。最鄰近法選用距離映射坐標(biāo)最近像素點(diǎn)的灰度值作為映射坐標(biāo)的灰度值,計(jì)算最為簡(jiǎn)便,但經(jīng)過(guò)插值后得到的圖像灰度不連續(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)上放棄了雙三次插值算法,為了滿足不同需求,最鄰近法和雙線性插值法均被采用,在使用過(guò)程中通過(guò)按鍵進(jìn)行選擇。

      通過(guò)公式(4)和公式(6)可知,畸變圖像和矯正圖像之間映射坐標(biāo)對(duì)的橫坐標(biāo)(行數(shù))一致,如圖6所示,故可以簡(jiǎn)化相應(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 簡(jiǎn)化的坐標(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)前行所對(duì)應(yīng)的畸變圖像像素值。坐標(biāo)計(jì)算模塊先通過(guò)視頻時(shí)序信號(hào)生成矯正圖像像素坐標(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語(yǔ)言編寫系統(tǒng)程序,采用XILINX公司的Vivado軟件為程序編譯平臺(tái),對(duì)程序進(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)場(chǎng)景如圖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)對(duì)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所示。其中畸變檢測(cè)時(shí)間為系統(tǒng)檢測(cè)到畸變幅度所消耗的時(shí)間,矯正時(shí)間指系統(tǒng)矯正完一幀圖像所需要的時(shí)間。從表2中可以看出,兩步投影法和軟件連接點(diǎn)法耗費(fèi)時(shí)間至少是本文方法的21倍和300倍,在攝像頭位置不斷改變的情景中,不具備實(shí)時(shí)性;而本文方法的畸變檢測(cè)時(shí)間和矯正時(shí)間均為1/60 s,結(jié)合錯(cuò)幀矯正策略即可實(shí)現(xiàn)對(duì)60 Hz視頻的實(shí)時(shí)矯正。

      表2 時(shí)間分析

      5 結(jié) 論

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

      猜你喜歡
      畸變梯形插值
      玩轉(zhuǎn)梯形
      幼兒100(2023年37期)2023-10-23 11:38:58
      梯形達(dá)人
      一類變延遲中立型微分方程梯形方法的漸近估計(jì)
      基于Sinc插值與相關(guān)譜的縱橫波速度比掃描方法
      梯形
      啟蒙(3-7歲)(2017年6期)2017-11-27 09:34:55
      在Lightroom中校正鏡頭與透視畸變
      一種改進(jìn)FFT多譜線插值諧波分析方法
      基于四項(xiàng)最低旁瓣Nuttall窗的插值FFT諧波分析
      Blackman-Harris窗的插值FFT諧波分析與應(yīng)用
      輻射誘導(dǎo)染色體畸變的快速FISH方法的建立
      乐山市| 石渠县| 乾安县| 呼和浩特市| 铜陵市| 和顺县| 松阳县| 临高县| 成安县| 镇安县| 兴和县| 浦北县| 房山区| 通辽市| 满洲里市| 大石桥市| 霸州市| 玉溪市| 苗栗市| 繁峙县| 张北县| 黄平县| 灌阳县| 宁蒗| 金阳县| 义乌市| 黑河市| 随州市| 新乡市| 武夷山市| 于田县| 巴楚县| 华宁县| 张家港市| 宝坻区| 东宁县| 长顺县| 新和县| 昌江| 专栏| 偃师市|