本發(fā)明屬于視頻處理技術(shù)領(lǐng)域,涉及一種全景視頻拼接方法。
背景技術(shù):
視頻拼接技術(shù)是指將若干個攝像機采集到的視頻圖像拼接形成一幅全景圖像的技術(shù),目前常用的視頻拼接技術(shù)大多是基于圖像拼接算法上找出相鄰視頻圖像中的重合部分進行轉(zhuǎn)換拼接,但這類方法受攝像場景的變化、拍攝角度的不同和拼接算法等因素的影響。并且全景攝像機是魚眼鏡頭,獲取得到的圖像是魚眼圖像,存在畸變,如果直接進行特征點提取,則提取到的特征點匹配程度很低,且誤匹配率較高。
技術(shù)實現(xiàn)要素:
為解決上述問題,本發(fā)明的目的在于提供一種全景視頻拼接方法。
為實現(xiàn)上述目的,本發(fā)明提供了一種全景視頻拼接方法,包括以下步驟:
獲取一組圖像并生成模板;
使用模板將視頻每一幀進行空間映射;
將映射后的視頻幀渲染成全景視頻,
其中,生成模板包括以下步驟:
對圖像進行畸變校正;
對校正后的圖像進行特征點提取及特征點匹配;
使用優(yōu)化算法以及特征點匹配結(jié)果估計空間映射參數(shù),將映射參數(shù)保存成模板。
優(yōu)選地,所述對圖像進行畸變校正,采用經(jīng)緯度校正法,在一條確定的經(jīng)度上,圖像上一點的橢圓方程為:
經(jīng)緯度校正后的坐標為(x1,y1),校正關(guān)系為:
優(yōu)選地,所述特征點提取包括以下步驟:
用高斯金字塔方法構(gòu)建尺度空間,對校正后的圖像進行若干次的卷積和下采樣,得到尺度空間圖像;
對構(gòu)建好的尺度空間圖像進行搜索,找到局部極大值點作為初步關(guān)鍵點,然后通過極大值抑制,確定最終的關(guān)鍵點,即特征點;
通過對特征點周圍圖像區(qū)域分塊,計算每塊內(nèi)梯度直方圖,再用這些直方圖生成一個128維向量,即進行特征點描述。
優(yōu)選地,所述卷積,利用如下公式得到卷積后圖像:
L(x,y,σ)=I(x,y)*G(x,y,σ),
其中I(x,y)為原圖像,G(x,y,σ)為高斯函數(shù),L(x,y,σ)為卷積后圖像。
優(yōu)選地,所述特征點匹配,首先從一張圖像中選擇一個特征點,根據(jù)其特征點描述,從另一張圖像中搜索出與該特征點描述最相似的特征點描述,即形成一對匹配的特征點。
優(yōu)選地,所述使用優(yōu)化算法以及特征點匹配結(jié)果估計空間映射參數(shù),已有若干對匹配的特征點,通過優(yōu)化算法估計空間映射參數(shù),包括旋轉(zhuǎn)量、平移量、及畸變量,將這些參數(shù)保存成模板。
優(yōu)選地,所述優(yōu)化算法為最小二乘法或LevenBerg-Marquardt算法。
優(yōu)選地,所述使用模板將視頻每一幀進行空間映射,為根據(jù)所生成的模板中的空間映射參數(shù),將視頻的每一幀圖像投影到全景平面上。
優(yōu)選地,所述將映射后的視頻幀渲染成全景視頻,是通過圖像的線性融合,生成全景視頻。
優(yōu)選地,所述線性融合,是對若干圖像進行線性加權(quán),包括以下步驟:
將圖像映射到全景圖像時,生成每個有效像素點的權(quán)重系數(shù)w,無效區(qū)的權(quán)重系數(shù)為0;
不同鏡頭間存在重合區(qū)域,即存在不同幅圖像映射到全景圖像中的同一個點,全景圖像的像素值由如下公式得到:
其中,N為有N個圖像映射到全景圖像中的同一個點,In(x,y)為第n個圖像的像素值,wn(x,y)為第n個圖像在點(x,y)的權(quán)重。
優(yōu)選地,所述將映射后的視頻幀渲染成全景視頻,是通過圖像的多重融合或無縫融合或泊松融合,生成全景視頻。
本發(fā)明的有益效果如下:由于全景攝像機是魚眼鏡頭,獲取得到的圖像是魚眼圖像,存在畸變,如果直接進行特征點提取,則提取到的特征點匹配程度很低,且誤匹配率較高。本發(fā)明為了提取更多的特征點,獲取更準確的特征點匹配對,先將魚眼圖像進行畸變校正,消除魚眼的畸變現(xiàn)象;然后進行特征點提取和匹配;以估計空間映射參數(shù),來生成模板。后續(xù)視頻圖像可以直接使用保存好的模板進行拼接,提升拼接效率。
附圖說明
圖1為本發(fā)明一具體實施例的全景視頻拼接方法的步驟流程圖;
圖2為本發(fā)明又一具體實施例的全景視頻拼接方法的步驟流程圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
相反,本發(fā)明涵蓋任何由權(quán)利要求定義的在本發(fā)明的精髓和范圍上做的替代、修改、等效方法以及方案。進一步,為了使公眾對本發(fā)明有更好的了解,在下文對本發(fā)明的細節(jié)描述中,詳盡描述了一些特定的細節(jié)部分。對本領(lǐng)域技術(shù)人員來說沒有這些細節(jié)部分的描述也可以完全理解本發(fā)明。
實施例1
參見圖1,為本發(fā)明一具體實施例的全景視頻拼接方法的步驟流程圖,包括以下步驟:
S10,獲取一組圖像并生成模板;
S20,使用模板將視頻每一幀進行空間映射;
S30,將映射后的視頻幀渲染成全景視頻。
通過上述步驟,可將一組待拼接的圖像生成模板,生成的模板是一組參數(shù),是圓周魚眼圖像映射到最終等距圓柱圖像(即全景圖像)的映射參數(shù)。使用模板可以將視頻的每一幀圖像進行空間映射,而后渲染成全景視頻。生成的模板可對后續(xù)全景攝像機拍攝的視頻圖像直接進行拼接,大大提高了效率。
實施例2
參見圖2,為本發(fā)明一具體實施例的全景視頻拼接方法的步驟流程圖,包括以下步驟:
S101,對圖像進行畸變校正;
S102,對校正后的圖像進行特征點提取及特征點匹配;
S103,使用優(yōu)化算法以及特征點匹配結(jié)果估計空間映射參數(shù),將映射參數(shù)保存成模板;
S20,使用模板將視頻每一幀進行空間映射;
S30,將映射后的視頻幀渲染成全景視頻。
上述步驟中,S101對圖像進行畸變校正,采用經(jīng)緯度校正法,在一條確定的經(jīng)度上,圖像上一點的橢圓方程為:
經(jīng)緯度校正后的坐標為(x1,y1),校正關(guān)系為:
圖像畸變校正后,進行S102中的特征點提取。特征點提取的方法有很多,例如邊緣點,harris角點,SURF特征點,ORB特征等,本發(fā)明采用尺度不變特征變換,包括以下步驟:
用高斯金字塔方法構(gòu)建尺度空間,對校正后的圖像進行若干次的卷積和下采樣,得到尺度空間圖像;
利用如下公式得到卷積后圖像:
L(x,y,σ)=I(x,y)*G(x,y,σ),
其中I(x,y)為原圖像,G(x,y,σ)為高斯函數(shù),L(x,y,σ)為卷積后圖像;
對構(gòu)建好的尺度空間圖像進行搜索,找到局部極大值點作為初步關(guān)鍵點,然后通過極大值抑制,確定最終的關(guān)鍵點,即特征點;
通過對特征點周圍圖像區(qū)域分塊,計算每塊內(nèi)梯度直方圖,再用這些直方圖生成一個128維向量,即進行特征點描述,這個向量是該區(qū)域圖像信息的一種抽象,具有唯一性。
上述特征點提取能夠保證在圖像旋轉(zhuǎn)、圖像縮放、圖像亮度均勻變化時都不會影響特征點提取的結(jié)果,是一種十分穩(wěn)定的特征點提取算法。
完成圖像的特征點提取后,進行S102中的特征點匹配,從而建立起不同圖像間的對應關(guān)系。首先從一張圖像中選擇一個特征點,根據(jù)其特征點描述,從另一張圖像中搜索出與該特征點描述最相似的特征點描述,即形成一對匹配的特征點。在具體實施例中,如一張圖像的一個特征點坐標是(x1,y1),它的描述值為向量另一張圖像中與向量最相似的特征點描述為該特征點描述對應的特征點坐標為(x2,y2),那么(x1,y1)和(x2,y2)就是一對特征點匹配對,可以記為((x1,y1),(x2,y2))。一對匹配的特征點認為是一個場景中的同一個點,只是該場景被不同的攝像機所拍攝。
而后進行S103,用若干對匹配的特征點,通過優(yōu)化算法估計空間映射參數(shù),空間映射參數(shù)包括旋轉(zhuǎn)量、平移量、及畸變量,將這些參數(shù)保存成模板。
具體實施例中優(yōu)化算法為最小二乘法或LevenBerg-Marquardt算法,采用最小二乘法時,令p=(x,y),表示一個坐標點,則匹配對可重新表示成(p1,p2),空間映射模型函數(shù)可以表示為y=f(p,β)。其中β=(β1,β2,...βm)是空間映射參數(shù),包括旋轉(zhuǎn)參數(shù),平移參數(shù)以及畸變參數(shù)。最小二乘法的優(yōu)化策略是使誤差的平方和最小,即找到一個解β使下式最?。?/p>
它的最優(yōu)解為:
其中
使用優(yōu)化算法得到空間映射參數(shù)后,將這些參數(shù)保存成模板,后續(xù)攝像機拍攝圖像后,不需要再進行復雜的生成模板過程,直接使用保存好的模板進行拼接,提升拼接效率。
生成模板后,進行S20,使用模板將視頻每一幀進行空間映射,為根據(jù)所生成的模板中的空間映射參數(shù),將視頻的每一幀圖像投影到全景平面上。如果一臺攝像機有4個鏡頭,即要對4個圖像進行全景拼接,那么經(jīng)過空間映射會得到4張全景圖像,然后進行S30,通過圖像的線性融合,對這些全景圖像進行渲染,融合成一幀最終全景圖像。
所述線性融合,是對若干圖像進行線性加權(quán),包括以下步驟:
將圖像映射到全景圖像時,生成每個有效像素點的權(quán)重系數(shù)w,無效區(qū)的權(quán)重系數(shù)為0;
不同鏡頭間存在重合區(qū)域,即存在不同幅圖像映射到全景圖像中的同一個點,全景圖像的像素值由如下公式得到:
其中,N為有N個圖像映射到全景圖像中的同一個點,In(x,y)為第n個圖像的像素值,wn(x,y)為第n個圖像在點(x,y)的權(quán)重。
具體實施例中,還可以通過圖像的多重融合或無縫融合或泊松融合,生成全景視頻。需要說明的是,對視頻進行渲染時,數(shù)據(jù)量很大,尤其是分辨率高的視頻。此時CPU的計算能力已經(jīng)遠遠不能滿足需求。為了提高效率,必須使用計算能力強的平臺,本發(fā)明使用GPU對視頻進行渲染,GPU具有十分強大的并行計算能力,適用于圖像渲染,大大提升效率,GPU渲染可以使用CUDA或者OpenGL來實現(xiàn)。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。