微軟的 3D 場景建構系統 Photosynth

Photosynth 這項技術,其實 Heresy 在去年就有看到他的展示了;不過,當時只有展示結果,不能讓使用者來試著用自己的照片來製作。而前幾天,微軟終於把這項已經超過一年的技術,正式的開放測試了!他的官方網站是:Microsoft Live Labs Photosynth http://photosynth.net/default.aspx

基本上,Photosynth 這項技術,是將大量涵蓋區域有重疊的照片,試著透過電腦視覺的方法,找出特徵點以及空間中的相對關係,來建構出 3D 空間的場景。而建立完成後,使用者就可以在這個建立出來的立體場景中,自由的選擇要從哪一個角度(要有提供照片的角度)來觀看這個場景了!

在 Photosynth 首頁上,微軟已經提供了很多知名場所的場景照片集了!有興趣的,可以上去看看∼像是埃及的人面獅身像泰姬瑪哈陵等等。甚至連太空梭和遊戲 Halo 3 的場景,都建立出來了呢∼


基本使用

而他整個呈現的樣子,大概就像下面這個天壇的例子一樣。

他會把目前瀏覽的照片放在正中間,並用比較淡的顏色,把附近相鄰的照片也顯示出來。使用者除了可以透過滑鼠的拖曳來改變視角外,在滑鼠移動的過程中,也會顯示出一個一個虛線框(如右圖),這些虛線框就代表了可以這個框框的範圍,就是一張可供觀看的照片!點下去後,就會切到這個視角了∼

此外,在顯示的界面中,也還有一些協助操作的界面。像是四周的三角形箭頭,就是跳到該方向的下一張照片(沒有的話就沒有那個方向的箭頭了);下方的箭頭,則是代表前後方向的照片。在某些資料中,可能還會出現像下左圖的圓環,這代表這個場景可以在這個方向做選轉。

而右上角的附註界面,功能則是如右上圖所示。基本上,大部分的功能玩一玩大概都可以玩出來是什麼意思吧∼

「格狀顯示」可以把所有用來構成 3D 場景的照片,用陣列的方式來呈現(如圖);再切換到「格狀顯示」後,該按鈕的文字也會變成「3D」,代表是切回原來的 3D 場景模式。

右邊的「下一個 3D 照片群」的功能,則是比較特殊。因為 Photosynth 其實允許一個「synth」中,有多個遊照片群構成 3D 場景!像是網站上小野馬的例子,就有好幾個 3D 場景;在這種有多個場景的狀況時,切換到「格狀顯示」,也可以看到裡面的照片會是分群顯示的(如圖)!這點其實 Heresy 一開始在玩的時候,到是沒有注意到。

而除了照片外,在影像的後方,也可以看到有許多顏色的點,這些點,基本上應該就是 Photosynth 的系統由照片中,擷取出來用來對位的特徵點;而在瀏覽的時候,壓住鍵盤的 Ctrl 就可以把照片隱藏起來,只顯示這些特徵點了!

左邊的圖,就是天壇只顯示特徵點的畫面。可以發現,從這些點也大致可以看得出整個天壇的外觀了!像其他的場景,其實也都可以看看這樣的特徵點,其實還滿有趣的∼比如說這張截圖,應該也可以很清楚辨識出來是哪裡吧?

另外,在瀏覽的時候,也可以發現由於這個程式會先顯示低解析度的資料,再慢慢讀資料進來;所以網路速度不夠快的話,一開始看到的照片解析度可能會覺得很低,但是不要動放一小段時間的話,應該就會變好了∼在特徵點的部分也是一樣,一開始可能覺得點很少,放久一點後,就會把資料都讀進來了。


製作

Photosynth 基本上是一個線上型的服務,在瀏覽資料前,使用者要安裝 Photosynth 所提供的程式,透過瀏覽器安裝 Plug-in 來瀏覽建立完的場景。而在安裝此程式時,也會順便安裝了製作時必要的程式∼在程式集中就可以找到了。

由於是微軟的線上服務,所以在帳號系統的部分,自然是使用和 Messenger 相同的 Windows Live ID 了∼也就是如果已經有 Windows Live ID 的人,只要用現有的帳號登入後,再建立一個 Photosynth 的 profile 就可以使用了。而對於每一個使用者,Photosynth 提供了 20GB 的空間,讓使用者可以上傳自己的資料!雖然 Photosynth 需要許多照片來玩成一組 3D 場景,但是這樣的空間量,對於一般使用者來說,應該算是夠有誠意了!

而 Photosynth 的程式在使用上非常簡單,簡單到只有兩樣東西要使用者管:照片和名稱。也就是,只要給他你要處理的照片,然後再幫他取個名字,按下「synth」就可以了!其他的東西,他都會自動處理!而基本的計算處理,應該都是在本機的電腦上的;再處理完後,才會把資料上傳到 synth 的伺服器上(這部分是臆測)。

不過,不知道是在玩這項服務的人太多還是怎樣?Heresy 常常碰到一些問題。比如說剛開始沒辦法建立 profile、後來要製作的時候又一直出現「There's a lot of synthing goining on」要 Heresy 重試,之後,也常常程式停在正在發佈而沒有結束…Heresy 覺得應該算式伺服器穩定性問題吧?通常這些問題,過一小段時間後就會自然消失了。

而 Heresy 一開始,是拿了相機,繞著一台 CRT 螢幕拍了 23 張照片,結果可以參考這裡;沒有辦法完全合起來,被分成了六群和沒有辦法合起來的一群。感覺上,應該是拍得還不夠多張吧?而且想想,有好幾個角度之間,的確覆蓋性不夠大。

後來,又拿了一些以前出去玩的時候,為了合成廣角照而拍的照片來玩看看:

  • 石岡附近的河流
    之前去大安溪大峽谷的回程路過拍的,也是 Heresy 測試結果中,涵蓋率 100% 的!以這組資料來說,處理的非常漂亮!
  • 台北盆地
    之前去文化大學拍的,Heresy 那時後拍了好幾組,也合了六張廣角圖出來;現在是全部都丟給 Photosynth∼理所當然的,也被分成好幾個 3D Group;不過,Heresy 還算滿意這個結果的!
    實際上,這組測試 Heresy 是把照片解析度降到滿低下去試的,如果把解析度提高一些,搞不好可以有更好的結果。
  • 台中高美溼地
    去台中看風力發電機時拍的,基本上是不可能合成一組的資料。^^"
    不過已有成功的部分來說,效果 Heresy 覺得到是還算不錯!

感想與結論

在玩完之後,以製作來說呢,Heresy 覺得他的合成的速度、結果,都算令人滿意了!雖然還是有的照片 Heresy 覺得應該可以被合進去,但是卻失敗了;但是有合起來的部分,效果都不差∼甚至有的地方本來 Heresy 根本沒發現其實是在一起的,也被合的滿漂亮的!

而呈現效果呢?在 Heresy 自己測試的例子,有興趣的人可以比較看看傳統的合成廣角照片和 Photosynth 的差異性;在這兩者間的比較,Heresy 必須說,兩者還是各有優缺點。

傳統的合成廣角照,基本上就是把所有照片想辦法拼湊起來,變成一張大的圖。而在這個情況下,多張照片重疊的部分,只會被整合成一份,如果多張照片中不同的話,沒辦法保存這些差異資料。不過,這樣合成出來的照片算是相當簡單的形式,可以一目了然的看到整個場景,如果解析度夠高,也可以放大看到細節。

Photosynth 的缺點,就在於沒有辦法一口氣看到整個大場景(當然,你有拍的話也看的到啦∼),而且要瀏覽比較複雜,需要特殊的界面。而優點的話,就是他可以對同一個地方,保有數個不同版本的照片!而在某種程度上,他也有多層次精細度(Level Of Detail)的功能;可以先看大場景的照片,有需要的話再點進去看某個小地方細節。而如果照片的數量夠,理論上應該還可以幾乎完全建立出 3D 模型,並做到整個場景的環繞效果!

以這樣看來,Photosynth 適合用在哪裡呢?Heresy 覺得應該會很適合拿來做虛擬的環境導覽!一般像上面的自然人文場景,大家應該都想的到了。而實際上,這個系統如果能提供夠高的影像解析度,要拿來用在博物館上,應該也是非常合適的!看看這個例子,Heresy 真的覺得,如果能在 Photosynth 另外加上註解的話,真的可以當做線上的虛擬博物館了!(操作上,可能不那麼直覺就是了 ^^")


原始發表:http://heresy.spaces.live.com/blog/cns!E0070FB8ECF9015F!4515.entry

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。