

摘要:立體視覺(jué)是計(jì)算機(jī)視覺(jué)領(lǐng)域的一個(gè)重要課題,其目的在于重構(gòu)場(chǎng)景的三維幾何信息。立體視覺(jué)在機(jī)器人導(dǎo)航系統(tǒng)、航空及遙感測(cè)量、軍事應(yīng)用、工業(yè)自動(dòng)化等中有著比較廣泛的應(yīng)用,所以對(duì)立體視覺(jué)的研究具有十分重要的意義。雙目立體視覺(jué)是立體視覺(jué)的一個(gè)重要的分支。雙目立體視覺(jué)理論是在模擬人類視覺(jué)系統(tǒng)研究的基礎(chǔ)上建立起來(lái)的。對(duì)于雙目立體視覺(jué)的研究,主要包括攝像機(jī)標(biāo)定、特征檢測(cè)、立體匹配和三維重建幾個(gè)方面的內(nèi)容。本論文中采用了雙目立體視覺(jué)技術(shù)來(lái)實(shí)現(xiàn)多點(diǎn)觸控,主要研究了攝像機(jī)標(biāo)定、特征提取、觸控點(diǎn)跟蹤、多點(diǎn)觸控系統(tǒng)設(shè)計(jì)等幾方面內(nèi)容。主要完成了如下工作:首先,分析了雙目立體視覺(jué)及多點(diǎn)觸控技術(shù)的國(guó)內(nèi)外研究現(xiàn)狀,為本文的研究工作奠定了基礎(chǔ)。其次,主要介紹了張友正攝像機(jī)標(biāo)定原理,然后進(jìn)行了攝像機(jī)的標(biāo)定實(shí)驗(yàn),在理論與實(shí)驗(yàn)的基礎(chǔ)上得出了雙目攝像機(jī)的內(nèi)外參數(shù),更為重要的一點(diǎn)就是通過(guò)標(biāo)定原理推導(dǎo)出了觸控轉(zhuǎn)換公式。再次,將雙目立體視覺(jué)技術(shù)中的標(biāo)定方法應(yīng)用到多點(diǎn)觸控中,通過(guò)圖像處理方法對(duì)觸控點(diǎn)進(jìn)行特征提取,然后計(jì)算觸控點(diǎn)坐標(biāo)并進(jìn)行跟蹤,實(shí)驗(yàn)證明該方法能有效解決多觸點(diǎn)遮擋問(wèn)題,可支持最多四個(gè)觸點(diǎn)的精確定位。
關(guān)鍵詞:雙目立體視覺(jué);攝像機(jī)標(biāo)定;特征提取;觸控點(diǎn)跟蹤
1概述
本多點(diǎn)觸控系統(tǒng)包括:攝像機(jī)標(biāo)定、觸控點(diǎn)特征提取、觸控點(diǎn)跟蹤等幾個(gè)部分。本系統(tǒng)涉及論文除了在理論上對(duì)攝像機(jī)標(biāo)定、觸控點(diǎn)特征提取、觸控點(diǎn)跟蹤技術(shù)進(jìn)行了研究之外,還利用ViusalC++2008進(jìn)行了編程,實(shí)現(xiàn)了系統(tǒng)的全部功能,包括攝像機(jī)標(biāo)定、觸控點(diǎn)特征提取、觸控點(diǎn)跟蹤技術(shù)。
為了縮短開發(fā)時(shí)間,本文選擇Intel的OpenCV(OpenSourceComputerVision)library作為整個(gè)系統(tǒng)的基礎(chǔ)函數(shù)庫(kù)。OpenCV是一個(gè)基于BSD許可證授權(quán)(開源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺(jué)庫(kù),可以運(yùn)行在Linux、Windows和MacOS操作系統(tǒng)上。它輕量級(jí)而且高效——由一系列C函數(shù)和少量C++類構(gòu)成,同時(shí)提供了Python、Ruby、MATLAB等語(yǔ)言的接口,實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺(jué)方面的很多通用算法。OpenCV有效地提高了開發(fā)效率,并且其執(zhí)行速度快,具有良好的跨平臺(tái)移植性,因此廣泛應(yīng)用于工程實(shí)際當(dāng)中。
2系統(tǒng)的硬件組成
圖2-1為本文所設(shè)計(jì)系統(tǒng)控制裝置示意圖,系統(tǒng)的硬件部分主要由一臺(tái)計(jì)算機(jī),視覺(jué)系統(tǒng)及實(shí)驗(yàn)平臺(tái)組成。視覺(jué)系統(tǒng)的主要任務(wù)是獲取觸點(diǎn)信息并通過(guò)坐標(biāo)轉(zhuǎn)化得到它的空間位置信息。
本系統(tǒng)中的光學(xué)傳感器是型號(hào)為9014的CCD攝像頭,其采集速度為每秒30幀,圖像采集分辨率為320*240。精度較高,噪聲較小。本系統(tǒng)包括兩個(gè)攝像頭和一個(gè)支架,將攝像頭安裝在支架上,再將安裝攝像頭的支架安裝在顯示屏的前方或后方,應(yīng)視兩個(gè)攝像頭視角范圍重疊區(qū)域最大,且整個(gè)實(shí)驗(yàn)平臺(tái)都在重疊區(qū)域內(nèi),如圖2-1所示,安裝完成之后要要將攝像頭固定好,以免人為的觸碰到攝像頭,使其產(chǎn)生晃動(dòng),對(duì)實(shí)驗(yàn)結(jié)果照成影響,攝像頭通過(guò)有線或無(wú)線與計(jì)算機(jī)相連。
圖2-1觸摸控制裝置結(jié)構(gòu)圖
此系統(tǒng)的優(yōu)點(diǎn)在于通過(guò)光學(xué)傳感方式,采用光學(xué)傳感接收器作為主要信號(hào)采集裝置,因此生產(chǎn)制作容易,成本較低,而且作用面積大,相對(duì)于現(xiàn)有技術(shù)的成本優(yōu)勢(shì)就越突出;由于采用光學(xué)傳感接收器,并且光學(xué)傳感接收器的個(gè)數(shù)可以根據(jù)實(shí)際應(yīng)用進(jìn)行調(diào)整,因此,識(shí)別精度高,能夠準(zhǔn)確地通過(guò)筆觸或手觸輸入信息;信號(hào)接收是通過(guò)成像方式產(chǎn)生,因此,不需要直接接觸界面顯示設(shè)備的表面,不易對(duì)設(shè)備產(chǎn)生物理?yè)p傷,因此,使用壽命長(zhǎng)。
3系統(tǒng)的軟件設(shè)計(jì)
3.1技術(shù)路線與方案
如圖2-1所示,放置兩個(gè)攝像頭,使得實(shí)驗(yàn)平臺(tái)在每個(gè)攝像頭內(nèi)都能有完整的圖像,左攝像頭與右攝像頭標(biāo)定形成雙目系統(tǒng),并且以左攝像頭的光心位置作為世界坐標(biāo)原點(diǎn)。兩個(gè)攝像頭同步捕獲手指的運(yùn)動(dòng)圖像,通過(guò)圖像處理,得到手指在兩個(gè)攝像頭中的像坐標(biāo),通過(guò)坐標(biāo)變換得到手指的世界坐標(biāo)(世界坐標(biāo)原點(diǎn)為左攝像頭的光心坐標(biāo))。最后通過(guò)oscpack將得到的點(diǎn)信息傳送出去。
本系統(tǒng)軟件最關(guān)鍵的地方是要提取出手指的像坐標(biāo),由攝像頭實(shí)時(shí)獲取手指圖像,提取出我們感興趣的圖像部分,提取背景差,經(jīng)過(guò)平滑、canny、二值化、去雜點(diǎn)、膨化,邊緣連接得到手指部分在圖像中以白色區(qū)域顯示,所有白色區(qū)域在圖像中的位置被實(shí)時(shí)地(即每33ms)刷新,程序利用這些信息,可以在一定程度上由圖像中被跟蹤目標(biāo)的二維投影得出三維信息。
本系統(tǒng)軟件主要分為4個(gè)模塊:手指檢測(cè)模塊、坐標(biāo)轉(zhuǎn)換模塊、觸控點(diǎn)跟蹤模塊、oscpack傳送模塊。
3.2數(shù)據(jù)流程圖
3.3詳細(xì)程序流程圖
3.4模塊劃分及函數(shù)說(shuō)明
(1)初始化模塊:初始化2個(gè)攝像頭,即讀入2個(gè)攝像頭。
函數(shù):voidinitDevices(),調(diào)用listDevices(),setDeviceID(),initGrabber函數(shù)。
函數(shù)作用:?jiǎn)?dòng)攝像頭,初始化攝像頭拍攝圖像參數(shù)并為輸入攝像頭編號(hào);
(2)攝像頭參數(shù)模塊:載入標(biāo)定得出的參數(shù),對(duì)攝像頭參數(shù)矩陣進(jìn)行計(jì)算。
函數(shù):cvH0ughLines2(),在二值圖像中找到直線;
cvFindComersubPix,得到精確的亞像素級(jí)的坐標(biāo);
cvDrawChesscoardcorners,以紅色圓圈來(lái)繪制檢測(cè)到得棋盤角點(diǎn);
cv2Calibratecamera2(),得到攝像機(jī)的內(nèi)參矩陣、畸變向量、每幅圖像的旋轉(zhuǎn)向量、每幅圖像的平移向量;
cvFind2ExtrinsicCameraParams2(),計(jì)算各幅圖的外參即旋轉(zhuǎn)向量和平移向量;
(3)更新圖像模塊:對(duì)圖像進(jìn)行處理,得到手指在攝像頭中的像坐標(biāo)。
函數(shù):voidUpdateMutiPoints2(IplImage*img),更新圖像并找手指點(diǎn);
(4)坐標(biāo)變換模塊:將手指像坐標(biāo)帶入雙目系統(tǒng)中計(jì)算手指的世界坐標(biāo),由于我們假設(shè)的平臺(tái)與攝像頭光心平行,即z軸坐標(biāo)為0,即只有x和y坐標(biāo)。
函數(shù):voidCalculateMutiPoint(),由圖像坐標(biāo)得到世界坐標(biāo);
(5)Oscpack輸出模塊:將得到的x,y方向上的坐標(biāo)仿射變換到屏幕上面的矩形中,然后再將這些點(diǎn)的坐標(biāo)傳出去。
4本章小結(jié)
本文主要介紹了基于雙目立體視覺(jué)技術(shù)的多點(diǎn)觸控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),從硬件和軟件兩個(gè)方面詳細(xì)地介紹了系統(tǒng)設(shè)計(jì)的過(guò)程與應(yīng)注意的問(wèn)題。硬件方面,給出了攝像頭采用的型號(hào),實(shí)驗(yàn)平臺(tái)的擺放等相關(guān)信息,軟件方面,給出了技術(shù)路線與方案、數(shù)據(jù)流程圖、詳細(xì)程序流程圖、模塊劃分及函數(shù)說(shuō)明。
參考文獻(xiàn):
[1]于泓.攝像機(jī)標(biāo)定算法研究[D].山東:山東大學(xué),2006:7-13.
[2]馬頌德,張正友.計(jì)算機(jī)視覺(jué)--計(jì)算理論與算法基礎(chǔ)[M].北京:科學(xué)出版社,2003.
[3]張健新,段發(fā)階,葉聲華.雙目傳感器結(jié)構(gòu)優(yōu)化設(shè)計(jì)[J].光電工程,1996,23(3):12-17.
[4] Chen,Y.Mean Shift Mode Seeking and Clustering. IEEE Trans. Pattern Analysis and Machine Intelligence. 1995,17(8):790-799.
作者簡(jiǎn)介:萬(wàn)利(1983.12.03-),性別:女,籍貫:湖北天門,學(xué)歷:碩士,研究方向:電路集成。