本發(fā)明屬于圖像通信技術領域,涉及魚眼圖像拼接技術領域,尤其涉及一種基于長條形標定板的魚眼圖像拼接方法。
背景技術:
魚眼圖像拼接是一種利用實景圖像組成全景空間的技術,現(xiàn)有的魚眼圖像拼接技術主要有兩種方案:
第一種方案是用一個常規(guī)鏡頭的投影變換和多項式畸變校正技術用校正模板圖像對鏡頭畸變參數(shù)進行畸變校正,生成一組中間校正后的2D圖像,然后采用2D圖像配準技術對校正后的圖像元進行2D配準,最后對配準的兩幅圖像進行融合。
第二種方案是把魚眼圖像的徑向畸變校正參數(shù)和圖像元的位姿參數(shù)作為一體,整體用最優(yōu)化技術進行參數(shù)估計,生成一個參數(shù)映射表,然后利用參數(shù)映射表將原始圖片逐張映射到全景圖像中,處理完所有的圖像后,將兩兩相鄰的處理之后的圖像在重疊區(qū)域做一次融合過渡。
這兩種方案都需要相鄰的圖像之間有較大的重疊區(qū)域,才能形成清晰的全景圖像,本發(fā)明提出了一種基于長條形標定板的魚眼圖像拼接方法,該方法在較小重疊區(qū)域或者是無重疊區(qū)域的情況下,也能產(chǎn)生高質(zhì)量的全景圖像。
技術實現(xiàn)要素:
本發(fā)明為克服上述情況不足,旨在較小或者是無重疊區(qū)域的情況下產(chǎn)生高質(zhì)量的全景圖像拼接方法。
一種基于長條形標定板的魚眼圖像拼接方法,包括以下步驟:
S1:利用魚眼鏡頭采集長條形標定板圖片;
S2:根據(jù)采集的標定圖像標定魚眼鏡頭的內(nèi)外參數(shù)和畸變系數(shù)以及兩個魚眼鏡頭之間的空間關系參數(shù);具體包括S201、S202、S203步驟:
S201:獲取單個魚眼鏡頭標定的內(nèi)外參數(shù)和畸變系數(shù),并建立兩個魚眼鏡頭空間關系參數(shù)標定的坐標系;對長條形標定板上的第一子標定板和第二子標定板分別以左上角為原點建立空間坐標系,第一子標定板和第二子標定板之間的空間關系用T0表示,兩個魚眼鏡頭之間的空間關系參數(shù)用R,T表示,第一子標定板與拍攝該標定板的魚眼鏡頭之間的關系用Rl,Tl表示,第二子標定板與拍攝該標定板的魚眼鏡頭之間的關系用Rr,Tr表示;
S202:初始化兩個魚眼鏡頭之間的空間關系參數(shù)R,T;假設空間中一點P,在第一子標定板和第二子標定板坐標系中的坐標為X1、X2,并且X1、X2滿足如下關系:X2=X1-T0,X1,X2在各自魚眼鏡頭坐標系下的坐標為Xl、Xr它們之間的轉(zhuǎn)換關系如下:
Xl=Rl×X1+Tl,Xr=Rr×X2+Tr
消除X1,X2,可得:Xr=Rr×Rl-1×Xl-Rr×T0+Tr-Rr×Rl-1×Tl
進而可推得:R=Rr×Rl-1;T=-Rr×T0+Tr-Rr×Rl-1×Tl;
S203:考慮畸變的魚眼鏡頭內(nèi)外參數(shù)以及兩個魚眼鏡頭空間關系參數(shù)的優(yōu)化;兩個魚眼鏡頭的內(nèi)參數(shù)即內(nèi)參數(shù)矩陣Ml,Mr,畸變系數(shù)即Kl,Kr,外參數(shù)即旋轉(zhuǎn)矩陣Rl,Rr和平移向量Tl,Tr;建立以重投影誤差為最小的優(yōu)化目標函數(shù),利用Levenberg-Marquardt算法進行攝像機參數(shù)優(yōu)化,優(yōu)化函數(shù)表示如下:
其中,是根據(jù)第一子標定板上的特征點的初始值使用畸變模型重投影到圖像坐標系下計算出來的第j個特征點在拍攝該標定板相機第i幅圖像上的圖像坐標,是第一子標定板上第j個特征點在拍攝該標定板相機第i幅圖像上檢測出來的特征點坐標,nl是拍攝該標定板相機第i幅圖像上識別出的特征角點個數(shù),是根據(jù)第二子標定板上的特征點的初始值使用畸變模型重投影到圖像坐標系下計算出來的第j個特征點在拍攝該標定板相機第i幅圖像上的圖像坐標,是第二子標定板上第j個特征點在拍攝該標定板相機第i幅圖像上檢測出來的特征點坐標,nr是拍攝該標定板相機第i幅圖像上識別出來的特征角點數(shù)目;輸出優(yōu)化之后魚眼鏡頭的內(nèi)外參數(shù)、畸變系數(shù)以及兩鏡頭之間的空間關系參數(shù);
S3:利用兩個鏡頭的內(nèi)外參數(shù)和畸變系數(shù)以及鏡頭之間的空間關系參數(shù)等計算出原始圖像與目標全景圖像之間的坐標映射表;
S4:根據(jù)所述的坐標映射表將多個魚眼鏡頭拍攝到的圖片映射到目標全景圖像上拼接成一幅全景圖像。
進一步的,所述步驟S1中使用手持的立體相機進行標定圖片采集。
進一步的,所述步驟S1中使用固定在三腳架上的立體相機進行標定圖片采集。
進一步的,所述步驟S4的具體方法為:將所述全景圖像中的像素點作為目標像素點,利用所述預設坐標映射表,確定所述目標像素點與所述待處理原始圖像上的源像素點的對應關系;在原始圖像中查找與目標像素點相對應的源像素點的計算方法如下:
Dst(x,y)=Src(Lut_x(x,y),Lut_y(x,y))
其中,Dst(x,y)表示坐標為(x,y)的目標像素點,Lut_x(x,y)表示目標像素點坐標(x,y)經(jīng)過預設坐標映射表映射到源圖像中X方向上的坐標值,Lut_y(x,y)表示目標像素點坐標(x,y)經(jīng)過預設坐標映射表映射到源圖像中Y方向上的坐標值,Src(Lut_x(x,y),Lut_y(x,y))表示目標像素點坐標(x,y)經(jīng)過預設坐標映射表映射到源圖像中的位置。
進一步的,所述步驟S4中映射的具體方法為:采用遺傳算法對原始圖像進行分塊,以塊為單位進行源像素點坐標到目標全景圖像像素坐標的投影映射,生成目標全景圖像。
進一步的,所述步驟S4之后還包括:對生成的全景圖像進行亮度與顏色的均衡處理。
進一步的,所述對生成的全景圖像進行亮度與顏色的均衡處理的方法具體為:通過魚眼鏡頭的光照模型利用曝光補償blocksgain算法進行光線融和,然后通過相鄰兩幅魚眼圖像重疊區(qū)域之間的關系建立相鄰兩幅圖像之間直方圖映射表,通過映射表對兩幅魚眼圖像做整體的映射變換。
本發(fā)明采用新的標定板即長條形標定板,設計基于長條形標定板的魚眼鏡頭標定方法,在兩個魚眼鏡頭之間相互重疊的區(qū)域很小或者是沒有重疊區(qū)域的情況下也能準確得出鏡頭的內(nèi)參數(shù)、畸變系數(shù)以及兩個魚眼鏡頭之間的空間關系參數(shù);基于魚眼鏡頭標定的結果,計算原始圖像與目標全景圖像之間的坐標映射表。為了更加快速的進行原始魚眼圖像與目標全景圖像之間的映射,采用遺傳算法對原始圖像進行分塊,以塊為單位進行源像素點坐標到目標全景圖像像素坐標的投影映射,生成目標全景圖像。
本發(fā)明的附加方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例的方法流程圖;
圖2為本發(fā)明實施例中的棋盤格;
圖3為本發(fā)明實施例的計算兩個魚眼鏡頭之間的空間關系位置流程圖;
圖4為本發(fā)明實施例中長條形標定板的魚眼鏡頭標定坐標系構建示意圖;
圖5為本發(fā)明實施例的裝置結構圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明提供了一種基于長條形標定板的魚眼圖像拼接方法,如圖1所示,包括以下步驟:S1:利用魚眼鏡頭采集長條形標定板圖片。
首先制作長條形標定板,本實施例中采用的長條形標定板如圖2所示,該長條形標定板分為第一子標定板1和第二子標定板2,均采用棋盤格形式,棋盤格的大小一致,并且第一子標定板1和第二子標定板2之間的間隔為L。在本發(fā)明實施例中,采集長條形標定板圖片時,利用單個魚眼鏡頭采集子第一子標定板1的標定圖片,當然,也可以利用單個魚眼鏡頭采集第二子標定板2的標定圖片。利用重疊區(qū)域較小或者是相互不重疊的兩個魚眼鏡頭同時拍攝長條形標定板圖片,采集圖片時使子第一子標定板1和第二子標定板2分別只出現(xiàn)在一個魚眼鏡頭的視野內(nèi),即讓兩個魚眼鏡頭分別只拍攝到一個子標定板。在本發(fā)明實施例中,可以使用手持或者是固定在三腳架上的立體相機進行標定圖片采集,采集標定板圖像的位置在開始采集時預先設置好。
S2:根據(jù)采集的標定圖像標定魚眼鏡頭的內(nèi)外參數(shù)和畸變系數(shù)以及兩個魚眼鏡頭之間的空間關系參數(shù),單個魚眼鏡頭的內(nèi)外參數(shù)和畸變系數(shù)的標定可以利用張正友相機標定的方法進行標定。如圖3所示,利用本發(fā)明實施例中采用的長條形標定板標定兩個魚眼鏡頭之間的空間關系參數(shù),具體包括如下步驟:
S201:獲取單個魚眼鏡頭標定的內(nèi)外參數(shù)和畸變系數(shù),并建立兩個魚眼鏡頭空間關系參數(shù)標定的坐標系。如圖4所示,對長條形標定板上的第一子標定板1和第二子標定板2分別以左上角為原點建立空間坐標系,第一子標定板1和第二子標定板2之間的空間關系用T0表示,兩個魚眼鏡頭之間的空間關系參數(shù)用R,T表示,第一子標定板1與拍攝該標定板的魚眼鏡頭之間的天系用Rl,Tl表示,第二子標定板2與拍攝該標定板的魚眼鏡頭之間的關系用Rr,Tr表示。
S202:初始化兩個魚眼鏡頭之間的空間關系參數(shù)R,T。假設空間中一點P,在第一子標定板1和第二標定板2坐標系中的坐標為X1、X2,并且X1、X2滿足如下關系:X2=X1-T0,X1,X2在各自魚眼鏡頭坐標系下的坐標為Xl、Xr,它們之間的轉(zhuǎn)換關系如下
Xl=Rl×X1+Tl,Xr=Rr×X2+Tr
消除X1,X2,可得:Xr=Rr×Rl-1×Xl-Rr×T0+Tr-Rr×Rl-1×Tl
進而可推得:R=Rr×Rl-1;T=-Rr×T0+Tr-Rr×Rl-1×Tl。
利用S201步獲取的單目魚眼鏡頭的外參數(shù)以及第一子標定板1和第二子標定板2之間的空間關系可以計算得到兩個魚眼鏡頭之間的空間關系參數(shù)的初始值。
S203:考慮畸變的魚眼鏡頭內(nèi)外參數(shù)以及兩個魚眼鏡頭空間關系參數(shù)的優(yōu)化。
在本發(fā)明的實施例中,兩個魚眼鏡頭的內(nèi)參數(shù)即內(nèi)參數(shù)矩陣Ml,Mr,畸變系數(shù)即Kl,Kr,外參數(shù)即旋轉(zhuǎn)矩陣Rl,Rr和平移向量Tl,Tr。建立以重投影誤差為最小的優(yōu)化目標函數(shù),利用Levenberg-Marquardt算法進行攝像機參數(shù)優(yōu)化,優(yōu)化函數(shù)表示如下:
其中,是根據(jù)子第一子標定板1上的特征點的初始值使用畸變模型重投影到圖像坐標系下計算出來的第j個特征點在拍攝該標定板相機第i幅圖像上的圖像坐標,是子第一子標定板1上第j個特征點在拍攝該標定板相機第i幅圖像上檢測出來的特征點坐標,nl是拍攝該標定板相機第i幅圖像上識別出的特征角點個數(shù),是根據(jù)第二子標定板2上的特征點的初始值使用畸變模型重投影到圖像坐標系下計算出來的第j個特征點在拍攝該標定板相機第i幅圖像上的圖像坐標,是第二子標定板2上第j個特征點在拍攝該標定板相機第i幅圖像上檢測出來的特征點坐標,nr是拍攝該標定板相機第i幅圖像上識別出來的特征角點數(shù)目。最后輸出優(yōu)化之后魚眼鏡頭的內(nèi)外參數(shù)、畸變系數(shù)以及兩鏡頭之間的空間關系參數(shù)。
S3:利用鏡頭的內(nèi)外參數(shù)和畸變系數(shù)以及鏡頭之間的空間關系參數(shù)等計算出原始圖像與目標全景圖像之間的坐標映射表。
在本發(fā)明實施例中,坐標映射表保存了各個鏡頭采集的原始圖像與經(jīng)過圖像拼接方法形成的全景圖像中像素點坐標之間的一對多的對應關系,即目標全景圖像中的多個像素點坐標通過預設坐標映射表映射到原始圖像中的同一個像素坐標。
S4:根據(jù)所述的坐標映射表將多個魚眼鏡頭拍攝到的圖片映射到目標全景圖像上拼接成一幅全景圖像。
將所述全景圖像中的像素點作為目標像素點,利用所述預設坐標映射表,確定所述目標像素點與所述待處理原始圖像上的源像素點的對應關系。在原始圖像中查找與目標像素點相對應的源像素點的計算方法如下:
Dst(x,y)=Src(Lut_x(x,y),Lut_y(x,y))
其中,Dst(x,y)表示坐標為(x,y)的目標像素點,Lut_x(x,y)表示目標像素點坐標(x,y)經(jīng)過預設坐標映射表映射到源圖像中X方向上的坐標值,Lut_y(x,y)表示目標像素點坐標(x,y)經(jīng)過預設坐標映射表映射到源圖像中Y方向上的坐標值,Src(Lut_x(x,y),Lut_y(x,y))表示目標像素點坐標(x,y)經(jīng)過預設坐標映射表映射到源圖像中的位置。
在本發(fā)明實施例中,為了更加快速的進行原始魚眼圖像與目標全景圖像之間的映射,首先利用遺傳算法將原始圖像分割成大小相同的塊,然后對分塊后的原始圖像進行插值運算,最后,對原始圖像分好塊后,以每個塊為單位進行處理,每個塊中保存了目標像素點對應的源像素點,將每個塊的像素值投影到目標圖像對應坐標中,進而生成全景圖片。
生成全景圖片再對生成的全景圖像進行亮度與顏色的均衡處理,以消除不同攝像機之間的色彩差異,得到最終的魚眼鏡頭全景圖像。具體就是通過魚眼鏡頭的光照模型,利用曝光補償blocksgain算法進行光線融和,從而校正一幅魚眼圖像內(nèi)部的光照不均勻性,然后通過相鄰兩幅魚眼圖像重疊區(qū)域之間的關系,建立相鄰兩幅圖像之間直方圖映射表,通過映射表對兩幅魚眼圖像做整體的映射變換,最終達到整體的亮度和顏色的一致性。
綜上所述,本發(fā)明采用新的標定板即長條形標定板,設計基于長條形標定板的魚眼鏡頭標定方法,在兩個魚眼鏡頭之間相互重疊的區(qū)域很小或者是沒有重疊區(qū)域的情況下也能準確得出鏡頭的內(nèi)參數(shù)、畸變系數(shù)以及兩個魚眼鏡頭之間的空間關系參數(shù);基于魚眼鏡頭標定的結果,計算原始圖像與目標全景圖像之間的坐標映射表,為了更加快速的進行原始魚眼圖像與目標全景圖像之間的映射,采用遺傳算法對原始圖像進行分塊,以塊為單位進行源像素點坐標到目標全景圖像像素坐標的投影映射,生成目標全景圖像。
如圖5所示,為本發(fā)明實施例的裝置結構圖。魚眼圖像拼接裝置100包括標定模塊110、映射模塊120和拼接模塊130。標定模塊110用于對所使用的各個魚眼鏡頭進行內(nèi)外參數(shù)以及畸變系數(shù)的標定,以及采集長條形的標定板圖片,對兩個魚眼鏡頭之間的空間關系參數(shù)進行標定。映射模塊120用于根據(jù)所述標定模塊標定的所述魚眼鏡頭的內(nèi)外參數(shù)和畸變系數(shù)以及兩個魚眼鏡頭之間的空間關系參數(shù)計算原始魚眼圖像與目標全景圖像像素點之間的映射關系。拼接模塊130用于基于坐標映射表,對原始魚眼圖像進行分塊操作,對分塊好的圖像進行拼接,形成目標全景圖像,最后對全景圖像進行顏色和亮度的均衡處理。
在本發(fā)明的實施例中,所述多個魚眼鏡頭拍攝的圖像之間重疊區(qū)域較小或無重疊區(qū)域。
所述標定模塊110包括單目標定子模塊111、基于長條形標定板的雙目標定子模塊112。單目標定子模塊111用于對所使用的各個魚眼鏡頭進行內(nèi)參數(shù)、外參數(shù)以及畸變系數(shù)的標定?;陂L條形標定板的雙目標定子模塊112根據(jù)魚眼鏡頭單目標定的內(nèi)參數(shù)以及畸變系數(shù),對兩個魚眼鏡頭之間的空間關系參數(shù)進行初始化,然后建立以重投影誤差為最小的優(yōu)化目標函數(shù),利用Levenberg-Marquardt算法對魚眼鏡頭單目標定的內(nèi)外參數(shù)和畸變系數(shù)以及兩個魚眼鏡頭之間的空間關系參數(shù)進行優(yōu)化。
所述映射模塊120包括參數(shù)獲取子模塊121、映射表計算子模塊122。參數(shù)獲取子模塊121根據(jù)標定模塊110計算得到的魚眼鏡頭的內(nèi)外參數(shù)、畸變系數(shù)以及兩個魚眼鏡頭之間的空間關系參數(shù)。映射表計算子模塊122根據(jù)獲取的參數(shù)生成從目標全景圖像到原始魚眼圖像之間的像素點坐標映射關系。
所述拼接模塊130包括分塊子模塊131、拼接子模塊132以及顏色與亮度校正子模塊133。分塊子模塊131利用遺傳算法將原始圖像分割成大小相同的塊。拼接子模塊132對分塊后的原始圖像進行插值運算,以每個塊為單位進行源像素點坐標到目標全景圖像像素坐標的投影映射。顏色與亮度校正子模塊133對生成的全景圖像進行亮度與顏色的均衡處理,以消除不同攝像機之間的色彩差異,得到最終的魚眼鏡頭全景圖像。
以上所揭露的僅為本發(fā)明一種較佳實施例而已,當然不能以此來限定本發(fā)明之權利范圍,因此依本發(fā)明權利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。