洪志國,王永濱,石民勇
(中國傳媒大學(xué) 理工學(xué)部計算機學(xué)院,北京 100024)
?
基于雙目立體視覺原理的立體視頻自動生成軟件開發(fā)
洪志國,王永濱,石民勇
(中國傳媒大學(xué)理工學(xué)部計算機學(xué)院,北京 100024)
面向三維場景、基于雙目立體視覺原理的渲染是立體視頻制作的常用方式之一,但因控制左右虛擬攝像機的位置和設(shè)置渲染參數(shù)等往往通過手動設(shè)置模式來完成,較好效果的立體視頻需要重復(fù)“編輯場景”和“渲染”等過程,影響了立體視頻制作的效率。為此,本文針對3DS Max場景文件、基于雙目立體視覺原理實現(xiàn)了立體視頻的自動生成:首先采用3DS Max內(nèi)嵌的腳本語言(MaxScript)對3D場景進行預(yù)處理,自動添加模擬人的左眼虛擬攝像機和右眼虛擬攝像機,然后以左眼虛擬攝像機和右眼虛擬攝像機作為視點,通過命令行渲染方式生成左眼視域和右眼視域等兩路視頻,作為立體視頻的原始素材。
立體視覺;腳本;3D;虛擬攝像機;渲染
3D數(shù)字電影的制作通常包括實際拍攝和基于三維場景的渲染輸出等方式。在實際拍攝方式下,可以基于3D攝像機進行視頻采集,由2個攝像機分別記錄下左右視角的圖像數(shù)據(jù),以模擬媒體[1]或數(shù)字媒體形式保存,然后通過立體播放設(shè)備來展示。2010年,隨著由詹姆斯·卡梅隆執(zhí)導(dǎo)的《阿凡達》的熱映,3D技術(shù)逐漸引入到3D電影制作行業(yè),該影片采用3D虛擬影像攝影系統(tǒng)和和虛擬攝像機,大量運用了CG相關(guān)技術(shù),達到了逼真的效果[2]。After Effects等工具能實現(xiàn)從普通二維電影到3D電影的轉(zhuǎn)換[3],但由于缺少獨立的左路和右路等獨立的視頻源,觀眾在觀看轉(zhuǎn)換后的3D電影時缺少真實感和沉浸感。動漫愛好者可以基于三維場景設(shè)置模擬人眼的左路和右路虛擬攝像機,然后分別以左路攝像機和右路攝像機作為視域分別渲染生成左路視頻和右路視頻,通過立體播放器及相關(guān)顯示設(shè)備來觀看立體視頻。然而要達到播放立體視頻時的較好效果,場景制作者需要 “編輯場景”和“渲染”階段的多次操作,影響了立體視頻制作的效率。為此,如何能基于用戶制作的普通三維模型,實現(xiàn)模擬人眼的左右虛擬攝像機的自動添加并渲染輸出,達到立體視頻的快速、自動生成是一個重要的研究話題。
本文針對3DS Max場景文件、基于雙目立體視覺原理實現(xiàn)了立體視頻的自動生成:首先采用3DS Max內(nèi)嵌的腳本語言(MaxScript)對3D場景進行預(yù)處理,自動添加模擬人的左眼虛擬攝像機和右眼虛擬攝像機自動配置場景中視域的參數(shù),然后以左眼虛擬攝像機和右眼虛擬攝像機作為視點通過命令行渲染方式,生成左眼視域和右眼視域等兩路視頻,作為立體視頻資源的有益補充。
由于立體圖像是在人的大腦視區(qū)中形成的,因此它與人類的立體視覺是密不可分[4]。為了產(chǎn)生逼真的立體效果,必須需要采用合適的雙目系統(tǒng)的成像模型來生成立體圖像。常用的模型有平行雙目模型和匯聚雙目模型,這兩個模型均是在虛擬場景中設(shè)定兩個虛擬視點,在各自的視點處生成各自的二維圖像,但由于它們的視軸方向不同使得獲取的立體圖像對具有不同的性質(zhì)。因為匯聚模型可以模擬人眼的輻輳,所以會更貼近人眼的雙目視覺,我們主要依據(jù)匯聚雙目模型。
立體圖像對呈現(xiàn)出來的立體效果的好壞主要決定因素是視差。視差的呈現(xiàn)是在獲取到立體圖像對后通過圖像對的合成展示出來的。視差又可以分為水平視差和垂直視差,研究表明水平視差是能產(chǎn)生強烈的立體感,而垂直視差不利于立體圖像對的融合,甚至超過一定限度會引起觀看者的不適[5]。因此,本文只考慮水平視差,即三維場景中一臺虛擬攝像機的Z坐標(biāo)與派生出左右兩路攝像機的Z坐標(biāo)保持一致。
3.13DS Max中攝像機的參數(shù)設(shè)置
在三維場景已經(jīng)建好的情況下,需要通過復(fù)雜的公式計算完成“景物坐標(biāo)系→世界坐標(biāo)系→圖像坐標(biāo)系”的坐標(biāo)轉(zhuǎn)換,并據(jù)此在計算機監(jiān)視器上生成立體圖像對[6]。3DS Max提供攝像機對象可以簡化上述坐標(biāo)轉(zhuǎn)換的過程,首先對場景中的物體進行坐標(biāo)變化,再進行透視投影。如果以場景中的某一攝像機為原始位置,分別在其左右創(chuàng)建一個與自身相同的攝像機,且讓這兩個攝像機間的距離等于瞳間距,再對其分別進行渲染,就能生成立體圖像對了。設(shè)瞳間距為6.5cm的情況下,在3DS Max中采用系統(tǒng)單位設(shè)置,將單位設(shè)置為mm(毫米),并進一步計算出左右兩路攝像機的位置。
為了簡化基于場景中默認(rèn)相機派生出左右兩路攝像機的計算,同時考慮基于雙目立體視覺原理,我們假設(shè)攝像機的類型為目標(biāo)攝像機。在3DS Max軟件環(huán)境新建1個名稱為Camera001的目標(biāo)攝像機,在透視圖窗口查看的效果如圖1所示。
圖1 創(chuàng)建目標(biāo)攝像機在透視圖窗口的效果圖
我們進一步可以在如圖2所示的“按名稱選擇”的對象窗口中看到,場景中已自動生成了“Camera001”和“Camera001.Target”等2個目標(biāo)對象。
選擇3DS Max的MAXScript菜單新建一個MAXScript腳本文件,在該新建腳本窗口中分別輸入“MYMCamera001.pos”、“MYMCamera001.Target.pos”并執(zhí)行,可以查看到“Camera001”和“Camera001.Target”等2個目標(biāo)對象的位置分別為[-1.52098,-54.8888,0]和[24.709,35.2392,0]。由此可見,目標(biāo)攝像機Camera001的視線在場景中表現(xiàn)為從源點[-1.52098,-54.8888,0]到目標(biāo)點[24.709,35.2392,0]的向量。
圖2 “按名稱選擇”的對象窗口
在3DS Max場景制作和編輯過程中,需要設(shè)置合適的視野(FOV)和鏡頭(Lens)便于對場景中目標(biāo)對象的展示。
3.2左右兩路目標(biāo)攝像機位置的計算公式
在已經(jīng)建好的三維場景中,對選定的目標(biāo)攝像機的視圖進行立體效果的呈現(xiàn)需要依據(jù)匯聚模型。在原目標(biāo)攝像機的左右分別創(chuàng)建兩個與原攝像機相同的目標(biāo)攝像機,并且使這兩個攝像機間的距離,即基線長度等于瞳間距,用于模擬人的雙眼。讓新創(chuàng)建的左攝像機、右攝像機與原攝像機的目標(biāo)點相同遵循匯聚模型的視線匯聚原則。
由于垂直視差不利于圖像對的合成,且在大于一定限度時會給觀看者帶來不適。為此,我們在設(shè)置左右目標(biāo)攝像機的位置時應(yīng)避免垂直視差的出現(xiàn),只考慮水平視差。經(jīng)驗證,要保證生成的立體圖像對不會產(chǎn)生垂直視差,需要原場景中出現(xiàn)在立體圖像對中的點在圖像對中處于同一水平位置。為此新增的左右目標(biāo)攝像機的Z坐標(biāo)與原目標(biāo)攝像的Z坐標(biāo)相同。
圖3為3DS Max場景中的左右目標(biāo)是相機位置計算原理圖,其中投影面與XOY面垂直。O為場景文件中的一個目標(biāo)攝像機,坐標(biāo)為(xo,yo,zo),L與R分別是創(chuàng)建在攝像機O的兩側(cè)的兩個與O完全相同的目標(biāo)攝像機,設(shè)其坐標(biāo)分別為(xl,yl,zl)和(xr,yr,zr)。T為攝像機O的目標(biāo)點,坐標(biāo)為(xt,yt,zt),同時也是攝像機L與R的目標(biāo)。
圖3 L與R位置計算原理圖
(xt-xo)(xl-xo)+(yt-to)(yl-yo)=0
(xl-xo)2+(yl-yo)2=(S/2)2
(xo,yo,zo)與(xt,yt,zt)已知,可以通過獲取攝像機O與目標(biāo)點T的坐標(biāo)得到。
為此,我們在3DS Max場景中獲取立體圖像對以真實世界中成人的平均瞳間距(約65mm)為基線長度設(shè)置。
3.3生成左右兩路攝像機的MaxScript腳本流程
本文稱場景中待參照的目標(biāo)攝像機為基準(zhǔn)攝像機,下同。以目標(biāo)攝像機Camera1為基礎(chǔ),當(dāng)采用雙目立體視覺原理創(chuàng)建左右兩路攝像機時,需要考慮匯聚模型的約束條件。設(shè)創(chuàng)建的左右兩路攝像機名稱為CamL和CamR,瞳間距為65mm。
(1)基于基準(zhǔn)攝像機計算左右路攝像機參數(shù)的方法
1)讀取基準(zhǔn)攝像機起始點的pos(空間位置)、基準(zhǔn)攝像機目標(biāo)點的pos;
2)左路攝像機起始點的空間坐標(biāo)CamL.pos和右路攝像機起始點的空間坐標(biāo)CamR.pos由公式(1)計算得到;
本論文對六種數(shù)字信號調(diào)制識別技術(shù)進行研究,包括幅度鍵控調(diào)制(ASK),相移鍵控調(diào)制(PSK),頻移鍵控調(diào)制(FSK)。使用MATLAB軟件仿真,對隨機二進制信號進行識別,從檢測信號里分別得到了2ASK、4ASK、2PSK、4PSK、2FSK、4FSK信號。添加高斯噪聲來模擬信號中帶有的噪聲,然后需要對調(diào)制信號進行識別,識別算法采用了高階累積量理論,并詳細(xì)介紹了高階累積量的定義與公式,然后對各個調(diào)制過的信號的高階累積量進行計算,先計算二階、四階、六階累積量的值以后,再把各計算值的比值作為特征參數(shù)來識別數(shù)字信號。
3)新生成的左路攝像機目標(biāo)點、右路攝像機目標(biāo)點的空間坐標(biāo)和基準(zhǔn)攝像機目標(biāo)點的空間坐標(biāo)保持相同,即:
CamL.Target.pos=Camera001.Target.pos
CamR.Target.pos=Camera001.Target.pos
(2)生成左右兩路攝像機的MaxScript腳本流程
根據(jù)公式(1)編寫了MaxScript腳本,實現(xiàn)了基于目標(biāo)攝像機的位置和屬性自動生成左右兩路攝像機。設(shè)待處理的3D場景中目標(biāo)相機名稱為CameraTarget,運行該腳本后將自動生成名稱為CamL和CamR的左右兩路攝像機。其中,NumFrames是場景中時間軸的設(shè)置參數(shù),即總幀數(shù);i為循環(huán)變量,初始值為0。該腳本的處理流程如圖4所示。
如圖4所示,該腳本的流程主要步驟如下:
1)載入場景;
2)讀取基準(zhǔn)攝像機的名稱,新建左路目標(biāo)攝像機和右路目標(biāo)攝像機。其中左路目標(biāo)攝像機和右路目標(biāo)攝像機在類型、鏡頭等基本參數(shù)設(shè)置上和基準(zhǔn)攝像機保持一致;
3)逐幀執(zhí)行“(1)基于基準(zhǔn)攝像機計算左右路攝像機參數(shù)的方法”循環(huán)體,直至計算到該場景的最后1幀;
4)導(dǎo)出左右兩路攝像機的名稱到配置文件;
5)將增加了左右兩路攝像機的當(dāng)前場景另存為新的場景文件。
圖4 生成左右兩路攝像機的MaxScript腳本流程
3.4渲染生成左右兩路視頻
3DS Max提供了兩種常用的渲染方式:第一種是人工方式打開該工具在菜單中點擊“渲染”按鈕;第二種方式是基于命令行的渲染應(yīng)用程序。第二種方式無需啟動3DS Max帶界面的應(yīng)用程序,可用于動漫場景的批處理渲染和大規(guī)模的應(yīng)用部署。在3DS Max 安裝目錄的“3dsmaxcmd.exe”是3ds Max提供的命令行渲染應(yīng)用程序,通過設(shè)置相關(guān)渲染參數(shù)可以實現(xiàn)對指定場景文件的渲染輸出。
為了增強程序的可移植性,適用于3DS Max軟件不同版本的渲染,需要通過查找注冊表[7]獲取3DS Max的安裝路徑,然后通過命令行方式實現(xiàn)渲染輸出。
對指定3D場景文件,支持渲染參數(shù)的命令行渲染格式如下:
MaxCommand=3dsmaxcmd.exe-continueonerror-osaveName-cam:cam-start:framestart-end:frameend-w:width-h:heightSourceName;
為了盡可能地減少用戶與程序的交互性和因缺少第三方插件或貼圖文件而造成的程序終止情況,可以增加“-continueonerror”命令來增強渲染計算程序的健壯性,從而更為有效的確保渲染的正常運行,確保即使缺少第三方插件或者貼圖文件依然繼續(xù)執(zhí)行渲染程序而不會終止;“o”參數(shù)指定渲染輸出文件的路徑及名稱;“cam”參數(shù)指定選擇作為視域的攝像機名稱;“start”參數(shù)指定渲染的起始幀;“end” 參數(shù)指定渲染的結(jié)束幀;“w”參數(shù)指定渲染輸出圖片序列/視頻的水平像素值;“h” 參數(shù)指定渲染輸出圖片序列/視頻的垂直像素值;“SourceName”表示渲染源文件的路徑及名稱。
以3D場景“D:RenderingHouse.max”為例,不指定“cam”參數(shù)時,將對指定相機或默認(rèn)視域執(zhí)行渲染計算。通過輸入命令行“C:Program FilesAutodesk3ds Max 2011>3dsmaxcmd.exe -continueonerror -o D:Rendering Output enderhouse001.jpg -start:10 -w:1024 -h:768 D:RenderingHouse.max”即可順利實現(xiàn)渲染。整個渲染過程如圖5所示。
圖5 通過命令行方式實現(xiàn)渲染
如前所述,“camL ”和“camR”是“3.3生成左右兩路攝像機的MaxScript腳本流程”部分創(chuàng)建的左右眼攝像機的名稱,為此,參照上述命令行代碼,分別在“3dsmaxcmd.exe”命令后添加“-cam camL”、“-cam camR”,同時指定渲染輸出文件為“C:TestHandV.avi”、“C:TestHandP.jpg”,可實現(xiàn)對左右兩路視頻或圖片序列的渲染輸出。
查看文件保存的路徑C:TestHandP.jpg,找到渲染出來的三個左路圖像序列與三個右路圖像序列,名稱格式分別為HandEyePL000×和HandEyePR000×,如圖6所示。
圖6 Test文件夾中生成的圖像序列
查看文件保存的路徑C:TestHandV.avi,找到渲染出來的左路與右路視頻,名稱分別為HandVL.avi和HandVR.avi,如圖7所示。
圖7 Test文件夾中生成的視頻
本文基于雙目立體視覺原理,針對3D場景采用Max Script腳本預(yù)處理生成了模擬人眼的左右兩路攝像機,設(shè)計了立體視頻的自動生成方案,并進一步分別以左右兩路攝像機作為視域進行了渲染輸出,渲染輸出模擬人眼的左右兩路視頻,作為3D立體視頻的有益補充。
[1]李偉,孫軍,王興東,孫思慧.基于集群計算的3D數(shù)字電影制作方案設(shè)計[J].電視技術(shù),2011,08:45-48.[2]仉雨平.淺談電影《阿凡達》中科技技術(shù)的運用[J].2010,08:77.
[3]肖康.淺析制作3D 電影的技術(shù)方法[J].數(shù)字技術(shù)與應(yīng)用,2011,08:185.
[4]李志永.立體視覺基礎(chǔ)[J].現(xiàn)代電影技術(shù),2011,01:52-55.
[5]蔡輝躍,張健,曹雪虹.基于光線跟蹤的虛擬場景立體圖像對視差研究[J].南京工程學(xué)院學(xué)報(自然科學(xué)版),2012,04:17-24.
[6]楊珺,王繼成,劉然.立體圖像對的生成[J].計算機應(yīng)用,2007,09:2106-2109.
[7]倪顯利.注冊表及其管理類的開發(fā)和設(shè)計[J].電腦編程技巧與維護,2010,05:38-47.
(責(zé)任編輯:馬玉鳳)
Development of Binocular Stereo Vision Principle-Based Software of Automatically Creating Stereoscopic Videos
HONG Zhi-guo,WANG Yong-bin,SHI Min-yong
(School of Computer,F(xiàn)aculty of Science and Engineering,Communication University of China,Beijing,100024)
Binocular Stereo Vision Principle-based rendering is a frequently-used way of creating three-dimension scene-oriented stereoscopic videos.However,the operations of controlling the positions of left camera and right,setting rendering parameters often require being setup manually.Consequently,generating stereoscopic videos with better effect needs repetitive procedures of editing scenes and rendering which affects the efficiency of making stereoscopic videos.For this,in the paper based on binocular stereo vision Principle,the software of creating stereoscopic videos automatically for 3DS Max-made scene file is developed.Firstly,the three-dimension scene is preprocessed with MaxScript i.e.the embedded language of 3DS Max,which adds left virtual camera and right virtual one by simulating human’s left eye and right one.Furthermore,two videos of field of vision of left eye and right one are created via command-line rendering by taking left virtual camera and right virtual one as the viewpoints respectively.These videos are the origin materials of stereoscopic videos.
stereo vision;script;3D;virtual camera;rendering
2015-12-18
國家科技支撐計劃課題(2012BAH37F02);中國傳媒大學(xué)優(yōu)秀中青年教師培養(yǎng)工程(YXJS201508);中國傳媒大學(xué)理工科規(guī)劃項目(3132015XNG1504)
洪志國(1977-),男(漢族),湖北黃岡人,中國傳媒大學(xué)副教授,博士.E-mail:hongzhiguo@cuc.edu.cn
TP311.1
A
1673-4793(2016)03-0012-06