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

?

基于FPGA的柱面投影算法的實(shí)現(xiàn)

2015-10-17 00:48:14武曉斌
電子科技 2015年5期
關(guān)鍵詞:圓柱面柱面焦距

武曉斌

(西安電子科技大學(xué) 電子工程學(xué)院,陜西 西安 710071)

基于FPGA的柱面投影算法的實(shí)現(xiàn)

武曉斌

(西安電子科技大學(xué) 電子工程學(xué)院,陜西 西安 710071)

介紹了圓柱面投影算法的基本原理,給出了基于硬件邏輯實(shí)現(xiàn)的系統(tǒng)設(shè)計(jì),該設(shè)計(jì)基于Altera公司Cyclone III系列的FPGA,先將外部數(shù)據(jù)寫入DDR2 SDRAM,然后用硬件邏輯來實(shí)現(xiàn)圓柱面投影算法,同時自動生成Cameralink時序提供給后端,并通過顯示模塊轉(zhuǎn)化輸出到LCD的DVI接口進(jìn)行實(shí)時顯示,通過顯示的圖像可看到,硬件邏輯實(shí)現(xiàn)的柱面投影達(dá)到了預(yù)期效果。

FPGA;柱面投影;Cameralink;DDR2 SDRAM

柱面投影技術(shù)主要應(yīng)用于圖像拼接領(lǐng)域。把不同視角的圖像拼接起來,若不進(jìn)行投影變換,則在拼接縫處會出現(xiàn)“折線”的現(xiàn)象,所以必須對輸入圖像進(jìn)行投影變換[1]。目前一般常用的圖像投影變換模型分為球面投影模型、圓柱面投影模型和立方體投影模型[2]。球面投影模型和立方體投影模型對相機(jī)鏡頭的視場角要求較大,這樣就造成成本較高,而且運(yùn)算復(fù)雜度較大。系統(tǒng)從原始圖像數(shù)據(jù)采集到圖像模型變換,再到投影完成后的顯示均使用FPGA進(jìn)行操作。由于FPGA不適合于大運(yùn)算量的計(jì)算。因此,在FPGA上選擇圓柱面投影算法實(shí)現(xiàn)較為合適,而且柱面投影算法對相機(jī)鏡頭視場角的要求較小。

1 系統(tǒng)整體設(shè)計(jì)

系統(tǒng)的數(shù)據(jù)源是Cameralink時序的圖像數(shù)據(jù),由于外部進(jìn)來的圖像數(shù)據(jù)已在工業(yè)相機(jī)內(nèi)部進(jìn)行了圖像增強(qiáng)、去噪等處理,所以數(shù)據(jù)源可以保證較高的質(zhì)量,無需再進(jìn)行圖像的預(yù)處理,這樣在外部Cameralink數(shù)據(jù)進(jìn)來后便可直接進(jìn)行柱面投影變換。圖1是系統(tǒng)的整體結(jié)構(gòu)設(shè)計(jì)。

圖1 系統(tǒng)整體設(shè)計(jì)圖

2 投影變換

柱面投影模型的理論基礎(chǔ)是將相機(jī)以一點(diǎn)為中心點(diǎn),以焦距為半徑,旋轉(zhuǎn)360°,拍到的照片形成一個圓柱面。該圓柱面投影算法簡單,易于工程實(shí)現(xiàn),且占用的硬件邏輯資源較少。

2.1 投影坐標(biāo)系

使用相機(jī)進(jìn)行圖像采集的過程,是將現(xiàn)實(shí)世界的場景投影到相機(jī)的二維像平面上,投影的過程就是成像變換的過程。成像變換實(shí)現(xiàn)不同坐標(biāo)系之間的變換,該過程一般包括的坐標(biāo)系為:

(1)三維世界坐標(biāo)系,也稱為真實(shí)的世界坐標(biāo)系XYZ,表示場景點(diǎn)在客觀世界中的絕對坐標(biāo)。坐標(biāo)(x,y,z)可準(zhǔn)確地定義一個物體在現(xiàn)實(shí)世界中的位置。

(2)像平面坐標(biāo)系,是指相機(jī)內(nèi)部CCD靶面的二維坐標(biāo)系統(tǒng),表示場景點(diǎn)在像平面上的投影。一般取像平面與相機(jī)坐標(biāo)系統(tǒng)的xy平面平行,原點(diǎn)位于相機(jī)的光軸上。該坐標(biāo)系與照片所在的坐標(biāo)系類似。

(3)圖像坐標(biāo)系,是指圖像陣列中圖像像素的位置,圖像處理通常在圖像坐標(biāo)系中進(jìn)行。在圖像坐標(biāo)系中原點(diǎn)位于圖像的左上角,x方向朝右,y方向朝下,像素坐標(biāo)是整數(shù)值。

2.2 像素焦距的估計(jì)

在實(shí)際中,相機(jī)鏡頭上的焦距是以mm為單位標(biāo)識,但在圖像中計(jì)算時,焦距是以像素為單位的。為避免轉(zhuǎn)換帶來的麻煩,需要將兩種不同的單位統(tǒng)一。因此,需要先將實(shí)際場景中每個像素在圖像坐標(biāo)系中的像素坐標(biāo)表示出來。

對于一般的工業(yè)相機(jī)可分為機(jī)芯和鏡頭兩部分。機(jī)芯決定了相機(jī)的分辨率,而鏡頭決定了相機(jī)的視場角。一般相機(jī)鏡頭的視場角是已知的,若未知,也可通過拍攝圖片進(jìn)行標(biāo)定的方法來確定。

此處假設(shè)已知相機(jī)水平視場角為θ。圖2表示了圖像寬度W,相機(jī)焦距f,相機(jī)水平視角θ三者之間的關(guān)系。

圖2 相機(jī)焦距與圖像寬度關(guān)系

估算相機(jī)的像素焦距

(1)

其中,W是照相機(jī)拍攝到的實(shí)景圖像寬度。綜上,實(shí)景圖像上任何一個像素點(diǎn)P(x,y)在圖3中相機(jī)坐標(biāo)系oxyz下的對應(yīng)像素坐標(biāo)為P(xc,yc,zc),兩者的對應(yīng)關(guān)系為

(2)

2.3 柱面投影算法

由于采集的原始圖像是以相機(jī)為圓心,旋轉(zhuǎn)360°所拍攝到的,因此其并不在同一個投影平面上,將拍攝到的各幅圖像全部都映射到一個標(biāo)準(zhǔn)的柱面上,即進(jìn)行柱面投影[3-4]。

圖3 柱面投影變換

照相機(jī)坐標(biāo)系原點(diǎn)與像素點(diǎn)P的直線方程為

(3)

式(3)中,t是參數(shù),圓柱面的方程為

u2+v2=f2

(4)

聯(lián)立式(3)與式(4)可得

(5)

將式(5)代入式(3)可得

(6)

式(6)中,(u,v,w)是像素點(diǎn)P(x,y)在圓柱面上投影點(diǎn)Q的參數(shù)坐標(biāo)。但Q點(diǎn)的坐標(biāo)是3個維度的,需將其轉(zhuǎn)換為兩個維度的圖像坐標(biāo)才便于運(yùn)算,即需要將圓柱面展開成平面。變換公式如下

(7)

由式(6)與式(7)可得,實(shí)際圖像I上任意一個像素點(diǎn)P(x,y)在柱面投影圖像上的像素點(diǎn)Q(x′,y′)的投影公式如式(8)所示,由于θ是已知值,故無需將θ進(jìn)行化簡

(8)

由式(8)可推導(dǎo)得出,在實(shí)際景物中同一條垂直線上的兩個像素點(diǎn)(x,y)和(x′,y′),這兩個像素在柱面投影圖上的橫坐標(biāo)相同,如式(9)所示

(9)

式(9)說明,對于從實(shí)景圖像變換到柱面投影圖像,圖像只會在橫坐標(biāo)方向發(fā)生投影變形,而在豎直方向不會發(fā)生這種形變。

2.4 柱面投影算法的硬件實(shí)現(xiàn)

前面已描述了柱面投影算法的理論原理,但上述推導(dǎo)方法是由實(shí)際原始圖像坐標(biāo)去推導(dǎo)柱面投影圖像坐標(biāo),這對實(shí)際的硬件實(shí)現(xiàn)中是不方便的。因?yàn)?在實(shí)際的柱面投影算法實(shí)現(xiàn)時,首先得到的是原始圖像的像素坐標(biāo)和像素值,此時需要先將原始圖像存到外部存儲器DDR2SDRAM中[6],由已知的柱面投影的坐標(biāo)去推導(dǎo)原始圖像對應(yīng)該坐標(biāo)的像素的坐標(biāo),然后將坐標(biāo)轉(zhuǎn)化成存儲器的地址值,將對應(yīng)坐標(biāo)的像素值讀出。

因此,需要將上述公式進(jìn)行逆向推導(dǎo),變換成由柱面投影像素坐標(biāo)去計(jì)算原始圖像的坐標(biāo)。

(10)

其中,x′,y′分別示柱面投影圖像的橫坐標(biāo)與縱坐標(biāo);W,H分別為圖像的寬和高;θ為相機(jī)鏡頭的水平視場角。

根據(jù)柱面投影的像素坐標(biāo)可計(jì)算出該坐標(biāo)的像素值對應(yīng)的是原始圖像的像素坐標(biāo),但通常計(jì)算出的原始圖像像素坐標(biāo)為小數(shù),即位于4個像素坐標(biāo)的中間的空隙處,此時就需要以該坐標(biāo)周圍的4個像素通過插值運(yùn)算來計(jì)算該坐標(biāo)處的像素值,此處使用雙線性插值。

如圖4所示,設(shè)已知位置函數(shù)f在點(diǎn)Q11(x1,y1),Q12(x2,y2),Q21(x2,y1),Q22(x2,y2)位置處的函數(shù)值,求點(diǎn)P(x,y)處的函數(shù)值。

圖4 雙線性插值各點(diǎn)位置圖

雙線性插值分為兩個步驟:首先對x方向進(jìn)行插值,即求出R1(x,y1),R2(x,y2)兩點(diǎn)的值,主要思想是根據(jù)R1(x,y1)距離Q11(x1,y1),Q21(x2,y1)的距離進(jìn)行權(quán)值分配,離該點(diǎn)距離越近的點(diǎn),則這一點(diǎn)所占的比例就越大;反之,這一點(diǎn)所占的比例就越小。R2(x,y2)的求解與R1(x,y1)相似。R1(x,y1)與R2(x,y2)兩點(diǎn)處的值為

(11)

然后進(jìn)行y方向上的插值,此時,就是由R1(x,y1),R2(x,y2)兩點(diǎn)的值來求解點(diǎn)P(x,y)處的函數(shù)值。主要思想是根據(jù)P(x,y)距離R1(x,y1),R2(x,y2)的距離進(jìn)行權(quán)值分配,離該點(diǎn)距離越近的點(diǎn)近,則這一點(diǎn)所占的比例就越大;反之,這一點(diǎn)所占的比例就越小。點(diǎn)P(x,y)處的值如下

(12)

由式(11)與式(12)可導(dǎo)出點(diǎn)的值,如下

(13)

由式(13)即可得到雙線性插值的結(jié)果點(diǎn)P(x,y)處的值。但在進(jìn)行柱面投影時所使用的坐標(biāo)系的縱軸方向與上面圖示相反,且可確定分母處的值均為1,故在實(shí)際使用時雙線性插值結(jié)果點(diǎn)P(x,y)處的值為

f(P)≈(y-y2)·(x2-x)·f(Q11)+(y-y2)·(x-x1)·f(Q21)+(y1-y)·(x2-x)·f(Q12)+(y1-y)·(x-x1)·f(Q22)

(14)

這就是雙線性插值算法,該算法計(jì)算量略大,但在FPGA實(shí)現(xiàn)時,還可接受,且可得到高質(zhì)量的圖像,不會出現(xiàn)不連續(xù)的狀況。但由于雙線性插值具有低通濾波器的性質(zhì),使高頻分量受損,所以可能使圖像灰度變化較大的部位在一定程度上變得模糊。

3 DDR2 SDRAM外部存儲器與操作模塊

DDR2SDRAM外部存儲器[7]是屬于易失性存儲器,即掉電后數(shù)據(jù)就會丟失。系統(tǒng)使用的是鎂光公司生產(chǎn)的MT47H32M16外部存儲器。由于DDR2SDRAM的讀寫操作需要較為復(fù)雜的操作時序,因此系統(tǒng)使用了Altera公司生產(chǎn)的IP核,對DDR2SDRAM進(jìn)行控制。該DDR2SDRAM存儲器工作在160MHz,其數(shù)據(jù)端口為16bit,又因其在時鐘的上下沿均進(jìn)行采樣,這樣使得DDR2SDRAM可達(dá)到640Mbit·s-1的高帶寬,滿足柱面投影所需的帶寬需求[8]。

在本系統(tǒng)實(shí)現(xiàn)柱面投影和雙線性插值模塊時,封裝在模塊內(nèi)部,輸出接口主要有4個地址數(shù)據(jù)和4個權(quán)值數(shù)據(jù)。因此,就需要DDR2SDRAM控制器的工作頻率達(dá)到輸入圖像的工作頻率的4倍,至少達(dá)到柱面投影模塊的工作頻率的4倍。DDR2SDRAM控制器的工作頻率問題其實(shí)是在硬件實(shí)現(xiàn)柱面投影時的瓶頸問題。

4 實(shí)現(xiàn)結(jié)果

由圖5可知,下面兩路相機(jī)同時由FPGA來實(shí)現(xiàn)圓柱面投影,其效果較好,可正常顯示。但此方法仍存在一些不足,當(dāng)需要進(jìn)行柱面投影變換的圖像數(shù)據(jù)量過大時,可能會由于FPGA的工作頻率不足而出現(xiàn)問題,這需要在日后提出更好的方案進(jìn)行解決。

圖5 柱面投影效果示意圖

5 結(jié)束語

本文在原有柱面投影算法均是由DSP等適合高復(fù)雜度運(yùn)算器件實(shí)現(xiàn)的基礎(chǔ)上,由FPGA純硬件邏輯進(jìn)行實(shí)現(xiàn),且其實(shí)現(xiàn)效果可較好地在顯示器上顯示,這在未來嵌入式系統(tǒng)的算法實(shí)現(xiàn)方面有著重要意義,可逐步將一些復(fù)雜度較低的算法放在FPGA上實(shí)現(xiàn),具有較大的靈活性和可移植性。

[1] 郭俊美.基于圖像的柱面全景圖生成技術(shù)研究[D].西安:西安電子科技大學(xué),2009.

[2] 彭紅星,宋鴻陟,鄒湘軍,等.柱面全景圖生成技術(shù)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2010,36(9):208-211.

[3] 涂桂林.基于圖像繪制的灰度拼接改進(jìn)算法及柱面全景圖生成技術(shù)[D].合肥:合肥工業(yè)大學(xué),2007.

[4] 付金紅.柱面全景圖像拼接算法的研究[D].哈爾濱:哈爾濱理工大學(xué),2005.

[5] 劉曉妮,盧奕南,楊華民,等.基于OpenCV的曲面全景投影算法研究[J].計(jì)算機(jī)仿真,2011,28(2):272-275,307.

[6] Altera Conpration.External memory interfaces in the cyclone III device family[M].San Jose:Altera Conpration,2009.

[7] Altera Conpration.DDR and DDR2 SDRAM high-performance controller user guide[M].San Jose:Altera Conpration,2009.

[8] Micron.512MDDR2[M].USA:Micron Technology,2004.

Realization of Cylinder Projection Arithmetic Based on FPGA

WU Xiaobing

(School of Engineering,Xidian University,Xi’an 710071,China)

The principle of the cylinder projection arithmetic is introduced.A system design based on hardware logic is presented.The design starts with writing the image data into DDR2 SDRAM,and then realizes the cylinder projection arithmetic with hardware logic on Cyclone III series FPGA produced by Altera company.At the same time it creates a CameraLink schedule which is delivered to the back-end,and then displays the converted data on LCD via DVI interface in real time.The display results on LCD show that the cylinder projection realized by hardware achieves anticipated results.

FPGA;cylinder projection;Cameralink;DDR2 SDRAM

2014- 10- 17

武曉斌(1989—),男,碩士研究生。研究方向:圖像處理,FPGA程序設(shè)計(jì)。E-mail:w13630570960@126.com

10.16180/j.cnki.issn1007-7820.2015.05.003

TN79;TP301.6

A

1007-7820(2015)05-009-04

猜你喜歡
圓柱面柱面焦距
清芬凌霜
葉敏作品賞析
圓柱體全局尺寸評定結(jié)果的可視化研究*
基于多線激光雷達(dá)的圓柱面檢測
探索凸透鏡成實(shí)像時物距和像距
基于單攝像頭的柱面拼接
確定空間圓柱面方程的方法探析
Maple動畫功能在高等數(shù)學(xué)教學(xué)中的應(yīng)用示例(Ⅱ)
矩形孔徑柱面鏡面形擬合基底多項(xiàng)式研究
第十講 幾何公差代號標(biāo)注示例10
——目鏡套筒
许昌市| 体育| 漯河市| 北海市| 邵东县| 福安市| 汶上县| 出国| 连云港市| 宜良县| 鸡东县| 晋江市| 昆明市| 景宁| 栾城县| 哈巴河县| 阿荣旗| 潜山县| 菏泽市| 革吉县| 信宜市| 公主岭市| 宝山区| 密山市| 泊头市| 桐梓县| 周宁县| 天镇县| 晋宁县| 昔阳县| 双峰县| 杭锦后旗| 万山特区| 吉林省| 肥城市| 泾川县| 如皋市| 临沭县| 娄底市| 金堂县| 达拉特旗|