本發(fā)明涉及計(jì)算機(jī)視覺技術(shù)領(lǐng)域技術(shù),具體涉及攝像機(jī)的標(biāo)定。
背景技術(shù):
三維重建是從攝像機(jī)獲取的二維圖像信息出發(fā),計(jì)算出物體的三維位置、形狀等幾何信息,并由此重建和識(shí)別場(chǎng)景中的物體。三維重建的關(guān)鍵是獲取二維圖像上的點(diǎn)與空間物體表面某點(diǎn)的三維幾何位置的相對(duì)應(yīng)關(guān)系。而這種對(duì)應(yīng)關(guān)系是由攝像機(jī)成像的幾何模型決定的,這些模型的參數(shù)稱為攝像機(jī)參數(shù),這些參數(shù)包括攝像機(jī)本身的內(nèi)部參數(shù)和攝像機(jī)與攝像機(jī)之間的外部參數(shù)。計(jì)算這些參數(shù)的過程稱為攝像機(jī)標(biāo)定。
目前,在計(jì)算機(jī)視覺和攝影測(cè)量領(lǐng)域已經(jīng)提出了多種攝像機(jī)標(biāo)定方法,其中包括基于特定的實(shí)驗(yàn)條件如形狀、尺寸已知的標(biāo)定參照物求取攝像機(jī)模型參數(shù)的傳統(tǒng)攝像機(jī)標(biāo)定方法,也有不依賴于標(biāo)定參照物,僅利用攝像機(jī)在運(yùn)動(dòng)過程中周圍環(huán)境的圖像與圖像之間的對(duì)應(yīng)關(guān)系對(duì)攝像機(jī)進(jìn)行標(biāo)定的攝像機(jī)標(biāo)定方法。傳統(tǒng)的使用標(biāo)定參照物如標(biāo)定模板的方法獲得了較廣泛的應(yīng)用,其中典型的有Tsai的兩步法,這種方法求解精度較高,但是僅僅考慮了徑向畸變,對(duì)于切向畸變較大的場(chǎng)合就不再適用。在此基礎(chǔ)上,張正友提出了基于平面標(biāo)定板的標(biāo)定方法,該方法只需利用對(duì)平面棋盤格模板在不同拍攝的一組圖像即可進(jìn)行標(biāo)定,但是,如果這種標(biāo)定方法要有高的標(biāo)定精度,就需要制作高平面度的標(biāo)定板,而高平面度的標(biāo)定板制作困難,成本較高。這些傳統(tǒng)的方法由于在拍攝和標(biāo)定的過程中一直需要使用標(biāo)定參照物,因而給拍攝操作以及標(biāo)定方法的使用帶來很大的不方便。
在計(jì)算機(jī)視覺和攝影測(cè)量廣泛應(yīng)用和迅速發(fā)展的今天,圖像的極線校正、深度圖/視差圖的獲取、自由視頻的插值生成等都要用到攝像機(jī)內(nèi)外參數(shù),因此,如何快速、有效對(duì)攝像機(jī)進(jìn)行標(biāo)定是一個(gè)必須解決的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是解決現(xiàn)有攝像機(jī)標(biāo)定方法技術(shù)中存在的高精度標(biāo)定參照物制作困難成本高、操作復(fù)雜繁瑣、標(biāo)定精度不夠高等不足問題,目的在于提供用于雙目攝像機(jī)標(biāo)定的標(biāo)定板及雙目攝像機(jī)標(biāo)定方法。
本發(fā)明通過下述技術(shù)方案實(shí)現(xiàn):
用于雙目攝像機(jī)標(biāo)定的標(biāo)定板,包括用于接收分辨率信息、并根據(jù)分辨率輸出平面棋盤格圖像驅(qū)動(dòng)信息的電子設(shè)備終端機(jī),還包括用于接收平面棋盤格圖像驅(qū)動(dòng)信息并顯示平面棋盤格圖像的顯示器。
標(biāo)定板(Calibration Target)在機(jī)器視覺、圖像測(cè)量、攝影測(cè)量、三維重建等應(yīng)用中,為校正鏡頭畸變;確定物理尺寸和像素間的換算關(guān)系;以及確定空間物體表面某點(diǎn)的三維幾何位置與其在圖像中對(duì)應(yīng)點(diǎn)之間的相互關(guān)系,需要建立攝像機(jī)成像的幾何模型。通過攝像機(jī)拍攝帶有固定間距圖案陣列平板、經(jīng)過標(biāo)定算法的計(jì)算,可以得出攝像機(jī)的幾何模型,從而得到高精度的測(cè)量和重建結(jié)果。而帶有固定間距圖案陣列的平板就是標(biāo)定板。常見的有實(shí)心圓陣列圖案和國際象棋盤圖案的標(biāo)定板,這些標(biāo)定板都是采用平面度很高的基板,并在基板上設(shè)置所需要的圖案。由于圖案精度、基板平面度要求很高,往往一個(gè)標(biāo)定板的成本非常昂貴,且整個(gè)制作困難成本高、且這種標(biāo)定板的標(biāo)定操作復(fù)雜繁瑣、標(biāo)定精度不夠高等不足問題。
本發(fā)明與現(xiàn)有標(biāo)定板最大的不同在于:采用電子設(shè)備驅(qū)動(dòng)顯示器來顯示圖案,必如采用PC主機(jī)獲取PC顯示器的分辨率,根據(jù)分辨率制作與之對(duì)應(yīng)的棋盤格圖像,并將棋盤格圖像顯示出來作為標(biāo)定板。根據(jù)不同分辨率的顯示器制作與之相應(yīng)的棋盤格圖像,使得PC能夠顯示出足夠清晰的標(biāo)定棋盤格,提高標(biāo)定精度。這種方法可以使得顯示器盡可能的顯示很多的棋盤格,以提高標(biāo)定精度,而傳統(tǒng)的標(biāo)定板,棋盤格的數(shù)量?jī)H有幾種規(guī)格,要提高棋盤格數(shù)量必須要定制,且制作成本較高,且每一套標(biāo)定系統(tǒng)所需要的標(biāo)定板也會(huì)有所不同,因此每變化一套標(biāo)定系統(tǒng)則需要設(shè)計(jì)對(duì)應(yīng)的標(biāo)定板,因此,這個(gè)標(biāo)定周期則會(huì)大大增長(zhǎng),為了適應(yīng)這些要求,本發(fā)明利用電子設(shè)備終端機(jī)和顯示器配合,第一,可以快速形成并能按照預(yù)定要求顯示棋盤格的顯示器,第二,制作成本低,第三,可以利用顯示器顯示不同的亮度的棋盤格的標(biāo)定板,從而使用不同光線條件下的標(biāo)定環(huán)境,使得標(biāo)定圖像受關(guān)線影響的情況降低,通過上述的標(biāo)定板,可以以低成本高精度的方式為標(biāo)定系統(tǒng)提供對(duì)應(yīng)需求的標(biāo)定板。
本發(fā)明根據(jù)不同分辨率的顯示器制作與之相應(yīng)的棋盤格圖像,使得PC能夠顯示出足夠清晰的標(biāo)定棋盤格,提高標(biāo)定精度。由于本發(fā)明采用的是依據(jù)顯示器的分辨率來制作棋盤格圖像,其中顯示器的分辨率為矩形單元格,而棋盤格圖像也為矩形單元格,因此二者可以很好的對(duì)應(yīng)設(shè)置,而傳統(tǒng)技術(shù)采用圓形標(biāo)定板,無法與顯示器分辯率的矩形單元格簡(jiǎn)單有效的對(duì)應(yīng)起來,需要復(fù)雜的計(jì)算方法來實(shí)現(xiàn),這就必然會(huì)導(dǎo)致精度下降。
采用棋盤格圖像與采用圓形圖像的差異:
棋盤格標(biāo)定板的優(yōu)勢(shì)在于:在提取特征點(diǎn)的時(shí)候,對(duì)于棋盤格標(biāo)定板,特征點(diǎn)坐標(biāo)處在黑框或白框的角點(diǎn)處,這些點(diǎn)是都由兩條直線確定的,無論拍攝角度如何變化,提取出的這些點(diǎn)的位置是確定的。但是對(duì)于圓形陣列標(biāo)定板來說,特征點(diǎn)一般為圓心,當(dāng)拍攝角度發(fā)生變化,對(duì)于圓的視角會(huì)發(fā)生變化,拍攝出來的圓是發(fā)生形變了的,此時(shí)檢測(cè)得到的圓心的位置可能是發(fā)生了變化的;因此,棋盤格標(biāo)定板的標(biāo)定精度比圓形陣列標(biāo)定板標(biāo)定精度高。
所述棋盤格圖像為包括白色方格和黑色方格的平面棋盤格圖像,所有白色方格和黑色方格按照矩形陣列排布,且在行方向和列方向上、相鄰黑色方格之間均采用一個(gè)白色方格間隔設(shè)置。
所述電子設(shè)備終端機(jī)為PC機(jī)或手機(jī)或平板電腦。
雙目攝像機(jī)標(biāo)定方法,包括以下步驟:
組建標(biāo)定系統(tǒng):將2個(gè)攝像機(jī)與標(biāo)定數(shù)據(jù)處理設(shè)備建立通訊,這2個(gè)攝像機(jī)分別是左攝像機(jī)和右攝像機(jī);
獲得標(biāo)定圖像:將攝像機(jī)從多個(gè)視角拍攝顯示平面棋盤格圖像的顯示器,左攝像機(jī)獲取的畫面為左圖像,右攝像機(jī)獲取的畫面為右圖像;一般的,優(yōu)選拍攝顯示器里的圖像,是對(duì)圖像對(duì)焦。將攝像機(jī)從多個(gè)視角拍攝顯示平面棋盤格圖像的顯示器,具體的過程為,將攝像機(jī)從多個(gè)視角對(duì)準(zhǔn)顯示器,采用對(duì)焦方式獲取顯示平面棋盤格圖像的區(qū)域圖像。
獲得圖像特征點(diǎn):檢測(cè)并提取左圖像、右圖像的特征點(diǎn);
匹配圖像特征點(diǎn):利用順序匹配的方法分別將顯示器顯示的平面棋盤格圖像與左圖像、右圖像做特征點(diǎn)匹配;
攝像機(jī)參數(shù)標(biāo)定:攝像機(jī)參數(shù)標(biāo)定包括攝像機(jī)內(nèi)部參數(shù)標(biāo)定和攝像機(jī)外部參數(shù)標(biāo)定;
攝像機(jī)內(nèi)部參數(shù)標(biāo)定:包括獲得畸變矩陣D和獲得攝像機(jī)內(nèi)參矩陣K,
通過建立世界坐標(biāo)與特征點(diǎn)像素圖像坐標(biāo)之間的投影方程,在投影方程中加入攝像機(jī)畸變參數(shù),實(shí)現(xiàn)圖像畸變矯正,最后通過求解投影方程,得到畸變矩陣D和攝像機(jī)內(nèi)參矩陣K;
獲得畸變矩陣D:通過對(duì)圖像、右圖像進(jìn)行畸變校正獲得畸變矩陣D,畸變矯正的過程就是通過加入一個(gè)畸變因子,利用建立理想針孔模型成像像素坐標(biāo)與特征點(diǎn)像素坐標(biāo)之間的關(guān)系獲得畸變矩陣D;獲得攝像機(jī)內(nèi)參矩陣K:利用理想針孔投影模型建立左、右圖像坐標(biāo)之間的關(guān)系,從而標(biāo)定出攝像機(jī)內(nèi)參矩陣K;
攝像機(jī)外部參數(shù)標(biāo)定:外部參數(shù)是針對(duì)兩個(gè)或兩個(gè)以上的攝像機(jī)成像坐標(biāo)之間的對(duì)應(yīng)關(guān)系,包括從世界坐標(biāo)系到攝像機(jī)坐標(biāo)系的旋轉(zhuǎn)變換矩陣和平移變換向量;
極線矯正:采用旋轉(zhuǎn)變換矩陣進(jìn)行旋轉(zhuǎn)處理和平移變換向量進(jìn)行平移處理的方式對(duì)左圖像、右圖像進(jìn)行極線矯正。
所述特征點(diǎn)選擇Harris角點(diǎn)作為圖像特征點(diǎn),Harris角點(diǎn)就是梯度變化為極大值的點(diǎn),如果左圖像、右圖像中的一個(gè)點(diǎn)在兩個(gè)正交方向上都有明顯的導(dǎo)數(shù),即認(rèn)為該點(diǎn)是Harris角點(diǎn);
Harris角點(diǎn)的獲取過程如下:
利用水平、豎直差分算子對(duì)左圖像、右圖像每個(gè)像素進(jìn)行濾波以求得Ix、Iy;進(jìn)而求得像素點(diǎn)n中四個(gè)元素的關(guān)聯(lián)矩陣:
其中,
其中,Ix、Iy分別是水平和垂直方向的方向?qū)?shù);
利用離散二維零均值高斯濾波器對(duì)n的四個(gè)元素進(jìn)行平滑,再濾波,得到新的m;
找到Harris角點(diǎn)后,以Harris角點(diǎn)的像素圖像坐標(biāo)或以Harris角點(diǎn)的亞像素圖像坐標(biāo)作為特征點(diǎn)像素圖像坐標(biāo),記為特征點(diǎn)(x,y)。
匹配圖像特征點(diǎn)的具體過程為:根據(jù)獲得的特征點(diǎn),得到一個(gè)N×N的特征點(diǎn)網(wǎng)格,將特征點(diǎn)按順序規(guī)則對(duì)所有特征點(diǎn)進(jìn)行編號(hào),如果左圖像和右圖像檢測(cè)到的特征點(diǎn)數(shù)量與平面棋盤格圖像設(shè)定的特征點(diǎn)數(shù)量不一樣,則需對(duì)左圖像和右圖像重新檢測(cè)獲得特征點(diǎn);如果左圖像和右圖像檢測(cè)到的特征點(diǎn)數(shù)量與平面棋盤格圖像設(shè)定的特征點(diǎn)數(shù)量一樣,則左圖像、右圖像都按照順序規(guī)則對(duì)N×N的特征點(diǎn)網(wǎng)格進(jìn)行遍歷,同時(shí)與平面棋盤格圖像做匹配。
攝像機(jī)參數(shù)標(biāo)定的具體過程為:
獲得畸變矩陣D:先對(duì)左圖像和右圖像進(jìn)行畸變矯正獲得畸變矩陣D,具體的:
設(shè)理想針孔模型成像像素坐標(biāo)為(u,v),特征點(diǎn)像素圖像坐標(biāo)為(x,y),設(shè)畸變因子為δx(x,y),δy(x,y),δx(x,y),δy(x,y)是徑向畸變和切向畸變的非線性畸變值;
建立攝像機(jī)理想針孔模型成像像素坐標(biāo)(u,v)與實(shí)際像素坐標(biāo)(x,y)之間的關(guān)系:
畸變因子與特征點(diǎn)在左圖像和右圖像中的位置有關(guān):
其中,k1、k2是描述需要標(biāo)定的兩個(gè)徑向畸變系數(shù),p1、p2為需要標(biāo)定的兩個(gè)切向畸變參數(shù),徑向畸變系數(shù)、切向畸變參數(shù)組成畸變矩陣D,D=[k1,k2,p1,p2];
獲得攝像機(jī)內(nèi)參矩陣K:
設(shè)平面棋盤格圖像上的特征點(diǎn)的世界坐標(biāo)Xi=[xi,yi,0]T,i為坐標(biāo)點(diǎn)的編號(hào),即z分量為0,
建立攝像機(jī)理想針孔模型為:
其中,r1,r2,r3分別為R的三個(gè)列向量,s是一個(gè)比例系數(shù),通過上述方程計(jì)算得到;[xw,yw,0]T為點(diǎn)P在世界坐標(biāo)系下的坐標(biāo);[u,v]T為點(diǎn)P在平面棋盤格圖像上的理想點(diǎn)坐標(biāo)值;R和t分別為從世界坐標(biāo)系到攝像機(jī)坐標(biāo)系的旋轉(zhuǎn)變換矩陣和平移變換向量;K為攝像機(jī)內(nèi)參矩陣K;(u0,v0)為圖像平面的主點(diǎn)坐標(biāo);α,β分別為圖像在u軸和v軸的焦距參數(shù);γ為圖像扭曲參數(shù),表示圖像兩坐標(biāo)軸偏斜度;
令m=[u v 1]T,M=[xw yw 1]T,H=[h1 h2 h3]=K[r1 r2 0],那么,上式(5)可以表示為:
sm=HM
矩陣H為單應(yīng)矩陣,表示兩個(gè)平面之間的對(duì)應(yīng)關(guān)系,它聯(lián)系了標(biāo)定表上的角點(diǎn)的空間信息和圖像信息,可以利用非線性最小化方法進(jìn)行求解;根據(jù)旋轉(zhuǎn)列向量r1,r2的單位正交性,得到如下約束方程:
每次拍攝的圖像代入上式,即可求解出單應(yīng)矩陣H,進(jìn)一步得到如式(6)中的兩個(gè)線性約束方程,矩陣K中有5個(gè)未知量需要標(biāo)定,當(dāng)有至少3幅圖像的時(shí)候就能根據(jù)式(6)求解出K中的5個(gè)未知量,在此標(biāo)定過程中,也會(huì)解出畸變矩陣D;
針對(duì)左圖像和右圖像,將會(huì)的到對(duì)應(yīng)的兩組參數(shù):H0,H1、K0,D0和K1,D1,需要輸出的參數(shù)有:K0,D0和K1,D1,其中,H0,K0,D0分別為左圖像相對(duì)于世界坐標(biāo)的單應(yīng)矩陣、左攝像機(jī)的攝像機(jī)矩陣、左攝像機(jī)的畸變參數(shù)矩陣;H1,K1,D1分別為右圖像相對(duì)于世界坐標(biāo)的單應(yīng)矩陣、右攝像機(jī)的攝像機(jī)矩陣、右攝像機(jī)的畸變參數(shù)矩陣;
攝像機(jī)外部參數(shù)標(biāo)定:
由H0,H1,可知道世界坐標(biāo)對(duì)應(yīng)于左圖像和右圖像的坐標(biāo)對(duì)應(yīng)關(guān)系,由式H=[h1 h2h3]=K[r1 r2 0]可以進(jìn)一步求出每次拍攝時(shí)攝像機(jī)對(duì)于世界坐標(biāo)的外部參數(shù):
求出左圖像和右圖像之間的對(duì)應(yīng)關(guān)系過程如下:
對(duì)于世界坐標(biāo)與左圖像有:sm0=H0M。
對(duì)于世界坐標(biāo)與右圖像有:sm1=H1M。
那么,對(duì)于左圖像與右圖像之間的關(guān)系有:m0=H0(H1)-1m1;
令H=(H0)-1H1,則H包含了左圖像與右圖像的旋轉(zhuǎn)平移的變化關(guān)系,由此即可求出左圖像與右圖像之間的外部參數(shù),需要輸出的外部參數(shù)有R、t,R為從世界坐標(biāo)系到攝像機(jī)坐標(biāo)系的旋轉(zhuǎn)變換矩陣,t為從世界坐標(biāo)系到攝像機(jī)坐標(biāo)系的平移變換向量。
極線矯正的過程為:
極線校正就是尋找對(duì)合適的投影變換矩陣H0、單應(yīng)矩陣H1分別對(duì)圖像I0、I1進(jìn)行變換得到H0I0、H1I1,并滿足:其中F是其對(duì)應(yīng)的基本矩陣,對(duì)每一對(duì)匹配點(diǎn)u0∈I0,u1∈I1,有u0TFu1=0,是校正后的基本矩陣。
采用上述標(biāo)定板的標(biāo)定系統(tǒng),包括:
棋盤格圖像制作模塊:用于獲取顯示器的分辨率,并根據(jù)顯示器分辨率制作與之對(duì)應(yīng)的平面棋盤格圖像,并將棋盤格圖像采用顯示器的方式顯示出來作為標(biāo)定板;
圖像采集模塊:用于控制攝像頭從多個(gè)視角拍攝顯示平面棋盤格圖像的顯示器,左攝像頭獲取的畫面為左圖像,右攝像頭獲取的畫面為右圖像;
特征點(diǎn)匹配模塊;用于檢測(cè)并提取左圖像、右圖像的特征點(diǎn),再利用順序匹配的方法分別將顯示器顯示的平面棋盤格圖像與左圖像、右圖像做特征點(diǎn)匹配,獲得匹配后的特征點(diǎn);
標(biāo)定模塊:用于通過特征點(diǎn)和左圖像和右圖像的數(shù)據(jù)處理實(shí)現(xiàn)對(duì)攝像機(jī)參數(shù)的標(biāo)定;
控制觸發(fā)模塊:用于實(shí)現(xiàn)控制攝像機(jī)的工作狀態(tài);
標(biāo)定提示模塊:用于標(biāo)定時(shí)、提示攝像機(jī)的移動(dòng)方向。
其中標(biāo)定模塊包括:
攝像機(jī)內(nèi)部參數(shù)標(biāo)定模塊:用于建立世界坐標(biāo)與圖像坐標(biāo)之間的投影方程,在投影方程中加入攝像機(jī)畸變參數(shù),實(shí)現(xiàn)圖像畸變矯正,最后通過求解投影方程,得到畸變矩陣D和攝像機(jī)內(nèi)參矩陣K;
極線矯正標(biāo)定模塊:用于采用旋轉(zhuǎn)變換矩陣進(jìn)行旋轉(zhuǎn)處理和平移變換向量進(jìn)行平移處理的方式對(duì)左圖像、右圖像進(jìn)行極線矯正;
攝像機(jī)外部參數(shù)標(biāo)定模塊:用于建立兩個(gè)或兩個(gè)以上的攝像機(jī)成像坐標(biāo)之間的對(duì)應(yīng)關(guān)系,包括從世界坐標(biāo)系到攝像機(jī)坐標(biāo)系的旋轉(zhuǎn)變換矩陣和平移變換向量。
使用使,攝像機(jī)(攝像機(jī))通過外部接口模塊將的圖像預(yù)處理模塊、控制觸發(fā)模塊、標(biāo)定提示模塊建立聯(lián)系,攝像機(jī)(攝像機(jī))以多方向的方式拍照采集顯示器標(biāo)定出的棋盤格圖像,經(jīng)過圖像預(yù)處理模塊、控制觸發(fā)模塊、標(biāo)定提示模塊的控制進(jìn)行標(biāo)定處理。
本發(fā)明與現(xiàn)有技術(shù)相比,具有如下的優(yōu)點(diǎn)和有益效果:
1.提供一種基于PC端的雙目攝像機(jī)標(biāo)定的方法和系統(tǒng),使得標(biāo)定工作簡(jiǎn)單方便,易于操作,避免了很多由于人工操作引起的標(biāo)定誤差。
2.通過利用計(jì)算機(jī)制作棋盤格圖像作為標(biāo)定參照物,能夠大大降低傳統(tǒng)標(biāo)定板的制作成本。
3.在標(biāo)定過程中,對(duì)圖像進(jìn)行了畸變矯正和極線校正,避免了由于攝像機(jī)本身因素引起的成像偏差,提高了標(biāo)定精度。
4.在標(biāo)定過程中,通過多次拍攝不同方向不同角度的棋盤格圖像,消除了攝像機(jī)視場(chǎng)中的畸變不能能代表全局畸變而引起的標(biāo)定誤差。
5.根據(jù)不同分辨率的顯示器制作與之相應(yīng)的棋盤格圖像,使得PC能夠顯示出足夠清晰的標(biāo)定棋盤格,提高標(biāo)定精度。
附圖說明
圖1為采用顯示器顯示的棋盤格圖像。
圖2為系統(tǒng)攝像機(jī)移動(dòng)方向?yàn)轱@示器左下角方向時(shí)的提示以及圖像顯示截圖。
圖3為系統(tǒng)攝像機(jī)移動(dòng)方向?yàn)轱@示器正左方向時(shí)的提示以及圖像顯示截圖。
圖4為多個(gè)方位拍攝示意圖。
圖5為拍攝角度示意圖。
圖6為一種基于PC端的雙目攝像機(jī)標(biāo)定的方法和系統(tǒng)。
圖7為攝像機(jī)標(biāo)定流程圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下面結(jié)合實(shí)施例,對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說明,本發(fā)明的示意性實(shí)施方式及其說明僅用于解釋本發(fā)明,并不作為對(duì)本發(fā)明的限定。
實(shí)施例1
用于雙目攝像機(jī)標(biāo)定的標(biāo)定板,包括用于接收分辨率信息、并根據(jù)分辨率輸出平面棋盤格圖像驅(qū)動(dòng)信息的電子設(shè)備終端機(jī),還包括用于接收平面棋盤格圖像驅(qū)動(dòng)信息并顯示平面棋盤格圖像的顯示器。
標(biāo)定板(Calibration Target)在機(jī)器視覺、圖像測(cè)量、攝影測(cè)量、三維重建等應(yīng)用中,為校正鏡頭畸變;確定物理尺寸和像素間的換算關(guān)系;以及確定空間物體表面某點(diǎn)的三維幾何位置與其在圖像中對(duì)應(yīng)點(diǎn)之間的相互關(guān)系,需要建立攝像機(jī)成像的幾何模型。通過攝像機(jī)拍攝帶有固定間距圖案陣列平板、經(jīng)過標(biāo)定算法的計(jì)算,可以得出攝像機(jī)的幾何模型,從而得到高精度的測(cè)量和重建結(jié)果。而帶有固定間距圖案陣列的平板就是標(biāo)定板。常見的有實(shí)心圓陣列圖案和國際象棋盤圖案的標(biāo)定板,這些標(biāo)定板都是采用平面度很高的基板,并在基板上設(shè)置所需要的圖案。由于圖案精度、基板平面度要求很高,往往一個(gè)標(biāo)定板的成本非常昂貴,且整個(gè)制作困難成本高、且這種標(biāo)定板的標(biāo)定操作復(fù)雜繁瑣、標(biāo)定精度不夠高等不足問題。
本發(fā)明與現(xiàn)有標(biāo)定板最大的不同在于:采用電子設(shè)備驅(qū)動(dòng)顯示器來顯示圖案,必如采用PC主機(jī)獲取PC顯示器的分辨率,根據(jù)分辨率制作與之對(duì)應(yīng)的棋盤格圖像,并將棋盤格圖像顯示出來作為標(biāo)定板。根據(jù)不同分辨率的顯示器制作與之相應(yīng)的棋盤格圖像,使得PC能夠顯示出足夠清晰的標(biāo)定棋盤格,提高標(biāo)定精度。這種方法可以使得顯示器盡可能的顯示很多的棋盤格,以提高標(biāo)定精度,而傳統(tǒng)的標(biāo)定板,棋盤格的數(shù)量?jī)H有幾種規(guī)格,要提高棋盤格數(shù)量必須要定制,且制作成本較高,且每一套標(biāo)定系統(tǒng)所需要的標(biāo)定板也會(huì)有所不同,因此每變化一套標(biāo)定系統(tǒng)則需要設(shè)計(jì)對(duì)應(yīng)的標(biāo)定板,因此,這個(gè)標(biāo)定周期則會(huì)大大增長(zhǎng),為了適應(yīng)這些要求,本發(fā)明利用電子設(shè)備終端機(jī)和顯示器配合,第一,可以快速形成并能按照預(yù)定要求顯示棋盤格的顯示器,第二,制作成本非常廉價(jià),第三,可以利用顯示器顯示不同的亮度的棋盤格的標(biāo)定板,從而使用不同光線條件下的標(biāo)定環(huán)境,使得標(biāo)定圖像受關(guān)線影響的情況降低,通過上述的標(biāo)定板,可以以低成本高精度的方式為標(biāo)定系統(tǒng)提供對(duì)應(yīng)需求的標(biāo)定板。
本發(fā)明根據(jù)不同分辨率的顯示器制作與之相應(yīng)的棋盤格圖像,使得PC能夠顯示出足夠清晰的標(biāo)定棋盤格,提高標(biāo)定精度。由于本發(fā)明采用的是依據(jù)顯示器的分辨率來制作棋盤格圖像,其中顯示器的分辨率為矩形單元格,而棋盤格圖像也為矩形單元格,因此二者可以很好的對(duì)應(yīng)設(shè)置,而傳統(tǒng)技術(shù)采用圓形標(biāo)定板,無法與顯示器分辯率的矩形單元格簡(jiǎn)單有效的對(duì)應(yīng)起來,需要復(fù)雜的計(jì)算方法來實(shí)現(xiàn),這就必然會(huì)導(dǎo)致精度下降。
采用棋盤格圖像與采用圓形圖像的差異:
所述棋盤格圖像為包括白色方格和黑色方格的平面棋盤格圖像,所有白色方格和黑色方格按照矩形陣列排布,且在行方向和列方向上、相鄰黑色方格之間均采用一個(gè)白色方格間隔設(shè)置。
所述電子設(shè)備終端機(jī)為PC機(jī)或手機(jī)或平板電腦。
實(shí)施例2
雙目攝像機(jī)標(biāo)定方法,包括以下步驟:
步驟1:將帶有攝像機(jī)的設(shè)備通過USB線鏈接至電腦,等待攝像機(jī)進(jìn)入正常工作狀態(tài)。
步驟2:獲取PC顯示器的分辨率,根據(jù)分辨率制作與之對(duì)應(yīng)的棋盤格圖像,并將棋盤格圖像顯示出來作為標(biāo)定板。根據(jù)不同分辨率的顯示器制作與之相應(yīng)的棋盤格圖像,使得PC能夠顯示出足夠清晰的標(biāo)定棋盤格,提高標(biāo)定精度。標(biāo)定棋盤格圖像如圖1所示。
步驟3:由標(biāo)定系統(tǒng)的圖像預(yù)處理模塊對(duì)標(biāo)定棋盤格圖像進(jìn)行預(yù)處理。對(duì)圖像進(jìn)行去噪、增強(qiáng)等預(yù)處理操作。
步驟4:控制打開攝像機(jī),開始拍攝棋盤格圖像進(jìn)行攝像機(jī)標(biāo)定。
步驟5:根據(jù)系統(tǒng)提示,如圖2、圖3所示,將攝像機(jī)朝多個(gè)不同方向移動(dòng),從多個(gè)視角獲取標(biāo)定棋盤格圖像,如圖4所示。從多個(gè)視角獲取標(biāo)定模板圖像是為了得到多組標(biāo)定板與攝像機(jī)之間的相對(duì)姿態(tài),從而實(shí)現(xiàn)單應(yīng)矩陣的構(gòu)建,同時(shí),使得得到的畸變參數(shù)更能體現(xiàn)整幅圖像的全局畸變。攝像機(jī)在移動(dòng)的過程中,需要保證左右攝像機(jī)都能完整地拍攝棋盤格圖像,即棋盤格圖像能夠完整地包含在每個(gè)攝像機(jī)的視場(chǎng)里面。攝像機(jī)拍攝的圖像序列將會(huì)在系統(tǒng)的PC端實(shí)時(shí)顯示出來。為了得到準(zhǔn)確的攝像機(jī)參數(shù),對(duì)于主要用于內(nèi)部參數(shù)標(biāo)定的影像獲取提出兩點(diǎn)建議:(1)拍攝時(shí),主光軸與標(biāo)定板成60°以下,如圖5所示;(2)多次調(diào)整拍攝角度。
步驟6:由系統(tǒng)的圖像預(yù)處理模塊對(duì)步驟5拍攝得到的圖像進(jìn)行去噪、增強(qiáng)等操作。將圖像序列作為標(biāo)定的數(shù)據(jù),傳入系統(tǒng)的標(biāo)定模塊,其中,左攝像機(jī)拍攝的圖像稱為左圖像,右攝像機(jī)拍攝的圖像稱為右圖像。
步驟7:檢測(cè)左、右圖像的特征點(diǎn),提取左、右圖像的特征。本發(fā)實(shí)例明將Harris角點(diǎn)作為圖像特征點(diǎn)。角點(diǎn)就是梯度變化為極大值的點(diǎn),如果一個(gè)點(diǎn)在兩個(gè)正交方向上都有明顯的導(dǎo)數(shù),即認(rèn)為該點(diǎn)是角點(diǎn)。Harris角點(diǎn)的檢測(cè)過程詳細(xì)描述為:
步驟7.1:利用水平、豎直差分算子對(duì)圖像每個(gè)像素進(jìn)行濾波以求得Ix、Iy,進(jìn)而求得像素點(diǎn)n中四個(gè)元素的關(guān)聯(lián)矩陣:
其中,
其中,Ix、Iy分別是水平和垂直方向的方向?qū)?shù)。
步驟7.2:對(duì)像素點(diǎn)n中的四個(gè)元素進(jìn)行平滑濾波,得到新的m。在此,利用離散二維零均值高斯濾波器對(duì)n的四個(gè)元素進(jìn)行平滑。離散二維零均值高斯函數(shù)為:
步驟8:提取左、右圖像特征的亞像素圖像坐標(biāo)。為了得到更為精確的角點(diǎn)位置,需要對(duì)步驟7檢測(cè)到的Harris角點(diǎn)坐標(biāo)進(jìn)行亞像素級(jí)求精。假設(shè)點(diǎn)q在實(shí)際亞像素級(jí)角點(diǎn)的附近且在一個(gè)區(qū)域A的邊緣,點(diǎn)p在區(qū)域A的內(nèi)部,p處的梯度為0,那么,通過找到p點(diǎn)周圍很多組梯度以及很多個(gè)向量這些梯度與對(duì)應(yīng)的向量的點(diǎn)積為0,然后通過求解方程組,方程組的解即為角點(diǎn)q的亞像素級(jí)精度的位置,也就是角點(diǎn)的精確位置,記為(x,y)。
步驟9:匹配圖像特征點(diǎn)。利用順序匹配的方法分別將棋盤格圖像與左、右圖像做特征點(diǎn)匹配,具體描述如下:
步驟9.1:通過檢測(cè)得到的Harris角點(diǎn),可以得到一個(gè)N×N的角點(diǎn)網(wǎng)格(矩陣),對(duì)角點(diǎn)進(jìn)行一定規(guī)則的順序編號(hào)。按行或列或是其他的規(guī)則對(duì)所有角點(diǎn)進(jìn)行編號(hào)。如果左圖像和右圖像檢測(cè)到的Harris角點(diǎn)數(shù)量與棋盤格設(shè)定的角點(diǎn)數(shù)量不一樣,則需要對(duì)圖像進(jìn)行進(jìn)一步的濾波處理后返回步驟7,重新檢測(cè)角點(diǎn)。
步驟9.2:左、右圖像都按照同一順序規(guī)則對(duì)角點(diǎn)網(wǎng)格進(jìn)行遍歷,然后同時(shí)與棋盤格圖像做匹配。
步驟10:攝像機(jī)內(nèi)部參數(shù)標(biāo)定:攝像機(jī)內(nèi)部參數(shù)描述的是能夠反映攝像機(jī)的成像特性的參數(shù),需要輸出的參數(shù)包括內(nèi)參矩陣K,畸變矩陣D。具體步驟如下:
步驟10.1:畸變矯正?,F(xiàn)實(shí)中,攝像機(jī)由于制作工藝不能夠足夠精確的原因,使得攝像機(jī)透鏡的形狀不夠理想,因而在拍攝的過程中會(huì)產(chǎn)生徑向畸變;又由于人工安裝的存在誤差的問題,使得透鏡不完全平行于圖像平面,因而對(duì)拍攝出的圖像產(chǎn)生切向畸變。攝像機(jī)成像模型是理想的針孔投影成像模型,如果直接用發(fā)生畸變的圖像進(jìn)行攝像機(jī)標(biāo)定,那么標(biāo)定結(jié)果必然是不準(zhǔn)確的。因此,在標(biāo)定之前必須對(duì)圖像進(jìn)行畸變校正?;兂C正的過程就是通過加入一個(gè)畸變因子,從而建立理想針孔模型成像像素坐標(biāo)(u,v)與實(shí)際像素坐標(biāo)(x,y)之間的關(guān)系:
其中,δx(x,y),δy(x,y)是徑向畸變和切向畸變的非線性畸變值,它與像素點(diǎn)在圖像中的位置有關(guān):
其中,k1、k2是描述需要標(biāo)定的兩個(gè)徑向畸變系數(shù),p1、p2為需要標(biāo)定的兩個(gè)切向畸變參數(shù),他們描述了畸變矩陣D,D=[k1,k2,p1,p2]。
步驟10.2:利用理想針孔投影模型建立左、右圖像坐標(biāo)之間的關(guān)系,從而標(biāo)定出攝像機(jī)的內(nèi)部參數(shù)。本發(fā)明采用的標(biāo)定表是由計(jì)算機(jī)PC端提供的,是高平面的,所以標(biāo)定表上的角點(diǎn)的世界坐標(biāo)Xi=[xi,yi,0]T,即z分量為0。所以,攝像機(jī)理想針孔投影模型為:
其中,r1,r2,r3分別為旋轉(zhuǎn)矩陣R的三個(gè)列向量。s是一個(gè)比例系數(shù),通過上述方程計(jì)算得到;[xw,yw,0]T為點(diǎn)P在世界坐標(biāo)系下的坐標(biāo);[u,v]T為點(diǎn)P在圖像平面上的理想像點(diǎn)坐標(biāo);R和t扥別為從世界坐標(biāo)系到攝像機(jī)坐標(biāo)系的旋轉(zhuǎn)變換矩陣和平移變換向量;K為攝像機(jī)內(nèi)部參數(shù)矩陣;(u0,v0)為圖像平面的主點(diǎn)坐標(biāo);α,β分別為圖像在u軸和v軸的焦距參數(shù);γ為圖像扭曲參數(shù),表示圖像兩坐標(biāo)軸偏斜度。
令m=[u v 1]T,M=[xw yw 1]T,H=[h1 h2 h3]=K[r1 r2 0],那么。上式可以表示為:sm=HM;
矩陣H為單應(yīng)矩陣,表示兩個(gè)平面之間的對(duì)應(yīng)關(guān)系,它聯(lián)系了標(biāo)定表上的角點(diǎn)的空間信息和圖像信息,可以利用非線性最小化方法進(jìn)行求解。根據(jù)旋轉(zhuǎn)列向量r1,r2的單位正交性,得到如下約束方程:
每次拍攝的圖像代入上式,即可求解出單應(yīng)矩陣H,進(jìn)一步得到如式(7)中的兩個(gè)線性約束方程。矩陣K中有5個(gè)未知量需要標(biāo)定,當(dāng)有3幅圖像以上的時(shí)候就能根據(jù)式(7)求解出K中的5個(gè)未知量。在此標(biāo)定過程中,也會(huì)解出畸變矩陣D。針對(duì)左右兩幅圖像,將會(huì)的到對(duì)應(yīng)的兩組參數(shù):H0,H1、K0,D0和K1,D1。需要輸出的參數(shù)有:K0,D0和K1,D1。
由式H=[h1 h2 h3]=K[r1 r2 0]可以進(jìn)一步求出每次拍攝時(shí)攝像機(jī)對(duì)于世界坐標(biāo)的外部參數(shù):
步驟11:雙目攝像機(jī)外部參數(shù)標(biāo)定:外部參數(shù)是針對(duì)兩個(gè)或兩個(gè)以上的攝像機(jī)成像坐標(biāo)之間的對(duì)應(yīng)關(guān)系,主要包括旋轉(zhuǎn)矩陣R和平移向量t。由步驟10中的H0,H1,可知道世界坐標(biāo)對(duì)應(yīng)于左圖像和右圖像的坐標(biāo)對(duì)應(yīng)關(guān)系。為此,求出左圖像和右圖像之間的對(duì)應(yīng)關(guān)系過程如下:
對(duì)于世界坐標(biāo)與左圖像有:sm0=H0M;
對(duì)于世界坐標(biāo)與右圖像有:sm1=H1M;
那么,對(duì)于左圖像與右圖像之間的關(guān)系有:m0=H0(H1)-1m1;
令H=(H0)-1H1,則H包含了左圖像與右圖像的旋轉(zhuǎn)平移的變化關(guān)系,由此即可求出左圖像與右圖像之間的外部參數(shù)。需要輸出的外部參數(shù)有R,t。
步驟12:左、右圖像的極線矯正。為了使標(biāo)定參數(shù)結(jié)果更加方便應(yīng)用于各種場(chǎng)景,首先對(duì)拍攝到的左、右圖像進(jìn)行極線校正。極線校正就是利用旋轉(zhuǎn)、平移的方法對(duì)圖像進(jìn)行變換,使得兩幅圖像的所有極線在一個(gè)平面上。具體描述為:極線校正就是尋找對(duì)合適的投影變換矩陣H0、H1(單應(yīng)矩陣)分別對(duì)圖像I0、I1進(jìn)行變換得到H0I0、H1I1,并滿足:其中F是其對(duì)應(yīng)的基本矩陣,對(duì)每一對(duì)匹配點(diǎn)u0∈I0,u1∈I1,有u0TFu1=0,校正后的基本矩陣?;具^程如下所述:針對(duì)左圖像和右圖像,將會(huì)的到對(duì)應(yīng)的兩組參數(shù):H0,H1、K0,D0和K1,D1,需要輸出的參數(shù)有:K0,D0和K1,D1,其中,H0,K0,D0分別為左圖像相對(duì)于世界坐標(biāo)的單應(yīng)矩陣、左攝像機(jī)的攝像機(jī)矩陣、左攝像機(jī)的畸變參數(shù)矩陣;H1,K1,D1分別為右圖像相對(duì)于世界坐標(biāo)的單應(yīng)矩陣、右攝像機(jī)的攝像機(jī)矩陣、右攝像機(jī)的畸變參數(shù)矩陣;
步驟12.1:通過旋轉(zhuǎn)變換,使左、右圖像I0、I1平行。具體為:有一個(gè)平面E平行于直線C0C1,E與I0、I1分別相交于直線d0、d1,E與I0、I1的夾角分別為θ0、θ1,那么,將I0、I1分別繞直線d0、d1旋轉(zhuǎn)θ0、θ1,得到這時(shí),E與分別平行,從而之間也互相平行。其中,分別為兩幅圖像的旋轉(zhuǎn)矩陣。
其中,分別為di在世界坐標(biāo)系中的單位方向向量的分量,單位方向向量為
步驟12.2:左、右圖像平行以后,的各自極線是平行的,但是這些極線通常與x軸存在夾角,因此對(duì)圖像進(jìn)行極線對(duì)齊操作。簡(jiǎn)單地說,就是以其中一幅圖像為基準(zhǔn),另一幅圖像通過一定的旋轉(zhuǎn)平移變換即可得到兩幅圖像平行且對(duì)應(yīng)的極線在一條水平線上。具體為:
a.先旋轉(zhuǎn)。將分別按照旋轉(zhuǎn)矩陣旋轉(zhuǎn)得到其中,
其中,φi表示圖像Ii與世界坐標(biāo)x的夾角,即是圖像的旋轉(zhuǎn)角度。
b.平移。左右圖像的極線已經(jīng)平行,需要將其中一幅圖像通過在y方向進(jìn)行平移,使得左、右圖像的對(duì)應(yīng)極限在同一條直線上。平移矩陣為:
此時(shí),兩幅圖像的投影變換矩陣分別為:
步驟12.3:由于上述得出H0、H1是假設(shè)基本矩陣F已知,但是事實(shí)上F為未知。為此,通過利用Levenberg_Marquardt算法來計(jì)算H0、H1的最優(yōu)解。具體為:
目標(biāo)函數(shù):
其中,N為匹配點(diǎn)對(duì),u0i,u1i為一對(duì)匹配點(diǎn)的其次坐標(biāo),i=1,2,...,N。
利用Levenberg_Marquardt算法對(duì)f[H0,H1]最小化,最后得到H0、H1。
步驟12.4:生成校正后的圖像。詳細(xì)說明為:得到Hi之后,對(duì)Ii實(shí)施變換Hi便可得到校正后的圖像HiIi。但是這樣做會(huì)使得新圖像HiIi中的某些點(diǎn)不能在Ii中找到對(duì)應(yīng)的點(diǎn),從而產(chǎn)生“空洞(holes)”現(xiàn)象。為此,采用下述方法對(duì)圖像進(jìn)行逆向映射,從而消除空洞,實(shí)現(xiàn)精準(zhǔn)匹配。
(1)計(jì)算圖像HiIi;
(2)求解HiIi的最小邊界矩形Recti;
(3)對(duì)Recti進(jìn)行平移,使Recti在左上角的點(diǎn)平移到坐標(biāo)系的原點(diǎn)。對(duì)于Recti在垂直方向的平移量Δyi(i=0,1):
(4)以從左到右、從上到下的順序,計(jì)算Recti中的每一個(gè)點(diǎn)ui'在圖像Ii中的對(duì)應(yīng)點(diǎn)ui。
(5)檢查ui是否落在原始圖像Ii范圍內(nèi),若在,則將ui對(duì)應(yīng)的像素拷貝到點(diǎn)ui'的位置;否則將點(diǎn)ui'的顏色變?yōu)楹谏?,從而生成校正后的圖像。
步驟13:輸出標(biāo)定結(jié)果。最后得到標(biāo)定參數(shù),包括:K1,K2,D1,D2,R,t。
實(shí)施例3
采用上述標(biāo)定板的標(biāo)定系統(tǒng),包括:
棋盤格圖像制作模塊:用于獲取顯示器的分辨率,并根據(jù)顯示器分辨率制作與之對(duì)應(yīng)的平面棋盤格圖像,并將棋盤格圖像采用顯示器的方式顯示出來作為標(biāo)定板;
圖像采集模塊:用于控制攝像頭從多個(gè)視角拍攝顯示平面棋盤格圖像的顯示器,左攝像頭獲取的畫面為左圖像,右攝像頭獲取的畫面為右圖像;
特征點(diǎn)匹配模塊;用于檢測(cè)并提取左圖像、右圖像的特征點(diǎn),再利用順序匹配的方法分別將顯示器顯示的平面棋盤格圖像與左圖像、右圖像做特征點(diǎn)匹配,獲得匹配后的特征點(diǎn);
標(biāo)定模塊:用于通過特征點(diǎn)和左圖像和右圖像的數(shù)據(jù)處理實(shí)現(xiàn)對(duì)攝像機(jī)參數(shù)的標(biāo)定;
控制觸發(fā)模塊:用于實(shí)現(xiàn)控制攝像機(jī)的工作狀態(tài);
標(biāo)定提示模塊:用于標(biāo)定時(shí)、提示攝像機(jī)的移動(dòng)方向。如圖2和圖3所示,圖2和圖3中,左側(cè)部分為顯示器顯示的平面棋盤格圖像,右下角圖案則提示攝像機(jī)位于顯示器在當(dāng)前狀態(tài)處于何種角度,右上角區(qū)域則是顯示前時(shí)刻拍攝的圖像,其中圖2的右下角圖案的表示攝像機(jī)當(dāng)前應(yīng)當(dāng)位于顯示器的左下角方向進(jìn)行拍攝,圖3的右下角圖案表示表示攝像機(jī)當(dāng)前應(yīng)當(dāng)位于顯示器的正左方向進(jìn)行拍攝。
還包括:
外部接口模塊:用于提供攝像機(jī)的通訊接口;
圖像預(yù)處理模塊:用于實(shí)現(xiàn)對(duì)攝像機(jī)獲取的圖像進(jìn)行去噪、增強(qiáng)等預(yù)處理操作;
其中標(biāo)定模塊包括:
攝像機(jī)內(nèi)部參數(shù)標(biāo)定模塊:用于建立世界坐標(biāo)與圖像坐標(biāo)之間的投影方程,在投影方程中加入攝像機(jī)畸變參數(shù),實(shí)現(xiàn)圖像畸變矯正,最后通過求解投影方程,得到畸變矩陣D和攝像機(jī)內(nèi)參矩陣K;
極線矯正標(biāo)定模塊:用于采用旋轉(zhuǎn)變換矩陣進(jìn)行旋轉(zhuǎn)處理和平移變換向量進(jìn)行平移處理的方式對(duì)左圖像、右圖像進(jìn)行極線矯正;
攝像機(jī)外部參數(shù)標(biāo)定模塊:用于建立兩個(gè)或兩個(gè)以上的攝像機(jī)成像坐標(biāo)之間的對(duì)應(yīng)關(guān)系,包括從世界坐標(biāo)系到攝像機(jī)坐標(biāo)系的旋轉(zhuǎn)變換矩陣和平移變換向量。
使用時(shí),攝像機(jī)通過外部接口模塊將的圖像預(yù)處理模塊、控制觸發(fā)模塊、標(biāo)定提示模塊建立聯(lián)系,攝像機(jī)以多方向的方式拍照采集顯示器標(biāo)定出的棋盤格圖像,經(jīng)過圖像預(yù)處理模塊、控制觸發(fā)模塊、標(biāo)定提示模塊的控制進(jìn)行標(biāo)定處理。標(biāo)定時(shí),可以采用實(shí)施例2的標(biāo)定方法進(jìn)行標(biāo)定處理。