版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
雙目立體視覺(jué)一直是機(jī)器視覺(jué)研究領(lǐng)域的發(fā)展熱點(diǎn)和難點(diǎn),“熱”是因?yàn)殡p目立體視覺(jué)有著及其廣闊的應(yīng)用前景,且隨著光學(xué)、計(jì)算機(jī)科學(xué)等學(xué)科的不斷發(fā)展,雙目立體技術(shù)將不斷進(jìn)步直到應(yīng)用到人類生活的方方面面?!半y”則是因?yàn)槭艿綌z像機(jī)、鏡頭等硬件設(shè)備及一些相關(guān)算法的限制。一.簡(jiǎn)介雙目立體視覺(jué)是機(jī)器視覺(jué)中的一個(gè)重要分支,自上世紀(jì)60年代中期開創(chuàng)以來(lái),經(jīng)過(guò)幾十年的發(fā)展,如今在機(jī)器人視覺(jué)、航空測(cè)繪、軍事應(yīng)及醫(yī)學(xué)成像、工業(yè)檢測(cè)上應(yīng)用極其廣泛。雙目立體視覺(jué)基于視差原理并利用成像設(shè)備從不同的位置獲取被測(cè)物體的左右兩幅圖像,然后根據(jù)三角測(cè)量原理計(jì)算空間點(diǎn)在二維圖像的位置偏差,最后再利用位置偏差進(jìn)行三維重建來(lái)獲取被測(cè)物體的三維幾何信息(本文不對(duì)雙目立體視覺(jué)的數(shù)學(xué)原理進(jìn)行詳細(xì)介紹)。二.雙目立體視覺(jué)的三大基本算法的原理及其代碼實(shí)現(xiàn)(基于opencv)雙目立體視覺(jué)中常用的基于區(qū)域的局部匹配準(zhǔn)則主要有圖像序列中對(duì)應(yīng)像素差的絕對(duì)值之和SAD(sumofabsolutedifferences)、對(duì)應(yīng)像素差的平方之和SSD(sumofsquareddifferences)及半全局匹配算法SGM(semi—globalmatching)。2.1SAD(sumofabsolutedifferences)的原理匹配算法SAD的基本思想是對(duì)經(jīng)行對(duì)準(zhǔn)后的左右視圖圖像的對(duì)應(yīng)像素塊的對(duì)應(yīng)像素差的絕對(duì)值進(jìn)行求和。其數(shù)學(xué)公式如下:SAD匹配算法的基本流程如下:①輸入兩幅已經(jīng)校正實(shí)現(xiàn)行對(duì)準(zhǔn)的左視圖(Left-Image)及右視圖(Right-Image)。②對(duì)左視圖Left-Image進(jìn)行掃描選定一個(gè)錨點(diǎn)并構(gòu)建一個(gè)類似于卷積核的小窗口。③用此小窗口覆蓋Left-Image,并選擇出小窗口覆蓋區(qū)域的全部像素點(diǎn)④同樣用此小窗口覆蓋Right-Image,并選擇出小窗口覆蓋區(qū)域的全部像素點(diǎn)。⑤Left-Image覆蓋區(qū)域的像素減去Right-Image覆蓋區(qū)域的像素,并求出所有像素點(diǎn)的差的絕對(duì)值之和。⑥移動(dòng)Right-Image的小窗口并重復(fù)④—⑤的操作(注意此處會(huì)設(shè)置一個(gè)搜索范圍,超過(guò)此范圍則跳出)⑦找到這個(gè)范圍內(nèi)SAD值最小的小窗口,此時(shí)便找到了與Left-Image錨點(diǎn)的最佳匹配的像素塊。2.1.1SAD(sumofabsolutedifferences)的基于opencv的C++代碼實(shí)現(xiàn)首先先定義一個(gè)SAD算法的頭文件(SAD_Algorithm.h):#include"iostream"#include"opencv2/opencv.hpp"#include"iomanip"usingnamespacestd;usingnamespacecv;classSAD{public:
SAD():winSize(7),DSR(30){}
SAD(int_winSize,int_DSR):winSize(_winSize),DSR(_DSR){}
MatcomputerSAD(Mat&L,Mat&R);//計(jì)算SADprivate:
intwinSize;//卷積核的尺寸
intDSR;
//視差搜索范圍};MatSAD::computerSAD(Mat&L,Mat&R){
intHeight=L.rows;
intWidth=L.cols;
MatKernel_L(Size(winSize,winSize),CV_8U,Scalar::all(0));
MatKernel_R(Size(winSize,winSize),CV_8U,Scalar::all(0));
MatDisparity(Height,Width,CV_8U,Scalar(0));//視差圖
for(inti=0;i<Width-winSize;i++)
//左圖從DSR開始遍歷
{
for(intj=0;j<Height-winSize;j++)
{
Kernel_L=L(Rect(i,j,winSize,winSize));
MatMM(1,DSR,CV_32F,Scalar(0));
for(intk=0;k<DSR;k++)
{
intx=i-k;
if(x>=0)
{
Kernel_R=R(Rect(x,j,winSize,winSize));
MatDif;
absdiff(Kernel_L,Kernel_R,Dif);//求差的絕對(duì)值之和
ScalarADD=sum(Dif);
floata=ADD[0];
MM.at<float>(k)=a;
}
}
PointminLoc;
minMaxLoc(MM,NULL,NULL,&minLoc,NULL);
intloc=minLoc.x;
//intloc=DSR-loc;
Disparity.at<char>(j,i)=loc*16;
}
doublerate=double(i)/(Width);
cout<<"已完成"<<setprecision(2)<<rate*100<<"%"<<endl;//顯示處理進(jìn)度
}
returnDisparity;}調(diào)用示例:#include"SAD_Algorithm.h"intmain(intargc,char*argv[]){
MatImg_L=imread("Teddy_L.png",0);
//此處調(diào)用的圖像已放入項(xiàng)目文件夾中
MatImg_R=imread("Teddy_R.png",0);
MatDisparity;
//創(chuàng)建視差圖
SADmySAD(7,30);
//給出SAD的參數(shù)
Disparity=mySAD.computerSAD(Img_L,Img_R);
imshow("Teddy_L",Img_L);
imshow("Teddy_R",Img_R);
imshow("Disparity",Disparity);
//顯示視差圖
waitKey();
system("pause");
//按任意鍵退出
return0;}2.1.2SAD算法的運(yùn)行效果可以看出SAD算法雖然運(yùn)行較快,但效果較差。2.2SSD(sumofsquareddifferences)的原理SSD(sumofsquareddifferences)算法大致與SAD(sumofabsolutedifferences)相似。其數(shù)學(xué)公式如下:因SSD匹配算法與SAD匹配算法的過(guò)程及代碼實(shí)現(xiàn)相類似,考慮到篇幅長(zhǎng)度的原因,故SSD算法的基本過(guò)程及代碼實(shí)現(xiàn)在本文中不在贅述,讀者可去自行實(shí)現(xiàn)。2.3SGBM(semi-globalblockmatching)的原理SGM(semi-globalmatching)是一種用于計(jì)算雙目立體視覺(jué)中的disparity的半全局匹配算法。其在opencv中的實(shí)現(xiàn)為SGBM(semi-globalblockmatching)。SGBM的原理:設(shè)置一個(gè)和disparitymap(由每個(gè)像素點(diǎn)的disparity所構(gòu)成)相關(guān)的全局能量函數(shù),使這個(gè)能量函數(shù)最小。原始文獻(xiàn):HeikoHirschmuller.Stereoprocessingbysemiglobalmatchingandmutualinformation.PatternAnalysisandMachineIntelligence,IEEETransactionson,30(2):328–341,2008.其能量函數(shù)如下:D--disparitymap(視差圖)p、q—圖像中的某個(gè)像素Np—像素點(diǎn)Pd相鄰像素點(diǎn)(一般認(rèn)為是8連通)C(P,Dp)--當(dāng)前像素點(diǎn)的disparity為Dp時(shí),該像素點(diǎn)的costP1、P2—懲罰系數(shù),分別適用于當(dāng)像素P相鄰像素中的disparity值與P的disparity差值為1和大于1時(shí)I[]—當(dāng)[]內(nèi)的參數(shù)為真時(shí)返回1,否則返回0SGBM算法的基本流程如下:①預(yù)處理:使用sobel算子對(duì)源圖像進(jìn)行處理,并將經(jīng)sobel算子處理后的圖像映射為新圖像,并得到圖像的梯度信息用于后續(xù)的計(jì)算代價(jià)。②代價(jià)計(jì)算:使用采樣方法對(duì)經(jīng)預(yù)處理得到的圖像梯度信息計(jì)算梯度代價(jià)、使用采樣方法對(duì)源圖像計(jì)算SAD代價(jià)。③動(dòng)態(tài)規(guī)劃:默認(rèn)四條路經(jīng),并對(duì)路徑規(guī)劃的參數(shù)P1,P2進(jìn)行設(shè)置(包括P1、P2、cn(圖像通道數(shù)量)以及SADWindowsize(SAD窗口大小)的設(shè)置)。④后處理:包括唯一性檢測(cè)、亞像素插值、左右一致性檢測(cè)、連通區(qū)域的檢測(cè)。2.3.1SGBM(semi-globalblockmatching)的基于opencv的C++代碼實(shí)現(xiàn)首先先定義一個(gè)SGBM算法的頭文件(SGBM_Algorithm.h):具體參數(shù)見代碼及其注釋(若讀者需優(yōu)化可自行調(diào)整),不再贅述enum{STEREO_BM=0,STEREO_SGBM=1,STEREO_HH=2,STEREO_VAR=3,STEREO_3WAY=4};#include"iostream"#include"opencv2/opencv.hpp"usingnamespacestd;usingnamespacecv;voidcalDispWithSGBM(MatImg_L,MatImg_R,Mat&imgDisparity8U){
SizeimgSize=Img_L.size();
intnumberOfDisparities=((imgSize.width/8)+15)&-16;
Ptr<StereoSGBM>sgbm=StereoSGBM::create(0,16,3);
intcn=Img_L.channels();
//左圖像的通道數(shù)
intSADWindowSize=9;
intsgbmWinSize=SADWindowSize>0?SADWindowSize:3;
sgbm->setMinDisparity(0);
//minDisparity最小視差默認(rèn)為0;
sgbm->setNumDisparities(numberOfDisparities);
//numDisparity視差搜索范圍,其值必須為16的整數(shù)倍;
sgbm->setP1(8*cn*sgbmWinSize*sgbmWinSize);
sgbm->setP2(32*cn*sgbmWinSize*sgbmWinSize);
//一般建議懲罰系數(shù)P1、P2取此兩值,P1、P2控制視差圖的光滑度
//P2越大,視差圖越平滑
sgbm->setDisp12MaxDiff(1);
//左右一致性檢測(cè)最大容許誤差閾值
sgbm->setPreFilterCap(31);
//預(yù)處理濾波器的截?cái)嘀?,預(yù)處理的輸出值僅保留
//[-preFilterCap,preFilterCap]范圍內(nèi)的值,參數(shù)范圍:1-31
sgbm->setUniquenessRatio(10);
//視差唯一性百分比:視差窗口范圍內(nèi)最低代價(jià)是次低代價(jià)的(1+uniquenessRatio/100)倍時(shí)
//最低代價(jià)對(duì)應(yīng)的視差值才是該像素點(diǎn)的視差,否則該像素點(diǎn)的視差為0,不能為負(fù)值,一般去5——15
sgbm->setSpeckleWindowSize(100);
//視差連通區(qū)域像素點(diǎn)個(gè)數(shù)的大?。簩?duì)于每一個(gè)視差點(diǎn),當(dāng)其連通區(qū)域的像素點(diǎn)個(gè)數(shù)小于
//speckleWindowSize時(shí),認(rèn)為該視差值無(wú)效,是噪點(diǎn)。
sgbm->setSpeckleRange(32);
//視差連通條件:在計(jì)算一個(gè)視差點(diǎn)的連通區(qū)域時(shí),當(dāng)下一個(gè)像素點(diǎn)視差變化絕對(duì)值大于
//speckleRange就認(rèn)為下一個(gè)視差像素點(diǎn)和當(dāng)前視差像素點(diǎn)是不連通的。
sgbm->setMode(0);
//模式選擇
sgbm->setBlockSize(sgbmWinSize);
//設(shè)置SAD代價(jià)計(jì)算窗口,一般在3*3到21*21之間
//blockSize(SADWindowSize)越小,也就是匹配代價(jià)計(jì)算的窗口越小,視差圖噪聲越大;
//blockSize越大,視差圖越平滑;
//太大的size容易導(dǎo)致過(guò)平滑,并且誤匹配增多,體現(xiàn)在視差圖中空洞增多//三種模式選擇(HH、SGBM、3WAY)
intalgorithm=STEREO_SGBM;
if(algorithm==STEREO_HH)
sgbm->setMode(StereoSGBM::MODE_HH);
elseif(algorithm==STEREO_SGBM)
sgbm->setMode(StereoSGBM::MODE_SGBM);
elseif(algorithm==STEREO_3WAY)
sgbm->setMode(StereoSGBM::MODE_SGBM_3WAY);
MatimgDisparity16S=Mat(Img_L.rows,Img_L.cols,CV_16S);
sgbm->compute(Img_L,Img_R,imgDisparity16S);
//--DisplayitasaCV_8UC1image:16位有符號(hào)轉(zhuǎn)為8位無(wú)符號(hào)
imgDisparity16S.convertTo(imgDisparity8U,CV_8U,255/(numberOfDisparities*16.));}調(diào)用示例:#include"SGBM_Algorithm.h"intmain(){
MatImg_L=imread("Teddy_L.png",0);
MatImg_R=imread("Teddy_R.png",0);
MatDisparity8U=Mat(Img_L.rows,Img_R.cols,CV_8UC1);//創(chuàng)建一個(gè)Disparity圖像
calDispWithSGBM(Img_L,Img_R,Disparity8U);
imshow("Teddy_L",Img_L);
imshow("Teddy_R",Img_R);
imshow("Disparity",Disparity8U);
waitKey();
system("pause");
//按任意鍵退出
return0;}2.3.2SGBM算法的運(yùn)行效果還順便調(diào)整了SADWindowsize的大小來(lái)給讀者探討并展示當(dāng)設(shè)置不同SADWindowsize大小時(shí)對(duì)Disparity效果圖的影響,其結(jié)果如下(皆為MODE_SGBM模式下):由上述在不同SADWindowsize大小設(shè)置(其他參數(shù)保持不變)的效果圖對(duì)比下我們可得知如下結(jié)論:SADWindowsize過(guò)小時(shí),視差圖的噪聲較多;隨著SADWindowsize的增大,視圖越平滑,但當(dāng)SADWindowsize過(guò)大時(shí),視差圖中的空洞現(xiàn)象會(huì)增加;故在選擇SADWindowsize的大小時(shí),應(yīng)選取合適的大?。ńㄗh選擇SADWindowsize=9)。三.雙目立體視覺(jué)的發(fā)展現(xiàn)狀目前在國(guó)外,雙目立體視覺(jué)技術(shù)已廣泛運(yùn)用于生產(chǎn)生活實(shí)際中,但在我國(guó),雙目立體視覺(jué)技術(shù)仍處在起步階段,仍需要在座的各位發(fā)奮圖強(qiáng)、力爭(zhēng)創(chuàng)新。3.1雙目立體視覺(jué)的發(fā)展方向就雙目立體視覺(jué)的發(fā)展現(xiàn)況和發(fā)展目標(biāo)(達(dá)到類似于人眼的通用雙目立體視覺(jué))仍是路漫漫其修遠(yuǎn)兮,我認(rèn)為進(jìn)一步的發(fā)展方向可以歸納如下:①探索新的更具有通用性的計(jì)算理論和匹配算法結(jié)構(gòu),以解決目前存在的灰度失真、噪聲干擾以及幾何畸變的問(wèn)題。②提高算法的性能,對(duì)算法進(jìn)行優(yōu)化,盡可能向?qū)崟r(shí)效果推進(jìn)。③建立更有效的雙目體視模型能更充分地反映立體視覺(jué)不確定性的本質(zhì)屬性,為匹配提供更多的約束信息,降低立體匹配的難度。④強(qiáng)調(diào)場(chǎng)景與任務(wù)的約束,建立適用于不同場(chǎng)景和任務(wù)的雙目立體視覺(jué)系統(tǒng)的標(biāo)準(zhǔn)和方法。3.2雙目立體視覺(jué)的國(guó)內(nèi)外發(fā)展動(dòng)態(tài)雙目體視目前主要應(yīng)用于四個(gè)領(lǐng)域:機(jī)器人導(dǎo)航、微操作系統(tǒng)的參數(shù)檢測(cè)、三維測(cè)量和虛擬現(xiàn)實(shí)。目前在國(guó)外,日本大阪大學(xué)自適應(yīng)機(jī)械系統(tǒng)研究院研制了一種自適應(yīng)雙目視覺(jué)伺服系統(tǒng),利用雙目體視的原理,如每幅圖像中相對(duì)靜止的三個(gè)標(biāo)志為參考,實(shí)時(shí)計(jì)算目標(biāo)圖像的雅可比短陣,從而預(yù)測(cè)出目標(biāo)下一步運(yùn)動(dòng)方向,實(shí)現(xiàn)了對(duì)動(dòng)方式未知的目標(biāo)的自適應(yīng)跟蹤。該系統(tǒng)僅要求兩幅圖像中都有靜止的參考標(biāo)志,無(wú)需攝像機(jī)參數(shù)。日本奈良科技大學(xué)信息科學(xué)學(xué)院提出了一種基于雙目立體視覺(jué)的增強(qiáng)現(xiàn)實(shí)系統(tǒng)(ar)注冊(cè)方法,通過(guò)動(dòng)態(tài)修正特征點(diǎn)的位置提
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 吉林大學(xué)《隧道施工技術(shù)》2021-2022學(xué)年第一學(xué)期期末試卷
- 2022年XX醫(yī)院突發(fā)公共衛(wèi)生事件應(yīng)急預(yù)案
- 智慧城市BIM技術(shù)應(yīng)用方案
- 零售業(yè)員工培訓(xùn)紀(jì)律與獎(jiǎng)勵(lì)方案
- 非營(yíng)利組織勞動(dòng)教育推廣方案
- 2024-2025學(xué)年新教材高中歷史第八單元20世紀(jì)下半葉世界的新變化第20課社會(huì)主義國(guó)家的發(fā)展與變化課后習(xí)題含解析新人教版必修中外歷史綱要下
- 2024高考數(shù)學(xué)一輪復(fù)習(xí)第九章解析幾何9.4直線與圓圓與圓的位置關(guān)系學(xué)案文含解析新人教A版
- 七年級(jí)歷史上冊(cè)第二單元夏商周時(shí)期:早期國(guó)家與社會(huì)變革第5課青銅器與甲骨文練習(xí)無(wú)答案新人教版
- 2024-2025學(xué)年新教材高中政治第一單元探索世界與把握規(guī)律第二課探究世界的本質(zhì)第一框世界的物質(zhì)性課時(shí)作業(yè)含解析新人教版必修4
- 生字導(dǎo)入課件教學(xué)課件
- 儲(chǔ)能電站能源管理合同范本
- 防腐木走廊與木亭工程施工設(shè)計(jì)方案
- 藍(lán)色卡通風(fēng)一年級(jí)新生家長(zhǎng)會(huì)PPT模板
- GB∕T 17888.3-2020 機(jī)械安全 接近機(jī)械的固定設(shè)施 第3部分:樓梯、階梯和護(hù)欄
- FTTH皮線光纜布放規(guī)范
- 家用電器常見認(rèn)證標(biāo)志一覽匯總(精選.)
- 新概念英語(yǔ)第二冊(cè)課件Lesson 13 (共24張PPT)
- 五年(2018-2022年)高考全國(guó)卷英語(yǔ)試題考點(diǎn)分析
- 績(jī)效考核及薪酬機(jī)制和執(zhí)行情況審計(jì)報(bào)告模板
- 試驗(yàn)室組織機(jī)構(gòu)圖
- 組分模型與pvti模塊擬合
評(píng)論
0/150
提交評(píng)論