2
雷鋒網(wǎng)按:作者艾韜,易瞳科技CTO,多倫多大學(xué)計(jì)算機(jī)工程專業(yè)畢業(yè)。多年跟隨“世界穿戴電腦之父”Steve Mann教授,專注于智能眼鏡的基礎(chǔ)研究。最近,易瞳的核心產(chǎn)品VMG-PROV宣布對(duì)極客們開源,這款視頻透視的介導(dǎo)現(xiàn)實(shí)眼鏡,為何還沒有正式面世就開源?又為何選擇了視頻透視?作者以他做產(chǎn)品的親身經(jīng)歷來回答這個(gè)問題——“當(dāng)我們把VMG-PROV開源后,我們希望盡快地暴露出現(xiàn)有產(chǎn)品的所有問題?!背齾s談及產(chǎn)品本身的優(yōu)劣,這是一篇認(rèn)真探討的文章。
以下為作者自述,雷鋒網(wǎng)做了不調(diào)整原意的編輯。
我今天寫一篇小文章說明一下VMG-PROV(所謂開源極客版)到底是一個(gè)什么東西,希望看完這篇東西的朋友們對(duì)自己即將要拿在手里的“玩具”有一定認(rèn)識(shí)。當(dāng)然,土豪隨意,我覺得VMG-RPOV擱家里放著也蠻帥的。
| 一身開源的血液
記得我到導(dǎo)師Steve Mann的實(shí)驗(yàn)室時(shí),看到一個(gè)個(gè)裝束的怪異的工程師們(包括一個(gè)不穿上衣的長發(fā)男子)被一堆堆“破舊”的電子儀器、顯示器和各種電子元器件團(tuán)團(tuán)包圍住,而此時(shí)的他們正用著界面相當(dāng)另類的程序做著一些不明覺厲的事情。那一剎那感到莫名興奮的同時(shí),也為自己的無知而感到有些尷尬。
“Hi Steve, what software are they using?”我懷著好奇不禁問道,感覺這個(gè)問題弱爆了。
“Oh Arkin, I can't answer that if it's not the right question.”教授沒穿鞋,手里拿著個(gè)烙鐵,頭也沒有回地對(duì)我說道。也許他不知道此刻的我早已石化。
“You know, Arkin, we don't use any software in this Lab.”教授放下烙鐵,朝我這邊看過來。
“Software are programs that you need to pay. Paying for software that you can't hack or share is ridiculous.”教授突然嚴(yán)肅了起來。而我也明白了為什么這些程序都長得這么奇怪。
我點(diǎn)了點(diǎn)頭,若有所思地說:“So everything here is open-source? Like everything?”
教授笑了,也點(diǎn)了點(diǎn)頭說,“Yes,Everything.”
在實(shí)驗(yàn)室做事的這段時(shí)間,我接觸到了各種各樣的開源工具。教授說的是真的,在實(shí)驗(yàn)室里,我們的操作系統(tǒng)是Ubuntu而不是Windows或MacOS;圖像編輯也不用Photoshop而是用GIMP;就連Word和Excel這樣的程序,我們都用LibreOffice來代替。更夸張的是,作為研究人員,我們連Matlab都不用,而是用一個(gè)叫Octave的東西。
Steve曾經(jīng)做過一件藝術(shù)品,現(xiàn)在收藏在奧斯汀藝術(shù)博物館中。下圖中的Installation叫“License To Sit”,是一個(gè)需要付費(fèi)買License才可以使用的椅子。就像付費(fèi)軟件一樣,這個(gè)椅子會(huì)在快到期時(shí)提醒你付費(fèi),否則,一旦過期,彈出鋼針,強(qiáng)行終止椅子能提供給你的“坐”的服務(wù)。這個(gè)藝術(shù)品很好玩,可以使我們思考當(dāng)數(shù)字世界里的規(guī)則被運(yùn)用到物理世界時(shí)的一些搞笑的情況。
看著這把椅子,回憶起第一次遇見教授的那段對(duì)話,我突然意識(shí)到自己一個(gè)考量已久的決定其實(shí)早有淵源,潛移默化中渾身已經(jīng)淌滿了開源的血液。
| 送到極客手中
最近,我們決定把自己還不完善的工程機(jī)VMG-PROV作為一款開源硬件投到市場中來。
這一舉動(dòng),我認(rèn)為,有奉獻(xiàn)性的因素也有自私的原因。
我們確實(shí)解決了一些智能眼鏡上的問題。開源的目的在于,希望同行和有志向的極客通過對(duì)VMG-PROV的拆解和研究,可以不再重復(fù)地去解決這些問題。輪子就在這里,不需要重新發(fā)明它了。另外,我們做的智能眼鏡不同于VR/AR,稍微超前了一點(diǎn)。為了盡快做出理想的產(chǎn)品,我們這個(gè)二十人的小團(tuán)隊(duì)還需要更多能人的幫助。當(dāng)我們把VMG-PROV開源后,我們希望盡快地暴露出現(xiàn)有產(chǎn)品的所有問題。同時(shí)讓有共同指向的極客們可以一起和我們站在同一起跑線完善這個(gè)產(chǎn)品。開源一定是未來科技的發(fā)展方向,一個(gè)小有成就的極客不應(yīng)該總想著如何用那不完善的“小秘密”去賺錢,而應(yīng)該思考怎樣讓大家參與進(jìn)來盡快把東西做好。
我們希望把VMG-PROV交付到正確的極客手中,這意味著這代產(chǎn)品不是消費(fèi)者級(jí)的,甚至不是開發(fā)者級(jí)的,我們把它稱之為“極客版”。我們希望把他賣給有開源血液,想探索數(shù)字視覺,并且具備相應(yīng)能力的極客??吹竭@里,我想各位讀者對(duì)于該不該買VMG-PROV已經(jīng)有了一些小小的判斷了。
| 為什么選擇視頻透視?
VMG(包括預(yù)售中的PROV和研發(fā)中的MARK兩個(gè)版本)是一款開源的頭顯,是一個(gè)探索介導(dǎo)現(xiàn)實(shí)(和數(shù)字視覺)的工具。我們認(rèn)為虛擬現(xiàn)實(shí)(VR)和增強(qiáng)現(xiàn)實(shí)(AR)都是數(shù)字視覺的一種體現(xiàn)。因此,VMG首先要能將VR/AR通過視頻透視技術(shù)同時(shí)兼容在一個(gè)頭顯上。之前寫了一篇關(guān)于智能眼鏡的小文章里面也提到,從AR往后發(fā)展,到混合現(xiàn)實(shí)(Mixed Reality)或是介導(dǎo)現(xiàn)實(shí)(Mediated Reality),視頻透視是必須跨過的一個(gè)坎。
常常有人問我,市面上光學(xué)透視方案這么多,而且大家都在做光學(xué)透視,為什么你們要選擇視頻透視?我說,不是我選擇了視頻透視,是視頻透視選擇了我。
在進(jìn)實(shí)驗(yàn)室之前我是學(xué)FPGA的,因?yàn)檫@個(gè),Steve讓我用FPGA去攻克智能眼鏡上一些GPU跑不動(dòng)的算法,出成果后,我和一個(gè)學(xué)長去SIGGRAPH展會(huì)上展示我們的研究成果。在這個(gè)讓人腦洞爆炸的展會(huì)上,我和學(xué)長在聊天中各自認(rèn)定了今后的研究方向?;氐綄?shí)驗(yàn)室后,我主要搞視頻透視和相關(guān)的軟件,而他就開始研究光學(xué)透視的東西了。視頻透視(Video See-Through,或VST)和像HoloLens這樣的光學(xué)透視(Optical See-Through,或OST)各有優(yōu)缺點(diǎn)。下面,我以AR應(yīng)用為例,大概歸納一下兩者主要問題的比較。(學(xué)術(shù)界里關(guān)于兩者的比較很透徹,大家有興趣可以去查閱相關(guān)論文。)
視頻透視(Video See-Through,或VST)和像HoloLens這樣的光學(xué)透視(Optical See-Through,或OST)的比較——
1、關(guān)于疊加效果和顯示視角(VST完勝)
光學(xué)透視通過特殊的設(shè)計(jì)將數(shù)字畫面投射到半透明的顯示裝置上,因此呈現(xiàn)出來的遮擋效果(Occlusion)不夠完美。看過Magic Leap年初發(fā)出的眼鏡大專利的各位知道,他們花了至少7大頁的內(nèi)容來描述他們復(fù)雜的光路設(shè)計(jì)來減緩這個(gè)遮擋問題。光學(xué)透視的光路設(shè)計(jì)很復(fù)雜,想做出小型的大視角效果基本沒戲。試過HoloLens的人(約40度)就能感受到我說的視角小是一種什么感覺。
同時(shí),由于設(shè)計(jì)復(fù)雜加工困難,OST的成本會(huì)很高。然而,半透明就是半透明,任你減緩,也不可能解決。在這一點(diǎn)上,VST完勝OST。由于現(xiàn)實(shí)畫面是通過攝像頭采集的,在顯示到屏幕之前已被數(shù)字化,遮擋的效果可以輕輕松松以低成本做到完美。在這方面,VST可以通過算法做到實(shí)時(shí)P圖,讓現(xiàn)實(shí)變成你的畫板。
2、關(guān)于現(xiàn)實(shí)畫面延時(shí)和畸變(OST完勝)
由于使用到了攝像頭,加上電腦需要同時(shí)處理顯示畫面和數(shù)字內(nèi)容,VST的延時(shí)比OST要大很多。
VST頭顯硬件上更像VR,攝像頭和顯示器的刷新延時(shí)是先天性的。在OST頭顯上,現(xiàn)實(shí)畫面是外部世界的光是通過光學(xué)設(shè)備穿透進(jìn)來的,先天零延時(shí)零畸變。而視頻透視除了刷新延時(shí),還需要矯正因?yàn)閿z像頭的位置和光學(xué)與人眼不一樣而產(chǎn)生的畫面差距,先天會(huì)有延時(shí)。我們花很多時(shí)間,通過硬件和軟件的優(yōu)化去降低延時(shí)。但這個(gè)延時(shí)不可能為零,在這一點(diǎn)上,OST完爆VST。
3、關(guān)于VAC問題(平手)
不管是OST和VST,都存在VAC問題。這是我們在使用頭顯時(shí),深度感知機(jī)制在雙眼(Vergence)和單眼(Accommodation)上有沖突時(shí)造成暈眩的問題。
有興趣的讀者可以自行查閱Vergence Accommodation Conflict或“輻輳沖突”。
(雷鋒網(wǎng)注:關(guān)于VAC現(xiàn)象,可查看這篇解析文《一直困擾虛擬現(xiàn)實(shí)的VAC現(xiàn)象,真的無解么?》)
Magic Leap的大專利里,也有大量描述過通過光場減緩這個(gè)問題的技術(shù)。在他們出貨前,在這個(gè)問題上,目前OST和VST,打成平手。
| 極客們請繼續(xù)閱讀
VMG-PROV作為一款視頻透視的探索工具,性能有限。我希望通過接下來的描述讓各位極客認(rèn)識(shí)到購買PROV的風(fēng)險(xiǎn)。
延時(shí)問題在VMG-MARK的架構(gòu)上有大幅度提升,文末我會(huì)把細(xì)節(jié)告訴大家。下圖是從我們將要開源放出的Demo工程截圖的,可以將一個(gè)數(shù)字模型疊加到?jīng)]有預(yù)設(shè)Marker的桌面上。
在這個(gè)開源的Demo中,VMG-PROV通過雙目攝像頭將現(xiàn)實(shí)畫面捕獲進(jìn)來,經(jīng)過頭顯上FPGA的處理后,通過USB3. 0接口傳輸?shù)剿B接的PC上?,F(xiàn)實(shí)畫面通過軟件校準(zhǔn)后,Visual SLAM算法開始運(yùn)算,將預(yù)設(shè)的數(shù)字模型疊加到正確的位置。之后,再通過HDMI將畫面?zhèn)鬏數(shù)筋^顯上的屏幕中。這個(gè)開源的工程中包含:
1.VMG-PROV的硬件細(xì)節(jié)和原理圖
如下圖所示,VMG-PROV的硬件參數(shù)已標(biāo)注并在下表列出。攝像頭采集到的視頻畫面經(jīng)過FPGA的處理再傳入所連接的PC中,最后通過SLAM把疊加了數(shù)字模型的畫面在傳回人眼。所以在用于AR上,VMG-PROV需要PC完成較大的視頻吞吐,因此建議使用高配臺(tái)式機(jī)。
作為一個(gè)MR頭顯,VMG-PROV的參數(shù)只能達(dá)到VR的入門水平。我覺得要在MR上做出驚艷的應(yīng)用,這一代是遠(yuǎn)遠(yuǎn)不夠的。這也是為什么我希望大家把這個(gè)產(chǎn)品作為一個(gè)學(xué)習(xí)與探索的工具,同時(shí)也通過大家給我們反饋更多的改進(jìn)意見。為了讓這一切成為可能,我們會(huì)提供VMG-PROV的硬件原理圖。
2. FPGA上處理圖像的硬件描述語言
VST優(yōu)于OST的關(guān)鍵一點(diǎn)是對(duì)現(xiàn)實(shí)畫面的修改,簡單來說,就是通過算法實(shí)時(shí)P圖。
在軟件上測試出來的算法如果能通過FPGA實(shí)現(xiàn)或加速,對(duì)于延時(shí)的減少是有很大幫助的。在我們開源的工程中,包含了一個(gè)MR的Demo,即實(shí)時(shí)高動(dòng)態(tài)范圍圖像合成和映射(Real-Time HDR Composition & Tonal Mapping),完全通過邏輯寫進(jìn)FPGA里面了。
如下圖,F(xiàn)PGA控制Sensor高速變換曝光,然后通過合成電路選擇出由暗到亮每張圖中最好的部分。
FPGA是一種很神奇的芯片,是芯片中的變形金剛。做過FPGA的工程師都知道,F(xiàn)PGA不是普通人搞得定的。
下圖給出了我們將要開源的工程中FPGA內(nèi)硬件描述語言的部分。從Sensor進(jìn)來的原始數(shù)據(jù)將完全在FPGA上進(jìn)行ISP處理,之后合成的HDR將通過USB3.0傳到PC中。我相信把上述工程的Verilog HDL開源,可以吸引到各位有勇氣的高手加入到芯片級(jí)的MR探索中來。通過FPGA配合PC端的需求,進(jìn)一步減少VST的延時(shí)問題。
3. 基于PTAM的雙目SLAM源代碼
VMG-PROV所用的SLAM是基于雙目RGB攝像頭的,是由大名鼎鼎的PTAM改成的。這個(gè)工程就將上文視頻中的Miku疊加到了我們的眼鏡畫面中。PTAM之后,我們還將把傳感器數(shù)據(jù)融合進(jìn)來,并使用不同的方法(像ORB-SLAM,或LSD-SLAM)實(shí)現(xiàn)更穩(wěn)定的疊加。SLAM這一塊我就不畫圖了,大致的開源內(nèi)容包括,雙目相機(jī)的標(biāo)定矯正,F(xiàn)AST特征點(diǎn)提取,RANSAC & Bundle Adjustment,和Miku的模型。需要用到Unity3D的各位朋友,工程中也有將這套SLAM導(dǎo)入的方法。同時(shí),大家去看源代碼的時(shí)候可以參照PTAM的相關(guān)資料對(duì)其進(jìn)行修改。
| 普通開發(fā)者請?jiān)俚鹊?/span>
講到這里,我覺得大家對(duì)需不需要購買這個(gè)“極客版”有了一定的判斷。由于VMG-PROV還沒有達(dá)到應(yīng)用級(jí)別,想在VMG做應(yīng)用的各位需要等待一下VMG-MARK(開發(fā)者版本)。按照目前的進(jìn)度來說,我們的研發(fā)團(tuán)隊(duì)已經(jīng)解決了VMG-MARK的大部分技術(shù)問題。我們把VMG-MARK的軟硬件架構(gòu)稱為VLLV(Very Low Latency Video See-Through),它將把視頻透視的延時(shí)難題大幅度的減緩(是減緩不是解決,解決就是Zero Latency了)。所以,希望有落地應(yīng)用的開發(fā)者們最好使用MARK這一款產(chǎn)品,而不是VMG-PROV極客版。
下圖是VMG-MARK的架構(gòu),起初的設(shè)計(jì)是為了減少視頻吞吐對(duì)PC的計(jì)算量需求,將高清高幀的現(xiàn)實(shí)畫面視頻流直接從Sensor傳入屏幕中,不經(jīng)過電腦。之后,慢慢演化成了四個(gè)模式。
我們把這個(gè)架構(gòu)叫做VT Architecture,它的四個(gè)運(yùn)行模式分別是:
1.Hard模式
現(xiàn)實(shí)畫面的視頻信號(hào)只通過FPGA和ASIC進(jìn)行處理,然后馬上打到屏幕中。這條路徑延時(shí)最低,但開發(fā)難度最大。寫FPGA不難,要的是勇氣。
2.Hybrid模式
這條路徑最適合用于AR應(yīng)用的開發(fā)。
如圖所示,頭顯上的FPGA將根據(jù)需求把視頻分流到連接的PC上,然后,再通過FPGA把有姿態(tài)信息的數(shù)字模型融合到原始高清畫面中。這樣,我們能大幅度減少現(xiàn)實(shí)畫面的延時(shí),同時(shí)也可以把原本需要的大部分運(yùn)算資源節(jié)省下來,從而減小電腦的配置需求。
3.Soft模式
有心的讀者已經(jīng)發(fā)現(xiàn),這條路徑就是VMG-PROV的路徑。這條路徑功能最強(qiáng)大,但延時(shí)最高。視頻流經(jīng)過FPGA/ASIC然后傳入電腦,最后經(jīng)過屏幕顯示出來。Soft模式適用于早期驗(yàn)證和實(shí)驗(yàn),通過Soft寫出來的工程要按照應(yīng)用需求進(jìn)行優(yōu)化,并在其他模式上來實(shí)現(xiàn)。
4.Light模式
Light模式很好理解,就是帶Visual SLAM的VR頭顯。前端的相機(jī)雖然不成像,但是在無時(shí)無刻地檢測頭顯的平移運(yùn)動(dòng),這和Lighthouse由外至內(nèi)的檢測方法不一樣。我們后續(xù)開發(fā)出更好的SLAM,也會(huì)開源,希望大家再等待一下。
寫到這,也差不多了。作為一個(gè)小團(tuán)隊(duì),我們希望成為自己理想中的極客。我相信我們的身邊有很多有分享精神,探索精神,有心靈,有能力,并且會(huì)支持我們的人。我們希望把自己的成果分享給這樣的人,這也是我們打算開源的最重要的原因。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。