本發(fā)明涉及圖像處理應(yīng)用領(lǐng)域,特別是涉及一種物體三維模型構(gòu)建方法。
背景技術(shù):
雙目立體視覺技術(shù)是一種被動(dòng)式的三維測(cè)量技術(shù),包括相機(jī)標(biāo)定、圖像對(duì)匹配、三維信息還原等主要過程?;陔p目立體視覺的物體三維模型構(gòu)建方法是通過兩個(gè)已標(biāo)定的、以不同角度擺放的單目相機(jī)同時(shí)拍攝兩幅被測(cè)物圖像,然后建立兩幅圖像的像素點(diǎn)之間的對(duì)應(yīng)關(guān)系,獲得被測(cè)物的三維點(diǎn)云坐標(biāo)數(shù)據(jù),從而構(gòu)建被測(cè)物三維模型。
立體視覺技術(shù)可以獲得稠密的被測(cè)物三維點(diǎn)云坐標(biāo),無需向被測(cè)物體投影光柵等輔助信息,人機(jī)交互友好,硬件配置要求低,成本便宜,自動(dòng)化程度高,并且可以實(shí)現(xiàn)實(shí)時(shí)采集,當(dāng)前是物體三維重建領(lǐng)域中比較流行的一種技術(shù)。
立體匹配方法是雙目立體視覺技術(shù)的核心問題。然而,現(xiàn)有的基于特征點(diǎn)匹配的物體三維模型構(gòu)建方法中,特征點(diǎn)的提取和計(jì)算效率低,越是魯棒的特征點(diǎn)比如sift特征點(diǎn)或surf特征點(diǎn),其相應(yīng)的計(jì)算時(shí)間就越長(zhǎng),導(dǎo)致計(jì)算效率低下。因此當(dāng)需要提取較多的特征點(diǎn)用于三維重建時(shí),利用這些特征點(diǎn)就不合適了。因?yàn)樘卣鼽c(diǎn)的數(shù)量越多,物體重建系統(tǒng)花費(fèi)在特征點(diǎn)的提取和計(jì)算上的時(shí)間就越長(zhǎng),進(jìn)而導(dǎo)致物體重建系統(tǒng)總體性能降低,無法滿足人們?nèi)找嬖鲩L(zhǎng)的對(duì)三維重建性能的需求。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種物體三維模型構(gòu)建方法,基于圖像處理實(shí)現(xiàn)構(gòu)建物體三維模型,對(duì)圖像特征點(diǎn)的提取以及圖像處理更高效。
為實(shí)現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:
一種物體三維模型構(gòu)建方法,包括:
第一攝像裝置和第二攝像裝置以不同角度對(duì)物體同時(shí)拍攝,獲得物體圖像,分別描述為第一圖像和第二圖像;
在圖像中提取特征點(diǎn),包括:對(duì)于圖像中像素,若在該像素預(yù)設(shè)鄰域內(nèi),像素值滿足第一預(yù)設(shè)條件的像素的數(shù)量滿足第二預(yù)設(shè)條件,則將該像素定義為特征點(diǎn);
為所述特征點(diǎn)構(gòu)建描述子,所述特征點(diǎn)的描述子為由所述特征點(diǎn)在各層卷積方向圖中對(duì)應(yīng)像素的值構(gòu)成的向量;
在所述第一圖像和所述第二圖像中,根據(jù)所述特征點(diǎn)的描述子尋找出相匹配的特征點(diǎn),建立匹配關(guān)系得到視差圖;
利用所述視差圖、所述第一攝像裝置或所述第二攝像裝置的內(nèi)參數(shù)和外參數(shù),獲得所述特征點(diǎn)對(duì)應(yīng)空間點(diǎn)的空間位置,以構(gòu)建物體三維模型。
可選地,所述在圖像中提取特征點(diǎn)還包括:
利用harris響應(yīng)函數(shù)計(jì)算各所述關(guān)鍵點(diǎn)對(duì)應(yīng)的響應(yīng)值,按照響應(yīng)值大小從大到小對(duì)各所述關(guān)鍵點(diǎn)排序,取前n個(gè)關(guān)鍵點(diǎn)作為最終的關(guān)鍵點(diǎn)集合。
可選地,所述為所述特征點(diǎn)構(gòu)建描述子包括:
對(duì)拍攝的圖像分別沿x方向和y方向求梯度,得到梯度圖;
將每對(duì)梯度圖對(duì)平面內(nèi)多個(gè)方向進(jìn)行投影,對(duì)每對(duì)梯度圖計(jì)算梯度方向圖;
對(duì)得到的所述梯度方向圖進(jìn)行至少三種不同高斯核的卷積運(yùn)算,得到卷積方向圖;
根據(jù)得到的所述卷積方向圖為所述特征點(diǎn)構(gòu)建描述子。
可選地,所述將每對(duì)梯度圖對(duì)平面內(nèi)多個(gè)方向進(jìn)行投影,對(duì)每對(duì)梯度圖計(jì)算梯度方向圖包括:
基于計(jì)算得到的梯度圖dx和dy,根據(jù)計(jì)算式dxcosθ1+dysinθ2計(jì)算梯度方向圖,其中
可選地,對(duì)每對(duì)梯度圖計(jì)算平面內(nèi)8個(gè)方向的梯度方向圖;
對(duì)得到的所述梯度方向圖進(jìn)行三種不同高斯核的卷積運(yùn)算,得到24個(gè)卷積方向圖,表示為
可選地,所述利用所述視差圖、所述第一攝像裝置或所述第二攝像裝置的內(nèi)參數(shù)和外參數(shù),獲得所述特征點(diǎn)對(duì)應(yīng)空間點(diǎn)的空間位置包括:
利用相似三角形性質(zhì),由所述視差圖計(jì)算所述特征點(diǎn)對(duì)應(yīng)空間點(diǎn)的深度;
基于第一攝像裝置的內(nèi)參數(shù)、外參數(shù)以及計(jì)算得到的特征點(diǎn)深度,計(jì)算所述特征點(diǎn)對(duì)應(yīng)空間點(diǎn)的空間位置。
可選地,所述在所述第一圖像和所述第二圖像中,根據(jù)所述特征點(diǎn)的描述子尋找出相匹配的特征點(diǎn)包括:
對(duì)于第一圖像中每一特征點(diǎn),在第二圖像中搜索匹配特征點(diǎn),計(jì)算兩圖像中搜索出的匹配特征點(diǎn)的描述子之間的歐式距離,當(dāng)歐式距離小于第一閾值時(shí)匹配成功。
可選地,所述在所述第一圖像和所述第二圖像中,根據(jù)所述特征點(diǎn)的描述子尋找出相匹配的特征點(diǎn)還包括:利用約束條件對(duì)匹配成功的所述特征點(diǎn)進(jìn)行篩選,剔除不滿足約束條件的特征點(diǎn)。
可選地,所述約束條件包括:
唯一性約束條件,具體為:由所述第一圖像匹配所述第二圖像得到第一視差圖,由所述第二圖像匹配所述第一圖像得到第二視差圖,同一像素匹配后在兩視差圖中的誤差不超過預(yù)設(shè)誤差允許范圍;
或/和順序一致性約束條件,具體為:若所述第一圖像中像素(u0,v0)匹配所述第二圖像中像素(u,v),當(dāng)所述第一圖像中像素(u0+1,v0)匹配所述第二圖像時(shí),匹配位置不能出現(xiàn)在像素(u,v)左邊;
或/和視差連續(xù)性約束條件,具體為:在視差圖中像素(u0,v0)的視差與其鄰域內(nèi)各像素視差的差值不能超過第二閾值。
可選地,在所述利用約束條件對(duì)匹配成功的所述特征點(diǎn)進(jìn)行篩選,剔除不滿足約束條件的特征點(diǎn)之后還包括:
在預(yù)設(shè)界定范圍內(nèi),對(duì)不滿足約束條件的特征點(diǎn)進(jìn)行重匹配,若在所述預(yù)設(shè)界定范圍內(nèi)無法找到匹配點(diǎn),則利用線性插值法在得到的所述視差圖中構(gòu)建其對(duì)應(yīng)位置的視差。
由上述技術(shù)方案可知,本發(fā)明所提供的物體三維模型構(gòu)建方法,首先,將第一攝像裝置和第二攝像裝置以不同角度對(duì)物體同時(shí)拍攝,獲得物體圖像,分別描述為第一圖像和第二圖像,其次在圖像中提取特征點(diǎn),并為特征點(diǎn)構(gòu)建描述子,然后在第一圖像和第二圖像中,根據(jù)特征點(diǎn)的描述子尋找出相匹配的特征點(diǎn),建立匹配關(guān)系得到視差圖,進(jìn)一步利用視差圖、第一攝像裝置或第二攝像裝置的內(nèi)參數(shù)和外參數(shù),獲得特征點(diǎn)對(duì)應(yīng)空間點(diǎn)的空間位置,以構(gòu)建出物體三維模型。
本發(fā)明物體三維模型構(gòu)建方法,通過提取特征點(diǎn)并為特征點(diǎn)構(gòu)建描述子,利用特征點(diǎn)的描述子進(jìn)行特征匹配來構(gòu)建物體三維模型,與現(xiàn)有物體三維模型構(gòu)建方法相比,計(jì)算效率更高。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的一種物體三維模型構(gòu)建方法的流程圖;
圖2為本發(fā)明實(shí)施例中對(duì)圖像計(jì)算卷積方向圖的計(jì)算方法示意圖;
圖3為本發(fā)明實(shí)施例中對(duì)圖像像素構(gòu)建描述子的示意圖;
圖4為本發(fā)明實(shí)施例中由視差圖求圖像深度的示意圖;
圖5為本發(fā)明實(shí)施例中對(duì)圖像中特征點(diǎn)進(jìn)行匹配的方法流程圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明中的技術(shù)方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
請(qǐng)參考圖1,本發(fā)明實(shí)施例提供的一種物體三維模型構(gòu)建方法,包括步驟:
s10:第一攝像裝置和第二攝像裝置以不同角度對(duì)物體同時(shí)拍攝,獲得物體圖像,分別描述為第一圖像和第二圖像。
比如,對(duì)于人臉三維模型構(gòu)建,使用兩臺(tái)已完成標(biāo)定的攝像裝置,兩臺(tái)攝像裝置以不同角度同時(shí)對(duì)人臉拍攝,各拍攝得到一幅圖像,分別對(duì)應(yīng)描述為第一圖像和第二圖像。
s11:在圖像中提取特征點(diǎn),包括:對(duì)于圖像中像素,若在該像素預(yù)設(shè)鄰域內(nèi),像素值滿足第一預(yù)設(shè)條件的像素的數(shù)量滿足第二預(yù)設(shè)條件,則將該像素定義為特征點(diǎn)。
本步驟中,對(duì)于圖像中每一像素檢測(cè)是否為特征點(diǎn),檢測(cè)方法為:對(duì)于圖像中像素,若在該像素預(yù)設(shè)鄰域內(nèi),像素值滿足第一預(yù)設(shè)條件的像素的數(shù)量滿足第二預(yù)設(shè)條件,則該像素確定為特征點(diǎn)。
其中,像素值指像素的灰度值。第一預(yù)設(shè)條件為像素值高于預(yù)設(shè)閾值或者低于預(yù)設(shè)閾值。
比如,在待檢測(cè)像素周圍16個(gè)像素區(qū)域內(nèi),像素值滿足第一預(yù)設(shè)條件的像素?cái)?shù)量占該區(qū)域像素總數(shù)量的3/4及以上,則將該像素定義為特征點(diǎn)。
通過上述方法提取出特征點(diǎn),得到的特征點(diǎn)容易出現(xiàn)過分聚集的情況,提取出的特征點(diǎn)質(zhì)量不高,鑒于此,在本方法的另一具體實(shí)施例中,在本步驟中通過上述方法提取得到特征點(diǎn)后,還包括:
利用harris響應(yīng)函數(shù)計(jì)算各所述特征點(diǎn)對(duì)應(yīng)的響應(yīng)值,對(duì)各所述特征點(diǎn)按照響應(yīng)值大小從大到小排序,取前n個(gè)特征點(diǎn)作為最終的特征點(diǎn)集合。
其中,harris響應(yīng)函數(shù)表示為r=det(m)-ktr(m)2,k表示閾值,在具體實(shí)施時(shí)opencv中通常設(shè)為0.04,det(m)表示harris橢圓的長(zhǎng)短軸之積ab,tr(m)表示harris橢圓的長(zhǎng)短軸之和a+b。
s12:為所述特征點(diǎn)構(gòu)建描述子,所述特征點(diǎn)的描述子為由所述特征點(diǎn)在各層卷積方向圖中對(duì)應(yīng)像素的值構(gòu)成的向量。
在圖像中為特征點(diǎn)構(gòu)建描述子,本步驟具體包括以下過程:
s120:對(duì)拍攝的圖像分別沿x方向和y方向求梯度,得到梯度圖。具體得到與原始圖像尺寸一致的梯度圖像,分別表示為dx和dy。
s121:將每對(duì)梯度圖對(duì)平面內(nèi)多個(gè)方向進(jìn)行投影,對(duì)每對(duì)梯度圖計(jì)算梯度方向圖。
根據(jù)上步驟得到的梯度圖像dx和dy,由dxcosθ1+dysinθ2計(jì)算得到梯度方向圖,其中
計(jì)算梯度方向圖時(shí)在平面內(nèi)選擇的方向數(shù)量越多,計(jì)算精度越高,但隨之會(huì)降低數(shù)據(jù)運(yùn)算速率,因此在具體實(shí)施時(shí),可根據(jù)情況選擇投影方向的數(shù)量,以兼顧計(jì)算精度和運(yùn)算效率。
優(yōu)選的,本實(shí)施例中綜合考慮計(jì)算精度和運(yùn)算效率,計(jì)算平面內(nèi)8個(gè)方向的梯度方向圖,相應(yīng)
s122:對(duì)得到的所述梯度方向圖進(jìn)行至少三種不同高斯核的卷積運(yùn)算,得到卷積方向圖。
對(duì)圖像進(jìn)行不同高斯核卷積運(yùn)算的種數(shù)越多,對(duì)圖像特征提取以及物體三維模型構(gòu)建的精度越高,但會(huì)降低數(shù)據(jù)處理速率,增加計(jì)算量。因此在具體實(shí)施時(shí),要根據(jù)實(shí)際情況,兼顧考慮計(jì)算精度和數(shù)據(jù)運(yùn)算效率來選擇高斯卷積運(yùn)算的種數(shù)。
優(yōu)選的,本實(shí)施例中對(duì)圖像進(jìn)行三種不同高斯核的卷積運(yùn)算。以對(duì)平面內(nèi)8個(gè)方向計(jì)算梯度方向圖的情況為例,請(qǐng)參考圖2和圖3所示,對(duì)上步驟得到的8個(gè)梯度方向圖分別進(jìn)行三種不同高斯核的高斯卷積,可得到24個(gè)卷積方向圖,表示為
s123:根據(jù)得到的所述卷積方向圖為所述特征點(diǎn)構(gòu)建描述子。
以上述實(shí)例中對(duì)梯度方向圖進(jìn)行三種不同高斯核的卷積運(yùn)算的情況為例,會(huì)得到24個(gè)卷積梯度方向圖。
每一層卷積方向圖距離特征點(diǎn)像素的距離表示為
s13:在所述第一圖像和所述第二圖像中,根據(jù)所述特征點(diǎn)的描述子尋找出相匹配的特征點(diǎn),建立匹配關(guān)系得到視差圖。
本步驟中進(jìn)行特征匹配,在第一圖像和第二圖像中利用特征點(diǎn)的描述子尋找相匹配的特征點(diǎn)。具體的,本步驟中具體包括以下步驟:
s130:對(duì)于第一圖像中每一特征點(diǎn),在第二圖像中搜索匹配特征點(diǎn),可利用快速最近鄰算法在第二圖像中尋找匹配特征點(diǎn),然后計(jì)算兩圖像中搜索出的匹配特征點(diǎn)的描述子之間的歐式距離,當(dāng)歐式距離小于第一閾值時(shí)匹配成功。則建立匹配關(guān)系,得到視差圖。
s14:利用所述視差圖、所述第一攝像裝置或所述第二攝像裝置的內(nèi)參數(shù)和外參數(shù),獲得所述特征點(diǎn)對(duì)應(yīng)空間點(diǎn)的空間位置數(shù)據(jù),以構(gòu)建物體三維模型。
本步驟中具體包括以下過程:
s140:利用相似三角形性質(zhì),由所述視差圖計(jì)算所述特征點(diǎn)對(duì)應(yīng)空間點(diǎn)的深度。
參考圖4所示,p(x,y,z)表示特征點(diǎn)對(duì)應(yīng)的空間點(diǎn),x1表示空間點(diǎn)p在第一攝像裝置成像面上(即第一圖像中)像點(diǎn)的x坐標(biāo)值,x2表示空間點(diǎn)p在第二攝像裝置成像面上(即第二圖像中)像點(diǎn)的x坐標(biāo)值,f表示攝像裝置焦距,tx表示兩幅圖像之間光心的距離,即在同一空間坐標(biāo)系中描述的兩幅圖像之間光心的距離。利用p點(diǎn)與其在兩圖像中像點(diǎn)構(gòu)成的三角形,和p點(diǎn)與光心o1、o2構(gòu)成的三角形之間的相似性質(zhì),計(jì)算p點(diǎn)深度,具體計(jì)算公式表示為:
s141:基于第一攝像裝置的內(nèi)參數(shù)、外參數(shù)以及計(jì)算得到的特征點(diǎn)深度,計(jì)算所述特征點(diǎn)對(duì)應(yīng)空間點(diǎn)的空間位置。
在具體實(shí)施時(shí),計(jì)算公式表示為:
需要說明的是,在本方法其它實(shí)施例中,也可采用第二攝像裝置的內(nèi)參數(shù)矩陣、外參數(shù)矩陣來計(jì)算。
根據(jù)計(jì)算獲得的三維點(diǎn)云空間位置,構(gòu)建出物體的三維模型,進(jìn)一步可輸出顯示。
本實(shí)施例物體模型三維構(gòu)建方法,利用高效的特征點(diǎn)檢測(cè)方法和特征點(diǎn)描述子計(jì)算方法對(duì)圖像進(jìn)行特征匹配,與現(xiàn)有物體三維模型構(gòu)建方法計(jì)算更高效。
請(qǐng)參考圖5,本發(fā)明又一實(shí)施例提供的物體三維模型構(gòu)建方法,在上述實(shí)施例內(nèi)容的基礎(chǔ)上,在所述步驟s13中還包括:
步驟s131:利用約束條件對(duì)匹配成功的所述特征點(diǎn)進(jìn)行篩選,剔除不滿足約束條件的特征點(diǎn)。
具體包括根據(jù)以下幾種約束條件對(duì)特征點(diǎn)進(jìn)行篩選:
第一種篩選方法:判斷是否滿足唯一性約束條件。唯一性約束條件具體為:由所述第一圖像匹配所述第二圖像得到第一視差圖,由所述第二圖像匹配所述第一圖像得到第二視差圖,同一像素匹配后在兩視差圖中的誤差不超過預(yù)設(shè)誤差允許范圍。若不滿足該約束條件則將該匹配特征點(diǎn)剔除。
第二種篩選方法:判斷是否滿足順序一致性約束條件。順序一致性約束條件具體為:若所述第一圖像中像素(u0,v0)匹配所述第二圖像中像素(u,v),當(dāng)所述第一圖像中像素(u0+1,v0)匹配所述第二圖像時(shí),匹配位置不能出現(xiàn)在像素(u,v)左邊。若不滿足該約束條件,則將該匹配特征點(diǎn)剔除。
第三種篩選方法,判斷是否滿足視差連續(xù)性約束條件。視差連續(xù)性約束條件具體為:在視差圖中像素(u0,v0)的視差與其鄰域內(nèi)各像素視差的差值不能超過第二閾值。若不滿足該約束條件,則將該匹配特征點(diǎn)剔除。
對(duì)于上述三種約束性條件判斷,在本方法中具體實(shí)施時(shí),可以采用其中的任意一種、兩種或者三種,在一種具體實(shí)施方式中,可以依次進(jìn)行上述三種約束性判斷。通過對(duì)匹配特征點(diǎn)進(jìn)行約束性判斷,刪除其中誤匹配點(diǎn)。
進(jìn)一步的,在步驟s131之后還包括步驟s132:在預(yù)設(shè)界定范圍內(nèi),對(duì)不滿足約束條件的特征點(diǎn)進(jìn)行重匹配,若在所述預(yù)設(shè)界定范圍內(nèi)無法找到匹配點(diǎn),則利用線性插值法在得到的所述視差圖中構(gòu)建其對(duì)應(yīng)位置的視差。
本實(shí)施例方法通過重匹配方法,進(jìn)一步優(yōu)化匹配結(jié)果。
因此,本實(shí)施例物體模型三維構(gòu)建方法,首先利用標(biāo)定好的兩個(gè)攝像裝置采集兩幅被測(cè)物體圖像,接著對(duì)圖像提取關(guān)鍵特征點(diǎn)并計(jì)算描述子及初匹配,再用約束條件剔除誤匹配,并進(jìn)行重匹配,得到匹配結(jié)果,最后重建出被測(cè)物三維點(diǎn)云坐標(biāo)并顯示,得到精度高,效果好的被測(cè)物三維重建模型,因此實(shí)現(xiàn)了一種準(zhǔn)確率高、效率快、易操作、低成本的物體三維模型構(gòu)建方法。
本方法可應(yīng)用于人臉三維重建,也可應(yīng)用于其它被測(cè)物三維模型構(gòu)建。
以上對(duì)本發(fā)明所提供的一種物體三維模型構(gòu)建方法進(jìn)行了詳細(xì)介紹。本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對(duì)本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。