本專利涉及圖像三維重建技術(shù),特別是涉及基于無人機(jī)航拍序列圖像的三維重建方法。
背景技術(shù):無人機(jī)航拍是近年來空間數(shù)據(jù)獲取的重要數(shù)據(jù).來源。無人機(jī)航拍可以對同一個(gè)目標(biāo)、場景進(jìn)行多次成像,形成多視角、多位置成像。通過機(jī)載高分辨率光學(xué)攝像機(jī),無人機(jī)航行一次能夠獲得大量圖像序列,這些圖像具有高分辨率、高重疊率,并且可以進(jìn)行量測。應(yīng)用序列圖像三維重建的相關(guān)理論和技術(shù),對無人機(jī)序列成像的處理,可以獲得對地目標(biāo)的三維模型。圖像三維重建方法的原理是通過攝像機(jī)從不同角度獲取同一目標(biāo)的兩幅圖像,然后利用立體視覺原理,由計(jì)算機(jī)重建目標(biāo)的三維形狀,恢復(fù)出其空間模型。而在航拍圖像的三維重建中,由于無人機(jī)航拍的抖動(dòng)、旋轉(zhuǎn)、移動(dòng)等都會(huì)引起航拍相機(jī)的震蕩,從而使得航拍攝像機(jī)的成像模型更加復(fù)雜。其中,利用現(xiàn)有圖像三維重建方法對樹類物體的三維重建,多數(shù)只針對樹木的骨干結(jié)構(gòu)信息進(jìn)行建模的,而很少考慮樹冠輪廓和內(nèi)部的紋理細(xì)節(jié)信息等,往往會(huì)導(dǎo)致重建出的樹類物體的三維影像失真。此為本發(fā)明亟待解決的技術(shù)問題。
技術(shù)實(shí)現(xiàn)要素:基于現(xiàn)有技術(shù)中存在的問題,本發(fā)明提出了一種基于無人機(jī)航拍序列圖像的樹木三維重建方法,該完整的三維重建算法,首先通過分水嶺分割方法提取樹冠的特征區(qū)域,然后通過計(jì)算RGB顏色空間中的區(qū)域相關(guān)系數(shù)來匹配特征區(qū)域并提取匹配特征點(diǎn)對,再結(jié)合航拍攝像機(jī)的成像模型,通過雙目立體視覺原理計(jì)算深度信息,最后通過L系統(tǒng)規(guī)則構(gòu)建樹木的三維模型。本發(fā)明提出了一種基于無人機(jī)航拍序列圖像的樹木三維重建方法,該方法包括以下步驟:步驟一、對無人機(jī)航拍獲得的兩張相鄰的樹木序列圖像,從中分別截取大小相同同一樹冠圖像一、樹冠圖像二,用grabcut算法去除背景,僅保留樹冠區(qū)域;步驟二、對去除背景的樹冠圖像一,使用分水嶺分割算法做分割,得到明暗區(qū)域劃分,計(jì)算每個(gè)分割區(qū)域的形心作為在樹冠圖像一上提取的特征點(diǎn);步驟三、計(jì)算樹冠圖像一各特征點(diǎn)在RGB顏色空間下的特征區(qū)域與樹冠圖像二的特征區(qū)域的相關(guān)系數(shù)cij=Rcij+Gcij+Bcij其中,Rcij,Gcij,Bcij表示以R、G、B三個(gè)分量分別計(jì)算區(qū)域相關(guān)系數(shù);其中,和分別為是樹冠圖像一、樹冠圖像二中第i和第j個(gè)特征點(diǎn);wn、wm分別為滑動(dòng)窗口的半長和半寬,n為窗口中的像素點(diǎn)個(gè)數(shù),R1(ui,vi)、G1(ui,vi)、B1(ui,vi)和R2(ui,vi)、G2(ui,vi)、B2(ui,vi)分別為樹冠圖像一、樹冠圖像二上點(diǎn)(ui,vi)的R、G、B三個(gè)分量的值,σi、σj分別為兩幅圖像中第i和第j個(gè)特征點(diǎn)的圖像滑動(dòng)窗口內(nèi)的標(biāo)準(zhǔn)差,其中,圖像的各分量均值計(jì)算如下式:R分量均值為:G分量均值為:B分量均值為:圖像的各分量的圖像滑動(dòng)窗口內(nèi)的標(biāo)準(zhǔn)差計(jì)算如下式:R分量的圖像滑動(dòng)窗口內(nèi)的標(biāo)準(zhǔn)差:G分量的圖像滑動(dòng)窗口內(nèi)的標(biāo)準(zhǔn)差:B分量的圖像滑動(dòng)窗口內(nèi)的標(biāo)準(zhǔn)差:在樹冠圖像二中找到樹冠圖像一特征區(qū)域的匹配區(qū)域,以匹配區(qū)域?qū)Φ男涡淖鳛槠ヅ涮卣鼽c(diǎn),通過最相關(guān)和次相關(guān)比例法去除誤匹配點(diǎn),具體步驟如下:以樹冠圖像一的分水嶺分割的每個(gè)區(qū)域的外接矩形作為該區(qū)域匹配時(shí)的窗口大??;以同樣大小的窗口在樹冠圖像二上掃描,按上述計(jì)算方法計(jì)算兩幅圖像上窗口區(qū)域內(nèi)的RGB區(qū)域相關(guān)系數(shù),記錄得到的最大相關(guān)系數(shù)和次大相關(guān)系數(shù);計(jì)算最大相關(guān)系數(shù)和次大相關(guān)系數(shù)的比例k,設(shè)定一個(gè)k的閾值K,如果k>K,則把該匹配認(rèn)為是誤匹配舍棄,否則,認(rèn)為該匹配正確并接受;通過上步得到的兩幅樹冠圖像上的匹配區(qū)域?qū)?,?jì)算他們的形心作為匹配得到的匹配特征點(diǎn)對。步驟四、通過計(jì)算機(jī)立體視覺原理,對圖像的特征點(diǎn)集合的一系列計(jì)算獲得圖像特征點(diǎn)的三維信息,包括直接獲得圖像的特征點(diǎn)的二維參數(shù)和計(jì)算得到的深度參數(shù),深度參數(shù)的計(jì)算包括三步,即確定航拍攝像機(jī)的成像模型,即攝像機(jī)的內(nèi)外參數(shù);通過攝像機(jī)成像模型,確定從二維點(diǎn)到三維點(diǎn)的映射關(guān)系;通過映射關(guān)系獲取圖像的三維點(diǎn)集合;步驟五、從三維點(diǎn)集合獲取樹木的骨架信息,包括以下處理:1、找到Z坐標(biāo)最高點(diǎn),并且找到最高點(diǎn)和最低點(diǎn)的dz,dz作為樹高,把最高點(diǎn)所在的垂直軸作為樹的中心主干,其深度為1,加入樹干集合TrunkList,并把最高點(diǎn)加入樹干點(diǎn)集IncludePoints;2、掃描不在IncludePoints集合中的特征點(diǎn),找到當(dāng)前點(diǎn)集中離樹干集合距離最小的點(diǎn)pi以及相應(yīng)的樹干ti,限制ti的深度不超過6,并且,分支數(shù)不超過3;3、從該樹干ti向點(diǎn)pi引出一個(gè)新的樹干tnew與ti的夾角為30°,tnew的深度為ti的深度加1(限制樹的最大深度不超過4),加入TrunkList時(shí)插入ti后面,并把點(diǎn)pi加入已有樹干包含的點(diǎn)集合IncludePoints;4、回到2,直到所有三維散點(diǎn)都在IncludePoints集合中為止;將上述獲得的骨架信息,利用L系統(tǒng)規(guī)則,首先根據(jù)得到的骨架信息生成L系統(tǒng)語言的編碼串,并讀入編碼串構(gòu)建樹木的骨架結(jié)構(gòu),并在枝干上加上葉子形成完整的三維樹木模型。與現(xiàn)有技術(shù)相比,本發(fā)明考慮到樹冠的紋理、顏色以及輪廓信息,充分提取出能反映樹冠復(fù)雜結(jié)構(gòu)的特征點(diǎn)集合。并且,考慮到無人機(jī)航拍過程中,攝像機(jī)存在的抖動(dòng)、平移等,針對航拍攝像機(jī)復(fù)雜的成像模型來計(jì)算特征點(diǎn)集合的深度信息。并采取了合理的樹木建模方法,構(gòu)建出樹木的近似三維模型。因此,使用本方法,可以從航拍序列圖像中,獲得樹木的三維信息并構(gòu)建合理的樹木三維模型。附圖說明圖1為本發(fā)明的基于無人機(jī)航拍序列圖像的樹木三維重建方法的整體流程圖;圖2為特征點(diǎn)提取和匹配的流程圖;圖3為基于RGB顏色空間下的特征區(qū)域匹配方法原理圖;圖4為三維L系統(tǒng)的坐標(biāo)系;圖5為由三維散點(diǎn)集合構(gòu)建樹木三維模型示意圖;圖6為從相鄰兩張無人機(jī)航拍圖像中截取出的同一個(gè)樹冠的圖像;圖7為對樹冠圖像應(yīng)用grabcut方法去除背景的圖像;圖8為按基于區(qū)域相關(guān)系數(shù)的區(qū)域匹配方法匹配后得到的兩幅圖像的特征點(diǎn)對集合圖;圖9為最相關(guān)和次相關(guān)比例取不同閾值時(shí)獲得的特征點(diǎn)對集合以及相應(yīng)的三維樹木骨架結(jié)構(gòu)圖,其中,圖(a)為K的閾值為0.93時(shí)獲得的特征點(diǎn)集構(gòu)建的樹木模型,圖(b)為K的閾值為0.92時(shí)獲得的特征點(diǎn)集構(gòu)建的樹木模型,圖(c)為K的閾值為0.91時(shí)獲得的特征點(diǎn)集構(gòu)建的樹木模型,圖(d)為K的閾值為0.85時(shí)獲得的特征點(diǎn)集構(gòu)建的樹木模型;圖10為對經(jīng)重建的三維骨架結(jié)構(gòu)的枝干上加上樹葉的三維樹木模型,并與原樹冠圖像對應(yīng)的圖像示意圖,其中,圖(a)為樹木模型的側(cè)面視圖,圖(b)為樹木模型的俯視圖,圖(c)為樹木的原圖像。具體實(shí)施方式下面結(jié)合附圖及實(shí)施例,進(jìn)一步詳細(xì)說明本發(fā)明的具體實(shí)現(xiàn)方式。根據(jù)本發(fā)明的技術(shù)方案,在圖像獲取上,本實(shí)施例采用無人機(jī)在某山區(qū)航拍獲得圖像,根據(jù)樹冠大小選擇合適的樹冠圖像大小能包含樹冠的全部區(qū)域,保證不丟失樹冠信息,所以開發(fā)者選擇128×128的樹冠圖像,如圖6所示。為了盡量消除非樹冠區(qū)域?qū)χ亟ㄟ^程的影響又能不丟失樹冠的信息,采用grabcut算法去除樹冠圖像的背景,如圖7所示。下面對特征點(diǎn)提取和匹配、深度計(jì)算以及三維建模三個(gè)過程的實(shí)施方式進(jìn)行詳細(xì)描述:一、特征點(diǎn)提取和匹配特征點(diǎn)提取和匹配是三維重建過程中非常重要的一個(gè)過程,因?yàn)樗崛〉奶卣鼽c(diǎn)的優(yōu)劣和對特征點(diǎn)匹配的準(zhǔn)確性直接影響了最終重建出來的三維模型的好壞。根據(jù)圖2所示的流程圖,本發(fā)明的實(shí)施分為以下幾個(gè)步驟:1、對樹冠圖像1采用基于梯度的分水嶺分割,首先,對樹冠圖像使用sobel算子進(jìn)行縱方向的梯度運(yùn)算;然后,做開閉運(yùn)算對梯度圖像進(jìn)行平滑處理;最后對平滑后的圖像使用分水嶺分割方法分割獲得圖像的特征區(qū)域。2、記錄分水嶺分割的特征區(qū)域信息,以特征區(qū)域的外接矩形大小作為滑動(dòng)窗口大小,在樹冠圖像2中掃描,計(jì)算兩幅圖像窗口區(qū)域的區(qū)域相關(guān)系數(shù)大小,以區(qū)域相關(guān)系數(shù)最大的區(qū)域?qū)樽罴哑ヅ鋮^(qū)域?qū)?,匹配方法如圖3所示。3、提取匹配特征區(qū)域?qū)Φ男涡淖鳛閮煞鶚涔趫D像的匹配特征點(diǎn),從而獲得二維特征點(diǎn)對集合;4、采用最相關(guān)和次相關(guān)比例法去除誤匹配點(diǎn),試驗(yàn)不同比例閾值情況下刪除的誤匹配點(diǎn)的情況,通過對結(jié)果的比較選擇最合適的閾值來刪除誤匹配點(diǎn),如圖10所示的示例。區(qū)域相關(guān)系數(shù)計(jì)算如下:cij=Rcij+Gcij+Bcij其中,Rcij,Gcij,Bcij表示以R、G、B三個(gè)分量分別計(jì)算區(qū)域相關(guān)系數(shù),以R分量為例,計(jì)算如下式:其中,和是兩幅圖像中第i和第j個(gè)特征點(diǎn);wn、wm分別表示滑動(dòng)窗口的半長和半寬,n為窗口中的像素點(diǎn)個(gè)數(shù),R1(ui,vi)、G1(ui,vi)、B1(ui,vi)和R2(ui,vi)、G2(ui,vi)、B2(ui,vi)分別為圖像1、2上點(diǎn)(ui,vi)的R、G、B三個(gè)分量的值。以R分量為例,圖像的分量均值計(jì)算如下式:圖像滑動(dòng)窗口內(nèi)的標(biāo)準(zhǔn)差:二、深度計(jì)算例如,采用小孔相機(jī)模型,設(shè)在該投影模型下三維空間點(diǎn)X=(X,Y,Z)T在圖像平面上的像點(diǎn)為xT=(x,y)T,則有其中,和分別表示點(diǎn)x和X的齊次坐標(biāo),λ為方程兩邊齊次向量之間的比例因子,也稱為射影深度;K為相機(jī)的內(nèi)參數(shù)矩陣,而R和t為外參數(shù),分別為攝像機(jī)在世界坐標(biāo)系下的旋轉(zhuǎn)矩陣和平移向量。根據(jù)攝像機(jī)的成像模型,利用雙目立體視覺原理來計(jì)算特征點(diǎn)的三維坐標(biāo),也就是模擬人雙眼視覺功能。對兩幅圖像分別存在一個(gè)映射關(guān)系,聯(lián)立兩個(gè)映射關(guān)系得到關(guān)于世界坐標(biāo)(Xw,Yw,Zw)的方程組如下:其中,攝像機(jī)的內(nèi)參數(shù)矩陣忽略攝像機(jī)存在的微小旋轉(zhuǎn),所以有對于攝像機(jī)的平移向量,取第一張圖像拍攝時(shí)的位置為參考位置,所以T1=(000)T,T2=(TxTy0)T。所以,展開上式并整理得世界坐標(biāo)系坐標(biāo)值公式如下:三、三維建模首先是從三維散點(diǎn)集合獲取樹木的骨架枝干信息的方法。設(shè)定一個(gè)樹干的集合TrunkList和這些樹干包含的三維散點(diǎn)集合IncludePoints集合。獲取骨架信息的方法如下:1、找到Z坐標(biāo)最高點(diǎn),并且找到最高點(diǎn)和最低點(diǎn)的dz,dz作為樹高,把最高點(diǎn)所在的垂直軸作為樹的中心主干,其深度為1,加入樹干集合TrunkList,并把最高點(diǎn)加入樹干點(diǎn)集IncludePoints;2、掃描不在IncludePoints集合中的特征點(diǎn),找到當(dāng)前點(diǎn)集中離樹干集合距離最小的點(diǎn)pi以及相應(yīng)的樹干ti(限制ti的深度不超過6,并且,分支數(shù)不超過3);3、從該樹干ti向點(diǎn)pi引出一個(gè)新的樹干tnew與ti的夾角為30°,tnew的深度為ti的深度加1(限制樹的最大深度不超過4),加入TrunkList時(shí)插入ti后面,并把點(diǎn)pi加入已有樹干包含的點(diǎn)集合IncludePoints;4、回到2,直到所有三維散點(diǎn)都在IncludePoints集合中為止。獲得樹木的骨架枝干信息后,利用L系統(tǒng)的規(guī)則,采用OpenGL三維圖形技術(shù)構(gòu)建出樹木的三維模型。