專(zhuān)利名稱(chēng):基于雙目立體視覺(jué)的多點(diǎn)觸摸方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種計(jì)算機(jī)視覺(jué)技術(shù)領(lǐng)域的人機(jī)交互方法,具體是一種基于雙目立體視覺(jué)的多點(diǎn)觸摸方法。
背景技術(shù):
雙目立體視覺(jué)為圖像建模技術(shù)的一種,它的目的在于利用立體圖像對(duì)獲取場(chǎng)景的深度信息和恢復(fù)物體的幾何模型。立體視覺(jué)的側(cè)重點(diǎn)有別于廣義的基于圖像建模技術(shù),后者還包括從圖像中恢復(fù)物體的外觀、光照條件以及運(yùn)動(dòng)軌跡等多種屬性,因此可以在已知少量幾何信息甚至沒(méi)有任何幾何信息的情況下,僅基于若干幅原始圖像繪制出在新視點(diǎn)下物體的成像。而立體視覺(jué)的主要優(yōu)點(diǎn)是利用兩個(gè)或多個(gè)攝像機(jī)的圖像恢復(fù)出場(chǎng)景的深度信息。立體視覺(jué)的研究具有重要的應(yīng)用價(jià)值,其應(yīng)用包括移動(dòng)機(jī)器人的自主導(dǎo)航系統(tǒng),航空及遙感測(cè)量,工業(yè)自動(dòng)化系統(tǒng)等?,F(xiàn)階段對(duì)立體視覺(jué)的研究主要集中在從輸入的圖像對(duì)中提取深度圖,然而通常的算法需要通過(guò)大量的計(jì)算來(lái)獲得高精度的平滑的深度信息。根據(jù)Scharstein等人發(fā)表的關(guān)于立體匹配算法的綜述中,該領(lǐng)域內(nèi)主要的算法主要有SAD(Sum ofAbsolute Difference)法、圖像切割法(Image Segmentation)、置信算法(BeliefPropagation)、動(dòng)態(tài)規(guī)劃(Dynamic Programming)等。
多點(diǎn)觸摸技術(shù)指的是計(jì)算機(jī)系統(tǒng)能夠同時(shí)響應(yīng)多個(gè)輸入點(diǎn),通過(guò)分析各個(gè)點(diǎn)之間的相對(duì)運(yùn)動(dòng)來(lái)完成相應(yīng)的動(dòng)作。例如,蘋(píng)果公司的產(chǎn)品iPhone可通過(guò)滑動(dòng)指頭來(lái)實(shí)現(xiàn)文本的翻頁(yè),旋轉(zhuǎn)手掌使得圖片旋轉(zhuǎn),張開(kāi)手掌來(lái)實(shí)現(xiàn)圖片的放大等。在圖像設(shè)計(jì)領(lǐng)域,多點(diǎn)觸摸技術(shù)還可以讓用戶使用靈活的操作改變圖形的構(gòu)造和布局?,F(xiàn)階段的多點(diǎn)觸摸系統(tǒng)主要還停留在平面輸入階段,即輸入是通過(guò)對(duì)一塊具有感知元件的平面進(jìn)行點(diǎn)擊來(lái)實(shí)現(xiàn)。不僅器材比較精細(xì)昂貴,而且得到的坐標(biāo)信息也僅僅是二維的。
經(jīng)對(duì)現(xiàn)有技術(shù)的文獻(xiàn)檢索發(fā)現(xiàn),Namgyu Kim等在2006的IEEE TRANSACTIONS ONSYSTEMS,MAN,AND CYBERNETICS上發(fā)表的文章《3d virtual studio for naturalinteracting》中提出使用立體視覺(jué)技術(shù)獲取場(chǎng)景模型并與三維場(chǎng)景進(jìn)行交互,其不足之處在于使用的立體視覺(jué)算法沒(méi)有考慮到顏色和像素距離,得到的場(chǎng)景深度圖噪點(diǎn)很多,如應(yīng)用于多點(diǎn)觸摸則會(huì)產(chǎn)生較多的無(wú)效輸入點(diǎn)。
發(fā)明內(nèi)容
本發(fā)明針對(duì)現(xiàn)有技術(shù)的不足,提出一種基于雙目立體視覺(jué)的多點(diǎn)觸摸方法,在實(shí)際操作中,結(jié)合背景技術(shù)中兩種技術(shù)的優(yōu)點(diǎn),通過(guò)處理雙攝像機(jī)的輸入生成場(chǎng)景的深度信息,然后從深度圖中分離出距離最近的斑塊并得到中心點(diǎn)坐標(biāo),最后應(yīng)用于多點(diǎn)觸摸程序,從而實(shí)現(xiàn)用戶無(wú)需觸摸屏幕即可在空間中完成多點(diǎn)觸摸的操作,且獲取到的輸入點(diǎn)的坐標(biāo)信息是三維的,因此可以實(shí)現(xiàn)更復(fù)雜的交互,如推拉某虛擬物體等。
本發(fā)明是通過(guò)如下技術(shù)方案實(shí)現(xiàn)的,包括如下步驟 步驟一,通過(guò)相機(jī)定標(biāo)確定照相機(jī)相對(duì)于三維場(chǎng)景的方位和投影參數(shù),利用雙目攝像機(jī)采集圖像對(duì); 所述利用雙目攝像機(jī)采集圖像對(duì),是指采用兩個(gè)攝像頭作為輸入,攝像頭之間的相對(duì)距離固定,鏡頭中心相對(duì)距離,又稱(chēng)作基線為5cm,通過(guò)擺置攝像頭使得相機(jī)軸心線平行,讓極點(diǎn)處于無(wú)窮遠(yuǎn)處,這樣極線和圖像的x軸平行,同時(shí)非線性的鏡頭扭曲也得到修正。
步驟二,將步驟一采集的兩幅同一幀的圖像作為輸入,利用立體視覺(jué)算法計(jì)算場(chǎng)景深度圖; 所述的利用立體視覺(jué)算法計(jì)算場(chǎng)景深度圖,具體實(shí)現(xiàn)如下 首先,對(duì)每個(gè)像素點(diǎn)設(shè)定以該像素為中心的查找區(qū)域,在左右圖之間查找顏色最接近的像素點(diǎn),定義匹配代價(jià)C(x,y,d)=|PL(x,y)-PR(x+d,y)|,其中PL(x,y)表示左圖像素點(diǎn)(x,y)的灰度值,PR(x+d,y)表示右圖像素點(diǎn)(x+d,y)的灰度值。
然后,考慮每個(gè)像素點(diǎn)周?chē)c(diǎn)對(duì)它的影響,更新匹配代價(jià)C(x,y,d)的值,給每個(gè)像素點(diǎn)的周?chē)c(diǎn)賦予相對(duì)于該點(diǎn)的權(quán)值,權(quán)值與顏色相近度成正比,與距離成反比,公式為λc和λg為經(jīng)驗(yàn)值,分別設(shè)置為14和10,計(jì)算出權(quán)值后更新上一步所得到的匹配代價(jià),用公式表示為p為左圖上的一點(diǎn),p′為右圖上坐標(biāo)為(x+d,y)的點(diǎn),l和l′分別為p和p′點(diǎn)搜尋范圍內(nèi)的一點(diǎn); 對(duì)于每個(gè)像素點(diǎn)而言,視差值取當(dāng)匹配代價(jià)C(p,d)取最小值時(shí)的d的取值,當(dāng)確定左圖中每個(gè)像素點(diǎn)的視差值后,下面的公式將得到在空間中對(duì)應(yīng)點(diǎn)的深度值其中ddisparity是視差值,dbaseline指的是攝像頭之間的基線長(zhǎng)度。
步驟三通過(guò)高斯模糊和確定閾值得到距離最近的斑塊,并計(jì)算出斑塊中心坐標(biāo); 所述通過(guò)高斯模糊和確定閾值得到距離最近的斑塊,是指對(duì)得到的場(chǎng)景深度圖進(jìn)行高斯模糊,排除噪聲點(diǎn),手動(dòng)設(shè)定閾值使得深度圖上只留下最亮的區(qū)域,即距離最近的斑塊。
所述計(jì)算出斑塊中心坐標(biāo),是指使用開(kāi)源計(jì)算機(jī)視覺(jué)庫(kù)OpenCV找到斑塊,通過(guò)收斂算法確定斑塊中心坐標(biāo)。即采用OpenCV庫(kù)中提供的斑塊檢測(cè)跟蹤庫(kù)cvBlobsLib,逐行掃描并標(biāo)記碰到的新斑塊,同時(shí)與先前標(biāo)記過(guò)的舊斑塊進(jìn)行合并,通過(guò)掃描連續(xù)的兩行,標(biāo)記出每個(gè)斑塊的開(kāi)始和結(jié)束點(diǎn),目的是判斷出該斑塊是否屬于一個(gè)已經(jīng)存在的斑塊。
步驟四利用步驟三得到的多個(gè)坐標(biāo)作為多點(diǎn)觸摸程序的輸入并返回交互的結(jié)果到屏幕上。
使用斑塊檢測(cè)算法檢測(cè)出斑塊的中心點(diǎn)坐標(biāo),確定多個(gè)觸摸點(diǎn)的屏幕坐標(biāo),從而成功實(shí)現(xiàn)在立體空間中完成多點(diǎn)觸摸特效的功能。
本發(fā)明具有如下有益效果對(duì)終端用戶來(lái)說(shuō),多點(diǎn)觸摸相比于傳統(tǒng)的鼠標(biāo)輸入而言,具有更自然的操作感受和更多樣化的操作方式,它已經(jīng)在實(shí)踐中獲得廣泛的應(yīng)用并將獲得更快的發(fā)展。本發(fā)明提出的多點(diǎn)觸摸技術(shù)有別于傳統(tǒng)方案,它提供給用戶一種全新的輸入方式,無(wú)需佩戴任何便攜式定位器或使用觸摸屏,所有的動(dòng)作都可以在三維空間中自然地完成。并且本發(fā)明提供的方案適應(yīng)于處理實(shí)時(shí)的視頻流。
圖1是本發(fā)明實(shí)施例采用的基于雙目立體視覺(jué)的多點(diǎn)觸摸系統(tǒng)示意圖。
圖2是本發(fā)明實(shí)施例流程圖。
圖3是雙目立體視覺(jué)原理圖; 其中C1和C2為攝像機(jī)中心,P為空間中的三維點(diǎn),I1和I2是左圖和右圖,P1和P2為在P在I1和I2上的投影點(diǎn)。
圖4是從雙目圖像對(duì)中查找匹配點(diǎn)。
圖5是從靜態(tài)場(chǎng)景計(jì)算出的場(chǎng)景深度圖; 其中(a)為左攝像機(jī)的成像,(b)為右攝像機(jī)的成像,(c)利用立體視覺(jué)計(jì)算(a)(b)所到的場(chǎng)景深度圖。
圖6是從動(dòng)態(tài)場(chǎng)景中實(shí)時(shí)計(jì)算出場(chǎng)景深度圖的一幀; 其中(a)為左攝像機(jī)的成像,(b)為右攝像機(jī)的成像,(c)在15幀每秒的情況下實(shí)時(shí)計(jì)算得到的場(chǎng)景深度圖。
圖7高斯模糊和設(shè)定閾值后結(jié)果,白色斑塊為場(chǎng)景中距離相機(jī)最近的區(qū)域; 其中(a)高斯模糊和設(shè)置閾值后的斑塊,(b)斑塊在場(chǎng)景深度圖中的位置,即場(chǎng)景中距離雙目攝像頭組最近的位置 圖8空間立體多點(diǎn)觸摸效果,圖中兩個(gè)白色圓圈標(biāo)記的地方為檢測(cè)到的坐標(biāo),光暈為用戶的手臂移動(dòng)軌跡。
具體實(shí)施例方式 下面結(jié)合附圖對(duì)本發(fā)明的實(shí)施例作詳細(xì)說(shuō)明本實(shí)施例在以本發(fā)明技術(shù)方案為前提下進(jìn)行實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過(guò)程,但本發(fā)明的保護(hù)范圍不限于下述的實(shí)施例。
如圖1所示,為本實(shí)施例采用的基于雙目立體視覺(jué)的多點(diǎn)觸摸系統(tǒng),由兩攝像頭組成的雙目攝像頭組輸入影像,用戶可在距離攝像頭約半米左右的距離做出動(dòng)作,采集到影像經(jīng)過(guò)本發(fā)明的算法計(jì)算后可實(shí)時(shí)得到場(chǎng)景的深度信息,通過(guò)高斯模糊過(guò)濾到噪聲點(diǎn)和對(duì)閾值的適當(dāng)選取,提取出距離攝像頭最近的多個(gè)斑塊,再通過(guò)OpenCV提供的斑塊檢測(cè)算法確定斑塊的中心坐標(biāo)。該坐標(biāo)作為輸入完成多點(diǎn)觸摸操作,再將虛擬場(chǎng)景投影回屏幕最終完成人機(jī)交互。
如圖2所示,本實(shí)施例由如下四個(gè)步驟組成 步驟一采集圖像,指的是從左右攝像機(jī)中采集同一幀的圖像 首先作為大部分利用攝像機(jī)系統(tǒng)的圖像的識(shí)別建模技術(shù)的第一步,系統(tǒng)通過(guò)相機(jī)定標(biāo)確定照相機(jī)相對(duì)于三維場(chǎng)景的方位和投影參數(shù)。相機(jī)定標(biāo)指的是確定照相機(jī)相對(duì)于三維場(chǎng)景的方位和投影參數(shù)。其中相機(jī)的取景參數(shù)稱(chēng)為內(nèi)部參數(shù),而相機(jī)的方向和位置又被稱(chēng)為外部參數(shù)。一般而言,可以通過(guò)對(duì)預(yù)設(shè)的定標(biāo)圖案如黑白棋盤(pán)格圖案來(lái)進(jìn)行校準(zhǔn),也可以在圖像中尋找對(duì)應(yīng)特征點(diǎn),利用幾何約束條件來(lái)進(jìn)行定標(biāo)。
相比于PointGrey公司采用的專(zhuān)用雙目攝像頭和視頻處理卡的昂貴解決方案,本實(shí)施例采用兩個(gè)攝像頭作為輸入,攝像頭之間的相對(duì)距離固定,鏡頭中心相對(duì)距離,又稱(chēng)作基線為5cm。通過(guò)擺置攝像頭使得相機(jī)軸心線平行,讓極點(diǎn)處于無(wú)窮遠(yuǎn)處,因此極線和圖像的x軸平行。同時(shí)非線性的鏡頭扭曲也得到修正。這樣采集到的圖像只存在y軸上的偏差,通過(guò)精確的測(cè)量可以使得該偏差只在一到兩個(gè)像素內(nèi),大大降低匹配點(diǎn)的搜尋范圍。
步驟二利用立體視覺(jué)算法計(jì)算得到場(chǎng)景的深度信息 如圖3所示,對(duì)于已知相機(jī)的內(nèi)部參數(shù)和外部參數(shù)的兩幅圖像I1和I2,稱(chēng)一幅為目標(biāo)圖像,另一幅為參考圖像(簡(jiǎn)稱(chēng)為左圖和右圖)。已知空間中一點(diǎn)P在兩幅圖像的投影點(diǎn)分別為p和p′,假如能夠?yàn)樽髨D上的每一個(gè)像素點(diǎn)p查找到其在右圖上的對(duì)應(yīng)點(diǎn)p′,則從兩幅圖像的投影中心C1和C2出發(fā),分別經(jīng)過(guò)這兩點(diǎn)將在空間中交于一點(diǎn)。理想情況下當(dāng)p和p′精確匹配時(shí),所得到的空間點(diǎn)坐標(biāo)就是P,這樣通過(guò)計(jì)算每個(gè)像素點(diǎn)對(duì)應(yīng)的的三維坐標(biāo),從而確定整個(gè)場(chǎng)景的深度信息。
立體視覺(jué)算法的核心在于像素點(diǎn)匹配,一旦精確的對(duì)應(yīng)點(diǎn)建立起來(lái),距離的計(jì)算只是簡(jiǎn)單的三角計(jì)算。然而,當(dāng)對(duì)應(yīng)點(diǎn)具有某種程度的非精確性或不可靠性時(shí),將在最后生成的深度圖上產(chǎn)生較多的噪點(diǎn)。粗略地說(shuō),深度值的誤差與匹配的偏差成正比,與相機(jī)組的基線長(zhǎng)成反比。加大基線可以減少誤差,但是這又增大了匹配點(diǎn)搜尋范圍和待匹配特征之間的差別,從而使匹配問(wèn)題復(fù)雜化了。為了解決這一問(wèn)題出現(xiàn)了各種匹配策略,學(xué)者們提出了眾多的方案,如由粗到精策略,動(dòng)態(tài)規(guī)劃,圖像分割等。查找匹配像素點(diǎn)的算法主要分為基于特征的和基于面積的匹配點(diǎn)搜尋兩種算法,兩者的算法復(fù)雜度分別為O(n2)和O(n)。由于系統(tǒng)的實(shí)時(shí)性要求,本發(fā)明選擇的是后一種算法,其基本思路是通過(guò)累加一個(gè)區(qū)域內(nèi)的差值來(lái)確定中心像素點(diǎn)對(duì)應(yīng)的空間點(diǎn)的深度。
計(jì)算匹配代價(jià)是該算法的第一步。在步驟一中,左圖和右圖的極線已經(jīng)對(duì)齊,因此對(duì)于左圖上的每一個(gè)像素點(diǎn),需要搜尋匹配點(diǎn)的范圍就限制在右圖的同一行的像素中。在實(shí)驗(yàn)中發(fā)現(xiàn)由于每個(gè)攝像頭的成像亮度和色調(diào)都不相同,RGB顏色空間的距離不足以表達(dá)相近的顏色。而CIELAB顏色空間是慣常用來(lái)描述人眼可見(jiàn)的所有顏色的最完備的色彩模型,它能較好地計(jì)算出兩顏色之間的差值,從RGB轉(zhuǎn)化到CIELAB空間需要對(duì)每個(gè)像素點(diǎn)做大量的計(jì)算,利用可編程圖形硬件GPU的并行處理能力,這個(gè)步驟在很短時(shí)間內(nèi)能夠很快完成。
在初始化匹配代價(jià)的過(guò)程中,首先對(duì)每個(gè)像素點(diǎn)設(shè)定一個(gè)以該像素為中心的查找區(qū)域,如圖4所示,在左圖和右圖之間查找最接近的像素點(diǎn)。于是有如下的公式定義距離C(x,y,d)=|PL(x,y)-PR(x+d,y)|,d的取值和相機(jī)之間的相對(duì)距離有關(guān),處于處理速度的考慮,設(shè)置d的取值范圍為[-16,16]。為了加速計(jì)算過(guò)程和充分利用圖形顯卡的并行計(jì)算能力,將左圖和右圖作為紋理傳給GPU,通過(guò)設(shè)置紋理的偏移量和多重渲染來(lái)實(shí)現(xiàn)紋理之間的求差,最后再將結(jié)果渲染到一塊紋理用于下一步的計(jì)算。這一步計(jì)算使用GPU的并行計(jì)算加速是很明顯的,比CPU逐像素求差提升大約20倍左右。
然后,對(duì)于每個(gè)像素點(diǎn)累加該像素點(diǎn)周?chē)c(diǎn)的匹配代價(jià),這步計(jì)算是保證圖像平滑的關(guān)鍵。首先給每個(gè)像素點(diǎn)的周?chē)c(diǎn)賦予相對(duì)于該像素點(diǎn)的權(quán)值,權(quán)重的取值主要考慮到兩點(diǎn)之間的顏色關(guān)系和幾何關(guān)系,用公式表示就是這里p表示正在被計(jì)算的像素點(diǎn),q是p查找范圍內(nèi)的一個(gè)點(diǎn),通常設(shè)置這個(gè)范圍為以p為中心的一個(gè)矩形。λc和λg為經(jīng)驗(yàn)值,分別設(shè)置為14和10。幾何之間的關(guān)系是通過(guò)計(jì)算兩點(diǎn)之間的距離來(lái)得到。顏色越相近,距離越相近,則權(quán)值越大。
當(dāng)獲得權(quán)值后將更新第一步所得到的匹配代價(jià),用公式表示為 p為左圖上的一點(diǎn),p′為右圖上坐標(biāo)為(x+d,y)的點(diǎn),l和l′分別為p和p′點(diǎn)搜尋范圍內(nèi)的一點(diǎn)。在這里有一個(gè)假定就是物體表面是平滑的,因此相鄰像素點(diǎn)在具有相近的差異值。
對(duì)于每個(gè)像素點(diǎn)而言,視差值是指當(dāng)C(p,d)取最小值時(shí)d的值。當(dāng)確定左圖中每個(gè)像素點(diǎn)的視差值后,下面的公式將得到在空間中對(duì)應(yīng)點(diǎn)的深度信息,即z值其中ddisparity是視差值,dbaseline指的是攝像頭之間的基線長(zhǎng)度。最終效果如圖5,左側(cè)的兩幅圖為攝像頭輸入端采集到的圖像,右側(cè)圖為使用以上描述的立體視覺(jué)算法得到的場(chǎng)景深度圖。圖6是運(yùn)動(dòng)物體的情況下得到的深度圖。
步驟三斑塊檢測(cè)和確定斑塊中心點(diǎn) 在步驟二獲得深度圖后,通過(guò)圖像的高斯模糊和對(duì)閾值的合理設(shè)置,排除一些面積較小的噪聲點(diǎn),獲得離攝像頭最近的N塊斑塊作為多點(diǎn)觸摸的輸入。斑塊檢測(cè)算法是利用OpenCV庫(kù)中提供的斑塊檢測(cè)跟蹤庫(kù)cvBlobsLib,其基本算法是逐行掃描并標(biāo)記碰到的新斑塊,同時(shí)與先前標(biāo)記過(guò)的舊斑塊進(jìn)行合并。通過(guò)掃描連續(xù)的兩行,標(biāo)記出每個(gè)斑塊的開(kāi)始和結(jié)束點(diǎn),目的是判斷出該斑塊是否屬于一個(gè)已經(jīng)存在的斑塊。最后分為八種情況討論,具體的算法來(lái)自于Snyder等人的斑塊增長(zhǎng)和邊界檢測(cè)算法。最終提取各個(gè)斑塊的中心點(diǎn)坐標(biāo),效果如圖7所示。
步驟四多點(diǎn)觸摸程序的輸入 將步驟三生成的多個(gè)坐標(biāo)點(diǎn)作為多點(diǎn)觸摸程序的輸入。如圖8所示,程序獲得坐標(biāo)后在相應(yīng)位置顯示光暈,并隨著用戶的交互顯示移動(dòng)軌跡。
本實(shí)施例所用的電腦配置為Intel 2.8GHz*2,1G內(nèi)存和Geforce 7300LE顯卡。攝像頭輸入的分辨率為320*240,深度圖計(jì)算時(shí)間大約為0.21秒左右,高斯模糊和確定斑塊中心點(diǎn)的處理時(shí)間大約在0.05秒。最后系統(tǒng)的平均處理幀率約為4-5幀每秒,主要的計(jì)算瓶頸在于權(quán)值的計(jì)算和累加周?chē)c(diǎn)匹配代價(jià)兩個(gè)步驟上,這兩個(gè)步驟占總處理時(shí)間的70%左右。
權(quán)利要求
1.一種基于雙目立體視覺(jué)的多點(diǎn)觸摸的方法,其特征在于,包括如下步驟
步驟一,通過(guò)相機(jī)定標(biāo)確定照相機(jī)相對(duì)于三維場(chǎng)景的方位和投影參數(shù),利用雙目攝像機(jī)采集圖像對(duì);
步驟二,將步驟一采集的兩幅同一幀的圖像作為輸入,利用立體視覺(jué)算法計(jì)算場(chǎng)景深度步驟三通過(guò)高斯模糊和確定閾值得到距離最近的斑塊,并計(jì)算出斑塊中心坐標(biāo);
步驟四利用步驟三得到的多個(gè)坐標(biāo)作為多點(diǎn)觸摸程序的輸入并返回交互的結(jié)果到屏幕上。
2.根據(jù)權(quán)利要求1所述的基于雙目立體視覺(jué)的多點(diǎn)觸摸的方法,其特征是,步驟一中所述利用雙目攝像機(jī)采集圖像對(duì),是指采用兩個(gè)攝像頭作為輸入,攝像頭之間的相對(duì)距離固定,鏡頭中心相對(duì)距離,又稱(chēng)作基線為5cm,通過(guò)擺置攝像頭使得相機(jī)軸心線平行,讓極點(diǎn)處于無(wú)窮遠(yuǎn)處,這樣極線和圖像的x軸平行,同時(shí)非線性的鏡頭扭曲也得到修正。
3.根據(jù)權(quán)利要求1所述的基于雙目立體視覺(jué)的多點(diǎn)觸摸的方法,其特征是,步驟二中所述的利用立體視覺(jué)算法計(jì)算場(chǎng)景深度圖,具體實(shí)現(xiàn)如下
首先,對(duì)每個(gè)像素點(diǎn)設(shè)定以該像素為中心的查找區(qū)域,在左右圖之間查找顏色最接近的像素點(diǎn),定義匹配代價(jià)C(x,y,d)=|PL(x,y)-PR(x+d,y)|,其中P_L(x,y)表示左圖像素點(diǎn)(x,y)的灰度值,PR(x+d,y)表示右圖像素點(diǎn)(x+d,y)的灰度值;
然后,更新匹配代價(jià)C(x,y,d)的值,給每個(gè)像素點(diǎn)的周?chē)c(diǎn)賦予相對(duì)于該點(diǎn)的權(quán)值,權(quán)值與顏色相近度成正比,與距離成反比,公式為λc和λg分別設(shè)置為14和10,計(jì)算出權(quán)值后更新上一步所得到的匹配代價(jià),用公式表示為p為左圖上的一點(diǎn),p′為右圖上坐標(biāo)為(x+d,y)的點(diǎn),l和l′分別為p和p′點(diǎn)搜尋范圍內(nèi)的一點(diǎn);
對(duì)于每個(gè)像素點(diǎn)而言,視差值取當(dāng)匹配代價(jià)C(p,d)取最小值時(shí)的d的取值,當(dāng)確定左圖中每個(gè)像素點(diǎn)的視差值后,下面的公式將得到在空間中對(duì)應(yīng)點(diǎn)的深度值其中ddisparity是視差值,dbaseline指的是攝像頭之間的基線長(zhǎng)度。
4.根據(jù)權(quán)利要求3所述的基于雙目立體視覺(jué)的多點(diǎn)觸摸的方法,其特征是,所述d的取值范圍為[-16,16]。
5.根據(jù)權(quán)利要求1所述的基于雙目立體視覺(jué)的多點(diǎn)觸摸的方法,其特征是,所述通過(guò)高斯模糊和確定閾值得到距離最近的斑塊,是指對(duì)得到的場(chǎng)景深度圖進(jìn)行高斯模糊,排除噪聲點(diǎn),手動(dòng)設(shè)定閾值使得深度圖上只留下最亮的區(qū)域,即距離最近的斑塊。
6.根據(jù)權(quán)利要求1所述的基于雙目立體視覺(jué)的多點(diǎn)觸摸的方法,其特征是,所述計(jì)算出斑塊中心坐標(biāo),是指使用開(kāi)源計(jì)算機(jī)視覺(jué)庫(kù)OpenCV找到斑塊斑塊,通過(guò)收斂算法確定斑塊中心坐標(biāo)。
全文摘要
一種計(jì)算機(jī)視覺(jué)技術(shù)領(lǐng)域的基于雙目立體視覺(jué)的多點(diǎn)觸摸的方法,步驟為一、通過(guò)相機(jī)定標(biāo)確定照相機(jī)相對(duì)于三維場(chǎng)景的方位和投影參數(shù),利用雙目攝像機(jī)采集圖像對(duì);二、將步驟一采集的兩幅同一幀的圖像作為輸入,利用立體視覺(jué)算法計(jì)算場(chǎng)景深度圖;三、通過(guò)高斯模糊和確定閾值得到距離最近的斑塊,并計(jì)算出斑塊中心坐標(biāo);四、利用步驟三得到的多個(gè)坐標(biāo)作為多點(diǎn)觸摸程序的輸入并返回交互的結(jié)果到屏幕上。本發(fā)明能實(shí)現(xiàn)用戶無(wú)需觸摸屏幕即可在空間中完成多點(diǎn)觸摸的操作,且獲取到的輸入點(diǎn)的坐標(biāo)信息是三維的,因此可以實(shí)現(xiàn)更復(fù)雜的交互,如推拉某虛擬物體等。
文檔編號(hào)G06T7/00GK101393497SQ20081020193
公開(kāi)日2009年3月25日 申請(qǐng)日期2008年10月30日 優(yōu)先權(quán)日2008年10月30日
發(fā)明者丁曉東, 楊旭波, 肖雙九, 陳一帆 申請(qǐng)人:上海交通大學(xué)