全景VR視頻中如何減少扭曲和變形?

2026-01-04 10:43:26 / 五人足球世界杯

把一個球面展開(unwarp)則成了平面,而把平面扭曲(warp)則成了球。

我們看一眼世界地圖,有什麼不妥呢?

對比一下地球儀,我們發現,南極洲變形太嚴重了。

南極洲在平面地圖上和地球儀上的形狀對比:

圖中越靠近極點,圖像被拉伸得越厲害。

而如果把球面映射在正方形的六個面上,面積則是正常的。

—————————————————————————————————————所以大家大概猜到為什麼球形視頻不好了吧?我們來玩個遊戲,把貼在地球儀上的紙糊在一睹平面的牆上,有兩種方法。

equirectangular projection

圖片來源:https://www.youtube.com/watch?v=3Ic5ZIf74Ls簡而言之就是把球體捲成一個圓柱體捲兒,然後展開成長方形。

Boggs eumorphic projection

圖片來源:https://www.youtube.com/watch?v=CPQZ7NcQ6YQ把球體切三刀分成六塊

注意這裡還是球弧,也是曲面,這個曲面也要慢慢向外展開。

最後形成一張世界地圖。

以上兩種方法都有致命的弱點,就是極點被四分五裂了!!這還只是靜止的圖像啊,如果是會動的視頻呢?有個像素點在極點輕輕的移動,就變成了遠距離的快速移動啊!(就好比很多條經線在赤道上明明離得很遠,但是越靠近極點距離就越來越近,直至重合。)這是因為受到angular version效果的影響,同理如果你本來是直線運動,結果到了這裡就成了曲線運動,而且越靠近極點,曲得越厲害,這些非線性運動還有受極點的影響會損失25%的像素。同樣,這也會發生在360°視頻上。

你可以看到該視頻的頂部和底部的像素都被極大地拉伸了。

事實上,對於一張圖像來說,圖像視覺質量最好的是南北兩極(極圈內),而質量最差的是南回歸線往北、北回歸線往南的赤道部分(因為這裡被壓縮了?)。

被拉伸得越厲害的地方,得到的像素越多。其圖像質量也就越高。

而目前可以投影的是四種幾何體

把球形視頻投影到正方體上

因為極點的損失是一個比較嚴重的問題,所以我們探索了另外一種方式:把『球體』

變成『方體』,或者說『把球形的視頻映射成方形的。』它的表面積發生了一些變化。

把球形視頻映射在方盒子上,方盒子的每個面就對應著用戶頭部轉向的留個方向。

我們把這個盒子展開

同理,我們截取360視頻中的一幀為例,將它切成六等份,代表用戶頭部的六個方向。

把頂部和底部壓成同等大小。

讓把它拼成一個盒子。

它不僅沒有丟失像素,而且文件體積減少了25%。所以它很適合下載下來觀看的全景視頻。每個面的質量是相等的,所以能夠保持很好的用戶體驗。

我們把全景視頻像素球放進這個盒子里。

將這個球放大。

填充滿整個方體。

下圖是一張鋪在平面上的全景照片,我假設我們現在把它映在了一張紙上,我把它切成六塊(如下圖),我們來玩做紙盒的遊戲吧~上面切一刀,下面切一刀,中間切三刀。

然後把上下壓縮成和其他塊等寬的大小,這時就可以拼盒子了。你看,上面和下面的兩個面(對應著世界地圖的南極圈和北極圈)被壓縮得很厲害。這裡至少損失了15%的像素,還有一些必須丟掉的像素,比如變形厲害的。

又因為視頻和圖像一樣都是以方形的形狀傳輸的,所以為了節約面積。拼拼圖的時候一樣,把它打亂了順序。

最後還原。

你在球形視頻中用cursor(類比一束理想的射線)選擇一個點,那麼這個點在方形視頻中對應哪裡呢?方形視頻最大的問題就在於它的八個稜角,在接近方形稜角的地方,像素很容易重合,現在的處理方法是將這八個角的像素密集程度平均化。

合成的全景圖片或者視頻都有一定程度的扭曲,這是不可避免的。主要的原因是(1)鏡頭透鏡的非線性誤差 (2) 相機內部感光元器件的誤差。 軟體在合成全景的時候是需要計算出這2個參數的,但實際上這個誤差是一個非常複雜的參數,只能求個近似值,這個近似值的準確程度就是全景圖片最終的扭曲程度。減少扭曲的方法是:(1)使用同一個相機拍攝,相機越多,誤差越大。(2)保證拍多張照片時,鏡頭在同一位置(3)使用高質量的鏡頭和相機更多解釋參見: 全景製作常見問題|360全景拍攝,720全景,三維全景,全景圖片,虛擬漫遊,VR視頻,全景航拍-杭州獵途360全景製作

推薦閱讀: