AMD如何把「拍全景」這件事,簡化到傻瓜也能做
ChinaJoy期間舉行的CGDC(中國遊戲開發者大會)大會上,AMD資深軟體工程師解慶春受邀發表了名為「基於VR全景直播需求的實時全景拼接技術與方案」的演講,向與會者介紹了AMD的實時全景拼接方案RadeonLoom及其背後的技術。會後,87870獨家採訪了解慶春,後者詳細闡述了AMD解決了全景拼接技術的哪些痛點,Loom又將為VR拍攝行業帶來怎樣的變革。
丨把全景拼接做到「黑匣子」中
全景的英文名稱叫「Panorama」,在2013年中國攝影出版社出版的《360°全景攝影--從入門到精通》一書中,將「全景」定義為把相機環拍360°拍攝的一組或多組照片拼接成一個全景圖像。
21世紀初,谷歌街景為代表的全景內容應用的出現,以及Ladybug這種一次成像設備的問世,極大的推動了全景技術的發展。而隨著近幾年以OculusRift、Cardboard為代表的消費級虛擬現實終端進入市場,更加娛樂化的全景視頻、VR影視也迎來爆發,僅僅在2016年就有近百萬的360°視頻被上傳至Facebook、YouTube等平台。
在這裡我們不由得產生了一個疑問:全景拍攝不應該是相機廠商或者視頻平台的事情,和AMD這樣研發CPU、GPU的半導體公司又有什麼關係?
解慶春解釋道,目前全景視頻/照片的製作主要有兩種手段,一種是像GoPro、Jaunt這樣,設置一組相機陣列拍攝圖片/視頻傳到電腦上,通過後期軟體拼接處理生成全景圖片/視頻;另一種機內拼接,原理基本一樣,只是在相機陣列(Rig)內加入了一個計算模塊(CPU、GPU等),處理圖像視頻的拼接。
而不論是在機內還是在PC上,都是在AMD提供的CPU、GPU中,完成全景拼接的各個工序。在過去,相機廠商和拼接軟體開發商,需要自己去研究拼接的演算法,研究如何基於GPU實現全景拼接的加速。而現在,基於AMD的Radeon Loom,他們只需要設置好鏡頭拍攝,然後調用相關的介面即可完成全景圖像視頻的拼接,軟體的處理都會在AMD處理器中自動完成。
「AMD通過Radeon Loom把多個鏡頭拍攝的單獨圖像,合成全景圖像的整個過程,全都裝進了一個黑匣子里,簡化了相機廠商的工作。我認識一家傳統相機廠商,他們很擅長拍攝參數調優、鏡頭矯正這些工作, Radeon loom幫他們解決了圖像處理這些他們不擅長的工作,這樣他們就可以簡單快速的開發出性能強大的全景相機。」
而基於GPU異構加速的計算視覺加速框架OpenVX,Radon Loom大大提升了全景拼接尤其是實時拼接的處理能力。解慶春介紹,Loom方案最多可以支持31個鏡頭的相機陣列的離線拼接,生成8K*4K的畫面;實時拼接上,則可以支持24個鏡頭組成的相機陣列,生成4K*2K@30fps的全景視頻流,用於VR或者全景直播。
丨從拍攝到成像,Loom解決了全景拍攝的哪些問題
如圖所示,全景拍攝想要實時在機內完成拼接處理。需要經歷圖像拍攝(cameras)、傳輸到緩存(Input buffers)、RGB色度空間轉換(CSC to RGB & scale)、鏡頭矯正(Lens correction)、扭曲投影球面(Warp toequirectangular)、曝光補償(Exposure compensation)、尋找接縫(Seam find)、融合(Blend & Merge),最終直接或者經過壓縮/解壓輸出到顯示終端(電腦屏幕、VR頭顯等等)。
「上圖的方案,簡單來說,就是把多個鏡頭拍攝的圖像,通過連接線,以SDI連接線且採集卡支持DirectGMA傳輸特性為例,圖像數據流直接傳輸到GPU緩存,然後在緩存中經過一系列的處理,最終合成一張全景的圖像。」解慶春進一步解釋道。「而Loom的核心,就是把拼接過程中每一步的核心演算法,比如RGB色度空間轉換、鏡頭畸變矯正等等,基於OpenVX kernal函數實現,並進行封裝,用戶只需要調用CSC、Warp、Blend等介面,就可以完成視頻的拼接。」
而在這些演算法中,解慶春著重介紹了Loom在圖像融合上使用的多頻段融合演算法。融合(Blend)指的是融合不同圖像之間的重疊部分,一般使用的是線性加權的演算法進行融合。該方法的效果並不理想,而Multi-Band融合演算法可以兼顧拼縫附近的細節特徵和大尺度上兩張圖片的宏觀特徵,圖像的宏觀特徵在它的低頻分量圖裡,而局域特徵在高頻分量圖裡。所以,把圖像分解為不同頻帶的分量,對這些分量加和,效果如下圖所示,使用這種演算法融合得到的全景圖像,相鄰鏡頭獲取的畫面之間過渡的更加柔和自然,看起來更像是一張完整的圖片。
該演算法融合效果雖好,但對於計算量要求較大,它需要創建多座金字塔並對金字塔進行各種運算,圖像像素較高時,很難在目前主流CPU上要達到實時。Radeon Loom實現了Multi-Band融合演算法的GPU異構加速,效果很好。
丨3D?光流?
「深圳視覺科技此前發布的Z CAM S1 就採用了AMD Radeon LOOM的參考代碼,並在此基礎上將其產品化,融入本身軟體。目前,已有數家國內的相機開發商在和AMD合作。」而AMD在全景實時拼接領域接下來的目標,解慶春表示,是要攻克3D這一難題。
目前市面上,已有不少的3D VR相機,但在解慶春看來,這其中絕大多數都是偽3D。
「現在絕大多數的3D全景相機,通過拼接完成一張全景圖,考慮人眼瞳距帶來的視差,在投影中心往左偏移一個角度形成左眼視圖,往右偏移一個角度形成右眼視圖,為雙眼輸出不同的圖像視圖,從而產生空間感,製作3D效果。」
解慶春認為,真正的3D是像Facebook的Surround 360一樣,周圍的14個相機同時工作,拼接成左眼全景視圖和右眼全景視圖(左右全景圖像均用到了14個相機的圖像, 而非左邊用7個, 右邊用7個。)
此外,解慶春還談到了最近大火的光流拼接演算法。
「我知道Surround 360用到了光流拼接演算法,這種演算法是根據灰度值的變化,計算空間中每一個像素的移動,尋找這個像素在下一幀畫面中的位置。」
「但是這種演算法,目前存在兩個很大的問題,」解慶春進一步解釋。「第一,光源的變化、運動的速度以及雜訊的影響等多種因素影響著光流演算法的有效性,運動速度即光流法計算像素在空間中的運動,以目前的技術一旦像素點在兩幀畫面之間的距離過大,就會出現問題,也就是不能用於拍攝高速畫面。第二,光流法需要對每一個像素進行實時計算,計算量過大,很難在異構平台上實現加速,也就是說,光流法的全景相機很難用於VR直播。」
雖然Surround 360得到了一些專業電影人士的好評,但是光流法目前依然存在很多難以攻克的問題,所以解慶春相信,在接下來很長的一段時間,RadeonLoom這樣的特徵拼接法(Featurebased)依然會是全景拼接的主流演算法。同時我們也期待AMD 3D方案和Surround 360 x24/x6 方案儘快落地。
點擊展開全文


※新谷歌眼鏡售價¥12000,迪士尼擬終止與Netflix合作
※掀起過蛋椅潮流的這家廠商,已經想好了下一代VR爆品
※Dota 2冠軍賽加入VR直播,iPhone 8或配深度感知前置攝像頭
※Oculus內容副總裁:搞定漫威很難,但意義非凡
※Pico Tracking Kit圖賞:另闢蹊徑的完整定位交
TAG:87870虛擬現實 |
※標準的俯卧撐做不來,這3種「簡化版」,可能會有意想不到的效果
※繁簡體一般都很像,為何「聽」卻被簡化成「聽」,前後完全不同?
※簡化字到底好不好,為何那麼多朝代都推行簡化字?特別是這個朝代
※「窮」與「丑」都是簡化字,未簡化前是什麼意思?
※寫書法該怎樣對待簡化字,一次全講清楚了!
※我的if else代碼純凈無暇,一個字也不能簡化
※書法作品是寫簡化字還是繁體字?啟功先生這個表率做得好
※谷歌開源場景簡化工具Seurat,在一體機上實現更好渲染
※?姑娘,把你的愛情簡化一點,才能愛得輕鬆!
※姑娘,把你的愛情簡化一點,才能愛得輕鬆!
※護膚步驟不是越做加法就越好,要學會適當的簡化
※抹茶是中國的傳統文化,而且還只是簡化版,但卻被一個人直接廢除
※「簡化式」的歐式風格,是怎樣一個調調?簡約而不簡單
※簡體字在北京是如何推行的?其中一次簡化方案還被否決了
※書法能不能寫簡化字?
※學會簡化老照片,是紋身的一項技能!
※眼鏡蛇機動也有「簡化版」,一個小國研製的2代機就可以做
※每一個決定都是簡化、簡化,再簡化
※簡化家居並不需要丟棄 收藏也是一種享受
※你見過哪些喪心病狂的標題?網友:再長也能簡化!