您的瀏覽器不支援JavaScript語法,但是並不影響您獲取本網站的內容。

技術探索

360度全景影像 / 影片拼接技術

清華大學  曾聖博 葉碩涵 方姿婷 周欣融 賴尚宏

影像/影片拼接技術在VR/AR等應用日益成熟,未來發展空間讓人期待。

影像/影片拼接技術在VR/AR等應用日益成熟,未來發展空間讓人期待。

影像/影片拼接(Image/video stitching)是藉由結合多個具備重複區域的影像/影片來產生視野更廣之全景影片的一種影片處理技術,而360°全景意指拼接出的影像/影片能夠以任何角度進行觀賞,傳統上是使用軟體來達成此目標。近年來,由於GPU加速運算的廣泛使用和虛擬實境(Virtual Reality)技術的應用推廣,使得此技術逐漸成熟,已有多項產品問世,甚至能達到即時運算(Real-time)高解析度影像/影片(4K)的程度,事實上,影像/影片拼接技術已廣泛被應用於攝影、緊急救援、乃至軍事監控等面向。本文將深入淺出介紹此熱門技術的運作原理及現存之產品。

影像 / 影片拼接技術介紹

360°影像/影片拼接技術主要可分為三大階段:平面投影轉換(Homography)、影像扭曲(Warping)、影像融合(Blending),透過此三大步驟可將多台(常為6台)相機/攝影機所拍攝的影像/影片拼接為360°全景影像/影片,此外還有透過曝光校正(Exposure Correction)、顏色校正(Color Correction)等技術來提升拼接效果的作法。此技術的主要瓶頸在於如何準確地計算不同相機間的影像對應關係、處理各相機由於位置差異而造成的曝光與視差問題、以及如何拼接出無縫且自然的全景影像/影片,本文將針對主要的三大階段逐一介紹。

平面投影轉換(Homography)

要求出兩張影像的轉換的矩陣H,需要知道4組特徵點的對應關係,透過Homography,我們能將兩張有重疊區域的影像疊合起來。

但我們知道,兩張圖片之間不只會有4組特徵點,若其他點與我們求出的對應關係不相容,將無法找到將兩影像中的所有特徵點完美對應的矩陣H,雖然無法找到完美的Homography,但盡可能地找出誤差最小的最佳解是我們的目標。在實際應用時,常會有少數的錯誤的特徵點對應夾雜在所有自動偵測到的特徵點對應中,因此我們就需要接下來要介紹的RANSAC演算法來達成此目標。

RANSAC(Random Sample Consensus, 隨機抽樣一致算法),此演算法透過反覆選擇數據中的一隨機子集合,求得最接近該數據的數學模型。若以上例而言,選中的子集合為欲對應的特徵點集合,求得的數學模型為對應這組子集誤差最少的Homography。一開始需要決定要選擇多少點,算出數學模型後,將沒被選到的點帶入模型中,若與模型相符,則將點加入子集合,找到所有符合模型的點。重複計算多次數學模型後,比較子集合大小,子集合含有最多點的模型即為我們要求的解。RANSAC是一種隨機抽樣的算法,每次運算出的結果不一定會相同,但因是從不斷重複計算中求得的最佳解,使得結果具有高度的可靠性。

圖1 (Homography示意圖)左圖為特徵點對應示意圖,兩張影像有許多相對應特徵點,需要透過Homography將重疊部分疊合在一起。右圖為多張影像的Homography示意圖,需要先透過特徵點找出影像間的疊合關係,選定一影像為目標平面,最後將其他應像投影於目標平面上。

圖1 (Homography示意圖)左圖為特徵點對應示意圖,兩張影像有許多相對應特徵點,需要透過Homography將重疊部分疊合在一起。右圖為多張影像的Homography示意圖,需要先透過特徵點找出影像間的疊合關係,選定一影像為目標平面,最後將其他應像投影於目標平面上。

圖像扭曲(Warping)

我們利用前面提到的特徵點的對應來決定在空間中影像的變形。首先會有一張參考圖,將其餘影像投影至參考圖為主的座標空間可以達到影像拼接之效果,在投影時往往會造成影像改變原有的形狀,此為變形,使得兩張影像可以疊合。藉由幾何變換得到的資訊可以決定影像變形方式。

圖2(Image warping示意圖) 圖(a)為輸入影像左圖,圖(b)為輸入影像右圖。設圖(a)為參考圖,若要完成影像拼接,必須將圖(b) warp至圖(a)。正向映射結果為圖(c),可以看到變形越大的地方會有破損。逆向映射結果圖(d)為完整的圖。

圖2(Image warping示意圖) 圖(a)為輸入影像左圖,圖(b)為輸入影像右圖。設圖(a)為參考圖,若要完成影像拼接,必須將圖(b) warp至圖(a)。正向映射結果為圖(c),可以看到變形越大的地方會有破損。逆向映射結果圖(d)為完整的圖。

圖3:(球體投影示意圖)為二維影像與球形影像坐標系的轉換。在二維影像中p(x,y)可以轉換為球形上的直角坐標P(rsinθcosφ,rsinθsinφ,rcosθ)

圖3:(球體投影示意圖)為二維影像與球形影像坐標系的轉換。在二維影像中p(x,y)可以轉換為球形上的直角坐標P(rsinθcosφ,rsinθsinφ,rcosθ)

影像融合(Blending)

影像融合(Blending)是影像拼接的最後幾個步驟之一,目的是將warping過後的影像進行合成,讓影像兩兩之間的重疊部分產生一種漸變的效果,使得數張不同的影像看起來像同一張圖。目前已經有許多Blending的演算法,以下針對最基本和常見的Feather Blending以及Multi-band blending來進行介紹。

圖4 (blending示意圖)圖(a)Multi-band Blending結果、圖(b)Feather Blending結果、圖(c)Multi-band Blending金字塔示意圖

圖4 (blending示意圖)圖(a)Multi-band Blending結果、圖(b)Feather Blending結果、圖(c)Multi-band Blending金字塔示意圖

現存影片拼接技術介紹

1.VideoStitch
VideoStitch為歐洲新創公司,提供創作虛擬實境影片的軟體解決方案,主要產品為VideoStitch Studio和VahanaVR,前者了簡單易用的使用介面,藉由輸入多個涵蓋重複區域的影片,可以進行影片同步(synchronization)、影片穩定(stabilization)、曝光與顏色校正(exposure and color correction)等調整,並自動運算產生高解析度(4K)的360°全景影片;後者提供了實況虛擬實境(live VR)之能力,能即時擷取輸入影片,運算產生高解析度之360全景影片,並輸出串流至VR撥放環境如VR眼鏡或影片播放平台。

2.Kolor Autopano Video
Kolor是最早認知到此相關技術之價值並投入研發的公司之一,主要目標是自動化的創造360°全景影片,其產品Autopano Video是現今最熱門、最多人使用的影片拼接軟體之一,其重要特點是能夠透過簡單的三步驟:使用camera rig拍攝影片、拼接出360*180度、發布於網路或其他撥放環境,來組合出包含360°全景的影片,且提供Kolor Eyes Player來觀看360°場景。

3.SkyStitch
SkyStitch是新加坡大學學生設計的創新視訊監控系統,透過多台四軸飛行器裝載的攝影機進行拍攝,並進行即時的全景影片輸出,非常適合大場景且高畫質的視訊監控應用,如災難緊急救援,即使仍是原型系統,SkyStitch已經可以在50毫秒(milliseconds)內拼接12個HD畫質的影片,並支援20fps的影片輸出,其商業價值無可限量。

4.Video Stitching for the U.S. Army
RMSA(Reduced Manning Situational Awareness)是美國陸軍所研發的監控系統,其使用可見光及紅外線攝影機進行拍攝及即時拼接,提供持續的全景視訊監控。當RSMA監測到物體移動時,監控螢幕會出現紅色監控框,追蹤移動目標並提供視訊放大功能,且偵測物體移動的演算法可針對應用場景進行調整,可應用於複雜場景。

本文介紹了360度影像/影片拼接技術的三個主要步驟,包含平面投影轉換(Homography)、圖像扭曲(Warping)以及影像融合(Blending)的基本理論與實作方式,並進一步介紹四個重要的相關系統及產品,在VR/AR等應用陸續成熟的現在,相信此技術之價值將越來越重要,未來將會有極廣的發展空間。

作者介紹
曾聖博 (清華大學資訊工程學系電腦視覺實驗室研究助理)

葉碩涵 (清華大學資訊工程學系碩士生)
周欣融 (清華大學資訊工程學系電腦視覺實驗室研究助理)
方姿婷 (清華大學資訊工程學系碩士生)
賴尚宏 (清華大學資訊工程學系教授)

參考文獻

[1]M. Brown and D. G. Lowe. Automatic panoramic image stitching using invariant features. International Journal on Computer Vision, 74:59-73, 2007.
[2]Image Pyramid (2016), https://commons.wikimedia.org/wiki/File:Image_pyramid.svg
[3]P. J. Burt and Ε. H. Adelson, "The Laplacian pyramid as a compact image code", IEEE Trans. Commun., vol. COM-31, pp. 532-540, Apr. 1983.
[4]Multi-band Blending (2016), http://www.voidcn.com/blog/real_myth/article/p-6176761.html
[5]Real-Time video Stitching Tools, https://www.mytechlogy.com/IT-blogs/9702/5-real-time-video-stitching-tools/
[6]SkyStitch,http://www.comp.nus.edu.sg/~xiangyun/skystitch/index.html#
[7]VideoStitch,http://www.video-stitch.com/
[8]Kolor,www.kolor.com/
[9]The Top Video Stitching Software for Perfect 360 Degree View,https://filmora.wondershare.com/video-editing-tips/video-stitching-softwares.html
[10]R. Szeliski, Computer vision: algorithms and applications. Springer Science & Business Media, 2010.
[11]Spherical coordinate system,https://en.wikipedia.org/wiki/Spherical_coordinate_system