陳柏亘、魏谷竹、劉修源
(左至右): 魏谷竹、劉修源、陳柏亘
前言
現今資訊產品功能的日益複雜,許多產品即使具有強大的功能也會由於使用者介面的設計不良造成使用者操作的不便,進而導致產品效能、功能無法完全發揮。也正因此人機介面(Human Computer Interface)的設計一直為電機資訊科技十分重要的一個領域。其中擴增實境(Augmented Reality)為人機介面設計中的一子領域,其特點在於結合實體物件與電腦產生的虛擬物件,藉由人們與這兩種物件的互動來達到與機器溝通的目的。另外近年藉由電腦進行音樂創作興起,許多現代音樂的創作不同於以往,開始使用大量的科技媒介工具或素材。因此我們決定開發一套能讓使用者以直覺式操作來進行音樂創作的系統。這套系統除了能進行實際的演出以外,同時也具有高度的視聽娛樂效果。
但除了視聽娛樂效果以外,VisualSonic Studio更要展現的是能在FPGA有線的資源上進行大量多媒體處理與運算。相較於市面上此類的系統,我們在進行開發前能對市面上和我們基於同樣理念的產品進行了調查,發現的確存在類似的產品。Microsoft Surface, Nlignten, PS3 Game: The eye of Judgment……等都和我們秉持著「現實生活中實體物件與數位世界中虛擬資訊直觀式互動」的概念。由於此性質的產品除了需要接受大量現實環境中的資訊以外,還需要處理大量的數位資訊,以上所提到的產品皆需要極為昂貴的硬體設備才足以處理如此大量的資訊。
VisualSonic Studio與目前市面上產品最大的差別在於VisualSonic Studio使用FPGA即足以達到同樣的功能及性能。這是由於VisualSonic Studio使用了大量的硬體電路來進行低複雜度的影像處理,高度利用數位電路平行化運算速度遠快於電腦程式的特性。而在高複雜度的影像辨識演算法,使用NIOS II建構處理器來進行運算。
設計介紹
VisualSonic Studio為一音樂合成與混音平台,支援多重使用者同時多工的操作。使用者可以藉由直覺式的操作來進行音樂的創作、混音、播放。在人機介面的設計,我們採用該領域中擴增實境(AR, Augmented Reality)的概念來進行開發。操作的平台上,除了機器所產生的虛擬操作介面外,系統同時支援實體物件的偵測來進行操作。這種同時結合虛擬物件及實體物件的操作模式增添了操作介面的彈性與發展。
此系統的發展中我們運用到了許多領域的知識,包括擴充實境(Augmented Reality)對於物件偵測及判斷的演算法;數位影像處理演算法來處理攝影機所擷取到的影像;多核平行運算用於NIOS II所建立的多核運算處理器;拓撲學於實體物件的圖形設計,來加速影響處理演算法的辨識速度及物件數量的大幅擴充能力;電腦音樂編曲方法來設計聲音檔案,確保個聲音檔案間的相容性及一致性。
VisualSonic Studio操作方式非常直覺,只要將圖章放到桌子上,系統就會放出相對應的聲音。然後再藉由旋轉進行音量大小等等的參數調整。因此系統不但具有簡易的操作介面,更具有高度的擴充性及變化性。實際操作的示意圖如下:
|
VisualSonic Studio系統架構圖
設計特點
軟硬體共同設計
為了達到最好的系統利用,我們在設計的時候同時考慮了硬體的特性與軟體的特性,把系統做合適的分割(hardware-software partition),運用數位電路設計技巧及NIOS II支援來執行影像擷取、影像判斷、影像產生及音樂產生。針對複雜度相對較低,但需要快速處理的,我們會選擇使用數位電路來實踐。針對相對複雜的演算法,我們則會使用NIOS II來實踐,甚至可以建置多顆NIOS II的處理器,平行化處理不同的工作。最後,加上我們特殊的圖形設計及攝影機擷取影像像素的調整,我們能做到幾近即時(real-time)的處理效能。
人機介面設計
相對於一般類似的功能的產品,需要經過一些學習與練習才能使用;我們在設計的時候,就是為了讓使用者能夠很輕易的使用本系統,意即使用者不需經過任何訓練即具有使用VisualSonic Studio的能力。 年紀小的兒童能將本系統當作一個十分好玩的教具,訓練各種圖形放置與聲音的連結;一般人也使用本系統做為一般娛樂用途,做為放置在家中的Player;甚至有專業音樂需求的人士,也能透過此系統混合不同的基本聲音,獲取音樂上作曲的靈感與激盪。
記憶體多工使用
由於進行影像處理及分析需要大量的記憶體來協助運算,然而DE2-70板子上所配置的大容量記憶體SSRAM和SDRAM 讀取的速度有限,因此我們採用少量的on-chip memory來做為主要的運算記憶體,於演算法的設計上則將on-chip memory分時多工使用,以期在最低資源下進行最高效率的處理。
拓譜圖形及影像雜訊過濾
因為我們實作的方法是採用影像處理的方式,或多或少的必定面臨著干擾的問題,我們在這方面也想出了一些方法來使辨識的準確率高且不會使複雜度太高。首先,在圖章的設計上,我們運用拓譜學進行圖形設計(詳見設計方法中的圖章辨識),此系統可以減少辨識的面積,也可增加辨認的精準度。並且也可以增加可設計的圖形數量,容錯力也比簡單辨識形狀(如三角形、正方形)更強,因為我們的圖形不會因為旋轉而產生不同之處,使用者可任意放置圖章而不會被系統誤認。
在對抗環境的雜訊,我們運用模糊墊片(及我們平台中上層的霧面塑膠片,可見功能描述中的圖),用類似毛玻璃的效果,物理性的將影像中的雜訊處理掉,提高環境或硬體所摻雜的雜訊容忍度。接著利用影像處理演算法,對經過模糊墊片之較佳的影像在做一次處理,使環境的影響降到最小,藉此提高圖形辨識的準確度。
自我校正
由於攝影機所擷取到的影像和環境的光線有很高的關聯性,在把影像二值化(Binarization)的過程也會因此影響,很暗的環境與很亮的環境就要分別給很低與很高的臨界值。故在不同的環境使用系統前都必須要設定好適當的二值化臨界值(Threshold),才能使系統順利的辨識。我們提供了兩種模式來做臨界值的校正:半自動與手動。
半自動模式可以讓使用者在平台上放上校正用的圖章,接著按下校正鈕,系統便會自動的校正到合適的臨界值,這即可滿足絕大多使用者的要求。而當然,就像相機的光圈一樣,有使用者會想要親自調整臨界值來取得較佳的效果,而就是所謂的手動模式。使用者可透過DE2-70的數個開關來設定臨界值。當然,使用者也可以透過半自動模式加上手動模式的彈性調整,獲得此環境下最好的效果。
低價與易於擴充
平台本身建置成本低,只要將FPGA的內容進行晶片化,VisualSonic Studio將會是套成本低廉但高效能的互動式音樂混音作曲平台。 而在我們設計此系統時,在系統有限狀態機(FSM)、圖形辨識演算法及圖形設計上皆考慮了未來擴充的可能。例如,拓樸圖形的設計可使系統只要掌握到圖章的幾個重要特徵即可判斷,因此程式碼會顯得很簡潔易於修改。倘若爾後需要加上更多的圖章與聲音,只要依我們設計圖章的規則依此類推(可見設計方法的圖章辨識),新的圖章也可被唯一轉換成樹(Tree)的結構,也就很容易地可被辨識出來。因此,此系統可以一直擴充圖章來增加系統內容的功能與豐富程度,提供各種不同領域的使用者使用。
跟電腦溝通
可用DE2-70板子上的RS-232來與電腦做溝通,這提供了更大的使用彈性。在現今,獨自運作的封閉系統已經不能滿足要求了;電腦、手機或眾多其他消費性商品都已經與網路有相當大的結合,使用者能夠透過網路與其他使用者互通資料,加速資訊的流通,成就所謂的資訊社會。我們利用傳統的RS-232傳輸介面來增加此系統在溝通這方面的能力,使用者能夠透過電腦端的程式修改部分系統的參數,如各種圖章對應到的聲音為何。甚至,使用者也能夠透過RS-232與其他的使用者互通資料,做到不同FPGA板的溝通。有了傳輸介面,在PC端使用者還可開發功能,就像現今手機的開放式系統(如Andriod),為系統注入生生不息的活力。例如用RS232進行更新預存的音樂等等。
結論
VisualSonic Studio著重的是在其概念,使用者可以直覺的使用電腦設備。由此我們開發了這套系統,讓使用者了解這樣的開發可以有的成品以及初步的透過音樂來展示好的人機介面可以讓人獲得更大的方便。同時VisualSonic Studio更實現了另外一種可能,讓本身並不會任何樂器的使用者可以透過VisualSonic Studio製做出屬於自己的音樂,享受玩音樂的樂趣。而我們選擇用FPGA來實現這樣的概念,主要是因為FPGA是晶片的前身。一旦在FGPA上能夠正確的工作,也就代表我們這套系統可以晶片化,而晶片的大量生產能導致成本的下降,讓更多使用者有能力享受到這樣的科技。打破以往對於高科技都同樣具有高價格的刻板印象,畢竟高科技的產品並不是有錢人才能獨享的,身為工程師同時應該致力於高科技產品的普及,畢竟真正好的科技應用來服務全體人類而非單單有錢人而已。
心得
VVisualSonic Studio從無到有的過程充滿著許多挑戰,其中最主要的兩個瓶頸就是題目的發想和高效能的系統設計。當初在進行題目發想時,三個人正為了交數位電路實驗課的第三個小實驗而睡在實驗室,但隔天同時也要繳交期末project的提案,「突然在凌晨三、四點的時候,產生靈感!」
為了要讓電腦能在極短的時間內正確辨識使用者放上去的圓盤所代表的圖形,放出正確的樂音,因此另一個困難則是「圖形辨識」。我們後來寫出長達一、兩千行的演算法,過程中經歷了許多次的修正,包含資料結構上的link list、資料比對等部分,終於成功克服圖形辨識的問題,達到既快速又具備良好效果的預設目標。此外,為求影音輸出能在極短時間內近趨於同步,VisualSonic Studio也同時考慮軟、硬體的特性,予以最有效率的應用。影像擷取、影像產生、音樂播放等由數位電路和NIOS II等硬體負責,軟體則處理較為複雜的部分,例如辨識圖像、找出圓盤相對應的音樂等。
很高興這次參加電機系大學部專題競賽能夠獲得首獎,非常謝謝各位教授們的肯定。這次能有這個機會為電機之友撰寫這篇文章,身為剛成為電機之友的我們也感到非常的榮幸與光榮。
簡韶逸教授註解
此作品初試啼聲是在2010亞洲創新大賽(Innovate Asia 2010),從臺灣區比賽,接到北京的總冠軍賽,一舉奪得兩岸總冠軍。這次比賽兩岸共約有八百隊由大學電機電子類學生組成之隊伍,從兩岸各選出前五名的隊伍,在北京的清華大學進行評比。台灣部分的隊伍有來自逢甲大學、高雄應用科技大學、虎尾科技大學等,而大陸部分則有北京清華大學、重慶大學、深圳大學等隊伍。每位學生需要將自己的創意與動手實作的成果,以英文演說的方式向來自全球的專家介紹。
從台灣區比賽的過程中,三位同學在完成原型後,就會來跟我約討論,從作品內容與演說排練。新穎的投影片設計、熟練的演說,這都是我在排練時看到的,顯見他們在事前一定做了不少的練習。
在順利地得知能到北京參加最後的總冠軍賽,只剩下約三個禮拜的時間,他們便詢問一些設計上的方向,像是硬體加速、更加強建(robust)的系統、人機介面的設計。所剩不多的時間下,他們竟大膽地重新設計作品,從外部的硬體到FPGA內的程式碼,每日利用繁忙的上課時間之餘,自行想出要如何克服所遇到的困難,達到所設定的目標,日以繼夜的努力創造準備搬到北京的作品。或許就是這麼的堅持,絕大多數當初與我討論的可行方向竟然在比賽前都完成,甚至還加了許多我當初始料未及的特色。
也因在亞洲創新大賽大放異彩,許多大學部的同學也紛紛受到鼓勵,勇於參加比賽,在接下來的亞洲創新大賽同樣獲得十分優異的成績。
於2012春天,友晶科技將此作品修改後帶到美國的ESC Design West會場展展出,同樣驚艷全場。Circuit Cellar Magazine的主編還特別
專訪報導:http://circuitcellar.com/featured/fpga-based-visualsonic-design-project/
在2012於墾丁舉辦的VLSI Design/CAD Symposium中此作品也有展出,讓所有國內與電路有關的研究學者看見。
「要做就要做最好的」這句話在他們身上表露無疑。這份作品的成功除了好的創意與本身的能力,三人充滿野心又肯花時間動手做才是關鍵。
陳柏亘、魏谷竹、劉修源,
電機系2011年畢業。
三人現況:陳柏亘在普林斯頓大學修讀學位,魏谷竹就讀於台大電子所,劉修源就讀於台大學物理所。
最初的原型
改進過的作品(前往北京參賽的版本)
於台灣區決賽的合照(左至右分別為劉修源、魏谷竹、陳柏亘)
三位於北京清華大學高舉獎盃(左至右分別為劉修源、陳柏亘、魏谷竹)
三位於北京清華大學的合照(左至右分別為陳柏亘、魏谷竹、劉修源)
此作品的現況