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

?

基于嵌入式linux的無人機雙目視覺系統(tǒng)

2015-01-09 09:16李源哲茅旭初
聲學(xué)與電子工程 2015年4期
關(guān)鍵詞:畸變攝像機標(biāo)定

李源哲 茅旭初

(上海交通大學(xué)電子信息與電氣工程學(xué)院,上海,200240)

基于嵌入式linux的無人機雙目視覺系統(tǒng)

李源哲 茅旭初

(上海交通大學(xué)電子信息與電氣工程學(xué)院,上海,200240)

無人機技術(shù)持續(xù)發(fā)展,立體視覺技術(shù)由于其強大的環(huán)境感知能力,被廣泛應(yīng)用于無人機導(dǎo)航的障礙物檢測中。針對無人機障礙檢測的特定場合,設(shè)計了基于嵌入式Linux的雙目視覺測距系統(tǒng),系統(tǒng)具有體積小、重量輕、精度較高的特點,可用于無人機障礙物檢測。

雙目立體視覺;嵌入式;無人機

1 引言

近年來,無人機在民用領(lǐng)域逐漸發(fā)展開來。導(dǎo)航技術(shù)是無人機技術(shù)中相當(dāng)關(guān)鍵的部分,也是無人機技術(shù)的難點[1]。大型無人機的飛行高度較高,很少受到周圍物體的阻礙,一般使用GPS+ΙMU的組合導(dǎo)航來完成。對于多旋翼無人機,尤其在城市、山地等復(fù)雜地形中低空工作的多旋翼無人機,由于建筑、地形的阻擋,GPS信號較弱,搜不到足夠的衛(wèi)星數(shù)目,導(dǎo)致導(dǎo)航精度不理想。并且,對于在低空甚至室內(nèi)飛行的飛行器,僅僅知道位置信息往往不夠,飛行器隨時會遇到墻壁、樹木等低空障礙物,這時,就需要能夠感知外部環(huán)境的導(dǎo)航系統(tǒng)。目前主要的導(dǎo)航方式分為兩大類:

(1)基于非視覺傳感器的導(dǎo)航

非視覺傳感器,主要是超聲波、激光等能夠探測障礙物距離的傳感器。超聲波傳感器是通過計算超聲波發(fā)射和接收的時間差來計算障礙物的距離,因其簡單、輕便,在多款飛行器上使用。但超聲波的探測角較小,只有某一特定方向的障礙物才會被檢測出來;且超聲波對被測物體的要求較高,若物體無法有效反射超聲波,如樹葉、海綿等,則無法被探測到。因此超聲波傳感器無法全面感知周圍的環(huán)境。 激光雷達,通過向不同方向發(fā)射激光束來探測物體距離,具有精度高、視場寬、分辨率高的特點。但是激光雷達成本高、重量大,不適合載荷較小的飛行器。

(2)基于視覺傳感器的導(dǎo)航

視覺傳感器,一般指攝像頭,具有質(zhì)量輕、成本低、信息量大的特點,十分適合用在小型無人機的導(dǎo)航。隨著圖像處理技術(shù)的蓬勃發(fā)展,對圖像處理、目標(biāo)識別、特征提取、3D視覺等技術(shù)的研究愈加深入,視覺導(dǎo)航的技術(shù)也將更加成熟。在單目視覺中,主要通過光流法來檢測障礙物,這種方式依賴于攝像機與目標(biāo)的相對運動,若飛行器處在靜止或者低速狀態(tài),則效果不明顯。多目視覺能夠直接計算出空間中特征點的三維坐標(biāo),與光流法相比,對飛行器運動的依賴較小,結(jié)果更加精確。

通過上述比較可以看出,立體視覺技術(shù)能夠很好地感知位置場景,幫助無人飛行器進行低空的障礙物檢測,輔助飛行器進行運動控制,擁有巨大的應(yīng)用前景。

本文提出了一種在嵌入式linux系統(tǒng)上實現(xiàn)雙目視覺檢測的方法。系統(tǒng)基于ARM cortex-A9 架構(gòu)的單板電腦,讀取兩個USB攝像頭的信息,經(jīng)過3D解算得到周圍環(huán)境特征點的3維坐標(biāo),可用于無人機導(dǎo)航。

2 雙目立體視覺原理

2.1 攝像機成像模型

圖1是攝像機的針孔成像模型。針孔成像模型由光心、光軸和成像平面組成。光心為一凸透鏡,物點P的反射光經(jīng)過光心后,投射到成像平面為一個倒立的像p。其中f是相機的焦距,Z是相機和實際物體之間的距離,X是實際物體的長度,x是實際物體在成像平面上的像[2]。在圖1中,根據(jù)相似三角形原理,可以得到:

圖1 攝像機針孔成像模型

2.2 成像模型中各坐標(biāo)系之間的關(guān)系

攝像機成像模型中包含四個坐標(biāo)系:世界坐標(biāo)系、攝像機坐標(biāo)系、圖像物理坐標(biāo)系和像素坐標(biāo)系。物點(實際空間中的點)到像點(投影到成像器件上的點)之間的關(guān)系可以通過坐標(biāo)變換來表示。

2.2.1 從世界坐標(biāo)系到攝像機坐標(biāo)系的坐標(biāo)變換

攝像機被放置在三維空間中,在這個三維環(huán)境中建立的坐標(biāo)系是世界坐標(biāo)系,如圖2中的(Ow-XwYwZw)。以攝像機的光心O為原點,光軸為Zc軸,建立的坐標(biāo)系為攝像機坐標(biāo)系,如圖2中的(O-XcYcZc)。

圖2 成像模型中的各個坐標(biāo)系

攝像機坐標(biāo)系與世界坐標(biāo)系的關(guān)系可利用旋轉(zhuǎn)矩陣R和一個平移矩陣t表示,變換過程如下:

其齊次坐標(biāo)可表示為:

2.2.2 從攝像機坐標(biāo)系到圖像物理坐標(biāo)系的坐標(biāo)變換

圖像物理坐標(biāo)系是建立在成像平面上的直角坐標(biāo)系。原點O1是光軸與成像平面的交點,x軸與Xc平行,y軸與Yc平行。根據(jù)三角形相似的性質(zhì),攝像機坐標(biāo)系到圖像物理坐標(biāo)系的變換如下:

用齊次坐標(biāo)與矩陣形式可以將上式表示為:

2.2.3 從圖像物理坐標(biāo)系到圖像像素坐標(biāo)系的坐標(biāo)變換

拍攝到的照片以矩陣的形式保存,每個矩陣元素都是一個像素。與之對應(yīng),圖像像素坐標(biāo)系是定義在圖像上的平面直角坐標(biāo)系,其單位是像素。圖2中,O0-uv是圖像像素坐標(biāo)系。原點O0位于圖像的左上角,u和v分別與x軸和y軸平行,坐標(biāo)(u,v)表示位于第u行v列的像素點。

由于圖像物理坐標(biāo)系的原點O1和圖像像素坐標(biāo)系的原點O0未必重合,假設(shè)O1在圖像像素坐標(biāo)系中的坐標(biāo)為(u0,v0)。設(shè)每個像素在圖像物理坐標(biāo)系x軸和y軸方向上的物理尺寸分別為k和l,則:

用齊次坐標(biāo)與矩陣形式可以將上式表示為:

綜合上述坐標(biāo)變換,可以將世界坐標(biāo)系中的物點P(Xw,Yw,Zw)變換到成像平面上的投影點Pu(u,v):

2.3 立體視覺成像模型

雙目立體視覺成像模型如圖3所示,兩個攝像頭并排放置。Ol和Or分別是左右攝像機的光心,兩個光心間的距離為T,P為真實空間中的一點,它在左右兩個攝像機的成像平面上的成像分別是pl(xl,yl)和pr(xr,yr)。在這個簡化的模型中,深度與兩張圖的不一致性成反比,其中,不一致性定義為d=xl-xr。根據(jù)相似三角形原理,深度為:

圖3 雙目視覺成像模型

2.4 立體視覺工作流程

立體視覺系統(tǒng)的工作主要分為五個步驟:圖像獲取、攝像機建模、特征提取、立體匹配和三維深度確定[1]。

(1)圖像獲取

采集兩個并排放置的USB攝像頭的圖像。

(2)攝像機建模

攝像機建模的工作是為了確定攝像機的內(nèi)外參數(shù),將復(fù)雜的模型轉(zhuǎn)換為簡單的基礎(chǔ)模型,并確定空間中的點與像素點的對應(yīng)關(guān)系。攝像機標(biāo)定可以確定攝像機的參數(shù)。

(3)特征提取

圖像特征是把圖像中的像素點或者像素點的集合抽象表達的過程。圖像中包含大量的信息,特征提取的作用就是從大量信息中提取出感興趣的部分,以便后續(xù)的分析。

(4)立體匹配

立體匹配是在兩張圖像的特征點中,找到分別對應(yīng)相同實際物體的兩個特征點,即找到了實際物體在兩張圖片中的像素值。

(5)三維坐標(biāo)確定

立體匹配確定實際空間中的點在兩張圖片中的圖像坐標(biāo),根據(jù)多重視覺幾何算法,可以解算出空間點的三維坐標(biāo)。

3 攝像機標(biāo)定

攝像機標(biāo)定包括單目攝像機標(biāo)定和立體攝像機標(biāo)定。單目攝像機標(biāo)定是為了確定攝像機模型中各個坐標(biāo)系之間的關(guān)系,從而確定攝像機的內(nèi)外參數(shù)[1]。立體攝像機標(biāo)定是為了確定兩個攝像機坐標(biāo)系之間的剛體變換關(guān)系,即一個攝像機坐標(biāo)系相對于另一個攝像機坐標(biāo)系的旋轉(zhuǎn)和平移[3]。

3.1 內(nèi)外部參數(shù)

引入兩個不同的焦距fx和fy。fx=f/k,是焦距與像素點寬度的比值,fy=f/l,是焦距與像素點長度的比值,fx和fy的單位是像素。fx、fy、u0、v0構(gòu)成攝像頭的內(nèi)部參數(shù)。兩攝像頭之間的旋轉(zhuǎn)矩陣R和平移向量T構(gòu)成了攝像機的外部參數(shù)。除上述參數(shù)外,由于工藝的原因,攝像機透鏡可能存在畸變。因此,需要進行標(biāo)定消除畸變。

對于某些透鏡,光線在遠(yuǎn)離透鏡中心的地方比靠近中心的地方更加彎曲,這種畸變稱為徑向畸變。徑向畸變在成像中心處畸變?yōu)?,越靠近邊緣畸變越顯著。可以用r=0周圍的泰勒級數(shù)展開來定量描述徑向畸變:

式中,(x,y)是畸變點在圖像中的原始坐標(biāo),(xcorrected,ycorrected)是校正后的新坐標(biāo),k1、k2、k3是校正參數(shù)。

另一種畸變是切向畸變。切向畸變是由于透鏡與成像芯片不平行造成的。切向畸變可描述為:

其中,p1、p2是校正參數(shù)。

3.2 標(biāo)定過程與結(jié)果

本文使用標(biāo)定板進行標(biāo)定,標(biāo)定板長30 cm,寬20 cm,由直徑16 mm、等距離間隔4 cm的6×5圓點組成。從不同距離、不同角度拍攝標(biāo)定板,得到圖4所示的標(biāo)定照片,一般左右兩個攝像頭各拍攝十幾張照片。標(biāo)定后的各參數(shù)(以右攝像頭為例)見表1。

圖4 標(biāo)定照片

表1 標(biāo)定后的參數(shù)值

4 特征識別與匹配

4.1 SURF特征匹配

本文使用SURF(Speeded Up Robust Features)算法提取特征點。SURF算法能夠檢測圖片中的角點,對于每個角點,SURF得到一個特征向量,該向量描繪了特征點周圍的強度樣式。兩個特征點越相似,它們的特征向量也越靠近[4-5]。若兩幅圖像中的某特征點特征向量靠近,則有理由認(rèn)為它們對應(yīng)空間中的同一點。

數(shù)學(xué)上,SURF算法對每個像素計算Hessian矩陣,Hessian矩陣如下:

Hessian矩陣的行列式即曲率的強度,定義角點為具有較高局部曲率的圖像點。為了使特征點具備尺度無關(guān)性,在進行Hessian矩陣構(gòu)造前,對圖片高斯濾波:

其中,σ是濾波器的高斯函數(shù)的方差,它定義濾波核的大小。

通過高斯濾波和Hessian矩陣,可以得到局部極大值,經(jīng)過插值,得到亞像素精度的特征點以及對應(yīng)的尺度值[6]。

編寫程序,對兩張照片進行SURF特征點匹配。結(jié)果如圖5所示,其中,圓圈標(biāo)記識別出的特征點,直線連接兩圖相匹配的特征點。

圖5 SURF匹配效果

4.2 RANSAC算法去除錯誤匹配

從圖5可見,大部分特征點都匹配正確,仍有少數(shù)點錯誤匹配。本文借助Ransac算法降低錯誤匹配的概率。

Ransac(隨機抽樣一致)算法可以從一組包含“局外點”的觀測數(shù)據(jù)集中,通過迭代方式估計數(shù)學(xué)模型的參數(shù)。本文通過簡單的例子解釋Ransac,在圖6中,白色點為局外點。為了找到點集的擬合直線,每次選取兩個點,確定一條直線。定義一個距離閾值(在圖中由虛線標(biāo)出),落在虛線間的點構(gòu)成一個一致集。每次選取不同的兩個點,并確定它們的一致集,認(rèn)為一致集最大的直線為擬合直線。在一致集外的點則被當(dāng)做誤差剔除。

圖6 Ransac算法的簡單應(yīng)用

在立體視覺成像模型中,pl和pr之間存在如下關(guān)系:

該方程體現(xiàn)了兩個對應(yīng)點之間的聯(lián)系,被稱作極性約束。8個對應(yīng)點可以確定F矩陣。因此,在所有特征點中,每次選取8對特征點,由此確定F。給定距離閾值△,選取滿足以下關(guān)系的匹配點進入一致集:

一致集中匹配點最多的F即為選定的F,一致集中的匹配點則為所有選定的匹配點。匹配結(jié)果如圖7所示。

圖7 Ransac去除錯誤匹配后的效果

5 三維坐標(biāo)計算

本文使用線性三角方法計算三維坐標(biāo)。由射影幾何的性質(zhì),空間中的點X與左右兩個攝像頭的像素點x、x′具有以下關(guān)系:

其中,P和P′分別為左右兩個攝像頭的投影矩陣,該矩陣可以通過標(biāo)定得到。由式(18)可以得到方程:

將其展開:

其中,piT是P矩陣的第i行。令:

解線性方程AX=0,即得到三維坐標(biāo)X。

6 硬件系統(tǒng)

本文使用radxa rock卡片電腦作為處理核心。radxa rock長10 cm,寬8 cm,搭載四核ARM Cortex-A9處理器,2G RAM,最高主頻可達1.6 GHz,在節(jié)能狀態(tài)下主頻可低到324 MHz。板上安裝ubuntu操作系統(tǒng)作為編程環(huán)境。用USB攝像頭作為圖像采集設(shè)備,系統(tǒng)借助V4L2采集攝像頭的視頻流(是V4L的升級版本),V4L全稱是Video for Linux,是在linux內(nèi)核中關(guān)于視頻設(shè)備的APΙ接口,涉及開關(guān)視頻設(shè)備、采集并處理視頻圖像信息。通過調(diào)用V4L2 APΙ中的函數(shù),可以實現(xiàn)視頻的采集。視頻采集主要分為4個步驟: 打開視頻設(shè)備,設(shè)置視頻設(shè)備屬性及采集方式,視頻數(shù)據(jù)處理,關(guān)閉視頻設(shè)備。流程如圖8所示。系統(tǒng)通過V4L2采集左右兩個攝像頭的圖像、提取特征點并對特征點進行匹配。最后,綜合標(biāo)定的參數(shù),計算得到特征點的三維坐標(biāo)。

圖8 V4L2圖像采集流程

7 實驗結(jié)果及分析

為了測試系統(tǒng)的精度,制作了一個測量板,上面刻有10 cm長的標(biāo)尺。系統(tǒng)分別計算標(biāo)尺兩個端點的三維坐標(biāo),求取它們的距離,得到標(biāo)尺長度的測量值,并與真實值比較。本文中分別將標(biāo)尺放在與攝像頭相距50 cm、60 cm……150 cm的位置,測量結(jié)果在表2中列出。

表2 系統(tǒng)精度測量信息

對系統(tǒng)精度的測試中,在0.5~1.5 m的距離上,測量10 cm的標(biāo)尺,誤差在5 mm左右,相對誤差在5%左右,其中,這5%的誤差大部分是系統(tǒng)誤差,經(jīng)過更加仔細(xì)的定標(biāo)之后,可以將誤差降低至2%左右。

雙目立體視覺系統(tǒng)體積小、質(zhì)量輕,經(jīng)地面測試,精度滿足需求,可以用于無人機導(dǎo)航。接下來的工作將進一步把系統(tǒng)安裝到無人機上,輔助無人機導(dǎo)航。

[1]羅桂娥.雙目立體視覺深度感知與三維重建若干問題研究[D].中南大學(xué),2012.

[2]BRADSKΙ G,KAEHLER A.Learning openCV:computer vision with the openCV library[M].O'Reilly Media,Ιnc.,2008.

[3]王建華,馮帆,梁偉,等.雙目立體視覺測量系統(tǒng)的設(shè)計與實現(xiàn)[J].艦船電子工程,2012,32(4):107-109.

[4]Laganière R.openCV 2 computer vision application programming cookbook:over 50 recipes to master this library of programming functions for real-time computer vision[M].Packt Publishing Ltd,2011.

[5]HARTLEY R,ZΙSSERMAN A.Multiple view geometry in computer vision[M].Cambridge university press,2003.

[6]王平,韓燮,韓焱,等.基于雙目視覺技術(shù)的物體深度信息的提取[J].科學(xué)技術(shù)與工程,2014 (2):56-61.

猜你喜歡
畸變攝像機標(biāo)定
使用朗仁H6 Pro標(biāo)定北汽紳寶轉(zhuǎn)向角傳感器
在Lightroom中校正鏡頭與透視畸變
基于勻速率26位置法的iIMU-FSAS光纖陀螺儀標(biāo)定
攝像機低照成像的前世今生
新安訊士Q6155-E PTZ攝像機
船載高精度星敏感器安裝角的標(biāo)定
如何消除和緩解“攝像機恐懼癥”
基于Harris-張正友平面標(biāo)定法的攝像機標(biāo)定算法
輻射誘導(dǎo)染色體畸變的快速FISH方法的建立
《癌變·畸變·突變》2014年第26卷索引