1. 設計介紹
(Preliminary Paper)
一、前言
現今資訊產品功能的日益複雜,需多產品即使具有強大的功能也會由於使用者介面的設計不良造成使用者操作的不便,進而導致產品效能、功能無法完全發揮。也正因此人機介面(Human Computer Interface)的設計一直為電機資訊科技十分重要的一個領域。其中擴增實境(Augmented Reality)為人機介面設計中的一子領域,其特點在於結合實體物件與電腦產生的虛擬物件,藉由人們與這兩種物件的互動來達到與機器溝通的目的。另外近年藉由電腦進行音樂創作興起,許多現代音樂的創作不同於以往,開始使用大量的科技媒介工具或素材。因此我們決定開發一套能讓使用者以直覺式操作來進行音樂創作的系統。這套系統除了能進行實際的演出以外,同時也具有高度的視聽娛樂效果。
二、作品介紹
VisualSonic Studio為一音樂合成與混音平台,支援多重使用者同時多工的操作。使用者可以藉由直覺式的操作來進行音樂的創作、混音、播放。在人機介面的設計,我們採用該領域中擴增實境(AR, Augmented Reality)的概念來進行開發。操作的平台上,除了機器所產生的虛擬操作介面外,系統同時支援實體物件的偵測來進行操作。這種同時結合虛擬物件及實體物件的操作模式增添了操作介面的彈性與發展。
此系統的發展中我們運用到了許多領域的知識,包括擴充實境(Augmented Reality)對於物件偵測及判斷的演算法;數位影像處理演算法來處理攝影機所擷取到的影像;多核平行運算用於NIOS II所建立的多核運算處理器;拓撲學於實體物件的圖形設計,來加速影響處理演算法的辨識速度及物件數量的大幅擴充能力;電腦音樂編曲方法來設計聲音檔案,確保個聲音檔案間的相容性及一致性。

三、作品的操作方式
VisualSonic Studio操作方式非常直覺,只要將圖章放到桌子上,我們的系統就會放出相對應的聲音。然後再藉由旋轉進行音量大小等等的參數調整。因此系統不但具有簡易的操作介面,更具有高度的擴充性及變化性。實際操作的示意圖如下:

四、市場比較
在進行此作品的開發前我們對於市面上和我們基於同樣理念的產品進行了調查,發現的確存在類似的產品。Microsoft Surface, Nlignten, PS3 Game: The eye of Judgment……等都和我們秉持著「現實生活中實體物件與數位世界中虛擬資訊直觀式互動」的概念。由於此性質的產品除了需要接受大量現實環境中的資訊以外,還需要處理大量的數位資訊,以上所提到的產品皆需要極為昂貴的硬體設備才足以處理如此大量的資訊。
VisualSonic Studio與目前市面上產品最大的差別在於VisualSonic Studio使用Altera DE2-70即足以達到同樣的功能及性能。這是由於VisualSonic Studio使用了大量的硬體電路來進行低複雜度的影像處理,高度利用數位電路平行話運算速度遠快於電腦程式的特性。而在高複雜度的影像辨識演算法,使用NIOS II建構處理器來進行運算。
五、目標使用者
- 電腦音樂創作的專業玩家
- 人機介面設計使用者
- 家庭互動式影音娛樂
- 音樂相關課程之授課輔助工具
六、以ALTERA設計的原因
1.豐富的IP
同時Altera 豐富的IP可以大幅度地提升我們產品的開發速度,能以最短的時間達到全面且完整的產品開發,同時完善的利用IP將可提升系統的效能。
2.容許軟體硬體的結合同步設計
另外Altera十分強大的功能在於他能同時支援硬體描述語言與軟體程式語言。允許我們同時從硬體及軟體的觀點切入系統的設計,針對不同模組的特性,我們可以選擇直接使用硬體來實踐我們的演算法或者是藉由NIOS II於系統上安裝中央處理器並在其之上執行C語言的程式。
3.高速的運算能力
由於我們需要同時進行影像辨識、視覺效果產生、聲音產生,因此我們以NIOS II在FPGA平台上建置多核心處理器,藉由平行化的運算,系統可以做到即時(Real Time)的反應。再加上我們可以將許多需要反覆使用的演算法直接以硬體方式來實現,進而提升系統處理速度及效能。由於此系統需要能有即時處理所擷取影像的功能,DE2-70能提供給我們足以達成即時的快速記憶體存取速度。
4.完善的硬體設備
DE2-70具有各式各樣我們所需的硬體設備,無論是各種記憶體、I/O接口、其他運算處理晶片等等。凡是產品開發所需的基本配備皆都整合在一塊板子上,方便產品的開發。
5.低成本及高度的彈性
綜合以上的幾個特點,選擇Altera來進行產品開發,可以大幅的降低開發的成本,無論是人力時間或設備成本。此外,軟硬體上高度的變化性,容與我們可以快速且大幅的改進我們的產品,容易進行系統的升級和維護。
(Revision: 11 / 2010-09-16 19:25:37)
2. 功能描述
(Final Project Paper)
VisualSonic Studio此系統提供了使用者一個可方便使用的介面。只要把圖章放置到平台上,系統便會辨識出圖章,即把所對應的聲音效果給播出。
而此系統的硬體設備主要包括DE2-70版、D5M相機、微型投影機,以及外層木造的使用者平台,如下圖所示。而系統內部模組,主要可分成相機影像擷取與處理、二值化校正、影像辨識、VGA控制、聲音產生等區塊。

實際例子
- 以設計介紹中作品操作方式為例
當使用者將圖章放上平台後,平台下的攝影機會將平台上的現況記錄下來,經過「相機影像擷取與處理」後,系統已能把環境的雜訊過濾掉,將有用的影像資訊進行「影像辨識」,而一旦系統辨識出正確且有效的圖章,系統會執行「聲音產生」,放出對應的音效;同時,VGA影像輸出也會經由「VGA控制」進行更新。
然而,環境的光源會影響「相機影像擷取與處理」出來的結果,故在不同的環境使用此系統前,使用者可透過「二值化校正」設定合適的臨界值來獲得最佳的效果。
而各個「」的詳細說明如下:
一、相機影像擷取與處理(Camera capturing)
把CCD所截取到的串流送進FPGA,以硬體模組的方式,進行資料的時序與相素位置解析,提供正確的訊號給後續處理。
而從CCD進來的資料有帶有RGB三種資訊,而在辨識上其實只要黑白的影像就好,故影像會先轉成灰階(Gray scale),接著二值化(Binarization)。依據需求,我們再將影像資料壓縮成四分之一。
整體而言:將每四格(2x2)像素的資料,儲存成1bit的資料。
二、聲音產生(Sound Generation)
一旦有圖章被系統辨識出來,我們預存在Flash記憶體中的聲音資料會被對應讀出,導入DE2-70板子上的Audio Codec DAC轉成類比信號,從Lineout透過外接喇叭播放。而本系統可支援多種聲音一併播放。值得一提的是,預存在Flash中的聲音資料我們都事先處理過,確保聲音與聲音之間的設計符合基本的電腦音樂設計原理以及容許數位電路同步化的處理。
三、二值化校正(Calibration)
由於影像會受到周圍光線的影響甚鉅(如下四張圖所示),二值化的臨界值(Threshold)在不同的環境會應有不同的設定值,才能使圖章辨識的效果最佳化,故系統在不同的環境使用前都應該做一次校正。而我們的系統不只提供使用者使用DE2-70上的數個Toggle來自行校正,也可以讓系統自動校正。而自動校正的方式乃是模擬二分搜尋(Binary Search)。


四、自錄聲音
使用者可以將麥克風及音源輸入的聲音錄下來,並且指定一個特定的圖章,即爾後在平台上放上該特定圖章時,系統會播出使用者之前預錄好的聲音。此能使整個系統具有客製化的特性並且更加豐富,這對有音樂創作需求的使用者而言,是個十分方便的功能。
五、影像辨識(Detection)
為了要達到良好的辨識效果,及具備一定的擴充性,採用純硬體的架構似乎不能完全滿足需求,因此我們在此採用NIOS II,使用軟硬體並容來實作。我們的圖章有符合某些拓樸學(Topology)的特性,使得圖章不會因為旋轉而辨識不同,同時,在掌握到某些原則,擴充本系統的圖章也是容易的。我們在辨識上利用鏈結串列(linked list)來表示,使用NIOS II來檢查是否為合理的圖章。
六、VGA控制(VGA Controlling)
微型投影機的操控就在此模組。當系統辨識到了正確的圖章,即符合資料庫內的資訊,此模組會接收到圖章的位置及相關資訊,而近一步地把該資訊合理的透過VGA送到投影機。
(Revision: 33 / 2010-09-16 19:56:19)
3. 效能參數
(Final Project Paper)
一、編譯資訊
首先我們把我們所用到的Logic Elements的個數及相關資訊列出,下圖是經過Quartus II編譯後的系統資源情況:

二、 辨識時間
為了近一步了解我們辨識圖章的效能,我們在最主要的辨識驗算法(以NIOS II實作)的部分,依圖章數目不同所造成不同的辨識時間茲列於下表;對於每種情況,各測量100次。下表辨識演算法的部分即是其平均值,而後附上標準差以看出測量之準確度。
|
時間
|
標準差
|
二值化校正時間
|
5.9 s
|
N/A (時間固定)
|
辨識演算法時間 (將指定數量的圖章放上後,再記錄一個frame演所需辨識時間)
|
|
零個圖章
|
34.01 ms
|
± 0.6 ms
|
一個圖章
|
44.44 ms
|
± 1.3 ms
|
二個圖章
|
54.92 ms
|
± 1.5 ms
|
三個圖章
|
63.32 ms
|
± 0.9 ms
|
四個圖章
|
74.27 ms
|
± 0.9 ms
|
五個圖章
|
87.82 ms
|
± 0.5 ms
|
六個圖章
|
103.1 ms
|
± 0.7 ms
|
七個圖章
|
118.6 ms
|
± 1.0 ms
|
八個圖章
|
134.8 ms
|
± 1.0 ms
|
九個圖章
|
155.1 ms
|
± 1.0 ms
|
十個圖章
|
172.7 ms
|
± 1.0 ms
|
圖章辨識時間 (依人感覺的時間作為測量依據)
|
|
第一個圖章
|
0 s
|
N/A
|
第十個圖章
|
0.3 s
|
N/A
|
辨識演算法統計圖
下圖是依照上表中辨識演算法時間,從零個圖章到十個圖章分別對應的辨識時間。可看出辨識的時間約與平台上的圖章個數大致呈正比。

三、光線影響之辨識準確度
由於光線對於捕捉進來的影像會有很大的影像,下表列出三種情況所捕捉到的影像,隨後附上其辨識的成功率。可看出只要光源能夠被校正至第二張圖(實驗室光源)的情形,即與我們眼睛所能看到的圖像大致一致,此系統都能完整的辨識出應有的圖章。
強光下 |
.png) |
成功率約1%
|
實驗室光源
(正常光源)
|
.png) |
成功率約99%
|
不均光源 |
.png) |
成功率約50%
|
(Revision: 4 / 2010-09-16 22:00:03)
4. 設計架構
(Preliminary Paper)
一、系統架構圖及硬體設計模擬方塊

|

|
圖一 |
圖二 |
VisualSonic Studio的架構包括一個實際的平台,允許使用者將我們所設計的特定圖案放置在其上,藉由攝影機的偵測後,通過處理系統,最後再將所對應的影像及聲音輸出。使用者所使用的平台為一毛玻璃材質的平面,藉由毛玻璃的本身的物理特性,可把不必要的影像過濾掉,只有貼在毛玻璃平面上的物件可以從下方被看到,而如此的處理將可以加速我們影像的處理時間。另外處理系統則由Altera DE2-70來進行設計,除了使用Verilog來實踐部分的演算法外,主要進行圖形辨識的演算法由於相對的複雜,因此我們使用NIOS II建置CPU來進行運算。圖一為整體系統的設計架構圖,而圖二為FPGA板所使用的系統架構圖。
二、SOPC及自製模組架構

圖三

圖四
圖三把此系統中的各個模組之間的關係用Hierarchy 的方式呈現。更進一步的, 在圖三中比較特別的部分, NIOS II,其較詳細的架構呈現在圖四,其主要的部份就是一顆CPU, 配合timer。而這個NIOS 和系統硬體架構的連接部分便是圖三中周邊的框框。
三、軟體流程圖

圖五
我們使用的影像辨識演算法請見圖五當中。在程式開始執行後,先進行了變數的宣告以及PIO等等的初始化,之後就進到了一個while(1) 的迴圈,即是整個程式工作的開始。
在NIOS II 處理器內部記憶體的配置上,我們將兩個SDRAM都供給NIOS II處理器來使用,所以記憶體的空間非常充裕。並且我們定義了自己的struct來處理畫面上圓點的偵測,並且使用linked list資料結構來進行其演算法的運作。由於在資料結構及比對較為複雜,因此選用了C語言來實作而非硬體實作,其完成的工作茲列於下表。。
Frame Refresh |
進行畫面的複製,以利於平行處理而不致於相互干擾。 |
Line-to-Segment Cutting
|
先對一行的資料進行處理,將串流的位元資訊收集起來,變成一段段黑白線段的資訊。 |
cdet Parse |
進行大量的條件判斷,其中使用了recursive的手法,將線段資訊層層往下傳送,將所有可能的情況辨識出來。 |
Pattern Recognition |
資料的比對,檢示所有出現在畫面中的資料是否為我們內定的圖章。如否則忽略之。比對完畢後將圖章沒出現的聲音關閉,將圖章有出現的聲音開啟。 |
(Revision: 10 / 2010-09-16 21:51:31)
5. 設計方法
(Final Project Paper)
一、SOPC硬體部分

圖形辨識的SOPC主要是將由硬體處理過的圖形資訊讀進處理器中,然後進行軟體的辨識。辨識完成後依據所辨識出來的圖章,以PIO的方式將結果送出。
二、畫面更新(FRAME REFRESH)
這是最主要和外部溝通的部分,因為我們在外部儲存畫面資料的硬體是on-chip memory。on-chip memory在外部還有CCD 模組要使用,所以要防止衝突以及有效率地讓外部的模組和CPU都可以進行資料的讀寫,我們在開始進行偵測比對之前,就先快速地將整張畫面儲存一份到CPU 的記憶體當中,以便於在之後進行運算的時候,外部CCD攝影機可以同時進行畫面的截取。
三、逐行處理-線段切割
在整張畫面處理完畢後,就進行逐行處理中的線段切割。因為演算法的初始有初始的假設,所以我們需要對一行的資料進行處理。我們將左右兩邊的資料丟棄,換成我們所要的初始及結束資料;這兩份2 Bytes(共4Bytes) 的資料多半是雜訊,因此丟棄反而有助於辨視的成功。線段切割是將畫面黑白轉換的地點找出來並且判斷線段的長度是否大過我們內定的錯誤值。如下圖所示:
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
在錯誤值設定成2的情況下,我們會將上圖中0, 1, 5, 13, 18抓出來。其中0, 和 18 會被抓出來當成初始及結束資料(皆是白色線段,既使17到18都是黑色)。而中間的8, 9因為尚未超過錯誤值的緣故,被我們所丟棄;也因此上面的情況會將5到12看成一個白色的線段。
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
而這個情況則只有0, 5, 11會被取出(此時18不取出,因為18是我們所希望的白色)。在進行線段處理過後,資料量會大幅地從原本的640減少到很小的範圍,因此可以允許我們接下來較為複雜的運算。
四、逐行處理-CIRCLE DETECTOR
嚴格來說應該是色塊偵測器,而不只是圓形偵測器。它的資料成員(data members)如下表:
型態 |
名稱 |
描述 |
short unsigned |
begX |
前一行的開始座標 |
short unsigned |
endX |
前一行的結束座標,pass-the-end
|
short unsigned |
begY |
cdet被創造時所在的行數
|
struct cdet* |
next |
linked list結構所使用的pointer
|
struct cdet* |
child |
在這個偵測器底下的偵測器;
大圓中的小圓會被大圓的child所指向
|
struct cdet* |
child_done |
已經被偵測完畢的小圓 |
char |
white |
1:白色圓點,0:黑色圓點
|
char |
childNum |
linked list child_done中的cdet數量
|
我們用遞迴的方式叫分析函式,直到所有圓中之圓都被偵測結束了,才一一回傳。要偵測出圓中之圓,我們可以比較變色的地點和cdet的begX和endX。如果變色的地點在begX和endX之間,則可以確定有圓中之圓產生,因此創造與之相對應的cdet。而其中為了應付所有的可能性,我們使用了下列的條件判斷來處理。主要如下表格所示:
條件判斷表格
情況:切好的線段
開始位置
|
情況:切好的線段
結束位置
|
情況:
線段的顏色
|
判斷
|
在偵測器開始之前
|
在偵測器開始之前
|
和偵測器同色
|
新的偵測器
|
和偵測器異色
|
不處理(底色)
|
在偵測器中間
|
和偵測器同色
|
此線段為此偵測器的
子辨識開頭
|
和偵測器異色
|
下一線段為此偵測器的
子辨識開頭
|
在偵測器結束之後
|
和偵測器同色
|
只將此線段給子辨識
|
和偵測器異色
|
此偵測器偵測完畢
|
在偵測器中間
|
若第一次進行此偵測器的辨識即在此處,則和前一個偵測器合併
|
在偵測器中間
|
Don’t care
|
不處理(中間段)
|
在偵測器結束之後
|
和偵測器同色
|
此線段為此偵測器的
子辨識結尾
|
和偵測器異色
|
前一線段為此偵測器的
子辨識結尾
|
在偵測器結束之後
|
Don’t care
|
和偵測器同色
|
此偵測器偵測完畢
|
和偵測器異色
|
(不應該發生) 處理:
和前一個偵測器合併
|
偵測器串列結束後
|
Don’t care
|
和底色同色
|
不處理
|
和底色異色
|
新的偵測器
|
需要以上複雜的處理主要是防止雜訊造成嚴重的錯誤,以致於整個程式不能動或判斷錯誤。同時也要辨識出無法預期雜訊會有的凹圖形問題,以致於需要合併或是分隔等等。如上面所示,如果我們找出一個偵測器子辨識的開始與結束,則可以將這個辨識器當成是背景,然後遞迴呼叫分析函式,進行下一層的辨斷,如此就可以在圓中包圓。
五、圖章辨識(pattern recognition)
即是拓蹼圖形的辨識。由於我們設計的圖章可以用鏈結串列(linked list)唯一的表示出來,所以只要有一套效率足夠快的演算法,就可以在NIOS上實作出來。由於拓蹼圖形的優點,我們在很小的面積下也可以很成功地辨識出圖章。再加上為了辨別的快速,我們最多只有兩層;如此就可以計算「擁有第二層」的第一層圓點個數,很快就可以辨視完畢。而且設計得當,可以避免錯將雜訊當成圖章,也可成功認出所擺放的圖章。
下圖為我們運用一些拓撲學概念來設計特定所要被偵測的圖形,針對不同的圖形我們可以建構出不同的搜尋樹,再將這些搜尋樹的資料提供給圖形辨識的演算法做搜尋與判斷。如此的圖形設計搭配上相對應的演算法,我們可加速圖形辨識的速率。

六、繪圖核心
我們使用第二個SOPC來進行繪圖的處理,為偵測到的圖章打上光圈。並把兩個辨示出來的圖章之間的交互影響,畫在螢幕上,讓整個畫面看起來更有動態感,也讓使用者可以清楚的了解到他所放下的圖章有什麼樣特殊的功能。
(Revision: 10 / 2010-09-16 21:49:48)
6. 設計特點
(Preliminary Paper)
一、軟硬體共同設計
為了達到最好的系統利用,我們在設計的時候同時考慮了硬體的特性與軟體的特性,把系統做合適的分割(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的數個開關來設定臨界值。當然,使用者也可以透過半自動模式加上手動模式的彈性調整,獲得此環境下最好的效果。
六、低價與易於擴充
平台本身建置成本低,只要將DE2-70的內容進行晶片化,VisualSonic Studio將會是套成本低廉但高效能的互動式音樂混音作曲平台。 而在我們設計此系統時,在系統有限狀態機(FSM)、圖形辨識演算法及圖形設計上皆考慮了未來擴充的可能。例如,拓樸圖形的設計可使系統只要掌握到圖章的幾個重要特徵即可判斷,因此程式碼會顯得很簡潔易於修改。倘若爾後需要加上更多的圖章與聲音,只要依我們設計圖章的規則依此類推(可見設計方法的圖章辨識),新的圖章也可被唯一轉換成樹(Tree)的結構,也就很容易地可被辨識出來。因此,此系統可以一直擴充圖章來增加系統內容的功能與豐富程度,提供各種不同領域的使用者使用。
七、跟電腦溝通
可用DE2-70板子上的RS-232來與電腦做溝通,這提供了更大的使用彈性。在現今,獨自運作的封閉系統已經不能滿足要求了;電腦、手機或中多其他消費性商品都已經與網路有相當大的結合,使用者能夠透過網路與其他使用者互通資料,加速資訊的流通,成就所謂的資訊社會。我們利用傳統的RS-232傳輸介面來增加此系統在溝通這方面的能力,使用者能夠透過電腦端的程式修改部分系統的參數,如各種圖章對應到的聲音為何。甚至,使用者也能夠透過RS-232與其他的使用者互通資料,做到不同FPGA板的溝通。有了傳輸介面,在PC端使用者還可開發功能,就像現今手機的開放式系統(如Andriod),為系統注入生生不息的活力。例如用RS232進行更新預存的音樂等等。
(Revision: 19 / 2010-09-16 21:41:31)
7. 總結
(Final Project Paper)
感謝Altera辦了InnovateAsia這個創新設計大賽提供了我們一個實作夢想的機會。我們三個人在剛開始決定參加比賽時,充滿了滿腔的熱忱,無不想做出一個很棒、創新的作品。經過了不少的Paper Survey和看過了無數的網站與影片,一個個天馬行空的提案,也經過一次次的否決,我們才定出今天現在作品的這個題目。
剛開始實作,對各種的I/O的操控方式與時序資訊(Timing Information)都沒甚麼概念,幸好從板子的使用手冊上看到許多的範例,其不只是給了我們立即使用上的協助,我們也從中看到HDL撰寫的技巧,對往後的開發都很有幫助。我們的程式與硬體架構也是經過不斷的修改、更新,無不是希望使作品能夠更加的完備,離我們當初的夢想更靠近。而當然,作品的實作不只有在電腦上透過Quartus或NIOS等軟體而已,要形成一個方便的使用平台,我們也到過不同的地方尋覓合適的材料,一步一步靠著我們的雙手與簡單的工具,把作品的外在「釘做」出來,也就是現在的樣子,真的是個很特別的經驗!
也只有透過這種辛苦的過程,才能體會到成果的美好,就好像運動選手平時得負荷常人不能忍受的訓練,使在達到目標時或破紀錄時更顯得令人愉悅與感動。雖然過程中走了很多冤枉路,花了很多時間,但也就是這些經驗使我們不斷的蛻變,了解到問題的核心在哪。最後來是要再次感謝InnovateAsia給我們的機會,希望我們的作品能夠獲得肯定,使我們的夢想完成!
附錄、 Reference
[1] Ronald T. Azuma, “A Survey of Augmented Reality,” Teleoperators and Virtual Environments vol. 6, pp. 355-385., August 1997
[2] Martin Kaltenbrunner, Ross Bencina, "reacTIVision: A Computer-Vision Framework for Table-Based Tangible Interaction," TEI'07, Ch2, Feb. 15-17 2007
[3] Sergi Jordà, Günter Geiger, Marcos Alonso, Martin Kaltenbrunner, "The reacTable: Exploring the Synergy between Live Music Performance and Tabletop Tangible Interfaces," TEI'07, Ch3, Feb. 15-17 2007
[4] Ross Bencina, Martin Kaltenbrunner, "The Design and Evolution of Fiducials for the reacTIVision System," www.mtg.upf.edu/files/publications/376678-3rditeration2005-mkalten.pdf
[5] Hirokazu Kato, Mark Billinghurst, "Marker Tracking and HMD Calibration for a Video-based Augmented Reality Conferencing System," www.hitl.washington.edu/artoolkit/Papers/IWAR99.kato.pdf
[6] Ross Bencina, Martin Kaltenbrunner, Sergi Jordà, "Improved Topological Fiducial Tracking in the reacTIVision System," www.audiomulch.com/~rossb/writings/Procams05-BencinaKaltenJorda.pdf
[7] Thad Starner, Steve Mann, Bradley Rhodes, Jeffrey Levine et al., "Augmented Reality Through Wearable Computing," MIT Media Laboratory Perceptual Computing Section Technical Report No. 397
[8] Moritoshi Yasunaga, Taro Nakamura, Ikuo Yoshihara, Jung H. Kim, "Genetic Algorithm-Based Design Methodology for Pattern Recognition Hardware," Evolvable Systems: From Biology to Hardware, pp. 264-273, 2000
[9] T. Darrell, G. Gordon, M. Harville, J. Woodfill, "Integrated Person Tracking Using Stereo, Color, and Pattern Detection," International Journal of Computer Vision, vol.37(2), pp. 175-185, 2000
(Revision: 2 / 2010-09-16 21:38:43)
|