發表文章

目前顯示的是 7月, 2021的文章

影像處理 | 修課心得

圖片
打完這場戰爭, 我就要回鄉去跟我的未婚妻完婚, 寫完這一篇之後, 我就要努力去拚經濟了, 一個立Flag的概念?影像處理這門課程, 相對於其他兩門課程又傳統了一點, 但老師可以是底子相當深厚的大師, 雖然說這是一門歷史悠久的學問, 但也因為博大精深, 總有探究不完的知識在等著你。 打完這場戰爭, 我就要回鄉去跟我的未婚妻完婚? Photo by Pixabay on Pexels.com 會這麼說是因為, 自第一張相片面世以來, 影像處理的學問早已遍佈你我生活中, 從黑白影像處理, 頻譜分析, 失真還原, 雜訊處理, 甚至假新聞等, 在在都有影像處理的學問在裡面, 甚至自駕車, 無人機攝影等, 你都免不了要影像處理助你一臂之力。 在進入這門課之前, 首先你要知道一張數位影像的組成方式, 像素是什麼樣的概念, 接著知道數位影像跟影片的關係?但那還算其次, 如果可以, 請先大概知道一下Spatial domain和Frequency doamin, 如此將有助你在影像處理中更快上手。 在本課程中, 老師將會從大氣遙測影像開始介紹起, 或是其他比較生活化的例子, 這也是我敬佩老師的地方, 講學問不難, 要講的有感覺, 很不簡單; 接著會介紹影像強化、影像校正等等, 還有雜訊處理, 在學期中, 你將會有幾個課堂作業要繳交, 這些作業會以老師上課講解的方法為主, 你必須用程式去實作概念。 Photo by Maksim Goncharenok on Pexels.com 在期末時, 還會有個論文報告, 一個期末作業, 最後則是期末筆試。 再多提一點好了, 本次作業的主軸是邊界抽取(Boundary Extraction)、填充(Image Filling), 影像校正, 把扭曲的影像轉為正常影像, 這在車牌辨識非常實用, 至於去雜訊則會在課堂上提, 還有就是影像增強, 將邊緣強化出來。 當然, 隔行如隔山, 不知道怎的, 我對影像就是感到很苦手, 雖說我曾做過影像加密, 把文章藏在圖片內之類的事情, 但畢竟都是10多年前的事情了, 慶幸的是老師沒想過要放棄我們, 不管我們再怎麼樣聽不懂….如果你真心對影像有興趣, 我會建議你一週排兩門課程就好, 這樣你會有更多的時間吸收老師的學問。 Photo by hitesh choudhary on Pexels.com 最...

高等資料探勘與巨量資料分析 | 修課心得

圖片
這門課也是在第1學期選的課程, 對比其他課程, 這門課程會和 物聯網應用與資料分析 的性質比較相近, 或是應該說, 2門課程間可以互補。 從字面上來說, 高等資料探勘述說的會是比較深度的資料探勘科學, 而巨量資料分析則是著重在如何有效率, 並且用什麼工具來做巨量資料處理, 沒錯, 不要說什麼大數據啦, 就是Big Data啊, 有些用詞我們還是精準點, 不要被其他文化圈給影響了。 當然, 一切聽起來都是那麼酷炫。Photo by Kevin Ku on Pexels.com 在進入這門課程之前, 你可能…可能不知道自己該準備些什麼, 就好比當初的我一樣, 但如果可以的話, 建議你要具備一定的程式能力, 譬如Java、Python, 老師不會特別教你怎麼寫程式, 認真來說的話, 你也不該花研究所學費來學這種東西; 除此之外, 你還需要對一些統計學有基本的概念, 這樣或許會讓你更快上手。 而在這門課程中, 你會有幾個不同的階段要面對, 在前半週, 課程主要是在介紹何謂巨量資料處理, 這裡會用到的工具是 Hadoop , 也會提到 Reverse-index , 簡單說, 老師在這裡主要是介紹 Ma pReduce , 讓你知道怎麼對巨量資料進行處理、篩選, 在這裡你主要會寫到的語言是Java; 再來是會開始介紹 Spark , 主要你會用到Python語言進行開發, 在熟知這些框架和觀念後, 你會有個期中作業要繳交。 接著來到課程的第二段, 這部分主要介紹觀念, 主要是針對高等資料探勘的觀念, 資料探勘的面相很廣, 當然應用也很多, 譬如說你偶爾會在購物網站上看到的「猜你喜歡」, 也許不一定每個人都會用這些技術來達成。 Photo by Askar Abayev on Pexels.com 在資料探勘階段, 你會了解到很多新東西, 譬如像 熵 、Gini Index, 再到決策樹, 亂度森林等, 其中 熵 和Gini Index用來計算資料中的不純度, 或是分佈程度, 決策樹, 亂度森林則是用來輔助決策, 簡單說就是找出最佳解, 在這裡會建議你不要輕易放過一堂課, 因為每堂課都有相當多的重點要了解, 你甚至需要在課程結束後多多思考, 才能略為瞭解(就我來說是這樣)。 除了上述內容以外, 還會提到貝氏定理, 皮爾森乘績等, 最後你會需要繳交一到兩個期末專題, 還...

物聯網應用與資料分析 | 修課心得

圖片
有些事情可能要一鼓作氣地做完, 才不會顯得特別疲累, 最近寫了109學年度第2學期修的課程, 分別是 數位系統測試、 計算機網路 、 嵌入式系統原理與應用 , 其實真要說的話, 我還有第1學期的三門課沒紀錄, 只是當初可能一放寒假就跑去大吃大喝了, 接著一轉眼又開學, 壓根兒就忘了這件事情這樣。 當然這是個不好的行為, 可以的話建議不要學習, 不可以的話也不要學習。 「物聯網應用與資料分析」是我在第1學期修習的課程之一, 從字面上看來的確多著重在 物聯網 相關內容, 至於我們怎麼去實現物聯網呢?在這課程使用的是 Ardiuno 為基底, 語言不拘, 為什麼我會這麼說呢?主要是因為物聯網分為兩塊, 一是每個收集點, 也就是 Ardiuno 裝置本身, 再來則是接收資料的處理中心, 在這裡會是一個雲端伺服器, 而在這課程, 我們會著重在雲端段的處理和應用, 然後會有一些和深度學習有關的教學, 最後讓你可以做出一個有用的系統。 當然,Useful的定義是因人而異的。 Photo by Monstera on Pexels.com 在進入這門課程之前, 你可能需要具備一些基礎的知識, 譬如Ardiuno是一個怎麼樣的存在, 在這個裝置上可以做些什麼事情, 如果可以寫Sketch語言是最好, 不行的話就是要能寫些C語言, 因為這兩語言是相近的, 只不過一個是古代野蠻人、一個是新生兒這樣。 再來你會需要了解IoT的原理, 清楚知道什麼是感測層, 還有雲端網路的架構, 彼此之間資料如何流動, 如果有這些知識, 接著你就要掌握伺服器端要如何實作, 你可以用PHP、Java、Python等, 重點是如何把資訊收回來, 並整理成你要的資料。 Photo by Brett Jordan on Pexels.com IoT is cool. 在這門課程, 首先你會先了解到Ardiuno如何運作, 接著學習到如何把資訊從裝置上收回來, 你可能會收到溫度、濕度之類的, 然後做一些轉化後, 再存入資料庫。 你會有一個簡單的Project。 接著有趣的來了, 老師會引導你進入 AI 的世界, 但先別慌, 你不會一腳就踏上尖峰, 我們會幾本地了解到機器學習、深度學習等, 而比較重要的, 是你會接收到關於 Linear Regression , Logistic Regression等的原理, 並...

數位系統測試 | 修課心得

圖片
先前提到, 本學期修了三門課, 除了 計算機網路 , 嵌入式系統原理與應用 之外, 再來就是數位系統測試了, 之所以最後才提這門課, 是因為我對這門課的掌握度最低, 起初, 剛聽完第一堂課時, 我就覺得我聽不懂。 後來又聽了第二堂, 猛然發現, 我真的聽不懂!? 事後我思考一下我的問題, 主要應該是因為我離開校園之後, 這十多年來接觸的都是High Level的軟工作(相比底層硬體邏輯), 所以猛然一接收到這課程的相關知識時, 就總有一個很大的Gap在前面等我。 Photo by Kilian M on Pexels.com 那股仰望高山的感覺, 真的很難形容啊! 不過事情總是會有轉機的, 回到正題, 這門課主要是在講解如何針對積體電路、記憶體等做測試工作, 為什麼呢?因為我們每一個晶片做出來, 裡面其實包含了很多電路、記憶體, 而為了確保晶片可以如我們設計一樣好, 就要去進行驗證, 驗證看是否有什麼異常, 會不會有線路錯誤。 在進入這門課程之前, 你應該先掌握一些事情, 譬如AND、OR等的基本邏輯閘, 再來就是 正反器 , 除此以外, 你還需要了解 序向邏輯電路 , 有了這些基礎知識後, 你就更能進入這個世界, 如果可以, 就再多看一下積體電路的介紹, 記憶體如何讀寫。 Photo by Pixabay on Pexels.com 而在這門課程中, 主要是介紹Fault model (假定會發生錯誤的狀況, 定義何謂沒有錯誤), Fault simulation 錯誤模擬, Design for testability, 來衡量測試計畫的可靠性, 而且你會學到, Fault coverage(錯誤涵蓋率), 將是用來衡量你的設計是否可以找出最多錯誤的好方法, 接著往下就有很多方法來改善Fault coverage了, D-Algorithm、PODEM都會是這裡的重點, 後面則是BIST和Boundary Scan, 講完這些後, 則看時間安排, 能不能講點Memory測試。 Photo by Startup Stock Photos on Pexels.com 整理來說, 老師的學風很自由, 且總希望用盡任何方法來教會你, 甚至會花一大段時間帶你把整個演算法走一遍, 讓你可以更明白發生了什麼事情, 且上課不要害怕提問, 簡單來說, 我會覺得老師的教法很美式,...

計算機網路 | 修課心得

圖片
本學期修習了三門課程, 其中兩門會有比較多的實際操作, 除了 嵌入式系統原理與應用外 , 另一門就是這篇文提到的計算機網路了, 就這門課來說, 主要著重在講解網路的基礎知識, 包含最基本的網路傳輸介質、架構, 再到TCP/IP協定, 最後到DNS概念和原理等。 當然,這門課整體來說會比較乏味一點,但乏味的主因是題材, 而不是授課內容, 要想想, 如果對著你解釋TCP的各個Filed分別代表甚麼意思, 又或著跟你講解Slow-start的變動流程, 如果你本身對網路就沒太多興趣的話, 自然就不容易聽的津津有味, 除非你可以自己找點樂子, 譬如聯想看看, 在 CDN 架構底下, 若你的看片口味跟別人不一樣, 自然就會覺得影片載入的速度特別慢。 Photo by cottonbro on Pexels.com 在開始這課程之前, 你可以做一些準備, 這些資訊可以在搜尋引擎上輕易找到, 譬如像是常見網路架構, 中華電信提供的ADSL和第四台業者提供的Cable Modem是甚麼東西? 再來則是網路5層的定義, HTTP協定和TCP/IP協定的介紹等, 若是你對上述內容有一定了解的話, 自然可以跟上老師的腳步。 而課程的主要內容大概會分為幾個綱要: 首先是介紹常見的網路架構, 譬如區域網路、網域網路,甚至到衛星網路等, 他們之間有甚麼差異, 再到網路傳輸介質, 常見網路介質可能是雙絞線、銅線和光纖等, 這裡提到的網路, 其實跟你熟知的上網那種網路不完全相同, 因為你平常接觸的網路是屬於多媒體內容, 而這裡要告訴你的是我們應該怎麼用機器去傳輸這些內容, 將他從世界上其他不同地方蒐集起來, 塞到你手上的小盒子裡。 整體來說, 課程的介紹方式會由粗到細, 先告訴你這個世界的網路有多大, 再往下解釋E-Mail的機制, 是透過 SMTP、POP3來傳遞資料, 再來則是HTTP協定, 怎麼讓你可以看到網頁。 Photo by Ethan Wilkinson on Pexels.com 講完HTTP之後, 則會開始解釋TCP和UDP差異, 相信到這裡, 如果你沒有相關工作經驗, 應該會覺得眼花撩亂, 但其實你只要記得, 這些協定, 不過就是確保機器和機器之間有共同的溝通方式和溝通語言罷了。 在講完TCP和UDP, 也會提到DNS的應用, 如何建置CDN, CDN是確保你可以好好看Ne...

嵌入式系統原理與應用 | 修課心得

圖片
在2021年5月開始,台灣的COVID-19疫情出現重大變化, 也因為這個緣故, 原本我們在學校的課程也受到影響, 自5月18日單日暴增180個確診案例,證實台灣已經進入社區傳播階段,而學校也早在5月17日宣布禁止學生到校上課,並改採遠距教學。 Photo by Jeffrey Czum on Pexels.com 阿!這就是我們這段日子的寫照呢!雖然比其他人慢了一年! 敲了以上幾個字, 要記錄這個學期的諸多變化,也許哪日雨過天晴再回來看,會顯得更有感觸,或許也更能感受到現在的幸福。 「嵌入式系統原理與應用」是我本學期修習的課程之一, 在正式上課之前, 我的記憶一直停留在10多年前的學校課程(敝人是虎尾科技大學資工系畢業生),還以為現在還上 PLC 之類的內容,想不到這10多年過去,有些事情到還真是不一樣;本課程主要是讓採用 Arduino 作為教學輔助,幫助學生了解嵌入式系統運作的基本原理,開發語言則是採用C為基礎的Sketch, 這套工具其實在中小教育也相當盛行, 譬如有些小學生參加科學競賽,也會用上Arduino來做創意發想。 當然你跟小學生還是要有所差別,小學生要知道怎麼用,而你需要知道該怎麼用,為什麼這樣用? 課程在開始之前,老師會介紹整個學習的教學大綱,在前期,主要會希望你了解 微處理機架構 和 微處理機組織 ,以及 指令運作 、 暫存器 和 加減法運算 等, 所以在上課之前,你需要稍了解微處理機的相關原理,若你不是本科系學生,也可以去網路上找找「微處理機」等相關知識, 如此可以幫助你更快上手。 介紹完微處理機之後,課程會開始偏向實作,也就是Arduino的實際開發,這方面你可以準備一個 Arduino Uno教學套件, 內容應該包含Arduino開發板、麵包板、單位元和四位元七段顯示器(共陰)、溫濕度感測器、蜂鳴器和可變電阻以及三色LED、薄膜鍵盤, 這樣零零總總加起來, 市面上有很多商家都打包成一組套件了, 價格約落在1000元新台幣以內, 我自己是網購買的, 當然也有同學去電子街買到一兩千塊以上的, 但這就看附上的零件和Arduino開發板的版本了, 畢竟電子街嘛…台中讀書的學生應該都很懂。 而在Arduino的教學部分, 主要還是會偏向讓學生了解這個板子可以做到什麼功能,運用什麼原理,故會從基礎開始, 譬如內建函數setup和loop的...