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