2015年12月8日 星期二

[c++] 動態宣告一個未知大小的陣列

TsinghuaX : 00740043X_2015_T2 C++语言程序设计基础 (2015年秋)

第一個Lab課程,就遇到一個問題

如果說我事先不確定輸入進來的數字有多大

我該如何宣告我的陣列呢?

如果 陣列名稱[  ] ,[ ]內部是空白,VS2012編譯是沒有辦法辨認的




因此,便需要借助動態配置的幫忙

而你需要的指令就是 new & delete 來幫忙你

new 是動態的方式配置一個記憶體空間

delete則是你使用完之後new所生成的變數,將所占用的記憶體刪除

否則程式會持續暫用記憶體,造成無記憶體可用的尷尬狀況


該文 new 運算子與 delete 運算子 有很詳細的敘述

有興趣的讀者可以自行前往

[轉貼]怎样花两年时间去面试一个人

原文在此

我想這篇文章是有志於從事資訊工程的人需要好好閱讀的一篇文章

裡面推薦的書單,看來我需要找個時間慢慢啃它

2015年12月6日 星期日

[轉貼] [经验总结] 美国换专业找工作:毫无CS背景的人如何在一年半以后拿到硅谷software engineer的offer

對岸的同胞所寫的文章,覺得有點意思,就把它轉了過來

當然,對方是上海交大本科 + 史丹佛碩士

在參考的同時,也需要知道自己與對方的差距在哪


原作者 : CandyCrash   來自 : 太傻論壇

因为在palmdrive(http://palmdrive.co)上回答了tiaozi13的关于他换专业的问题,看到他当时在太傻上发的帖子(http://bbs.taisha.org/thread-16995455-1-2.html,看了一些回复之后发现可能大家对于在美国换专业找工作的认知有些误区,所以在这里结合自身的经历写点关于换专业找工作的东西,希望对大家有帮助。


首先大致介绍下自己的背景,斯坦福的机械工程设计方向的硕士,本科也是机械工程,但后来找工作面试的全是硅谷的softwareengineer的职位,当然拿到的offer也是。



  • 先讲讲自己的一点经历,如何一步步从mechanicalengineer转变成software engineer的。


本科的时候完全是纯机械,上过唯一和objectiveoriented programming相关的课程就是C++大四的时候找一个cs的教授做research,computationalgeometry方面的,纯打酱油,用CAD(这完全是ME的技能)3D模型来测试算法的效率。后来抱大腿就成了那篇paper的三作。一下子自信心暴涨呀觉得自己天生是CS的料没上过专业课也能发文章呀!然后申grad的时候申了CMU,Berkeley HCIHumanComputer Interaction, CS的一个方向)和MITMediaLab。现在回想觉得自己当时toosimple too naïve, 这不明摆着在浪费申请费么。嗯,后来去了斯坦福的机械硕士的项目(果然CS申请全给跪)。。。


所以实践证明,这样子简单粗暴的转专业方式是不可取的,或者说,risk很大,自己掂量着吧~


到了斯坦福就立志不要吃着碗里看着锅里的,专心学习机械,找的advisor就是computationalengineering方向的大牛,现任斯坦福航空航天学院的院长。结果除了开学初聊了一次天,就再也没有去找过这个大牛….因为我自作主张换了方向去学design~斯坦福大多数的学院选课很随意(下面会再详细点讲),我刚进的时候选的方向是比较传统的computationalengineering,进来后发现design更加有意思,就选了很多design的课,方向也自然换成了design


其中一门3个学期的Design课,做的项目是给日本松下公司设计所谓的‘TVfor the next generation’,最后设计设计着发现要最终要做的产品是软件而非硬件,涉及很多网站的开发。然后开始自学网站前端的开发,写点简单的htmlcss。就这样开了个码农的头。刚好那个学期学校有教Rubyon Rails的课,就跑去蹭了几节(就34节吧,听课总是想睡觉,后来就不去了)。对网站前端后端开始有了大致的了解。


到暑期要实习了,刚好这边的腾讯北美新弄了个孵化器,给斯坦福想自己做点项目的同学。就去了孵化器,一暑假做一个iOSapp。我是负责写后端,当时虽说Rails懂那么一点,可哪能写整个app的后端,连怎么开始都毫无头绪。然后就自学啊,问啊,折腾一暑假还真弄出来了。那个暑假同时还给斯坦福的一个教授做网站的前端开发。那教授弄了个VentureLab, 就是和Coursera差不多的那种在线教育网站,招几个学生帮他弄。我是唯一一个写前端的,压力那个大啊。又是边做边学。


暑假三个月基本在coding中度过,感觉那时学得非常快,因为知道的少嘛。过了暑假就基本决定从此告别ME了。所以那个暑假的过程还是起着决定性的作用。


斯坦福是quarter制的,自己在剩2下的两个quarter里面又上了MachineLearning, Data Visualization, iOS Application Development这些比较practical的课,然后面了一堆这边的大公司小公司softwareengineer的职位(下面会详细点讲这点),感觉在面试的过程中也是边面边学。


总得来说,专业上的转变,上课只是很小的一个方面,自己学自己做才是最重要的那部分。



  • 讲了自己的经历,再讲讲一些大家在这个方面可能会有的疑问。


1.觉得我这样的是个例而已
绝对不是个例。不说很多美国人都这样,我知道的这样子的中国人也不少。有一斯坦福数学的本科,后来码农了;有一EEPhD,毕业去了Youtube自然也码农了;还有….反正太多了。


2.HR凭什么会给不是CS文凭的人面试码农的职位
在你工作以后,没人care你是什么专业的文凭。那在你找工作的时候公司会在意吧。的确是有些极品的公司会在意,但是绝大多数公司都不会在意,看你resume里面的经历来进行筛选,而不是专业是什么。以我自己为例,大公司像facebook,google什么都面了,小公司就更加多了。面试的时候基本会被问道,为什么你的专业是机械,你现在却对softwareengineer感兴趣。然后正好以此为话题可以聊开。
此外,不是所有公司都是由HR来决定给不给面试,很多公司,特别是初创公司,都是由product manager来筛选。


3. 好好的干嘛要换专业去做码农?
一是自己很喜欢coding,二是美国大环境下CS找工作相对容易(不要以为学了CS就一定能有工作,能不能拿到offer还得看一轮轮面试的表现)。如果你不喜欢coding,同时也不屑为找工作能相对容易就‘折腰’,那就别换呗。这篇文章绝对不是去鼓励大家人人换专业去做码农。


4. 美国的选课真的那么自由吗?
我觉得是大多数学院是挺自由,但是不要以为所有都是这样。就以已经很自由的斯坦福来说,CS的学生选课是最不自由的。基本上必修的一排,就没什么空余给其他的课了。而且因为有些课只有某个quarter才有,你不得不在那时上,不然错过你就不要按时毕业了。像ME,只要选好24ME课的学分,剩下的21个学分基本属于随你安排。说是要给你的advisor同意通过才行,但我的那advisor每次估计看都不看就给签字通过了。


5. 码农是吃青春饭,高薪是用小时数堆出来的?
至少在硅谷绝对不是。想Oracle那种养老院就不说了,这儿大多数公司还是很  flexible的,有时想work at home也可以,只要把活干完。所以这里讲究的是get thingsdone,而不是你一天工作几个小时。放心,不会扔非常多的活给你做的。我刚开始工作不久,作息是10点半到公司,6点离开公司。从来没有加过班。绝对不会像咨询公司那样,从早上9点到晚上12点。


大概就这么多了。如果大家有一些比较specific的问题,建议大家去PalmDrive(http://palmdrive.co)问。PalmDrive是斯坦福的学生搭的平台,希望能把过来人的经验以最有效最直接的方式分享给需要的人。现在有许多像我这样的过来人在上面回答问题。


後端工程師所需要的技能

來自 全端工程师必备技能汇总

後端工程師的部分,則包含

编程语言

  • C/C++/Java/PHP/Ruby/Python/… 


网页服务器

  • Nginx Apache Lighttpd 


数据库

  • SQL MySQL/PostgreSQL/Oracle MongoDB/CouchDB 


数据缓存

  • Redis Memcached 


文件缓存/代理

  • Varnish Squid 


操作系统

  • Unix/Linux/OS X/Windows
--------------------------------------------------------------------------------
其他文章


看來需要走的路還很長

2015年12月5日 星期六

[內含書單] 37 Signals 創辦人想說什麼?

今年在 TechOrange 上面看到別人推薦行銷與創業相關的書單

( 有興趣的讀者可以自行前往 : 增強營運行銷即戰力,創業家書櫃都該擺上的 22 本書 

原文來自Medium : The 22 books to read before you quit your job )

其中一本書的書名叫作 《Rework 工作大解放

該書是由37Signals公司的兩位共同創辦人

Jason Fried 與 David Heinemeier Hansson (DHH) 所撰寫。

在接觸到該書之前,我完全不知道 37Signals 是一間什麼樣的公司 ( 37Signals 的英文 Wiki )

後來才發現,他們是由一群厲害而且自律甚高的資訊工程師所組成的公司

大家一定有聽過最近幾年十分火紅的 Ruby on Rails(RoR) 這個Web服務開發框架吧?

就是由 37Signals的創辦人David Heinemeier Hansson 所撰寫的工具

書中用簡易的語言告訴讀者,在工作的時候,真正該專注的事情是什麼

什麼該做,什麼不該做

都用淺顯易懂的語言告訴了讀者



他們十分了解"工作"這檔事

工作(Work),真正的目的應該是創造價值(Value)

(價值不只是讓成本降低,收入變高,而是大家能夠用最少的溝通與時間成本,換取最大利益)

這也是一間軟體公司盡量不要靠接案存活的原因,因為價值低,取代性高



同時他們也深諳遠距工作其實並不會讓公司的利益受到減損

反而能夠讓員工的生活更加彈性,更能夠調配個人時間

在他們出的新書《遠距工作,go!:雲端時代企業與個人的美好生活主張

就是要打破上班就是朝九晚五去辦公室上班的傳統觀念,將自己轉換到全新的工作型態


那時候我個人對於 遠端工作 以及 什麼是真正有價值的工作  的概念並不清楚

直到開始接觸了這些書籍開始

或許,錯誤傳統觀念就是需要打破,對吧 ?


--------------------------------------------------------------------------------

同時分享一些相關的文章

37 Signals的差別訂價心法:利潤最大化,而非市占率最大 (轉載自Inside)

Jason Fried :

How to Get Good at Making Money (發布在 Inc.)

想要創業的人,我想學會如何賺錢這個技能是非常必要的

這也是一間公司能夠存活的關鍵

David Heinemeier Hansson :

The day I became a millionaire   (發布在Medium )





關於C,與如何上手








选择一门编程语言,“为什么而学”这个目的是最重要的,目的不明确就没法学好。


內文如下 : 


来自: 苏子佩



-----------------------------------------------------------------------------------------------------------------------

程式寫作與一般寫作類似的地方在於,一開始寫作的作品常容易犯一些邏輯、冗贅等寫作的

錯誤。透過閱讀同儕與大師的文章(程式碼),開始能夠發現自己的不足之處,開始能夠撰寫出

文字精鍊,言簡意賅的文章出來。

[整理]XDite給年輕人的能力培養建議

XDite給年輕人的能力培養建議

實事求是,不要過著欺騙自己的人生!

以下是XDite在網誌上記錄的一些文章

我針對目前我自己認為最有幫助的幾篇,整理在下方




稍微節錄一些內容 :

最值得投資的技能

1. 中文速讀

2. 英文能力 (or 廣泛一些的外語能力)

3. 寫作能力與程式開發能力



(同場加映)歐普拉:如果你受雇從事你熱愛的工作,那麼你收到的每一分錢,都是額外的好處

稍微節錄一些內容 : 

分享(程式碼以及文章) 不斷的貼 code 以及練習在網路上發表文章,可以強化你的表達能力與邏輯組織能力。知名軟體公司 37Signals 甚至表示,他們不太注重程式底子,只雇用「寫作能力」良好的人。因為寫作能力強大代表著:組織能力與邏輯能力強

----------------------------------------------------------------------------------------------------------
讓自己變強的過程,同時也反思自己的一些時間管理盲點

畢竟學習是需要時間與精力,這些管理是相輔相成

不是時間訂下去,事情就能夠按照時間表執行。必須要考量到自己的完成時間。

所以比較好的方式反而是,先記錄自己完成80%時間所需要的時間(不必事事追求100%!)

接下來再看自己有多少時間可以掌握與運用,並在裡面穿插5分鐘左右的休息時間

找到能夠讓自己效率最高的執行計畫才是對自己最棒的計畫

切記,不必過度跟別人比較,想超車也是先從最近的一輛開始超車

而不是一開始就想要超越最前方的領頭羊

2015年11月25日 星期三

[轉帖] 每年减少3.7万亿美元的损失:利用文本分析进行欺诈检测

發佈於 InfoQ 上的文章

每年减少3.7万亿美元的损失:利用文本分析进行欺诈检测

文中提到 :

随着大数据时代的来领,大量欺诈行为相关的数据能够被获取,利用有效的机器学习方法对数据进行深入挖掘,可以有效地帮助欺诈行为检测。而根据注册舞弊审查师全国协会(NACFE)估计,80%以上有关欺诈的公司记录都是以文本数据的形式存在。80%的文本数据又都是非结构化的。因此,利用机器学习方法进行欺诈行为检测更多的是使用文本分析,文本分析可以帮助挖掘这些非结构化数据中所蕴含的信息,并提醒企业在公司财产丢失之前及时采取行动。

機器學習未來可以應用於許多不同領域,雖然一個領域有其侷限性,但是還是能夠根據它所

能做到的事情做許多不同的商業應用

[思考工具] 轉貼 - 跟過去的自己取經:用第二大腦高效率思考的系統方法

為了不侵犯版權

我想各位讀者可以前往原文

由 電腦玩物原創作者 esor huang(異塵行者)所撰寫的


跟過去的自己取經:用第二大腦高效率思考的系統方法

進行詳讀


這也是我最近正在思考的一些問題

有感於論文其實也是一種自己過往專業知識上的累積

但是為什麼這個知識雛形還不夠完善?

感覺對它的印象似乎還不夠深刻,並且成為身體的一部分

我想是整理的還不夠視覺化(個人是偏向視覺形思考類型),資料也不夠方便搜尋


Steve Jobs 曾說 : 「Connecting the dots」

他現在的成就都是聯結過往的知識、交談、印象與經驗等等

最後完成了一個屬於他自己的知識圖譜

讓他自己成為一個完滿的人



本篇是為了完備日後自己的智慧軍火庫

於是特別將這篇紀錄下來

下一篇再繼續完成 機率與統計 和人生之間的關係

2015年11月19日 星期四

[MATLAB] 釋放不需要使用的記憶體

由於實驗處理數據上的需要

我需要連續對好幾張影像,進行讀取檔案,並進行處理完成之後

發現記憶體的資源卻依然被占用者沒有釋放出來

如果所需要處理的影像達到好幾GB,使用完之後卻沒有辦法進行卸貨的動作

佔用記憶體,卻不需要使用,實在是一件令人困擾的事情

看來大家都曾經有過相關的困擾

例如下面的文章

StackOverFlow : MatLab: How to unload matrix and free memory


上網搜尋了一下,有幾個相關的指令能夠幫助我們解決問題

我目前成功使用的是 Clear 指令,它可以針對你所需要清除的該項資料進行清除

使用過後開啟工作管理員作個驗證,例如下圖一所示


圖一、記憶體資源釋放


像是清除特定變數資料

Clear Specific Variables by Name

Using regular expressions, clear those variables with names that begin with Mon, Tue, or Wed.

clear -regexp ^Mon ^Tue ^Wed;

如果要清除的不只有一個變數,還有牽涉到不同的資料型別

則可以創造一個 cell,把這些資料變數名稱儲存在list中

varlist = {'v1','v2','time'}; 
clear(varlist{:});
------------------------------------------------------------------------------

如果是使用讀取影像或是影片的物件(obj),使用完之後想要刪除它們的話

則可以使用 flushdata delete 指令

若想要知道詳細的MATLAB管理記憶體的一些知識

可以看官網的 Managing Memory Usage 條目,裡面有更詳細的敘述

2015年11月8日 星期日

[轉帖] 你所不知道的C語言:指標篇

Jserv大 講關於C語言的文章

全篇的原文在這邊

我想非常值得已經學習過C語言的同學閱讀

看完之後才發現自己對於C語言不懂的地方可多著。。。

多學,多聽,多看 : )

---------------------------------------------------------------------------

GNU Debugger (GDB) 補充說明

官方文件 : GDB: The GNU Project Debugger

中文資料 : 除錯程式: gdb ,內含有其它豐富補充文件的連結

教學影片 Introduction to GDB a tutorial - Harvard CS50

2015年11月6日 星期五

系統研究的入門方法

社會上有些教育界的前輩,有感於台灣目前的研發人才培養情況陷入困境

開始在臉書以及各媒體進行發聲,並根據自己的經驗指引一條可行之路

身為一個不及格的研究生

希望能夠透過資訊世代的力量

為自己尋找一條能夠進行真正結合創業與研發的路

雖然這條路可能很漫長,對於想選擇的切確領域還不是完全清楚的狀況底下

我想,先進行 學習能力 與 思考能力的培養 是基本中的基本功

在此對於自己的知識先以文章的方式記錄下來

--------------------------------------------------------------------------------------------

學習能力


1. 時間管理(尚待完成)

書籍 - 一週工作四小時

2. 金錢管理(尚待完成)

股票 基金 債券 外幣 房地產 資產配置

3. 專業能力


*研究方法



心得與提問 : 身為一個研究生,非常推薦大家閱讀的研究方法論。



心得與提問 : 看的廣度有賴於涉獵的論文的多樣性,而訓練自己研究的深度則有賴問題來磨練。與2015/11/4 在資工系書報討論 Google 程本中博士所說的答案接近。如果是一個菜鳥工程師,學習、解決問題最快的方法就是尋找自家產品的問題,然後以這個問題為切入點進行鑽研。

同場加映 : 程本中博士於2008年的演講影片



心得與提問 : 資訊工程與機械工程同樣也注重系統(System)這件事情。如何將老師口中資訊工程的系統對比到機械工程中的系統,以及需要培養自己什麼樣的能力,我想這是我該在近年之內掌握的功課之一




心得與提問 : 多認識現實中的機械系統(Ex. 航太、汽車、工具機、自動化設備與風力發電系統等),將會有幫助於自己了解何為機械工程中的系統。




心得與提問 : 雖然文中所說的是資訊工程中的系統,但是用相同的類比方式,我們是不是能夠透過認識現實中的複雜機械系統,同時掌握分析系統與效能的工具,同時具備實作與實驗規劃、驗證的能力?





心得與提問 :

節錄文中的一小段 : 

一般的程式設計師,在基本的邏輯論述上是游刃有餘的,但對於複雜事務的洞察力,並非終日在普

通的程式設計領域所能養成的。在中學、大學、研究所、職場上,如果能不斷增加解決問題的廣度

和深度,是個提升能力可行的途徑。學習撰寫研究論文,也是好方法,是念研究所的同學可以從一

個好的指導教授身上學習和好好訓練自己的部份。要更上層樓,最終還是得接受現實世界的考



一個能自我成長的程式設計師,有機會可身兼科學、工程、文創、社會、人文等修養,所以學資訊

的同學們,不妨多學一點,把自己看高一點。

-----------------------------------------------------------------------------------------------------

我想把文中的程式設計師換成機械工程師,我想也能夠收到一樣的效果 : )





心得與提問 : 跨領域的研究,我自己並不是非常熟悉。但是我能夠做的是嘗試抓住新事物的概

念,同時與我所學過的事物進行類比,試圖找到概念上相似的地方來讓我自己能夠快速了解

新事物的概念。但我想,真正重要的恐怕是應該結合實務經驗來磨練自己的實作能力,恐怕

才是真正確認自己是否掌握跨領域研究的訣竅。否則,還是停留在概念上的認知裡解而已。




*機械工程(尚待完成)

線上自學系統 -

台灣
開放式課程聯盟

海外
線上教學平台 CourseraedX

美國 MIT Open Course Ware  - Mechanical Engineering

德國 MOOC@TU9

機電整合

自動化控制 - 數位控制

*影像處理與電腦視覺(尚待完成)


心得與提問 : 上駟對下駟。想做一件事情之前,想清楚策略再行動(謀定而後動),成功的機率會大大上升。

*機器學習與樣型識別(尚待完成)

*真實系統

  *自動化設備

  微影製程曝光機(尚待完成)

  自動化光學檢測 (AOI)設備

  *工具母機(尚待完成)

   Computer (or computerized) Numerical Control (CNC)

   CNC Controller - LinuxCNC(Open Source)

  *交通運輸工具(尚待完成) - 汽車、飛機、高鐵

4. 創業相關技能(尚待完成)

Mr.Jamie - 創業必讀 (我在此並沒有特意鼓吹創業,這只是個人人生選擇,不管是就業或創業,都有其困難之處,箇中辛勞只有自己知道)

思考能力

1. 台灣產業現況



心得與提問 : 思考何謂高階人才與高階工作?




心得與提問 : 永保開放與學習的心。別認為自己是多麼了不起的人物。同時與最優秀與最有熱情的人共事和討論,成長幅度才會快 : )




心得與提問 : 世界很大,網路是個無遠弗屆的全新國度。不要把研究的領域只限縮在台灣,而應該放眼全世界,與全球一流人才解決世界級的問題,才有機會能夠獲得巨幅的成長。



(洪教授談及自己的核心方法論的建構方法,值得多多揣摩)

心得與提問 : 最重要的是建構研究的核心方法論。但是依舊要時時保持對最新技術與研究主題的嗅覺,如同時時嗅到最新的商機一樣,持續不斷的學習 : )




心得與提問 : 能夠有足夠高度的視野與能力,我想是成為站上國際舞台的必備條件。




心得與提問 : 在某個領域是成長型心態還是定型心態,完全取決於個人意志!




心得與提問 : Self-education 這個名詞在我以前看來似乎是不可能的事情。以前的我只認為,念完碩士之後,我終於一輩子不用唸書了。的確,過去死被硬記的學習方式搞壞了我自己的學習胃口。但是自從接觸到創業圈的人之後,我發現,過去不曾接觸過一種新型態的"學習"方式,就如同文中所引用的 TEDx 的影片,從自己感興趣的領域出發(熱情驅使),自主的學習相關領域的知識,不只包含書本的知識而已,而是身邊週遭的人、影片等等都是自己學習知識的來源。那種學習的快樂是不可言喻的。



心得與提問 : 如何跳脫這種循環 ? 盡早成為主管階級? 提早達成財務目標? 創業 ? 


心得與提問 : 可以配合下面一篇一起閱讀。

心得與提問 : 清大不應該只是培養工業界所具備技能人士的地方,那叫作機器人。領導人? 我想未必。清大應該培養的是各行各業的靈魂人物,少了他/她不行。未必每個人都一定要當領頭羊,但是一個有主見、有見地與有手段的人,應該是清大的教育目標之一。

心得與提問 : 身為一個學習過科學知識的人(我只是一個一般人,不敢說自己有多麼厲害),首先具備的是基本的科學素養,也就是求知求真。對於世界大學的排名,首先應該要理解的是排名的依據從何而來,而不是率先關心自己學校的排名落在哪。以前的我也常常對於學校的排名患得患失,覺得自己的母校不如人。但是現在真正重要的應該是關心這間大學是不是有達成它應該具備的使命。外國的月亮真的比較圓嗎 ? 自己國家的人才就比較差嗎 ? 如果大環境不好,我可以如何從根本來改變 ?

心得與提問 : 這篇點出了台灣過去產業的錯誤策略,像是跟風美國,試圖在消費性電子產品上跟美中兩個大國在世界角立場上比拼。也很高興台灣開始漸漸有許多新創團隊發現過去台灣上未能夠以在正確的產業策略下以世界級的產品與服務,由高階人才帶領公司征戰全球市場。我想只要眼光與產業策略正確,在大國角力的時代也能夠不過度依賴中國市場,同時也能夠在自己的國家裡擁有一流的研發工作與薪資待遇,吸引外流的高階人才們回國打拼。

[簡介]自動化光學檢測 (AOI)

自動化光學檢測 (Automated optical inspection, AOI)


簡介 : 自動化光學檢測是一種透過整合光學以及系統分析軟體工具的一套檢測方法。可以應用在例如產品缺陷的自動檢測,像是 IC產業中的IC封裝缺陷的自動檢測。

補充資料
中文 -Wiki - 自動光學檢查
英文 -Wiki - Automated optical inspection

商業價值 : 工業自動化、醫療檢測、安全監控、食品檢測 與 指紋比對等

關鍵字 : Automated optical inspection (AOI)、automated X-ray inspection (AXI)、automated visual inspection (AVI)

相關技術 : IC/晶粒/PCB/SMT 檢測、幾何尺寸量測、光學性質量測、系統設計

技術關鍵 - 光學知識、影像處理與電腦視覺演算法開發、系統整合、防震(震動學)、校正知識

光學知識 - 奈米光學檢測技術與應用 課程。

奈米光學檢測技術與應用 涵蓋

奈米光學檢測基礎
(干涉原理、繞射原理、光源與偵測器等)

奈米光學檢測技術
(影像式顯微技術、干涉技術、繞射式顯微技術)

奈米檢測技術應用
(先進半導體製程線上檢測)

軟體分析 - 影像處理與電腦視覺演算法開發 - 影像處理 機器視覺 課程

影像處理基本架構 - 數位影像處理簡介課程pdf -台大 林達德教授

系統整合 

震動學

校正知識

關於CCD 與 機台垂直度的校正方法與工具

軟體工具 : 商用軟體 - MATLAB 、開源軟體 - OpenCV

技術文件網站 : http://www.vtek.tw/


AOI大廠  Orbotech (Israel)、Camtek (Israel)、Omron (Japan)、KohYoung Technology (South Korea)、德律 TRI  (Taiwan)、由田新技 Utechzone (Taiwan)

參考書籍 - 奈米光學檢測技術與應用 課程參考書籍

1. Gasvik, Kjell J, “ Optical Metrology ”, John Wiley Sons Ltd, 2002
2. Pranod K. Rastorgi, “Optical Measurement Techniques and Applications”, Artech House, Inc., 1997
3. Alain C. Diebold, “ Handbook of Silicon Semiconductor Metrology”, Marcel Dekker, Inc., 2001
4. Ghanim A. Al-Jumaily, “ Optical metrology”, SPIE optical engineering press, 1999
5. 蘇青森教授,  “儀器學”, 五南出版社2002
6. 國科會精密儀器中心, "光機電系統整合概論", 2005



2015年11月2日 星期一

[整理]研究所價值 與 攻略

學術思想

學術文獻回顧與分析的程序與技巧 - 清大 彭明輝 教授

研究生指南 - 金大 陳鍾誠 教授



必備學術能力

論文撰寫方法 - 台大生機系 馮丁樹 教授

研究生2.0 - 記錄研究生需要具備的知識與工具,並介紹研究相關的觀念與軟體

[整理]利用Google日曆進行時間與工作管理

最近發現在進行論文規劃與實作的時候會有 拖延 以及 懶散的狀況發生

為了讓時間管理能夠更有效率,避免花費過多時間在可以避免的錯誤上

在網路上找到了一系列的實用工具應用文章

來方便自己日後管理自己的人生

Less is more

---------------------------------------------------------------------------------------------------

下面節錄一下文中的重點


  • 行事曆上有空,不代表你真的有空:學會留時間給自己
  • 行事曆不能沒有未來:「預先」設定長期計畫與重要截止日
  • 行事曆不能只有截止日:拆解計劃步驟,列出完成所需要的時間
  • 太長的進度會失焦:把超過一週的大進度分割成以一週為單位的子進度
  • 穿插當日核心任務:善用全日行程,寫當天最重要的進度
  • 先有長期計畫,才能掌握短期計畫:知道自己應不應該接下臨時的任務
  • Google 日曆的顏色怎麼安排最適當?長期計畫、臨時任務、重點關鍵
  • 不要在「勉強的時間」裡排時間
  • 回顧舊行程:了解自己完成某種專案真正需要花費的時間

2015年10月30日 星期五

[OpenCV] 安裝Visual studio 2012 與 OpenCV 2.4.11



OpenCV是一款開放原始碼(Open Source)的專案,它提供C++為語言基礎的影像處理以及電腦視覺的函式庫(Library)。當初美國英特爾公司(Intel)為了尋找能夠發揮CPU實力的項目,於是便將念頭動到了影像處理以及機器視覺領領域,而OpenCV裡的函式庫正是在這樣想法下的產品。

以下援引自Wiki
------------------------------------------------------------------------------------------------------------
OpenCV專案最早由英特爾公司於1999年啟動,致力於CPU密集型的任務,是一個包括如光線追蹤和3D顯示的計劃的一部分。早期OpenCV的主要目標是
  • 為推進機器視覺的研究,提供一套開源且最佳化的基礎庫。不重複發明輪子。
  • 提供一個共同的基礎庫,使得開發人員的代碼更容易閱讀和轉讓,促進了知識的傳播。
  • 通過提供一個不需要開源或免費的軟體許可,促進商業應用軟體的開發。
  • OpenCV現在也整合了對CUDA的支援.
OpenCV的第一個預覽版本於2000年在IEEE Conference on Computer Vision and Pattern Recognition公開,並且後續提供了五個測試版本。1.0版本於2006年釋出。
OpenCV的第二個主要版本是2009年10月的OpenCV 2.0。該版本的主要更新包括C++介面,更容易、更類型安全的模式,新的函式,以及對現有實作的最佳化(特別是多核心方面)。現在每6個月就會有一個官方版本,並由一個商業公司贊助的獨立小組進行開發。
在2012年8月,OpenCV的支援由一個非盈利性組織(OpenCV.org)來提供,並保留了一個開發者網站和使用者網站。
------------------------------------------------------------------------------------------------------------
若有興趣,則可以上OpenCV的官方網站,上面有英文詳細的介紹。英文是相當重要與基本的語言工具,請讀者務必親自細讀官方原文文件與函式庫程式。



  • 安裝流程筆記連結( Hackpad )
  • 注意 : Visual studio 2015 community 在一開始開新專案的時候,並沒有win32主控台應用程式的選項,因此需要根據它的說明下載對應的開發套件。下載完之後便會出現win32主控台應用程式的選項供您選擇

  • 2015/11/8 註 : 後來因為在設定OpenCV的路徑的時候,系統一直無法除錯,後來按照葉正聖老師的教學影片中使用2012的版本,便能夠成功執行,因此為了避免般時頭砸自己腳,所以還是請各位有興趣研究OpenCV的同好,先以Visual Studio 2012為開發平台,以免一開始就澆熄了滿腔熱血 : )




  • OpenCV 2.4.11的安裝方式與資料夾路徑設定,則可以按照銘傳大學 葉正聖 老師的教學影片所提供的步驟進行即可


老師在這邊詳細的把程式碼實作的部分給紀錄下來,如果有需要的讀者可以自行參閱。若有針對OpenCV本身的演算法的實作有興趣的讀者,則可以親自從OpenCV的函式庫裡進行探索。

2015年10月28日 星期三

[轉貼]Deep Learning(深度学习)学习笔记整理系列

由於目前對於深度學習、類神經網路、機器學習等領域的知識還不夠熟悉

所以上網搜尋了一陣子關於這些領域的相關文章

想找到比較能夠深入淺出解釋這個領域的文章

經過一番查找後

找到由中國網友 Zouxy所寫的"Deep Learning(深度学习)学习笔记整理系列"的文章

相信對於之後自己在表達以及撰寫相關程式以及說明文件

能夠以簡單明瞭的方式解釋這個對於外人來說較為難以理解的領域知識


我始終相信

要能夠當一個好的領導人

能夠化繁為簡,以簡馭繁

是必備的能力之一

-------------------------------------------------------------------------------------------------

Deep Learning 其實就是一種非監督式的特徵學習方法(Unsupervised Feature Learning)

以下是針對各篇所做的一個小小的簡介

Deep Learning(深度学习)学习笔记整理系列之(一)

簡介 : 基本概念解說,解釋人的視覺系統如何透過學習辨識事物,將此概念類比至機器視覺(像素、邊緣、樣型) 與類神經網路(多層學習層)的概念。


Deep Learning(深度学习)学习笔记整理系列之(二)

簡介 : 介紹影像中的特徵(Feature)。特徵能夠做為分類的判斷依據,也是進行機器學習(Machine Learning)的原材料。

有趣的地方在於,文章中提及許多複雜的圖像,都是由許多不同類別的簡單特徵(例如,特定方向的邊緣),依據特定比例或權重所組成。

這個現象在工程數學中的拉式轉換、傅利葉轉換、聲學等不同的領域中出現,例如由賽車引擎所發出的轟鳴聲,其實是由許多不同頻率與震幅的聲波信號所組成。當然,在語言中也是類似的現象,單純的字並沒有特定意義,但是若把它組成詞彙、成語、句子、文章,便賦予它截然不同的生命在其中。

Deep Learning(深度学习)学习笔记整理系列之(三)

簡介 : 深度學習(Deep learning) 與 機器學習和類神經網路中的知識有著許多相似的地方。原來深度學習與類神經網路是由機器學習領域中所延伸出來的知識。而深度學習則是屬於多層的人工神經網路。

類神經網路中的倒傳遞(Back propagation)方法的出現雖然讓類神經網路展開了新的研究方向,但是,類神經網路也不是完全沒有缺點,因此深度學習則針對這點進行改良。

引自原文

deep learning训练过程具体如下

  • 1)使用自下上升非监督学习(就是从底层开始,一层一层的往顶层训练)
  • 2)自顶向下的监督学习(就是通过带标签的数据去训练,误差自顶向下传输,对网络进行微调)

以下幾篇都是針對 Deep learning 常用的模型或方法

Deep Learning(深度学习)学习笔记整理系列之(四)

Deep Learning(深度学习)学习笔记整理系列之(五)

簡介 : 稀疏演算法介紹 Sparse Coding

Deep Learning(深度学习)学习笔记整理系列之(六)

簡介 : 限制波兹曼機器  Restricted Boltzmann Machine (RBM)

Deep Learning(深度学习)学习笔记整理系列之(七)

簡介 : 捲積神經網路 Convolutional Neural Networks,大大加快運算速度


最後的總結與展望,附上相關領域專家的資訊

Deep Learning(深度学习)学习笔记整理系列之(八)



/* 載入prettify的autoloader */ /* 載入JQuery */