實時全景拼接方法和裝置的制造方法
【專利摘要】本發(fā)明提供了一種實時全景拼接方法,包括以下步驟:獲取多個魚眼鏡頭的映射參數(shù)和鏡頭視場角;根據(jù)魚眼鏡頭的映射參數(shù)獲取擬合映射曲線;獲取魚眼圖中第一魚眼圓和第二魚眼圓的圓心坐標(biāo)和半徑;創(chuàng)建用于魚眼圖矯正圖的第一球面模型和第二球面模型;將第一魚眼圓和第二魚眼圓中的點映射到矯正圖的相應(yīng)的第一球面模型和第二球面模型上,并使得第一球面模型和第二球面模型融合形成360度的球面模型;以及將解碼后每一幅圖片繪制到360度的球面模型上,以便實時觀看全景視頻。本發(fā)明還提供了一種實時全景拼接裝置。本發(fā)明的方法和裝置的優(yōu)點在于:用于對利用雙魚眼鏡頭拍攝的視頻進(jìn)行實時處理,以便實時以360度視角觀看視頻。
【專利說明】
實時全景拼接方法和裝置
技術(shù)領(lǐng)域
[0001] 本發(fā)明設(shè)及一種全景拼接方法和裝置,具體而言,設(shè)及一種實時全景拼接方法和 裝置。
【背景技術(shù)】
[0002] 魚眼鏡頭是一種超廣角鏡頭,一般的定義是視角達(dá)到180度的鏡頭就稱之為魚眼 鏡頭。全景圖像是指利用專業(yè)全景圖像制作工具(例如panatools)對采用魚眼鏡頭拍攝的 圖片進(jìn)行拼接而形成的360度的圖像。
[0003] 圖1示出了魚眼鏡頭成像原理圖。如圖1所示,入射光線經(jīng)過鏡頭折射后最終成像 在膠片上,其中經(jīng)過光軸的光線不會發(fā)生折射直接成像在圖像的中屯、,而對于入射角為0的 入射光線,如果沒有發(fā)生折射則沿虛線成像在膠片上,其距離膠片中屯、的距離為rRef,rRef = f X tan(0),f為透鏡焦點與膠片之間的距離。實際情況是,入射角度為0的入射光線經(jīng)過透 鏡會發(fā)生折射,折射后的光線映射在膠片上,其與膠片中屯、的距離為rReal JReal與0之間的關(guān) 系用函數(shù)rReal = F(0)表示,該函數(shù)稱為鏡頭的映射曲線。鏡頭的映射參數(shù)可W通過廠家獲 得。
[0004] 表1為從鏡頭廠商直接獲得的某魚眼鏡頭的一部分映射參數(shù)。
[0005] 表1:鏡頭映射參數(shù)表 [00061
[0007]
[000引表1只給出了 一部分入射角度的映射參數(shù),完整的映射參數(shù)表包含范圍為 [0, ^;],每間隔0.5度的入射角度的映射參數(shù),fov為鏡頭的視場角。根據(jù)映射參數(shù)表繪制 散點圖,并通過線性回歸的方法獲得一條擬合曲線。如表1得到擬合曲線為:
[0009] TReal = F(目)=1.0 X 1〇-9白4-6.0 X 1〇-7目3+8.5 X 1〇-6白2+0.0183目+0.0007 (公式 1)
[0010] 把擬合出來的曲線計算的結(jié)果和實際結(jié)果對比,得到誤差:
[0011] 誤差=(rReaU臉-rReal)/rRealX100% (公式 2)
[0012] 得到的擬合曲線誤差在0.5% W內(nèi)。當(dāng)然,可W通過增加多項式的階來獲取誤差更 小的擬合曲線。
[0013] 需要一種實時拼接方法和裝置,用于對利用雙魚眼鏡頭拍攝的視頻進(jìn)行實時處 理,W便W360度視角呈現(xiàn)視頻。
【發(fā)明內(nèi)容】
[0014] 本發(fā)明的一個實施方式提供了一種實時全景拼接方法,其中,所述方法包括W下 步驟:
[0015] 步驟1:獲取多個魚眼鏡頭的映射參數(shù)和鏡頭視場角;
[0016] 步驟2:根據(jù)魚眼鏡頭的映射參數(shù)獲取擬合映射曲線;
[0017] 步驟3:獲取魚眼圖中第一魚眼圓和第二魚眼圓的圓屯、坐標(biāo)和半徑;
[0018] 步驟4:創(chuàng)建用于魚眼圖矯正圖的第一球面模型和第二球面模型;
[0019] 步驟5:基于鏡頭視場角、擬合映射曲線、魚眼圓的圓屯、坐標(biāo)和半徑將第一魚眼圓 和第二魚眼圓中的點映射到矯正圖的相應(yīng)的第一球面模型和第二球面模型上,使得第二球 面模型繞Z軸旋轉(zhuǎn)180度,并使得第一球面模型和第二球面模型融合形成360度的球面模型; W及
[0020] 步驟6:將使用視頻解碼器對視頻解碼后每一幅圖片繪制到360度的球面模型上, W便實時觀看全景視頻。
[0021] 根據(jù)本發(fā)明的上述一個實施方式提供的實時全景拼接方法,其中在上述步驟1中, 魚眼鏡頭映射參數(shù)和鏡頭視場角通過魚眼鏡頭供應(yīng)商獲得。
[0022] 根據(jù)本發(fā)明的上述一個實施方式提供的實時全景拼接方法,其中在上述步驟2中, 根據(jù)鏡頭映射參數(shù)獲取擬合映射曲線是指利用映射參數(shù)結(jié)合公式1:
[0023] TReai = F(目)=1.0 X 1〇-9目4-6.0 X 1〇-7目3+8.5 X 1〇-6目2+0.0183目+0.0007獲得擬合映 射曲線,其中0為入射角,rReal為角度為0的入射光線經(jīng)過透鏡折射后映射在膠片時與膠片 中屯、的距離。
[0024] 根據(jù)本發(fā)明的上述一個實施方式提供的實時全景拼接方法,其中在上述步驟3中, 魚眼圖包括第一魚眼圓和第二魚眼圓,第一魚眼圓的半徑為R,第一魚眼圓的圓屯、坐標(biāo)為 (XO,yo),第二魚眼圓的半徑為化,第二魚眼圓的圓屯、坐標(biāo)為(Xi,yi)。
[0025] 根據(jù)本發(fā)明的上述一個實施方式提供的實時全景拼接方法,其中在上述步驟5中, 魚眼圖矯正圖的第一球面模型和第二球面模型與第一魚眼圓和第二魚眼圓中的點相對應(yīng)。
[0026] 根據(jù)本發(fā)明的上述一個實施方式提供的實時全景拼接方法,其中上述步驟5還包 括W下步驟:
[0027] 步驟5a:由球面模型上的點p(x,y,z)獲得入射角0和偏移角d)的大?。?br>[00%]步驟化:基于入射角度、鏡頭視場角度、魚眼圓的半徑獲得半徑radius; W及
[0029] 步驟5c:基于半徑radius、偏移角d)、魚眼圓屯、坐標(biāo)和原始魚眼圖的寬度W和高度H 獲得球面模型上的點P (X,y,Z)對應(yīng)的紋理坐標(biāo)(U,V)。
[0030] 根據(jù)本發(fā)明的上述一個實施方式提供的連時令景拼接方法,其中在上述巧驟5a 中,由球面模型上的點p(x,y,z)根據(jù)公式3:
,公式
公式5:〇=a化n 2(y,x)獲得入射角目和偏移角d)的大小。
[0031] 根據(jù)本發(fā)明的上述一個實施方式提供的實時全景拼接方法,其中在上述步驟加 中,基于公式6:radius = RXF(目)/F(fov/2)和fOV獲得中間變量radius。
[0032] 根據(jù)本發(fā)明的上述一個實施方式提供的實時全景拼接方法,其中在上述步驟5c 中,基于半徑radius、偏移角4、魚眼圓屯、坐標(biāo)和原始魚眼圖的寬度W和高度H、公式7:11 = (radius X cos(巫)+xo)/W和公式8: V= (radius X sin(巫)+yo)/H獲得球面模型上的點p(x, y,z)對應(yīng)的紋理坐標(biāo)(u,v)。
[0033] 本發(fā)明的另一個實施方式提供了一種實時全景拼接裝置,其中,所述裝置包括:
[0034] 第一數(shù)據(jù)獲取模塊,用于獲取魚眼鏡頭映射參數(shù)和鏡頭視場角;
[0035] 映射曲線擬合模塊,用于根據(jù)鏡頭映射參數(shù)獲取擬合映射曲線;
[0036] 第二數(shù)據(jù)獲取模塊,獲取魚眼圖中第一魚眼圓和第二魚眼圓的圓屯、坐標(biāo)和半徑;
[0037] 模型創(chuàng)建模塊,用于創(chuàng)建用于魚眼圖矯正圖的第一球面模型和第二球面模型;
[0038] 映射模塊:基于鏡頭視場角、擬合映射曲線、魚眼圓的圓屯、坐標(biāo)和半徑將第一魚眼 圓和第二魚眼圓中的點映射到矯正圖的相應(yīng)的第一球面模型和第二球面模型上,使得第二 球面模型繞Z軸旋轉(zhuǎn)180度,并使得第一球面模型和第二球面模型融合形成360度的球面模 型;從及
[0039] 繪制模塊:用于將使用視頻解碼器對視頻解碼后的每一幅圖片繪制到360度的球 面模型上,W便實時觀看全景視頻。
[0040] 本發(fā)明的另一個實施方式提供的實時全景拼接裝置,其中,魚眼鏡頭映射參數(shù)和 鏡頭視場角通過魚眼鏡頭供應(yīng)商獲得。
[0041] 本發(fā)明的另一個實施方式提供的實時全景拼接裝置,其中,根據(jù)鏡頭映射參數(shù)獲 取擬合映射曲線是指利用映射參數(shù)結(jié)合公式1:
[0042] TReai = F(目)=1.0 X 1〇-9目4-6.0 X 1〇-7目3+8.5 X 1〇-6目2+0.0183目+0.0007獲得擬合映 射曲線,其中0為入射角,rReal為角度為0的入射光線經(jīng)過透鏡折射后映射在膠片時與膠片 中屯、的距離。
[0043] 本發(fā)明的另一個實施方式提供的實時全景拼接裝置,其中,魚眼圖包括第一魚眼 圓和第二魚眼圓,第一魚眼圓的半徑為R,第一魚眼圓的圓屯、為(xo,yo),第二魚眼圓的半徑 為Ri,第二魚眼圓的圓屯、為(XI,yi)。
[0044] 本發(fā)明的另一個實施方式提供的實時全景拼接裝置,其中,魚眼圖矯正圖的第一 球面模型和第二球面模型與第一魚眼圓和第二魚眼圓中的點相對應(yīng)。
[0045] 本發(fā)明的另一個實施方式提供的實時全景拼接裝置,其中,映射模塊包括W下轉(zhuǎn) 化模塊:
[0046] 第一轉(zhuǎn)化模塊,用于經(jīng)由球面模型上的點p(x,y,z)獲得入射角0和偏移角(1)的大 ??;
[0047] 第二轉(zhuǎn)化模塊,用于基于入射角度、鏡頭視場角度、魚眼圓的半徑獲得半徑 radius;W及
[004引第S轉(zhuǎn)化模塊,用于基于半徑radius、偏移角(K魚眼圓屯、坐標(biāo)和原始魚眼圖的寬 度W和高度H獲得球面模型上的點P (X,y,Z)對應(yīng)的紋理坐標(biāo)(U,V)。
[0049]本發(fā)明的另一個實施方式提供的實時全景拼接裝置,其中,第一轉(zhuǎn)化模塊經(jīng)由球 面模型上的點P (X,y,Z)并根據(jù)公式3
,公
式4; 公式5: O =a 1:an 2(y,x)獲得入射角目和偏移角4的大小。 .、
[0050] 本發(fā)明的另一個實施方式提供的實時全景拼接裝置,其中,第二轉(zhuǎn)化模炔基于公 式6: radius = R XF(目)/F(fov/2)和f OV 獲得中間變量 radius。
[0051] 本發(fā)明的另一個實施方式提供的實時全景拼接裝置,其中,第=轉(zhuǎn)化模炔基于半 徑radius、偏移角d)、魚眼圓屯、坐標(biāo)和原始魚眼圖的寬度W和高度H公式7:11= (radius X COS (巫)+xo)/W和公式8: V= (radius Xsin( O )+yo)/H獲得球面模型上的點p(x,y,z)對應(yīng)的紋 理坐標(biāo)(u,v)。
[0052] 本發(fā)明的方法和裝置的優(yōu)點在于:用于對利用雙魚眼鏡頭拍攝的視頻進(jìn)行實時處 理,W便實時W360度視角觀看視頻。
【附圖說明】
[0053] 參照附圖,本發(fā)明的公開內(nèi)容將變得更易理解。本領(lǐng)域技術(shù)人員容易理解的是:運(yùn) 些附圖僅僅用于舉例說明本發(fā)明的技術(shù)方案,而并非意在對本發(fā)明的保護(hù)范圍構(gòu)成限制。 圖中:
[0054] 圖1示出了魚眼鏡頭成像原理圖。
[0055] 圖2示出了通過雙魚眼鏡頭拍攝的原始魚眼圖。
[0056] 圖3示出了根據(jù)本發(fā)明一個實施方式的對魚眼鏡頭拍攝的原始魚眼圖進(jìn)行實時全 景拼接的方法的流程圖。
[0057] 圖4示出了魚眼圖上的偏移角度、半徑RW及半徑radius。
[005引圖5示出了S維空間中的一點p(x,y,z)、入射角目W及偏移角4。
[0059] 圖6示意性地示出了根據(jù)本發(fā)明一個實施例的實時全景拼接裝置的示意框圖。
[0060] 圖7示意性地示出了根據(jù)本發(fā)明另一個實施方式的對魚眼鏡頭拍攝的圖像進(jìn)行實 時全景拼接的系統(tǒng)的示意框圖。
[0061] 圖8示意性地示出了根據(jù)本發(fā)明實施方式的實時全景拼接程序產(chǎn)品。
[0062] 在附圖中,相同或?qū)?yīng)的標(biāo)號表示相同或?qū)?yīng)的部分。
【具體實施方式】
[0063] 圖1-8W下說明描述了本發(fā)明的可選實施方式W教導(dǎo)本領(lǐng)域技術(shù)人員如何實施和 再現(xiàn)本發(fā)明。為了教導(dǎo)本發(fā)明技術(shù)方案,已簡化或省略了一些常規(guī)方面。本領(lǐng)域技術(shù)人員應(yīng) 該理解源自運(yùn)些實施方式的變型或替換將落在本發(fā)明的范圍內(nèi)。本領(lǐng)域技術(shù)人員應(yīng)該理解 下述特征能夠W各種方式組合W形成本發(fā)明的多個變型。由此,本發(fā)明并不局限于下述可 選實施方式,而僅由權(quán)利要求和它們的等同物限定。
[0064] 在本發(fā)明中文理坐標(biāo)是指在二維的紋理圖案上的平面坐標(biāo),水平方向為U,垂直方 向為V。在繪制=維圖形的時候,=維模型上的每一個點均定義了一個紋理坐標(biāo),映射到二 維紋理平面上的某一個點,運(yùn)樣就能將二維的紋理圖案貼到=維的模型上了。透明融合是 指將兩張圖像通過顏色混合得到一張圖像的方法。透明融合即將兩張圖像通過透明通道的 混合得到一張圖,透明融合的方法在本領(lǐng)域中是已知的,運(yùn)里不再累述。
[0065] 下面結(jié)合圖2至圖5來闡述根據(jù)本發(fā)明一個實施方式的對魚眼鏡頭拍攝的圖像矯 正的方法。圖2示出了通過雙魚眼鏡頭獲得的原始魚眼圖。圖3示出了根據(jù)本發(fā)明一個實施 方式的對魚眼鏡頭拍攝的圖像矯正的方法的流程圖。圖4示出了魚眼圖上的偏移角度、半徑 RU及半徑radius。圖5示出了S維空間中的一點p(x,y,z)、入射角目W及偏移角4。如圖2至 圖5所示,根據(jù)本發(fā)明一個實施方式的對魚眼鏡頭拍攝的圖像矯正的方法的步驟如下:
[0066] 步驟100:本發(fā)明一個實施方式的實時全景拼接方法開始;
[0067] 步驟110:獲取多個魚眼鏡頭的映射參數(shù)和鏡頭視場角;
[0068] 步驟120:根據(jù)魚眼鏡頭的映射參數(shù)獲取擬合映射曲線;
[0069] 步驟130:獲取魚眼圖中第一魚眼圓和第二魚眼圓的圓屯、坐標(biāo)和半徑;
[0070] 步驟140:創(chuàng)建用于魚眼圖矯正圖的第一球面模型和第二球面模型;
[0071] 步驟150:基于鏡頭視場角、擬合映射曲線、魚眼圓的圓屯、坐標(biāo)和半徑將第一魚眼 圓和第二魚眼圓中的點映射到矯正圖的相應(yīng)的第一球面模型和第二球面模型上,使得第二 球面模型繞Z軸旋轉(zhuǎn)180度,并使得第一球面模型和第二球面模型融合形成360度的球面模 型;
[0072] 步驟160:將使用視頻解碼器對視頻解碼后每一幅圖片繪制到360度的球面模型 上,W便實時觀看全景視頻;W及
[0073] 步驟170:本發(fā)明一個實施方式的實時全景拼接方法結(jié)束。
[0074] 在上述步驟110中,魚眼鏡頭映射參數(shù)和鏡頭視場角可W通過魚眼鏡頭供應(yīng)商獲 得。
[0075] 在上述步驟120中,根據(jù)鏡頭映射參數(shù)獲取擬合映射曲線是指利用映射參數(shù)結(jié)合 公式1:
[0076] TReai = F(目)=1.0 X 1〇-9目4-6.0 X 1〇-7目3+8.5 X 1〇-6目2+0.0183目+0.0007獲得擬合映 射曲線,其中0為入射角,rReal為角度為0的入射光線經(jīng)過透鏡折射后映射在膠片時與膠片 中屯、的距離。
[0077] 在上述步驟130中,如圖2所示,魚眼圖包括第一魚眼圓和第二魚眼圓,第一魚眼圓 的半徑為R,第一魚眼圓的圓屯、為(xo,yo),第二魚眼圓的半徑為Ri,第二魚眼圓的圓屯、為 (xi'yi)。
[0078] 在上述步驟140和150中,魚眼圖矯正圖的第一球面模型和第二球面模型與第一魚 眼圓和第二魚眼圓中的點相對應(yīng),使得第二球面模型繞Z軸旋轉(zhuǎn)180度,并使得第一球面模 型和第二球面模型融合,形成360度的球面模型。
[0079] 在步驟150中,對于球面模型上的點p(x,y,z),其紋理坐標(biāo)為(u,v),第一魚眼鏡頭 和第二魚眼鏡頭的視場角均為fov。
[0080]
[0081]
么式 4
[0082] 巫=a 1:an 2(y,x)公式5
[0083] radius = RXF(目)/F(fov/2)公式 6
[0084] U= (radius X cos(巫)+xo)/W 公式7 [00化]V= (radius X sin(巫)+yo)/H 公式8
[0086] 將用于矯正圖的相應(yīng)球面模型上一點映射到相應(yīng)魚眼圖中的相應(yīng)點是指:
[0087] 1)由球面模型上的點p(x,y,z)基于公式3-5獲得入射角0和偏移角d)的大??;
[0088] 2)基于入射角度、鏡頭視場角度、魚眼圓的半徑和公式1和6獲得半徑radius, radius是在映射過程中的中間變量;
[0089] 3)基于半徑radius、偏移角d)、魚眼圓屯、坐標(biāo)和原始魚眼圖的寬度W和高度H獲得 球面模型上的點P(x,y,z)對應(yīng)的紋理坐標(biāo)(u,v)。
[0090] 在上述步驟150中,第一球面模型和第二球面模型融合形成360度的球面模型時, 使得第二球面模型旋轉(zhuǎn)180度后,需要球面模型繞著Y、X和Z軸旋轉(zhuǎn)設(shè)定的角度,并且在兩個 球面模型融合時重疊的部分畫面需要采用透明融合的方法,其中該設(shè)定的角度由廠商提 供。對于球面模型繞著Y、X和Z軸旋轉(zhuǎn)設(shè)定的角度,運(yùn)是由于相機(jī)內(nèi)部的物理誤差(例如魚眼 鏡頭與膠片之間不平行或者膠片傾斜等)引起的。在兩個球面模型融合時重疊的部分畫面 需要采用透明融合的方法,運(yùn)是由于魚眼鏡頭的視場角一般在180-240度之間,兩個球面模 型融合時需要通過透明融合去除掉重合部分的影響。
[0091] 示例性裝置
[0092] W上結(jié)合附圖2-5闡述了根據(jù)本發(fā)明一個實施方式的對魚眼鏡頭拍攝的原始魚眼 圖進(jìn)行實時全景拼接的方法。下面將結(jié)合圖6描述根據(jù)本發(fā)明一個實施方式的對魚眼鏡頭 拍攝的原始魚眼圖進(jìn)行實時全景拼接的裝置。圖6示意性地示出了根據(jù)本發(fā)明一個實施例 的實時全景拼接裝置的示意框圖。其中所述裝置包括:
[0093] 本發(fā)明的另一個實施方式提供了一種實時全景拼接裝置,其中,所述裝置包括:
[0094] 第一數(shù)據(jù)獲取模塊1,用于獲取魚眼鏡頭映射參數(shù)和鏡頭視場角;
[00%]映射曲線擬合模塊2,用于根據(jù)鏡頭映射參數(shù)獲取擬合映射曲線;
[0096] 第二數(shù)據(jù)獲取模塊3,獲取魚眼圖中第一魚眼圓和第二魚眼圓的圓屯、坐標(biāo)和半徑;
[0097] 模型創(chuàng)建模塊4,用于創(chuàng)建用于魚眼圖矯正圖的第一球面模型和第二球面模型;
[0098] 映射模塊5:基于鏡頭視場角、擬合映射曲線、魚眼圓的圓屯、坐標(biāo)和半徑將第一魚 眼圓和第二魚眼圓中的點映射到矯正圖的相應(yīng)的第一球面模型和第二球面模型上,使得第 二球面模型繞Z軸旋轉(zhuǎn)180度,并使得第一球面模型和第二球面模型融合形成360度的球面 模型;W及
[0099] 繪制模塊6:用于將使用視頻解碼器對視頻解碼后的每一幅圖片繪制到360度的球 面模型上,W便實時觀看全景視頻。
[0100] 本發(fā)明的另一個實施方式提供的實時全景拼接裝置,其中,魚眼鏡頭映射參數(shù)和 鏡頭視場角通過魚眼鏡頭供應(yīng)商獲得。
[0101] 本發(fā)明的另一個實施方式提供的實時全景拼接裝置,其中,根據(jù)鏡頭映射參數(shù)獲 取擬合映射曲線是指利用映射參數(shù)結(jié)合公式1:
[0102] TReai = F(目)=1.0 X 1〇-9目4-6.0 X 1〇-7目3+8.5 X 1〇-6目2+0.0183目+0.0007獲得擬合映 射曲線,其中0為入射角,rReal為角度為0的入射光線經(jīng)過透鏡折射后映射在膠片時與膠片 中屯、的距離。
[0103] 本發(fā)明的另一個實施方式提供的實時全景拼接裝置,其中,魚眼圖包括第一魚眼 圓和第二魚眼圓,第一魚眼圓的半徑為R,第一魚眼圓的圓屯、為(xo,yo),第二魚眼圓的半徑 為Ri,第二魚眼圓的圓屯、為(XI,yi)。
[0104] 本發(fā)明的另一個實施方式提供的實時全景拼接裝置,其中,魚眼圖矯正圖的第一 球面模型和第二球面模型與第一魚眼圓和第二魚眼圓中的點相對應(yīng)。
[0105] 本發(fā)明的另一個實施方式提供的實時全景拼接裝置,其中,映射模塊包括W下轉(zhuǎn) 化模塊:
[0106] 第一轉(zhuǎn)化模塊,用于經(jīng)由球面模型上的點p(x,y,z)獲得入射角0和偏移角(1)的大 ??;
[0107] 第二轉(zhuǎn)化模塊,用于基于入射角度、鏡頭視場角度、魚眼圓的半徑獲得半徑 radius;W及
[0108] 第S轉(zhuǎn)化模塊,用于基于半徑radius、偏移角(K魚眼圓屯、坐標(biāo)和原始魚眼圖的寬 度W和高度H獲得球面模型上的點P (X,y,Z)對應(yīng)的紋理坐標(biāo)(U,V)。
[0109] 本發(fā)明的另一個實施方式提供的實時全景拼接裝置,其中,第一轉(zhuǎn)化模塊經(jīng)由球 面模型上的點P (X,y,Z)并根據(jù)公式3:
公
式4: .公式5: O =a 1:an 2(y ,X)獲得入射角目和偏移角4的大小。 、
[0110] 本發(fā)明的另一個實施方式提供的實時全景拼接裝置,其中,第二轉(zhuǎn)化模炔基于公 式6: radius = R XF(目)/F(fov/2)和f OV 獲得中間變量 radius。
[0111] 本發(fā)明的另一個實施方式提供的實時全景拼接裝置,其中,第=轉(zhuǎn)化模炔基于半 徑radius、偏移角d)、魚眼圓屯、坐標(biāo)和原始魚眼圖的寬度W和高度H、公式7:u=(radiusX COS(巫)+xo)/W和公式8: V= (radiusX sin(巫)+yo)/H獲得球面模型上的點p(x,y,z)對應(yīng)的 紋理坐標(biāo)(u,v)。
[0112] 本發(fā)明的方法和裝置的優(yōu)點在于:用于對利用雙魚眼鏡頭拍攝的視頻進(jìn)行實時處 理,W便實時W360度視角觀看視頻。
[01。] 示例性裝置
[0114]在介紹了本發(fā)明示例性實施方式的方法和裝置之后,接下來,介紹根據(jù)本發(fā)明的 另一示例性實施方式的對魚眼鏡頭拍攝的圖像矯正的裝置。
[0115] 所屬技術(shù)領(lǐng)域的技術(shù)人員能夠理解,本發(fā)明的各個方面可W實現(xiàn)為系統(tǒng)、方法或 程序產(chǎn)品。因此,本發(fā)明的各個方面可W具體實現(xiàn)為W下形式,即:完全的硬件實施方式、完 全的軟件實施方式(包括固件、微代碼等),或硬件和軟件方面結(jié)合的實施方式,運(yùn)里可W統(tǒng) 稱為"電路V'模欺'或"系縮'。
[0116] 在一些可能的實施方式中,根據(jù)本發(fā)明的對魚眼鏡頭拍攝的圖像矯正的裝置可W 至少包括至少一個處理單元、W及至少一個存儲單元。其中,所述存儲單元存儲有程序代 碼,當(dāng)所述程序代碼被所述處理單元執(zhí)行時,使得所述處理單元執(zhí)行本說明書上述"示例性 方法"部分中描述的根據(jù)本發(fā)明各種示例性實施方式的在即時通信軟件中訂閱消息的方法 中的步驟。例如,所述處理單元可W執(zhí)行如圖4中所示的步驟110:獲取多個魚眼鏡頭的映射 參數(shù)和鏡頭視場角;步驟120:根據(jù)魚眼鏡頭的映射參數(shù)獲取擬合映射曲線;步驟130:獲取 魚眼圖中第一魚眼圓和第二魚眼圓的圓屯、坐標(biāo)和半徑;步驟140:創(chuàng)建用于魚眼圖矯正圖的 第一球面模型和第二球面模型;步驟150:基于鏡頭視場角、擬合映射曲線、魚眼圓的圓屯、坐 標(biāo)和半徑將第一魚眼圓和第二魚眼圓中的點映射到矯正圖的相應(yīng)的第一球面模型和第二 球面模型上,使得第二球面模型繞Z軸旋轉(zhuǎn)180度,并使得第一球面模型和第二球面模型融 合形成360度的球面模型;步驟160:將使用視頻解碼器對視頻解碼后每一幅圖片繪制到360 度的球面模型上,W便實時觀看全景視頻。
[0117] 下面參照圖7來描述根據(jù)本發(fā)明的運(yùn)種實施方式的對魚眼鏡頭拍攝的圖像矯正的 裝置10。圖7顯示的對魚眼鏡頭拍攝的圖像矯正的裝置10僅僅是一個示例,不應(yīng)對本發(fā)明實 施例的功能和使用范圍帶來任何限制。
[0118] 如圖7所示,對魚眼鏡頭拍攝的圖像矯正的裝置IOW通用計算設(shè)備的形式表現(xiàn)。對 魚眼鏡頭拍攝的圖像矯正的裝置10的組件可W包括但不限于:上述至少一個處理單元16、 上述至少一個存儲單元28、連接不同系統(tǒng)組件(包括存儲單元28和處理單元16)的總線18。
[0119] 總線18表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲器總線或者存儲器控制器、 外圍總線、圖形加速端口、處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。
[0120] 存儲單元28可W包括易失性存儲器形式的可讀介質(zhì),例如隨機(jī)存取存儲器(RAM) 30和/或高速緩存存儲器32,還可W進(jìn)一步只讀存儲器(R0M)34。
[0121] 存儲單元28還可W包括具有一組(至少一個)程序模塊42的程序/實用工具40,運(yùn) 樣的程序模塊42包括但不限于:操作系統(tǒng)、一個或者多個應(yīng)用程序、其它程序模塊W及程序 數(shù)據(jù),運(yùn)些示例中的每一個或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實現(xiàn)。
[0122] 對魚眼鏡頭拍攝的圖像矯正的裝置10也可W與一個或多個外部設(shè)備14(例如鍵 盤、指向設(shè)備、藍(lán)牙設(shè)備等)通信,還可與一個或者多個使得用戶能與該對魚眼鏡頭拍攝的 圖像矯正的裝置10交互的設(shè)備通信,和/或與使得該對魚眼鏡頭拍攝的圖像矯正的裝置10 能與一個或多個其它計算設(shè)備進(jìn)行通信的任何設(shè)備(例如路由器、調(diào)制解調(diào)器等等)通信。 運(yùn)種通信可W通過輸入/輸出(I/O)接口 22進(jìn)行。并且,對魚眼鏡頭拍攝的圖像矯正的裝置 10還可W通過網(wǎng)絡(luò)適配器20與一個或者多個網(wǎng)絡(luò)(例如局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公 共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器20通過總線18與對魚眼鏡頭拍攝的圖像 矯正的裝置10的其它模塊通信。應(yīng)當(dāng)明白,盡管圖中未示出,可W結(jié)合對魚眼鏡頭拍攝的圖 像矯正的裝置10使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設(shè)備驅(qū)動器、冗余處 理單元、外部磁盤驅(qū)動陣列、RAID系統(tǒng)、磁帶驅(qū)動器W及數(shù)據(jù)備份存儲系統(tǒng)等。
[012引示例性程序產(chǎn)品
[0124] 在一些可能的實施方式中,本發(fā)明的各個方面還可W實現(xiàn)為一種程序產(chǎn)品的形式 (如圖6所示),其包括程序代碼,當(dāng)所述程序產(chǎn)品在終端設(shè)備上運(yùn)行時,所述程序代碼用于 使所述終端設(shè)備執(zhí)行本說明書上述"示例性方法"部分中描述的根據(jù)本發(fā)明各種示例性實 施方式的在即時通信軟件中訂閱消息的方法中的步驟,例如,所述終端設(shè)備可W執(zhí)行如圖4 中所示的步驟110:獲取多個魚眼鏡頭的映射參數(shù)和鏡頭視場角;步驟120:根據(jù)魚眼鏡頭的 映射參數(shù)獲取擬合映射曲線;步驟130:獲取魚眼圖中第一魚眼圓和第二魚眼圓的圓屯、坐標(biāo) 和半徑;步驟140:創(chuàng)建用于魚眼圖矯正圖的第一球面模型和第二球面模型;步驟150:基于 鏡頭視場角、擬合映射曲線、魚眼圓的圓屯、坐標(biāo)和半徑將第一魚眼圓和第二魚眼圓中的點 映射到矯正圖的相應(yīng)的第一球面模型和第二球面模型上,使得第二球面模型繞Z軸旋轉(zhuǎn)180 度,并使得第一球面模型和第二球面模型融合形成360度的球面模型;步驟160:將使用視頻 解碼器對視頻解碼后每一幅圖片繪制到360度的球面模型上,W便實時觀看全景視頻。
[0125] 所述程序產(chǎn)品可W采用一個或多個可讀介質(zhì)的任意組合??勺x介質(zhì)可W是可讀信 號介質(zhì)或者可讀存儲介質(zhì)。可讀存儲介質(zhì)例如可W是一一但不限于一一電、磁、光、電磁、紅 外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意W上的組合。可讀存儲介質(zhì)的更具體的例子 (非窮舉的列表)包括:具有一個或多個導(dǎo)線的電連接、便攜式盤、硬盤、隨機(jī)存取存儲器 (RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器化PROM或閃存)、光纖、便攜式緊湊盤只 讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。
[0126] 如圖8所示,描述了根據(jù)本發(fā)明的實施方式的在即時通信軟件中訂閱消息的程序 產(chǎn)品50,其可W采用便攜式緊湊盤只讀存儲器(CD-ROM)并包括程序代碼,并可W在終端設(shè) 備,例如個人電腦上運(yùn)行。然而,本發(fā)明的程序產(chǎn)品不限于此,在本文件中,可讀存儲介質(zhì)可 W是任何包含或存儲程序的有形介質(zhì),該程序可W被指令執(zhí)行系統(tǒng)、裝置或者器件使用或 者與其結(jié)合使用。
[0127] 可讀信號介質(zhì)可W包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載 了可讀程序代碼。運(yùn)種傳播的數(shù)據(jù)信號可W采用多種形式,包括一一但不限于一一電磁信 號、光信號或上述的任意合適的組合??勺x信號介質(zhì)還可W是可讀存儲介質(zhì)W外的任何可 讀介質(zhì),該可讀介質(zhì)可W發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者 與其結(jié)合使用的程序。
[01%]可讀介質(zhì)上包含的程序代碼可W用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一一但不限于一一 無線、有線、光纜、RF等等,或者上述的任意合適的組合。
[0129] 可W W-種或多種程序設(shè)計語言的任意組合來編寫用于執(zhí)行本發(fā)明操作的程序 代碼,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言一諸如化va、C++等,還包括常規(guī)的 過程式程序設(shè)計語言一諸如"C"語言或類似的程序設(shè)計語言。程序代碼可W完全地在用戶 計算設(shè)備上執(zhí)行、部分地在用戶設(shè)備上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算 設(shè)備上部分在遠(yuǎn)程計算設(shè)備上執(zhí)行、或者完全在遠(yuǎn)程計算設(shè)備或服務(wù)器上執(zhí)行。在設(shè)及遠(yuǎn) 程計算設(shè)備的情形中,遠(yuǎn)程計算設(shè)備可W通過任意種類的網(wǎng)絡(luò)一一包括局域網(wǎng)(LAN)或廣 域網(wǎng)(WAN)-連接到用戶計算設(shè)備,或者,可W連接到外部計算設(shè)備(例如利用因特網(wǎng)服務(wù) 提供商來通過因特網(wǎng)連接)。
[0130] 應(yīng)當(dāng)注意,盡管在上文詳細(xì)描述中提及了對魚眼鏡頭拍攝的圖像矯正的裝置或子 裝置,但是運(yùn)種劃分僅僅并非強(qiáng)制性的。實際上,根據(jù)本發(fā)明的實施方式,上文描述的兩個 或更多裝置的特征和功能可W在一個裝置中具體化。反之,上文描述的一個裝置的特征和 功能可W進(jìn)一步劃分為由多個裝置來具體化。
[0131] 此外,盡管在附圖中W特定順序描述了本發(fā)明方法的操作,但是,運(yùn)并非要求或者 暗示必須按照該特定順序來執(zhí)行運(yùn)些操作,或是必須執(zhí)行全部所示的操作才能實現(xiàn)期望的 結(jié)果。附加地或備選地,可W省略某些步驟,將多個步驟合并為一個步驟執(zhí)行,和/或?qū)⒁粋€ 步驟分解為多個步驟執(zhí)行。
[0132] 雖然已經(jīng)參考若干【具體實施方式】描述了本發(fā)明的精神和原理,但是應(yīng)該理解,本 發(fā)明并不限于所公開的【具體實施方式】,對各方面的劃分也不意味著運(yùn)些方面中的特征不能 組合W進(jìn)行受益,運(yùn)種劃分僅是為了表述的方便。本發(fā)明旨在涵蓋所附權(quán)利要求的精神和 范圍內(nèi)所包括的各種修改和等同布置。
【主權(quán)項】
1. 一種實時全景拼接方法,其中,所述方法包括以下步驟: 步驟1:獲取多個魚眼鏡頭的映射參數(shù)和鏡頭視場角; 步驟2:根據(jù)魚眼鏡頭的映射參數(shù)獲取擬合映射曲線; 步驟3:獲取魚眼圖中第一魚眼圓和第二魚眼圓的圓心坐標(biāo)和半徑; 步驟4:創(chuàng)建用于魚眼圖矯正圖的第一球面模型和第二球面模型; 步驟5:基于鏡頭視場角、擬合映射曲線、魚眼圓的圓心坐標(biāo)和半徑將第一魚眼圓和第 二魚眼圓中的點映射到矯正圖的相應(yīng)的第一球面模型和第二球面模型上,使得第二球面模 型繞Z軸旋轉(zhuǎn)180度,并使得第一球面模型和第二球面模型融合形成360度的球面模型;以及 步驟6:將使用視頻解碼器對視頻解碼后每一幅圖片繪制到360度的球面模型上,以便 實時觀看全景視頻。2. 根據(jù)權(quán)利要求1所述的實時全景拼接方法,其中,在上述步驟1中,魚眼鏡頭映射參數(shù) 和鏡頭視場角通過魚眼鏡頭供應(yīng)商獲得。3. 根據(jù)權(quán)利要求1所述的實時全景拼接方法,其中,在上述步驟2中,根據(jù)鏡頭映射參數(shù) 獲取擬合映射曲線是指利用映射參數(shù)結(jié)合公式1: rReai = F( Θ) = 1 · 〇 X 10-9θ4-6 · 0 X 10-7θ3+8 · 5 X 10-6θ2+〇 · 0183Θ+0 · 〇〇〇7獲得擬合映射曲 線,其中Θ為入射角,rRe3al為角度為Θ的入射光線經(jīng)過透鏡折射后映射在膠片時與膠片中心 的距離。4. 根據(jù)權(quán)利要求1所述的實時全景拼接方法,其中,在上述步驟3中,魚眼圖包括第一魚 眼圓和第二魚眼圓,第一魚眼圓的半徑為R,第一魚眼圓的圓心坐標(biāo)為( XQ,yQ),第二魚眼圓 的半徑為心,第二魚眼圓的圓心坐標(biāo)為(XdPy1)。5. 根據(jù)權(quán)利要求1所述的實時全景拼接方法,其中,在上述步驟5中,魚眼圖矯正圖的第 一球面模型和第二球面模型與第一魚眼圓和第二魚眼圓中的點相對應(yīng)。6. 根據(jù)權(quán)利要求1所述的實時全景拼接方法,其中,上述步驟5還包括以下步驟: 步驟5a:由球面模型上的點p(x,y,z)獲得入射角Θ和偏移角φ的大??; 步驟5b:基于入射角度、鏡頭視場角度、魚眼圓的半徑獲得半徑radius;以及 步驟5c:基于半徑radius、偏移角Φ、魚眼圓心坐標(biāo)和原始魚眼圖的寬度W和高度H獲得 球面模型上的點P (X,y,z)對應(yīng)的紋理坐標(biāo)(u,V)。7. 根據(jù)權(quán)利要求6所述的實時全景拼接方法,其中,在上述步驟5a中,由球面模型上的 點p(x,y,z)根據(jù)公式3:公式5:?=a tan 2(y,x)獲得入射角Θ和偏移角φ的大小。8. 根據(jù)權(quán)利要求7所述的實時全景拼接方法,其中,在上述步驟5b中,基于公式6: radius = RXF(9)/F(fov/2)和fov 獲得中間變量 radius。9. 根據(jù)權(quán)利要求8所述的實時全景拼接方法,其中,在上述步驟5c中,基于半徑radius、 偏移角Φ、魚眼圓心坐標(biāo)和原始魚眼圖的寬度W和高度Η、公式7 :u= (radius X cos(O) + 義〇)/1和公式8:¥=(瓜(1;[118\8;[11(4))+7())/!1獲得球面模型上的點。(1,7,2)對應(yīng)的紋理坐標(biāo) (u,v)〇10. -種實時全景拼接裝置,其中,所述裝置包括: 第一數(shù)據(jù)獲取模塊,用于獲取魚眼鏡頭映射參數(shù)和鏡頭視場角; 映射曲線擬合模塊,用于根據(jù)鏡頭映射參數(shù)獲取擬合映射曲線; 第二數(shù)據(jù)獲取模塊,獲取魚眼圖中第一魚眼圓和第二魚眼圓的圓心坐標(biāo)和半徑; 模型創(chuàng)建模塊,用于創(chuàng)建用于魚眼圖矯正圖的第一球面模型和第二球面模型; 映射模塊:基于鏡頭視場角、擬合映射曲線、魚眼圓的圓心坐標(biāo)和半徑將第一魚眼圓和 第二魚眼圓中的點映射到矯正圖的相應(yīng)的第一球面模型和第二球面模型上,使得第二球面 模型繞Z軸旋轉(zhuǎn)180度,并使得第一球面模型和第二球面模型融合形成360度的球面模型;以 及 繪制模塊:用于將使用視頻解碼器對視頻解碼后的每一幅圖片繪制到360度的球面模 型上,以便實時觀看全景視頻。11. 根據(jù)權(quán)利要求10所述的實時全景拼接裝置,其中,魚眼鏡頭映射參數(shù)和鏡頭視場角 通過魚眼鏡頭供應(yīng)商獲得。12. 根據(jù)權(quán)利要求10所述的實時全景拼接裝置,其中,根據(jù)鏡頭映射參數(shù)獲取擬合映射 曲線是指利用映射參數(shù)結(jié)合公式1: rReai = F( Θ) = 1 · 〇 X 10-9θ4-6 · 0 X 10-7θ3+8 · 5 X 10-6θ2+〇 · 0183Θ+0 · 〇〇〇7獲得擬合映射曲 線,其中Θ為入射角,rRe3al為角度為Θ的入射光線經(jīng)過透鏡折射后映射在膠片時與膠片中心 的距離。13. 根據(jù)權(quán)利要求10所述的實時全景拼接裝置,其中,魚眼圖包括第一魚眼圓和第二魚 眼圓,第一魚眼圓的半徑為R,第一魚眼圓的圓心坐標(biāo)為( XQ,yQ),第二魚眼圓的半徑為R1,第 二魚眼圓的圓心坐標(biāo)為(Xi,yi)。14. 根據(jù)權(quán)利要求10所述的實時全景拼接裝置,其中,魚眼圖矯正圖的第一球面模型和 第二球面模型與第一魚眼圓和第二魚眼圓中的點相對應(yīng)。15. 根據(jù)權(quán)利要求10所述的實時全景拼接裝置,其中,映射模塊包括以下轉(zhuǎn)化模塊: 第一轉(zhuǎn)化模塊,用于經(jīng)由球面模型上的點P (X,y,Z)獲得入射角θ和偏移角φ的大小; 第二轉(zhuǎn)化模塊,用于基于入射角度、鏡頭視場角度、魚眼圓的半徑獲得半徑radius;以 及 第三轉(zhuǎn)化模塊,用于基于半徑radius、偏移角Φ、魚眼圓心坐標(biāo)和原始魚眼圖的寬度W 和高度H獲得球面模型上的點p (X,y,z)對應(yīng)的紋理坐標(biāo)(u,V)。16. 根據(jù)權(quán)利要求15所述的實時全景拼接裝置,其中,第一轉(zhuǎn)化模塊經(jīng)由球面模型上的 點p(x,y,z)并根據(jù)公式3:Φ = atan2(y,x)獲得入射角Θ和偏移角φ的大小。17. 根據(jù)權(quán)利要求16所述的實時全景拼接裝置,其中,第二轉(zhuǎn)化模炔基于公式6:radiuS =尺\(yùn)?(9)/^(;1^0¥/2)和;1^0¥獲得中間變量瓜(1;[118。18. 根據(jù)權(quán)利要求17所述的實時全景拼接裝置,其中,第三轉(zhuǎn)化模炔基于半徑radius、 偏移角Φ、魚眼圓心坐標(biāo)和原始魚眼圖的寬度W和高度Η、公式7 :u= (radius X cos(O) + 義〇)/1和公式8:¥=(瓜(1;[118\8;[11(4))+7())/!1獲得球面模型上的點。(1,7,2)對應(yīng)的紋理坐標(biāo) (u,v)〇
【文檔編號】G06T3/00GK106023070SQ201610417580
【公開日】2016年10月12日
【申請日】2016年6月14日
【發(fā)明人】賈順, 劉靖康
【申請人】北京嵐鋒創(chuàng)視網(wǎng)絡(luò)科技有限公司