零基礎入行圖像演算法工程師需要學習哪些課程?
虛心請教各位知友,本人機械工程碩士畢業,想轉行做圖像演算法方向的工程師,對計算機方向的專業知識學習不多,本科期間學習過一點C語言,彙編語言,自動化控制的課程,研究生期間接觸了一點C#,VS,機器學習方面的基礎知識,這就是我的基礎,
想請教各位,我需要從哪些課程知識開始學習,需要學習哪些軟體,編程語言之類的。。。如果能幫我制定一個由間入難的學習計劃最好,在下先多謝多謝大家了^_^
瀉藥。在跑演算法的時候最適合答題了呢(害羞臉
圖像處理說到底是一門數學和實踐結合的學科。所以要搞演算法,數學基礎必不可少,同時工程實踐性的話,編程能力不能弱。二者不可偏廢。我向來推崇以練促學,以學促練。所以不會一上來就推薦一堆理論性東西的。1)opencv。無論以後是否使用opencv,咱先用著玩起來。找本書跟著寫寫demo,然後自己做點小應用,雖然一直在調用api但是大概知道圖像處理是個什麼玩意兒。(當然期間配合著可以學學C++或者Python)
2)岡薩雷斯的數字圖像處理 + opencv部分源碼。調了這麼久的api,是不是已經欲求不滿了?所以我們開始研究演算法吧,這時候對於一些常用的函數,我們可以去看看對應的實現,以及在理論上到底是個什麼意思,為什麼需要這樣。記住是opencv的部分源碼,不是讓你去通看,看著看著就沒興趣了,而且也迷失了方向。3)數學。 對於演算法走到後來就是很多數學的東西,對於這些我推薦的還是差哪兒補哪兒,哪兒不懂學哪兒。而不是抱著幾門公開課,厚厚的書啃,這樣就又迷失方向了,記住我們是要學圖像處理的。4)項目實踐。這個不用多說,找點實際問題去解決會進步很快哦。當這兒,我們已經對圖像處理有了一個熟悉感了,但是可能會覺得有些雜,這時候就是靜下來系統的看看岡薩雷斯那本書了,慢慢的就會有一種通透的感覺。(我也沒達到通透。。。)以上就是傳統圖像處理演算法的路子了。現在還有很火的 機器學習和深度學習 做圖像處理的。大概路子差不多,學的東西不太一樣。1)Keras/Caffe/Tensorflow/Mxnet等等 深度學習庫或者scikit-learn 機器學習庫。語言推薦python,深入底層後也需要C++。DL庫強烈推薦Keras上手,非常快。2)深度學習方面的書比較少,主要還是以 論文 為主吧,多看總有益。機器學習的書籍:國內:《統計學習方法》(滿滿的乾貨),周志華的《機器學習》,國外的《An Introduction to Statistical Learning 》《ESL》《PRML》等等,當然看英文的可能比較辛苦。3)因為這方面比較火,所以網上公開課也不少。Ng大神的《Machine Learning》,林軒田的《機器學習基石》《機器學習技法》,HInton的《Neural Network for Machine Learning》,任選其一學習即可,英文稍差可以看林軒田的,台灣人,說的是中文。4)數學。線性代數,矩陣論,概率論,數理統計都會用到的。學習方法還是如上所說。5)學ML/DL切忌紙上談兵,多實踐。網上找點數據集,各種模型自己跑跑試試,改改,這樣才能理解透徹。
第一次答這麼長,各位大爺賞個讚唄。么么噠~首先C語言得好,然後學習下怎麼用C語言讀取與修改bmp圖片,這樣讓你對圖片文件結構以及將來做圖片處理時會遇到的坑有所幫助。然後可以試著自己編寫高斯濾波演算法,還有圖像的縮放平移以及把圖像從笛卡爾坐標轉換成極坐標看看是什麼樣的練習然後兩條腿走路,一邊是演算法——岡薩雷斯的《數字圖像處理》一邊是實踐——《學習opencv》matlab以及opencv是你的搖籃,但是你不能永遠生活在搖籃里,有時候你要自己寫演算法,這樣你就會遇到許多的坑,這樣就要求你對基礎的東西非常了解才行。
根據個人的經驗,提供幾點建議供參考:
1)圖像處理基礎知識,岡薩雷斯的數字圖像處理,經典之作。
這本書涵蓋的內容比較多,建議不用一次性啃到底,可以根據自己的情況有選擇地學習。2)數學,關鍵的關鍵。線性代數,微積分,概率,都不能丟。越往深走,數學的優勢體現的越明顯。
3)機器學習和深度學習基礎,時下的熱點,不用多說。做圖像演算法,或多或少都會接觸到這些。
4)編程語言,之所以放在後面,並不是不重要。個人覺得,編程語言只是用來表述演算法的工具,在學習的過程中,自然而然就會用到,不用刻意去學,直接用就好。
圖像處理是一門交叉學科,涉及到很多知識,細分領域也非常多,最好是從一個具體的方向或者課題入手,逐漸擴展開來。為什麼要做圖像演算法?真喜歡應該讀個博士,為了工作的話,練好編程,很多做演算法的都是拿別人的來改改,優化優化
0基礎,先補語言,c語言,matlab。下面看演算法思想,岡薩雷斯的數字圖像處理。然後學會用工具,opencv。爭取做到,需要什麼效果功能,就有相應的思路。代碼不重要,搬磚的活,後面重要的演算法。
建議python+opencv的組合。
python比C++更靈活且易上手,演算法驗證效率更高;
opencv,完全開源,嘗試不同功能,介面,參數的意義,了解背後演算法,一步步積累;
直接搬出來岡薩雷斯那麼厚的一大本,很容易被勸退,入門沒必要。
個人覺得以目前深度學習的浪潮,深度學習已經降低了人工智慧領域的各個子問題的門檻,例如圖像直接像素級別地讀入然後輸入到CNN網路中,而在自然語言處理里,每個單詞也是用one-hot的表現形式讀入到RNN的模型中。因此想進入圖像識別領域的,我推薦上斯坦福大學的課程CS321N,而想進入自然語言處理的同學,推薦你們上CS224D,好好上課加做作業能讓你發現一個與眾不同的深度學習世界。當然,我不反對樓上說的,進一步對於各個領域的認識,也免不了繼續學習領域內的專業知識。
我也是轉行做圖像處理,本科是和計算機完全無關的專業,碩士陰差陽錯找了個圖像處理的實習,就是在實習期間才接觸圖像處理的演算法的,感覺亞歷山大,因為自己一開始就想錯了,總想著碼代碼寫夠代碼量,但是思路上差距太遠。最近來了個博士帶我們,感覺境界完全不一樣啊,對他來說代碼只是工具,想法思路才是最牛叉的。感覺差距太大啊,任重道遠
可以先了解下基礎知識,編程倒是其次,剛薩雷斯的書是必備知識,可以多了解下光學知識
瀉藥看題主的問題是零基礎,我想最重要的還是要補一下圖像處理的基本概念吧?最起碼的要過一遍相關圖像處理的書,比如剛薩雷斯的那本(matlab版本)。可以一遍看書,一遍敲代碼,會對圖像處理有一個感性的認識。
------------------------------------------------------------------------------------------
之後如果能有機會進入工業界,直接上手一個項目,自然會有質的飛躍。如果身邊有個大牛能帶著走一段,簡直是幸運之至。就像樓上說的,做圖像處理最重要的還是演算法,演算法,還是演算法。更高階的就要看矩陣論,統計,概率論,泛函之類的理論。前途漫漫,但很有趣,祝題主踏實前進,取得成功!我現在是研二的學生,也是子啊研究圖像的,也想畢業後找圖像演算法的工作,具體還不太清楚怎麼學,有哪位大神可以指點一下嗎,灰常感謝
推薦閱讀:
※如何高質量得將紙質書轉換成PDF文檔?
※我想問現在計算機培訓的那麼多,培訓3個月就出來造假3年工作經驗,讓我這種好好學習的氣不過,怎麼辦?
※主板上的南北橋是什麼東西?