前言

我感覺這學期是這兩三年來過的最快樂的學期了。過得很充實,修了四門課,依舊參加美術社,寫了不少文章,找到研究方向和題目。念資工果真是一件很開心的事情。大致上,碩一下分為三個方面,分別介紹修課方面、美術社和研究方面,本篇先介紹修課方面。

修課

這學期四門課都屬於中等難度,但加起來仍十分忙碌。主要是我上學期修了一門重課,所以上學期只敢修兩門課,而要畢業總共要修八門課,為了讓碩二可以專心做研究,這學期才需要加速修課進度。

受武漢肺炎影響,只有一門課是實體,其他課都改成線上。我其實滿喜歡線上的,因為可以在喜歡的時間用兩倍速播放,但是缺點是老師同學都不認識,這樣感覺挺糟的。對於找組員來說更是一件困難的事,以往都是隨便搭訕,但現在連人都見不到,後來就是隨便寄 Email 找組員了。可以的話,我希望課程都是線上,但有線下實體討論,我覺得這樣模式是我最喜歡的。

這學期我修了,電腦動畫、電腦視覺、XR 專題、自然語言處理,雖然我研究是系統軟體,但修課完全跟系統軟體沾不上邊。一方面是我覺得交大沒有開我想要的課,我會想要的是異質運算、高效能運算、系統軟體分析、分散式系統這方面的課程,但很遺憾交大都沒開,而且其實下學期也沒有。另一方面,既然沒有我想要的,那就是開拓眼界,我刻意選了非常「視覺化」的課程,我覺得這些題目都與生活息息相關很有趣,而且對於想走高性能運算的我,高效能運算勢必要有應用領域,那這些知識對我未來也許就會有幫助了,比方說電腦視覺計算加速、電腦動畫計算加速。

XR 專題

我非常推這門「XR 專題」,這堂課大陣仗每堂課都是四位老師出席,分別是莊榮宏、謝啟民、張宏宇和王銓彰,老師們來自資訊所、傳播所、應藝所還有業界。這跟其他輪流上課的合開完全不是一個檔次。我非常喜歡這門課,不過這門課也是花超級多時間與組員討論作專題的硬課。

每個老師觀點都不相同,例如王銓彰會從自己接案和開發的角度去分析可行性;張宏宇在使用者體驗上非常有著墨,也很強調產品的「故事性」;謝啟民很喜歡創新的想法,越獨特越藝術越好;莊榮宏通常比較看重技術層面,同時他是這門課的籌辦人,功不可沒。四位老師我覺得都很棒,而我自己則最喜歡和欣賞王銓彰,他在 XR 開發上面常常有獨到見解,下課後我常常去找他討論,每次對話都感覺很有收穫。

我與王銓彰老師合照:

我與王銓彰合照

學期目標是做出三個專題,每次專題就是自己發想一個 AR/VR/MR (統稱 XR) 方面的專案,前兩次專題會由老師給題目,像是第一次是要說一個故事,第二次是「打破第四面牆」,但三次則是自由發揮。組員基本配置是兩位程式開發、一個音樂設計、一個視覺設計,會有很多機會和音樂所、應藝所等其他領域背景同學合作。這種組員配置開發專案感覺就跟新創公司很像。

課程也提供非常豐富的 VR/AR 設備,Vive、Hololens、Oculus 等十幾組,其中 Hololens 一台就要價十二萬,如果不是這門課有提供,根本沒機會一次拿到兩台來玩。設備中,Vive 很常見我也玩過不少次,但不得不說微軟的 Hololens 真的非常厲害,原則上來說可以說它是 AR 眼鏡,但是柯南的眼鏡或是 Google Glasses 只能在鏡片上呈現 2D 畫面,而 Hololens 可以在眼鏡前面呈現立體畫面,就可以讓你覺得透過眼鏡在真實世界有一個真的 3D 物件一般,因此可以做到非常好的虛實整合,怪不得微軟稱作混合實境 (Mixed Reality)。

這門課的精華在於學習如何在一個小型團隊中扮演好自己腳色並開發出產品。一般來說,真的團隊通常還需要一個企劃或一個 PM,那在沒有的情況下,就需要有人身兼這責任或是水平式管理。開發期間會需要和組員大量討論,幾乎每個禮拜都會花三四天開會討論一兩個小時,這還不包括自己做事的時間。

每次專案的期間,每周都會須要報告,四位老師都會根據進度結果給意見和指點。老師們都在 XR 領域有非常豐富的開發經驗,如同前面介紹老師特質,不管是技術層面、產品層面、故事性、使用者設計等,都可以從老師精闢的回饋學到很多。

第二次題目是「打破第四面牆」,這是一個很抽象且困難的命題。因為第四面牆通常就是指表演藝術與觀眾互動,那麼 XR 裝置的第四面牆又是甚麼?大多數組別的解釋方法就是同時用兩種不同的媒體作互動,像是 AR 裝置搭配 VR 裝置進行遊戲,或是電腦搭配 VR 裝置。我們這組詮釋的作品是,所有 VR 使用者會同時觀賞同一個劇本,但是劇本走向是所有 VR 使用者透過即時遊戲對抗來做決定。即使每個用戶身處不同處,但在體驗劇情的時候卻可以由即時連線的互動機制打破彼此的第四面牆。

對於理工學生來說,鮮少會跟音樂、藝術、傳播背景的同學相處,我覺得可以藉由這門課多接觸。此外這門課很像新創公司快速開發的流程,人員配置也滿標準的,對於沒有實習經驗的同學也可以先練習業界的開發模式。即使我已經在好幾家公司實習過,平常就和不同背景的人打交道,在這門課中仍有許多新的體悟。

電腦動畫與特效

在介紹電腦動畫與特效這堂課之前,大家可以先看一下這部影片,回顧皮克斯動畫的演進:

我自己看了這個紀錄片是很感動的,科技演變總是令人嘖嘖稱奇,這也是我為甚麼會想修這堂課的主因。

電腦動畫跟物理模擬基本上概念很像,的確為了讓動畫看起來更真實,我們需要遵守物理原則,但是因為是動畫,在很多細節的部分又可以不完全遵照物理模型,不過這門課主要還是介紹物理模型來做動畫,特效部分講比較少。

這門課的作業我覺得做起來挺有趣的,畢竟是電腦動畫,所以作業都是看的見的,看的見的東西通常就很有感。有興趣可以看我之前寫的電腦動畫相關文章

像是第一個作業就是 2D 的物理模型:

ca image1

不過我對作業是頗有微詞,每個作業都是一大包 VS 的專案,作業給的程式碼弄了一堆抽象化和物理導向的框架,還沒開始寫程式作業模板就已經有一兩千行的 Code,如果只是為了實現物理模型,簡單的 Python 搭配簡單的渲染引擎不是很好嗎?

期末專題也是挺有意思的,整學期都線上,最後一堂課終於實體了,大家作品幾乎都是拍動畫短片,看得很過癮。不過我認為,這門課既然是教電腦動畫特效的原理,期末專題應該自幹一些物理模型或特效或是介紹一些論文研究,但大部分的人都是用 Maya 動畫軟體來做動畫,感覺其實比較適合當「電腦動畫之應用」或「電腦動畫實務」這種類型課程的專題。

秉持著科學家精神,期末專題我們實現了 Jos Stam 經典論文「Real-Time Fluid Dynamics for Games」,做了一個流體遊戲引擎,這是我們渲染的火焰特效:

火焰

整體來說這門課還不錯,適合跟我一樣對電腦動畫所感動的人來修。

電腦視覺

電腦視覺也是門好課,一共五個作業,分別是相機校正、圖片傅立葉處理、影像拼接、影像立體還原、圖片分類。每個作業做起來都很扎實,而且這五個作業做完幾乎等於一窺這門領域的奧秘,分量完全不輸國外一流大學。

關於作業可以看我寫的「電腦視覺相關文章」。每篇文章都是其中一次的作業。

上課內容基本上就是 Computer Vision 教科書的大部分內容,不過關於影像處理的部分講比較少,最後幾堂課因為教授很愛機器學習,講了不少機器學習的東西。

不得不說邱維辰教授是我目前英文聽起來最舒服的,明明他是留德的啊😂。他的口頭禪是 “ok” 或 “right”,幾乎每一句都有,不過聽習慣就好了,至少英文是流利的。交大規定畢業至少要修一門英文授課,如果有同學只想選一門英文授課的,建議就選他教的課。

自然語言處理

這門課是用古典的機率模型講自然語言處理 (NLP),與台大陳縕儂開的「深度學習之應用」可以配合著看,後者是以深度學習角度去切入 NLP。

我覺得這門課前面還不錯,介紹機率模型的 TFIDF 和 Bi-gram 都挺有趣的,TFIDF 作為古典機率模型在 NLP 表現還是很優異,常常被當作 baseline。但課程後面針對 NLP Parser 講述過細究有點無聊,其實大可以介紹一下深度學習與 NLP 的關聯。

一共有五個實作課程,都是簡單的小程式,會寫程式的話不會花太多時間,寫起來很有成就感。分別是 (1)自己刻一個 TFIDF 模型 (2)用函式庫對語料庫做詞性處理 (3)實作 Bi-gram 模型 (4)用 AWS 的問卷平台 (5)用簡易機器學習模型處理 NLP。

我覺得有實作的課都滿好的,因為我自己動手型的,不真的寫程式其實很難理解原理,整體來說我覺得作業算有趣,不過第四個用 AWS 的問卷平台真的很無聊,其實就是串串 API 而已,我可以理解為甚麼要有這個作業,因為在做研究時常常會需要設計問卷系統給受訪者用,不過當作作業就無趣了點。作業整體上缺憾我覺得是沒有讓我有一窺整個領域的感覺,感覺只接觸了 NLP 學問中的一小部分而已,也許可以讓作業範圍更全面一些。

期末專題就滿詭異的,是一個 NLP 的辨識競賽,題目是有一堆 Tweets,要幫他們分類是甚麼心情。結果明明是一門以古典機率為主的 NLP,但大家都用深度學習在處理這個問題,而且老師上課完全沒講過深度學習,本人又是個深度學習白癡,所以最後我只好靠隊友 Carry 了。

結論

這學期修的課分量大約都是中等,不過加起來真的快累死了,每堂課的作業都輪流在死線,都沒其他閒餘時間好好做研究,但也因此覺得學得很充實,感覺自己又成長了不少,大學沒念資工的遺憾也彌補了許多。整體來說交大的課跟台大其實沒差,根據留美學姊心得,美國一流大學課程品質也沒比交大好,這讓我心安了不少,看來交大修完課出去將會很有競爭力。