本發(fā)明屬于計(jì)算機(jī)視覺技術(shù)領(lǐng)域,主要涉及空間目標(biāo)定位和攝影測量,具體是一種多相機(jī)系統(tǒng)的相機(jī)外參數(shù)標(biāo)定方法。應(yīng)用于圖像測量、無人機(jī)導(dǎo)航、三維重建等領(lǐng)域。
背景技術(shù):
相機(jī)標(biāo)定是從二維圖像中恢復(fù)物體三維幾何結(jié)構(gòu)信息的基本步驟。目前,已經(jīng)提出了多種相機(jī)標(biāo)定方法。相機(jī)標(biāo)定分為相機(jī)內(nèi)參數(shù)標(biāo)定與相機(jī)外參數(shù)標(biāo)定,相機(jī)內(nèi)參數(shù)描述的是相機(jī)內(nèi)部幾何構(gòu)造參數(shù),而相機(jī)外參數(shù)描述的是相機(jī)坐標(biāo)系與建立的世界坐標(biāo)系之間的旋轉(zhuǎn)、平移關(guān)系。目前,相機(jī)標(biāo)定方法主要有:
一類是相機(jī)自標(biāo)定方法。這種方法不采用標(biāo)定物進(jìn)行標(biāo)定,只通過圖像之間的對應(yīng)約束關(guān)系,完成相機(jī)的標(biāo)定。此種方法標(biāo)定步驟簡單,自動化程度較高。但是目前還不是十分成熟,主要問題是相機(jī)標(biāo)定的精度較低。
還有是基于標(biāo)定物的標(biāo)定。這種方法一般采用已知幾何信息的標(biāo)定物進(jìn)行標(biāo)定,早期的相機(jī)標(biāo)定方法采用比較精確的三維標(biāo)定物體,此類方法標(biāo)定結(jié)果精確度高,但是三維標(biāo)定物體的制作過程比較困難。隨后有人又提出基于二維平面標(biāo)定板的經(jīng)典標(biāo)定方法,該方法標(biāo)定結(jié)果精確度高且標(biāo)定物制作過程較簡單。但是隨著越來越多的多相機(jī)系統(tǒng)的應(yīng)用,由于平面標(biāo)定板對不同方位的相機(jī)不能同時可見,鄰近的相機(jī)可以同時看到同一個平面標(biāo)定板,可標(biāo)定出相機(jī)相對于該平面標(biāo)定板的外參數(shù),來描述相機(jī)坐標(biāo)系和建立的世界坐標(biāo)系之間的旋轉(zhuǎn)、平移關(guān)系;而相鄰間距較大的相機(jī)就不能同時可視一塊平面標(biāo)定板,不能標(biāo)定出相對于同一個標(biāo)定板的外參數(shù),需要通過相鄰相機(jī)之間的位置轉(zhuǎn)換關(guān)系獲得在統(tǒng)一世界坐標(biāo)系下的外參數(shù)。所以在多相機(jī)系統(tǒng)的相機(jī)外參數(shù)標(biāo)定中,平面標(biāo)定法,標(biāo)定過程較繁瑣、標(biāo)定速度較慢、具有運(yùn)算累積誤差影響相機(jī)外參數(shù)的標(biāo)定精度。
針對多相機(jī)標(biāo)定的問題,目前雖然也有一些基于圓球標(biāo)定物的相機(jī)標(biāo)定方法。但主要是通過研究圓球投影的幾何性質(zhì)例如圓球投影與絕對二次曲線投影之間的關(guān)系、圓球投影的對偶與絕對二次曲線的對偶之間的關(guān)系等,建立約束方程,完成相機(jī)的內(nèi)參數(shù)標(biāo)定,或者根據(jù)前人得到的基于圓球的相機(jī)標(biāo)定方法,搭建實(shí)驗(yàn)環(huán)境對相機(jī)進(jìn)行標(biāo)定,然后分析圓球用于相機(jī)標(biāo)定的存在的實(shí)際限制問題,給出一些有意義的結(jié)論。但是上述基于圓球的相機(jī)標(biāo)定方法和研究,主要研究的是相機(jī)內(nèi)參數(shù)標(biāo)定方法,很少涉及多相機(jī)系統(tǒng)的相機(jī)外參數(shù)標(biāo)定方法。國內(nèi)外對多相機(jī)系統(tǒng)的相機(jī)外參數(shù)標(biāo)定方法研究主要集中于內(nèi)參數(shù)的標(biāo)定,多相機(jī)系統(tǒng)的相機(jī)外參數(shù)標(biāo)定是目前一個急需解決的實(shí)際問題。
綜上,現(xiàn)有關(guān)于多相機(jī)系統(tǒng)的外參數(shù)標(biāo)定方法中,采用精確三維標(biāo)定物的方法,存在標(biāo)定物制作較困難、特征點(diǎn)匹配困難的問題;采用二維平面標(biāo)定物的方法,需要把多相機(jī)系統(tǒng)中的各相機(jī)相對不同世界坐標(biāo)系中的相機(jī)外參數(shù),轉(zhuǎn)化為相對同一世界坐標(biāo)系的相機(jī)參數(shù),會造成多相機(jī)系統(tǒng)的相機(jī)外參數(shù)標(biāo)定過程較繁瑣、標(biāo)定效率較低、運(yùn)算累積誤差直接影響相機(jī)外參數(shù)的標(biāo)定精度。目前關(guān)于多相機(jī)系統(tǒng)的外參數(shù)的標(biāo)定,尚沒有一種標(biāo)定過程效率高、計(jì)算過程簡便、同時標(biāo)定精度較高的方法。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種多相機(jī)系統(tǒng)的相機(jī)外參數(shù)的標(biāo)定方法,旨在解決現(xiàn)有多相機(jī)外參數(shù)標(biāo)定方法存在標(biāo)定過程復(fù)雜,存在累積誤差的問題。
本發(fā)明是一種多相機(jī)系統(tǒng)的相機(jī)外參數(shù)標(biāo)定方法,其特征在于,所述多相機(jī)系統(tǒng)相機(jī)外參數(shù)標(biāo)定方法包括有如下步驟:
(1)擬合得到各相機(jī)拍攝圓球投影的二次曲線矩陣:內(nèi)參數(shù)已知的多個相機(jī)構(gòu)成多相機(jī)系統(tǒng),多相機(jī)從各自的視角對在三個不同空間位置半徑已知的圓球進(jìn)行拍攝,通過亞像素邊緣檢測算法得到圓球投影的邊緣點(diǎn),擬合得到多相機(jī)系統(tǒng)中各個相機(jī)的拍攝圓球投影的二次曲線矩陣;
(2)求解三個球心在相機(jī)坐標(biāo)系中的非齊次坐標(biāo):根據(jù)拍攝圓球的投影幾何關(guān)系,利用已知相機(jī)內(nèi)參數(shù)、拍攝圓球半徑和得到的拍攝圓球投影二次曲線矩陣,求解三個拍攝圓球球心在多相機(jī)系統(tǒng)中各個相機(jī)的相機(jī)坐標(biāo)系中的非齊次坐標(biāo);
(3)建立三個球心同平面的世界坐標(biāo)系:利用三個拍攝圓球球心構(gòu)成空間中的一個平面,將這個平面作為三維空間坐標(biāo)系中的xoy平面,利用矢量分解,建立一個三球心同平面的世界坐標(biāo)系,該坐標(biāo)系以其中一個球心為原點(diǎn),且該作為原點(diǎn)的球心和另外一個球心的連線為x軸,三個球心所在平面為xoy平面;
(4)標(biāo)定多相機(jī)系統(tǒng)中的各個相機(jī)的外參數(shù):利用得到的三個拍攝圓球球心在各個相機(jī)坐標(biāo)系下的非齊次坐標(biāo),建立以三個拍攝圓球球心所在平面為xoy平面的世界坐標(biāo)系,將各相機(jī)坐標(biāo)系經(jīng)過旋轉(zhuǎn)、平移與建立的三球心共平面的世界坐標(biāo)系重合,得到多相機(jī)系統(tǒng)中的各個相機(jī)的外參數(shù)矩陣,完成多相機(jī)系統(tǒng)中的各個相機(jī)的外參數(shù)標(biāo)定。
本發(fā)明在多相機(jī)系統(tǒng)的相機(jī)外參數(shù)標(biāo)定中,采用圓球作為標(biāo)定物,圓球標(biāo)定物制作簡單,對相機(jī)外參數(shù)標(biāo)定設(shè)施要求簡單,直接得到各相機(jī)外參數(shù)相對同一個世界坐標(biāo)系下的外參數(shù),標(biāo)定效率高、沒有累積誤差,相機(jī)外參數(shù)標(biāo)定精度高。與現(xiàn)有技術(shù)相比,本發(fā)明的技術(shù)優(yōu)勢:
一、本發(fā)明采用三個半徑已知的圓球或一個半徑已知的圓球作為標(biāo)定物用于多相機(jī)系統(tǒng)中的相機(jī)外參數(shù)標(biāo)定。本發(fā)明采用的圓球標(biāo)定物不需要特殊制作,如可采用普通的乒乓球作為標(biāo)定物,但是所采用圓球的精度,會影響到多相機(jī)系統(tǒng)的相機(jī)外參數(shù)的標(biāo)定精度。
二、本發(fā)明針對多相機(jī)系統(tǒng)中相機(jī)外參數(shù)的標(biāo)定過程,其中的相機(jī)內(nèi)參數(shù)是已知的,每個相機(jī)只需同時拍攝一幅三個半徑已知的圓球圖像或者一個半徑已知的圓球在空間三個不同位置的三幅圖像,就能夠完成多個相機(jī)的外參數(shù)標(biāo)定。多相機(jī)外參數(shù)標(biāo)定過程操作簡便。
三、本發(fā)明在對多相機(jī)系統(tǒng)的相機(jī)外參數(shù)標(biāo)定時,得到的各個相機(jī)的外參數(shù)是相對于同一三個球心同平面的世界坐標(biāo)系。在多相機(jī)系統(tǒng)的相機(jī)外參數(shù)應(yīng)用中如三維重建,常常需要先得到各相機(jī)相對不同世界坐標(biāo)系的外參數(shù),然后將相對不同世界坐標(biāo)系的外參數(shù)轉(zhuǎn)化為相對同一世界坐標(biāo)系的外參數(shù),本發(fā)明不需要把各個相機(jī)相對不同世界坐標(biāo)系的外參數(shù)轉(zhuǎn)化為同一世界坐標(biāo)系的相機(jī)外參數(shù)的過程,也就是本發(fā)明將相機(jī)的外參數(shù)直接轉(zhuǎn)換為相對同一世界坐標(biāo)系的外參數(shù)。所以本發(fā)明不存在累積誤差,運(yùn)算過程簡便,多相機(jī)的相機(jī)外參數(shù)標(biāo)定精度高,標(biāo)定速度快。
附圖說明
圖1是本發(fā)明多相機(jī)系統(tǒng)的相機(jī)外參數(shù)標(biāo)定方法的流程圖;
圖2是本發(fā)明的利用多相機(jī)對三個圓球進(jìn)行拍攝的方位示意圖;
圖3是本發(fā)明的空間圓球在圖像平面上的投影關(guān)系示意圖;
圖4是本發(fā)明的三球心共平面的世界坐標(biāo)系示意圖;
圖5是本發(fā)明的兩個坐標(biāo)系之間轉(zhuǎn)化關(guān)系示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,下面結(jié)合附圖對本發(fā)明詳細(xì)說明
實(shí)施例1
在多相機(jī)系統(tǒng)的相機(jī)外參數(shù)標(biāo)定方法中,現(xiàn)有的采用圓球作為標(biāo)定物的方法中,很少涉及對多相機(jī)外參數(shù)的標(biāo)定,而早期的方法需要采用精確的三維標(biāo)定物,該方法的缺點(diǎn)的是需要采用精確的標(biāo)定物,標(biāo)定成本較高;采用平面為標(biāo)定物的標(biāo)定方法中,由于平面對于各個方向的多相機(jī)不能同時可見,所以需要先得到各相機(jī)相對不同世界坐標(biāo)系的外參數(shù),然后將相對不同世界坐標(biāo)系的外參數(shù)轉(zhuǎn)化為相對同一世界坐標(biāo)系的外參數(shù),計(jì)算過程繁雜,且具有累積誤差。
為此本發(fā)明提出一種標(biāo)定物簡單,標(biāo)定效率高,沒有累積誤差、標(biāo)定精度高的多相機(jī)系統(tǒng)的相機(jī)外參數(shù)標(biāo)定方法,參見圖1,本發(fā)明多相機(jī)系統(tǒng)相機(jī)外參數(shù)標(biāo)定方法包括有如下步驟:
(1)擬合得到多相機(jī)系統(tǒng)的各相機(jī)拍攝圓球投影的二次曲線矩陣:內(nèi)參數(shù)已知的多個相機(jī),根據(jù)應(yīng)用需要構(gòu)成多相機(jī)系統(tǒng),多相機(jī)從各自的視角,對在三個不同空間位置且半徑已知的圓球進(jìn)行拍攝或者利用一個半徑已知圓球進(jìn)行拍攝,拍攝該圓球在空間三個不同位置的圖像,見圖2,也可以理解為在空間三個不同位置上放置有三個同樣大小的圓球進(jìn)行拍攝。圖2中顯示的是拍攝圓球居中,多相機(jī)處在外圍,實(shí)際中并不限于此狀況,本發(fā)明中只需各個相機(jī)之間具有共同視角即可。
本發(fā)明中采用的圓球不需要特殊制作,如采用普通的乒乓球也能滿足,對相機(jī)外參數(shù)的標(biāo)定精度有一定要求的場合,但是采用圓球的精度,會影響多相機(jī)系統(tǒng)的相機(jī)外參數(shù)的標(biāo)定精度,所以參與拍攝的圓球也應(yīng)該是邊緣光滑、精度較高的圓球。通過亞像素邊緣檢測算法得到拍攝圓球投影的邊緣點(diǎn),擬合得到多相機(jī)系統(tǒng)中各個相機(jī)的拍攝圓球投影的二次曲線矩陣。本發(fā)明中多相機(jī)系統(tǒng)中的各個相機(jī)的內(nèi)參數(shù),需要提前進(jìn)行標(biāo)定,從而獲得各相機(jī)的測定內(nèi)參數(shù)。因?yàn)樵谟?jì)算多相機(jī)系統(tǒng)的相機(jī)外參數(shù)過程中,需要利用各相機(jī)的內(nèi)參數(shù),所以各相機(jī)內(nèi)參數(shù)測定的越精確,越有助于提高各相機(jī)的外參數(shù)標(biāo)定精度。
(2)求解三個球心在各個相機(jī)的相機(jī)坐標(biāo)系中的非齊次坐標(biāo):根據(jù)拍攝圓球的投影幾何關(guān)系,見圖3,雖然圖中描述的是空間圓球投影幾何關(guān)系,但是拍攝圓球的投影關(guān)系與空間圓球投影幾何關(guān)系是一致的。利用已知多相機(jī)系統(tǒng)中各個相機(jī)的相機(jī)內(nèi)參數(shù)矩陣、拍攝圓球的半徑和得到的拍攝圓球投影二次曲線矩陣,求解三個拍攝圓球球心在多相機(jī)系統(tǒng)中各個相機(jī)的相機(jī)坐標(biāo)系中的非齊次坐標(biāo)。本發(fā)明求解的三個拍攝圓球球心在各相機(jī)坐標(biāo)系中的非齊次坐標(biāo),是用于計(jì)算各相機(jī)相對同一個三個球心共平面的世界坐標(biāo)系的相機(jī)外參數(shù)一個必要過程。
(3)建立三個球心同平面的世界坐標(biāo)系:在空間中三個不同位置分別放置一個圓球即三個拍攝圓球,或者說同一個圓球在空間三個不同位置上被拍攝,得到三個拍攝圓球球心在相機(jī)坐標(biāo)系下的非齊次坐標(biāo),該三個拍攝圓球球心構(gòu)成的空間中的一個平面,將這個平面作為三維空間坐標(biāo)系中的xoy平面,利用三個拍攝圓球球心在相機(jī)坐標(biāo)系下的非齊次坐標(biāo)矢量分解,建立一個三球心同平面的世界坐標(biāo)系,見圖4,該坐標(biāo)系是以其中一個球心為原點(diǎn),且該作為原點(diǎn)的球心和另外一個球心的連線為x軸,三個球心所在平面為xoy平面的世界坐標(biāo)系。本發(fā)明建立了一個三球心同平面的世界坐標(biāo)系,則能夠直接得到多相機(jī)系統(tǒng)中的各相機(jī)相對建立的同一世界坐標(biāo)系的相機(jī)外參數(shù)。避免了把各相機(jī)相對不同世界坐標(biāo)系的相機(jī)外參數(shù),轉(zhuǎn)化為相對同一世界坐標(biāo)系的相機(jī)外參數(shù)。
(4)求解相對三個球心同平面的世界坐標(biāo)系下的外參數(shù)矩陣,完成標(biāo)定多相機(jī)系統(tǒng)中的各個相機(jī)的外參數(shù):對于多相機(jī)系統(tǒng)中各個相機(jī),利用得到的三個拍攝圓球球心在各個相機(jī)坐標(biāo)系下的非齊次坐標(biāo),建立以三個拍攝圓球球心所在平面為xoy平面的世界坐標(biāo)系,然后將各個相機(jī)的相機(jī)坐標(biāo)系經(jīng)過旋轉(zhuǎn)、平移與建立的三球心共面的世界坐標(biāo)系重合,得到多相機(jī)系統(tǒng)中的各個相機(jī)的外參數(shù)矩陣,完成多相機(jī)系統(tǒng)中的各個相機(jī)的外參數(shù)標(biāo)定。
三個球心同平面的世界坐標(biāo)系:參見圖4,在三個球心同平面的世界坐標(biāo)系中以其中一個球心為原點(diǎn),且作為原點(diǎn)的球心和另外一個球心的連線為x軸,通過矢量分解,建立三個球心共平面的世界坐標(biāo)系;本發(fā)明中相機(jī)坐標(biāo)系和世界坐標(biāo)系的重合,空間任意一點(diǎn)在相機(jī)坐標(biāo)系下的非齊次坐標(biāo)經(jīng)過旋轉(zhuǎn)、平移,直接得到在三個球心同平面的世界坐標(biāo)系下的非齊次坐標(biāo)。
本發(fā)明中兩個坐標(biāo)系的重合過程:首先把相機(jī)坐標(biāo)系的原點(diǎn)即光心,平移到三個球心同平面的世界坐標(biāo)原點(diǎn)重合,然后旋轉(zhuǎn)已經(jīng)平移的相機(jī)坐標(biāo)系,使得相機(jī)坐標(biāo)系x、y、z三個坐標(biāo)軸與三個球心同平面的世界坐標(biāo)系的三個軸重合。
本發(fā)明針對多相機(jī)系統(tǒng)的各個相機(jī)外參數(shù)標(biāo)定問題,以三個圓球作為標(biāo)定物,利用圓球?qū)τ诙嘞鄼C(jī)系統(tǒng)中的不同方位的各相機(jī)能夠同時可見的幾何特性,解決多相機(jī)系統(tǒng)的外參數(shù)標(biāo)定中需要標(biāo)定物同時可見的問題。以三個拍攝圓球球心,建立三個球心同平面的世界坐標(biāo)系,直接計(jì)算出各個相機(jī)相對于該世界坐標(biāo)系下的外參數(shù),使多個相機(jī)的外參數(shù)建立于同一世界坐標(biāo)系下。
實(shí)施例2
多相機(jī)系統(tǒng)的相機(jī)外參數(shù)標(biāo)定方法同實(shí)施例1,其中,步驟(1)中擬合得到多相機(jī)系統(tǒng)中的各個相機(jī)拍攝圓球投影的二次曲線矩陣,包括有:
設(shè)多相機(jī)系統(tǒng)中有m個相機(jī),多相機(jī)系統(tǒng)中的各個相機(jī),從各自不同視角拍攝三個不同空間位置且半徑已知的圓球圖像,參見圖2,其中第i個相機(jī)對應(yīng)的圖像平面上,得到三個拍攝圓球投影邊緣,采用亞像素邊緣提取算法提取這三個拍攝圓球投影的邊緣點(diǎn),通過二次曲線擬合算法,得到第i個相機(jī)拍攝的三個圓球投影的二次曲線矩陣,依次記為
多相機(jī)從各自的視角對三個不同空間位置且半徑已知的圓球進(jìn)行拍攝,這只是一種方案描述,實(shí)際操作中也可以通過拍攝一個圓球,讓該圓球分別處于空間不同位置,拍攝它的三幅圖像,然后通過邊緣檢測得到圓球投影邊緣點(diǎn),擬合得到圓球投影二次曲線。
本發(fā)明采用的相機(jī)標(biāo)定物十分簡單,只需采用三個半徑已知的圓球分別置于不同位置,或者一個半徑已知的圓球先后置于三個不同位置;拍攝過程簡單,每個相機(jī)只需拍攝一幅三個半徑已知的圓球圖像或者拍攝一個半徑已知圓球在三個不同空間位置的三幅圖像,然后合成一幅圖像中;通常在圖像領(lǐng)域里拍攝到圖像中的圓球也稱為拍攝圓球投影,采用亞像素邊緣算法提取三個拍攝圓球投影的邊緣,能夠提高圓球投影邊緣的提取精度,進(jìn)而有助于提高相機(jī)外參數(shù)標(biāo)定精度。
本例中采用普通乒乓球作為標(biāo)定物,乒乓球使用廣泛,且邊緣光滑,制作精度較高。拍攝乒乓球的圖像,利用亞像素邊緣提取算法提取乒乓球的投影邊緣,擬合得到乒乓球投影的二次曲線矩陣。利用得到的乒乓球投影二次矩陣,多相機(jī)系統(tǒng)中的各相機(jī)外參數(shù)的標(biāo)定精度較高。
實(shí)施例3
多相機(jī)系統(tǒng)的相機(jī)外參數(shù)標(biāo)定方法同實(shí)施例1-2,步驟(2)所述的三個拍攝圓球球心在多相機(jī)系統(tǒng)中各個相機(jī)的相機(jī)坐標(biāo)系中的非齊次坐標(biāo)的具體步驟包括有:
2.1明確空間圓球投影與相機(jī)內(nèi)參數(shù)的關(guān)系:參見圖3,利用平面單應(yīng)關(guān)系,得到拍攝圓球投影二次曲線與相機(jī)內(nèi)參數(shù)的關(guān)系,相機(jī)坐標(biāo)系和世界坐標(biāo)系的關(guān)系,相機(jī)坐標(biāo)系的原點(diǎn)即為相機(jī)光心oc,設(shè)世界坐標(biāo)系的原點(diǎn)為ow,該世界坐標(biāo)系以ow-xwywzw表示,其中owzw軸,通過形成相機(jī)圖像平面投影的空間投影圓球的球心,圓球球心記為o,直線oco為世界坐標(biāo)系的z軸;空間圓球投影關(guān)系,該空間投影圓球在相機(jī)圖像平面的投影為c,該投影c同時也是以相機(jī)光心oc為頂點(diǎn)、且與空間投影圓球相切的正圓錐的投影,因此,投影c視為該正圓錐底面的投影;記正圓錐底面的圓為c,其圓心記為o1,其半徑記為rc,其所在平面記為ii2,空間投影圓球球心o和正圓錐底面圓的圓心o1以及相機(jī)光心oc在同一條直線上,且oco1垂直正圓錐底面的圓c,記oco1的距離為h。這里提到的世界坐標(biāo)系以ow-xwywzw表示的世界坐標(biāo)系,是為了說明空間投影圓球和相機(jī)內(nèi)參數(shù)的關(guān)系而建立的坐標(biāo)系,并非本發(fā)明中構(gòu)建的三球心同平面的世界坐標(biāo)系。
根據(jù)圓球投影關(guān)系、正圓錐底面圓c的方程以及平面ii2與圖像平面的單應(yīng)關(guān)系,得到空間圓球投影二次曲線c與相機(jī)內(nèi)參數(shù)k的關(guān)系為:
其中相機(jī)內(nèi)參數(shù)
2.2獲得空間投影圓球球心與相機(jī)光心之間的距離:根據(jù)圓球投影幾何關(guān)系,包括三角形形式關(guān)系,獲得空間投影圓球球心o與相機(jī)光心oc之間的距離d。
參見圖3,設(shè)相機(jī)光心oc,空間投影圓球球心o,相機(jī)光心oc和空間投影圓球形成的正圓錐的底面c,其圓心記為o1,oco1垂直正圓錐底面的圓c。根據(jù)圓球投影的幾何關(guān)系,設(shè)圓c上有一點(diǎn)p,因?yàn)閳Ac是由相機(jī)光心oc與空間投影圓球表面點(diǎn)相切形成的,則射線ocp與空間投影圓相切于點(diǎn)p,三角形ocop為直角三角形;因?yàn)閛co1垂直正圓錐底面的圓c,則線段po1垂直于oco1,則三角形oco1p也是直角三角形;容易得到三角形ocop與oco1p是相似垂直三角形,則由三角形的相似性可以得到空間投影圓球球心o與相機(jī)光心oc之間的距離d為:
其中d為相機(jī)光心oc到空間投影圓球球心o的距離,rs為空間投影圓球的半徑,rc為相機(jī)光心oc和空間投影圓球形成的正圓錐的底面圓c的半徑,其圓心記為o1,h為oco1的距離;
2.3求解空間投影圓球球心在相機(jī)坐標(biāo)系下的非齊次坐標(biāo):
利用圓球投影與相機(jī)內(nèi)參數(shù)的關(guān)系,設(shè)矩陣a為
再設(shè)矩陣m為
其中r為旋轉(zhuǎn)矩陣,且為單位正交矩陣則rrt=e,rc為相機(jī)光心oc和空間投影圓球形成的正圓錐的底面圓c的半徑,h為oc到c圓心的距離,根據(jù)矩陣?yán)碚?,可知m為實(shí)對稱矩陣,則通過矩陣正交分解可求出r和
本發(fā)明計(jì)算空間投影圓球球心在相機(jī)坐標(biāo)系下的非齊次坐標(biāo)的方法,可用于計(jì)算三個拍攝圓球球心在各個相機(jī)的相機(jī)坐標(biāo)系中的非齊次坐標(biāo)。
2.4得到三個拍攝圓球球心在相機(jī)坐標(biāo)下的非齊次坐標(biāo):第i個相機(jī)所拍攝的三個位置的拍攝圓球投影二次曲線矩陣為
其中,
本發(fā)明根據(jù)圓球投影和相機(jī)內(nèi)參數(shù)的關(guān)系,實(shí)際標(biāo)定過程中只需利用圓球的投影的二次曲線和已知的相機(jī)內(nèi)參數(shù),就能夠得到三個拍攝圓球球心在各個相機(jī)坐標(biāo)系下的非齊次坐標(biāo),該計(jì)算過程簡便。
實(shí)施例4
多相機(jī)系統(tǒng)的相機(jī)外參數(shù)標(biāo)定方法同實(shí)施例1-3,參見圖4,步驟(3)所述的建立三個球心同平面的世界坐標(biāo)系的具體步驟為:
3.1放置三個半徑已知的拍攝圓球在空間不同位置,三個拍攝圓球球心記為o1、o2、o3。
3.2由于空間任意三點(diǎn)可以構(gòu)成一個平面,以三個拍攝圓球球心構(gòu)成空間的一個平面。
3.3利用矢量分解,建立三球心同平面的世界坐標(biāo)系。設(shè)其中一個拍攝圓球球心o1為該世界坐標(biāo)系原點(diǎn),球心o1與另一個球心o2連線為世界坐標(biāo)系的x軸,建立矢量o1o2與o1o3,該兩個矢量叉乘,得到該世界坐標(biāo)系的z軸。
3.4由x軸與z軸的兩個坐標(biāo)軸進(jìn)行叉乘,得到三個球心同平面的世界坐標(biāo)系的y軸,從而建立三個球心同平面的世界坐標(biāo)系;同時得到該世界坐標(biāo)系三個坐標(biāo)軸在相機(jī)坐標(biāo)系下的單位方向矢量a、b、c,還得到三個拍攝圓球球心在該三個球心同平面的世界坐標(biāo)系下的非齊次坐標(biāo)分別為ow1、ow2、ow3。
本發(fā)明利用三個拍攝圓球球心在相機(jī)坐標(biāo)系下的非齊次坐標(biāo),根據(jù)矢量分解,建立了以三個拍攝圓球球心所在的平面為xoy平面的世界坐標(biāo)系。
實(shí)施例5
多相機(jī)系統(tǒng)的相機(jī)外參數(shù)標(biāo)定方法同實(shí)施例1-4,步驟(4)所述的求解出多個相機(jī)相對同一個三個球心同平面的世界坐標(biāo)系下的外參數(shù)矩陣具體步驟包括:
4.1建立兩個坐標(biāo)系之間的旋轉(zhuǎn)、平移關(guān)系:設(shè)空間一點(diǎn)x在三個球心同平面的世界坐標(biāo)系下的非齊次坐標(biāo)記為
其中rc為泛指的旋轉(zhuǎn)矩陣,tc為泛指的平移矢量。
4.2得到第i個相機(jī)的外參數(shù):參見圖5,利用三個拍攝圓球投影、已知相機(jī)內(nèi)參數(shù)、已知三個拍攝圓球的半徑以及拍攝圓球和相機(jī)內(nèi)參數(shù)的投影關(guān)系,得到三個拍攝圓球球心在第i個相機(jī)坐標(biāo)系下的非齊次坐標(biāo)
r1=[a,b,c]t
因?yàn)樵谌S坐標(biāo)系中任意點(diǎn)的坐標(biāo),可表示該點(diǎn)的向量,在三個坐標(biāo)軸下的投影,則向量
設(shè)ri是第i個相機(jī)相對三個球心同平面的世界坐標(biāo)系的旋轉(zhuǎn)矩陣、ti是第i個相機(jī)相對三個球心同平面的世界坐標(biāo)系平移矢量,其中:
ri=r1
計(jì)算得到第i個相機(jī),相對建立的三個球心同平面的世界坐標(biāo)系的相機(jī)外參數(shù)矩陣。
4.3得到多相機(jī)系統(tǒng)中的各個相機(jī)外參數(shù):按照第i個相機(jī)得到相機(jī)外參數(shù)的方法,得到多相機(jī)系統(tǒng)各個相機(jī)相對同一個三個球心同平面的世界坐標(biāo)系旋轉(zhuǎn)矩陣、平移關(guān)系,即完成多相機(jī)的各個相機(jī)外參數(shù)標(biāo)定。
本發(fā)明利用三個拍攝圓球球心,在多個相機(jī)的相機(jī)坐標(biāo)系中的非齊次坐標(biāo),建立以三個球心共平面的世界坐標(biāo)系,利用空間一點(diǎn)在各個相機(jī)坐標(biāo)系的非齊次坐標(biāo),以及在建立的三個球心共面的世界坐標(biāo)系的非齊次坐標(biāo),經(jīng)過幾何轉(zhuǎn)化關(guān)系,得到多相機(jī)系統(tǒng)中的各相機(jī)相對同一個三個球心共平面的世界坐標(biāo)系的位置關(guān)系,即本發(fā)明直接得到相對同一世界坐標(biāo)系的相機(jī)的外參數(shù)。本發(fā)明不存在累積誤差,運(yùn)算過程簡便,多相機(jī)的相機(jī)外參數(shù)標(biāo)定精度較高。
下面給出一個更詳盡的例子對本發(fā)明進(jìn)一步說明
實(shí)施例6
多相機(jī)系統(tǒng)的相機(jī)外參數(shù)標(biāo)定方法同實(shí)施例1-5,本發(fā)明多相機(jī)系統(tǒng)的相機(jī)外參數(shù)標(biāo)定方法的具體步驟描述如下:
步驟一、標(biāo)定相機(jī)的內(nèi)參數(shù)矩陣:設(shè)需要標(biāo)定的多相機(jī)系統(tǒng)中的多個相機(jī)依次記為ca,cb,cc,…。本例中利用張正友平面標(biāo)定法,通過多個相機(jī)分別拍攝多幅二維平面標(biāo)定版的圖像,得到多個相機(jī)的內(nèi)參數(shù)矩陣,依次記為ka,kb,kc,…。本發(fā)明采用的張正友平面標(biāo)定法,是目前普遍采用的相機(jī)標(biāo)定方法。多相機(jī)系統(tǒng)中的各相機(jī)內(nèi)參數(shù)精度越高,計(jì)算得到多相機(jī)系統(tǒng)的相機(jī)外參數(shù)精度越高。
步驟二、拍攝圓球圖像,提取拍攝圓球輪廓:參見圖2,多個相機(jī)同時拍攝放置在空間三個不同位置且半徑已知的三個圓球的一幅圖像或者利用一個半徑已知的圓球進(jìn)行拍攝,拍攝該圓球在空間三個不同位置的圖像三幅圖像,并將三個拍攝圓球投影繪制到同一幅圖像中;得到三個拍攝圓球在相機(jī)圖像平面的投影,將三個拍攝圓球記為q1,q2,q3,相應(yīng)的球心記為o1,o2,o3。在多相機(jī)系統(tǒng)中,其中第i個相機(jī)拍攝的三個拍攝圓球投影,利用亞像素邊緣提取算法,提取出三個拍攝圓球的邊緣點(diǎn),并擬合得到三個拍攝圓球投影的二次曲線矩陣,依次記為
步驟三、空間投影圓球投影幾何關(guān)系:參見圖3,設(shè)相機(jī)坐標(biāo)系和世界坐標(biāo)系的原點(diǎn)為相機(jī)光心,并設(shè)光心oc到空間投影圓球球心o的距離為d,且連線oco為世界坐標(biāo)系的z軸。根據(jù)空間投影圓球的投影幾何特性,空間投影圓球的投影可以視為一個正圓錐,該正圓錐的頂點(diǎn)為相機(jī)光心,底部圓為空間投影圓球投影輪廓構(gòu)成的圓,記為c,圓心記o1。其中o和o1以及光心oc在同一條直線上,空間投影圓球球心在圖像上的投影記為o',且oco1垂直c。記oco1的距離為h,oco距離為d,rs為空間投影圓球的半徑,rc底面圓c的半徑,c所在的平面為π,其上的點(diǎn)齊次坐標(biāo)為
其中k為相機(jī)內(nèi)參數(shù),r為相機(jī)外參數(shù)。
得到圓c所在平面和圖像平面之間的單應(yīng)關(guān)系:
其中h為所在平面π到圖像平面的單應(yīng)矩陣,且平面上點(diǎn)的齊次坐標(biāo)為(x,y,1)。記c的圓半徑為rc,則可以得到空間投影圓的矩陣表示為:
推導(dǎo)出c的投影c方程為:
本發(fā)明明確了空間投影圓球的投影幾何關(guān)系,利用空間圓球投影幾何關(guān)系,能夠計(jì)算出相機(jī)光心到空間投影圓球球心的距離。
步驟四、計(jì)算相機(jī)光心到球心的距離d:根據(jù)空間圓球投影關(guān)系,見圖3。設(shè)c上有一點(diǎn)p,因?yàn)閳Ac是由相機(jī)光心oc與空間投影圓球表面點(diǎn)相切形成的,則射線ocp與空間投影圓相切于點(diǎn)p,三角形ocop為直角三角形;因?yàn)閛co1垂直正圓錐底面的圓c,則線段po1垂直于oco1,則三角形oco1p也是直角三角形;容易得到三角形ocop與oco1p是相似垂直三角形,則由三角形的相似性可以得到空間投影圓球球心o與相機(jī)光心oc之間的距離d為:
其中,rs為空間投影圓球的半徑,rc底面圓c的半徑。
步驟五、計(jì)算球心在相機(jī)坐標(biāo)系下的坐標(biāo):相機(jī)的內(nèi)參數(shù)k已知,根據(jù)空間圓球投影幾何關(guān)系,見圖3。
設(shè)矩陣a為
其中為r單位正交矩陣則rrt=e。
再設(shè)矩陣m為:
其中m為實(shí)對稱矩陣,通過svd正交分解,可得到:
m=[svd]
可知s=r-t,d=r-1,v為對角矩陣,可以求出r和
本發(fā)明通過空間投影圓的幾何關(guān)系得到了空間投影圓球球心,在相機(jī)坐標(biāo)系下的非齊次坐標(biāo)。因?yàn)榕臄z圓球投影幾何關(guān)系與空間投影圓球的投影幾何關(guān)系是類似的,所以按照計(jì)算空間投影圓球球心的在相機(jī)坐標(biāo)系下的非齊次坐標(biāo)方法,可計(jì)算出三個拍攝圓球球心在各相機(jī)坐標(biāo)系下的非齊次坐標(biāo)。
步驟六、建立三個球心共平面的世界坐標(biāo)系:拍攝放置在空間三個不同位置、半徑已知的圓球或者利用一個半徑已知的圓球進(jìn)行拍攝,拍攝該圓球在空間三個不同位置的圖像三幅圖像。三個球的拍攝圓球球心依次記為o1,o2,o3。因?yàn)榭臻g中任意三點(diǎn)可以構(gòu)成一個空間平面,設(shè)其中一個拍攝圓球球心o1為世界坐標(biāo)系原點(diǎn),球心o1與另一個球心o2連線為世界坐標(biāo)系的x軸,建立矢量o1o2與o1ο3,該兩個矢量叉乘,得到世界坐標(biāo)系的z軸;由x軸與z軸的兩個坐標(biāo)軸進(jìn)行叉乘,得到三個球心同平面的世界坐標(biāo)系的y軸,從而建立三個球心同平面的世界坐標(biāo)系。
步驟七、建立兩個坐標(biāo)系之間的旋轉(zhuǎn)、平移關(guān)系:設(shè)空間一點(diǎn)x在三個球心同平面的世界坐標(biāo)系下的非齊次坐標(biāo)記為
其中rc為泛指的旋轉(zhuǎn)矩陣,tc為泛指的平移矢量;
步驟八、得到多相機(jī)系統(tǒng)中的各個相機(jī)外參數(shù):利用三個拍攝圓球投影、已知相機(jī)內(nèi)參數(shù)、已知三個拍攝圓球的半徑以及拍攝圓球和相機(jī)內(nèi)參數(shù)的投影關(guān)系,得到三個拍攝圓球球心在第i個相機(jī)坐標(biāo)系下的非齊次坐標(biāo)
r1=[a,b,c]t
因?yàn)樵谌S坐標(biāo)系中任意點(diǎn)的坐標(biāo),可表示該點(diǎn)的向量,在三個坐標(biāo)軸下的投影,則向量
其中ri是第i個相機(jī)相對三個球心同平面的世界坐標(biāo)系的旋轉(zhuǎn)矩陣、ti是第i個相機(jī)相對三個球心同平面的世界坐標(biāo)系平移矢量;其中:
ri=r1
計(jì)算得到第i個相機(jī),相對建立的三個球心同平面的世界坐標(biāo)系的相機(jī)外參數(shù)矩陣。按照第i個相機(jī)得到相機(jī)外參數(shù)的方法,得到多相機(jī)系統(tǒng)各個相機(jī)相對同一個三個球心同平面的世界坐標(biāo)系旋轉(zhuǎn)矩陣、平移關(guān)系,即完成多相機(jī)的各個相機(jī)外參數(shù)標(biāo)定。本發(fā)明直接得到多相機(jī)系統(tǒng)中各個相機(jī)的外參數(shù)是相對同一個三個球心共平面的世界坐標(biāo)系,不需要把各相機(jī)相對不同世界坐標(biāo)系的相機(jī)外參數(shù)轉(zhuǎn)化為各相機(jī)相對同一個世界坐標(biāo)系下的外參數(shù),所以本發(fā)明不存在累積誤差,運(yùn)算過程簡便,且多相機(jī)系統(tǒng)的相機(jī)外參數(shù)標(biāo)定精度較高。
現(xiàn)有技術(shù)中,相機(jī)的外參數(shù)標(biāo)定在多相機(jī)系統(tǒng)的應(yīng)用中,如三維重建中,系統(tǒng)中的各個相機(jī)的外參數(shù)需要進(jìn)行兩次或者多次轉(zhuǎn)換過程,而本發(fā)明直接得到各個相機(jī)相對同一個三個球心共平面的世界坐標(biāo)系的外參數(shù),不需要轉(zhuǎn)換,沒有累積誤差,相機(jī)外參數(shù)標(biāo)定精度高。
下面結(jié)合附圖及具體的實(shí)驗(yàn)結(jié)果對本發(fā)明的技術(shù)效果再作說明。
實(shí)施例7
多相機(jī)系統(tǒng)的相機(jī)外參數(shù)標(biāo)定方法同實(shí)施例1-6,本例中,多相機(jī)系統(tǒng)中一個相機(jī),相機(jī)型號為baslara640,使用張正友平面標(biāo)定算法,利用標(biāo)定板圖像計(jì)算拍攝相機(jī)的內(nèi)參數(shù),并作為理想值。因?yàn)樵囼?yàn)中相機(jī)外參數(shù)真值未知,不能直接驗(yàn)證所求的相機(jī)外參數(shù)的正確性,故采用間接驗(yàn)證的辦法。
將三個乒乓球固定在平面標(biāo)定板上,乒乓球半徑為20mm,移動相機(jī),拍攝圖像。以平面標(biāo)定板的一個角點(diǎn)作為原點(diǎn),過角點(diǎn)的兩條直線分別作為x軸和y軸,x軸和y軸叉乘后得到z軸,張成標(biāo)定板坐標(biāo)系。標(biāo)定板坐標(biāo)系與相機(jī)坐標(biāo)系之間滿足如下旋轉(zhuǎn)和平移關(guān)系
xc=rb·xb+tb
其中rb和tb通過平面單應(yīng)矩陣以及已知的相機(jī)內(nèi)參數(shù)求出。
利用本發(fā)明方法,得到拍攝相機(jī)相對三個乒乓球球心共平面的世界坐標(biāo)系的外參數(shù)為式
xc=rs·xs+ts
其中rs和ts也可以求解出來,但rs和ts的真值未知,無法比較。為解決該問題,我們從上述兩式推導(dǎo)出三個乒乓球球心共平面的世界坐標(biāo)系與標(biāo)定板坐標(biāo)系之間的關(guān)系滿足
當(dāng)相機(jī)運(yùn)動時,相機(jī)外參數(shù)在變化,但是圓球與標(biāo)定板之間不存在相對運(yùn)動。若拍攝相機(jī)的外參數(shù)求解精確,即理想情況下,從各幅圖像中,所求得的旋轉(zhuǎn)矩陣rr和平移向量tr值應(yīng)該為定值,但是由于拍攝相機(jī)的外參數(shù)求解精度受噪聲等因素的影響,從各幅圖像中所計(jì)算出的rr值和tr值是不同的,存在波動。但波動越小,說明外參數(shù)求解越精確。
用10幅拍攝圖像,分別得到三個拍攝乒乓球球心世界坐標(biāo)系和標(biāo)定板坐標(biāo)系之間的旋轉(zhuǎn)矩陣rr和平移矢量tr。用歐拉角αx、αy和αz,表示rr中的三個旋轉(zhuǎn)角度;再用坐標(biāo)分量tx,ty和tz表示標(biāo)定板坐標(biāo)系與三個拍攝乒乓球球心世界坐標(biāo)系之間的平移矢量tr。實(shí)驗(yàn)結(jié)果表明,rr中的三個歐拉角αx、αy和αz,方差分別為2.25×10-5、3.23×10-5和4.20×10-5,單位為弧度;平移矢量tr中的三個坐標(biāo)分量tx,ty和tz,方差分別為1.1319、0.1219和0.0401,單位為mm2。參見表1和表2,表1是兩個坐標(biāo)系之間的旋轉(zhuǎn)矩陣實(shí)驗(yàn)結(jié)果,表2是兩個坐標(biāo)系之間的平移矢量實(shí)驗(yàn)結(jié)果。
表1兩個坐標(biāo)系之間的旋轉(zhuǎn)矩陣實(shí)驗(yàn)結(jié)果
表2兩個坐標(biāo)系之間的平移矢量實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)結(jié)果表明本發(fā)明利用圓球作為標(biāo)定物求解相機(jī)外參數(shù),可以獲得較為理想的標(biāo)定精度。多相機(jī)系統(tǒng)的相機(jī)外參數(shù)標(biāo)定實(shí)驗(yàn)中,多個不同視角的相機(jī)可同時拍攝圓球,標(biāo)定過程效率高,采用乒乓球或者其它類型的圓球作為標(biāo)定物,標(biāo)定物簡單。
簡而言之,本發(fā)明公開的一種多相機(jī)系統(tǒng)的相機(jī)外參數(shù)標(biāo)定方法,解決了現(xiàn)有方法中存在的相機(jī)標(biāo)定物制作困難、需要把相對不同世界坐標(biāo)系的外參數(shù)轉(zhuǎn)換為相對于同一個世界坐標(biāo)系的相機(jī)外參數(shù),造成多相機(jī)外參數(shù)標(biāo)定過程效率低且具有累積誤差的問題。其實(shí)現(xiàn)包括:擬合得到各相機(jī)拍攝圓球投影的二次曲線矩陣,由圓球的各向可視性,多相機(jī)系統(tǒng)中的各個相機(jī)可對同一圓球進(jìn)行拍攝,拍攝該圓球處于空間三個不同位置的圖像,提取圓球投影邊緣,擬合圓球投影二次曲線;求解三個球心在相機(jī)坐標(biāo)系中的非齊次坐標(biāo);以三個球心所在平面和球心位置建立三個球心同平面的世界坐標(biāo)系;求解多個相機(jī)在三個球心共平面的世界坐標(biāo)系中的外參數(shù)矩陣,兩個坐標(biāo)系重合,完成多相機(jī)系統(tǒng)中的各個相機(jī)的外參數(shù)標(biāo)定。本發(fā)明快速、簡便、精確計(jì)算多個相機(jī)在同一世界坐標(biāo)系下的外參數(shù)矩陣,不需要更多轉(zhuǎn)換,沒有累積誤差,相機(jī)外參數(shù)標(biāo)定精度高。用圖像測量、無人機(jī)導(dǎo)航、三維重建等。