學(xué)習(xí)機(jī)器視覺需要哪些基礎(chǔ)知識(shí)?
計(jì)算機(jī)視覺是一個(gè)很大的范疇的總和,有兩種學(xué)習(xí)方式,一種是閱讀基礎(chǔ)書,搞懂它的每一部分;另一種是找一個(gè)問題,看文獻(xiàn),編程實(shí)現(xiàn),不斷往深走。這兩種學(xué)習(xí)方式是互補(bǔ)的,如果你看了好幾年書還不能上手解決問題,或者只會(huì)解決某些很特殊的問題,對其他問題束手無策都不算成功。因此你需要把看書掌握一般知識(shí)和編程實(shí)驗(yàn)解決具體問題齊頭并進(jìn)。下面說你要干什么:
下載安裝OpenCV2OpenCV是一個(gè)非常強(qiáng)大的計(jì)算機(jī)視覺庫,包括了圖像處理、計(jì)算機(jī)視覺、模式識(shí)別、多視圖幾何的許多基本算法,有c++和Python兩種接口。學(xué)習(xí)的材料首先是安裝目錄下doc文件夾里的幫助文檔,提供所有函數(shù)的用法,任何時(shí)候?qū)θ魏魏瘮?shù)有疑問請查閱幫助文檔,安裝目錄下還提供一大堆寫好的演示程序供參考;《OpenCV_2 Computer Vision Application Programming Cookbook》是一本比較基礎(chǔ)的介紹材料,它的缺點(diǎn)是沒有介紹分類器(模式識(shí)別)方面的函數(shù)怎么用。雖然網(wǎng)上還有其他很多流行的庫,比如處理特征點(diǎn)的VLfeat,處理點(diǎn)云的PCL,處理GPU運(yùn)算的CUDA,處理機(jī)器人問題的ROS和MRPT,但是這些都是你在解決具體問題時(shí)才會(huì)考慮去用的東西,如果你想快速讀取視頻、做個(gè)屏幕交互程序、使用流行的分類器、提取特征點(diǎn)、對圖像做處理、進(jìn)行雙目重建,OpenCV都提供相應(yīng)函數(shù),因此在你不知道該把余生用來干什么的時(shí)候,先裝OpenCV學(xué)習(xí)。讀綜述Computer Vision: Algorithms and Application。這本書用1000頁篇幅圖文并茂地瀏覽了計(jì)算機(jī)視覺這門學(xué)科的諸多大方向,如果你不知道計(jì)算機(jī)視覺是一門搞什么的學(xué)科,這本書是你絕佳的選擇。它的優(yōu)點(diǎn)是涉獵了大量文獻(xiàn),缺點(diǎn)是缺乏細(xì)節(jié),因此很顯然只讀這本書你根本沒法上手工作,因?yàn)樗v的實(shí)在是太粗糙了。如果你對其中的某一部分感興趣,就請去讀相關(guān)文獻(xiàn),繼續(xù)往下走,這就是這本書的意義。有中文版,但是翻譯的不好,也不建議你細(xì)細(xì)去讀,看看里面的圖片即可。Computer Vision: Models, Learning, and Inference:這本書是我認(rèn)為研究生和高年級本科生入門計(jì)算機(jī)視覺最好的教材。它內(nèi)容豐富,難度適中,推導(dǎo)翔實(shí),語言流暢,強(qiáng)烈推薦你花2個(gè)月時(shí)間把這本書讀完。多視圖幾何Multiple View Geometry in Computer Vision:這本書是多視圖幾何的圣經(jīng),意思就是說想搞三維重建或者圖像測量之類的項(xiàng)目,這本書是必讀的。它需要你有線性代數(shù)的基本知識(shí),會(huì)SVD分解即可。第一版有中文版,翻譯的非常好,但是已經(jīng)絕版了,可以上淘寶高價(jià)買一本,第二版添加的內(nèi)容很少,在網(wǎng)上可以下載到。模式識(shí)別模式識(shí)別核心就是訓(xùn)練一個(gè)函數(shù)來擬合手頭的數(shù)據(jù),如果數(shù)據(jù)的標(biāo)簽是離散的,稱為分類問題,如數(shù)據(jù)的標(biāo)簽是連續(xù)的,稱為回歸問題;分類又分有監(jiān)督分類和無監(jiān)督分類,有監(jiān)督分類器有神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)、AdaBoost、隨機(jī)場、樹模型等等。當(dāng)你拿到一大堆數(shù)據(jù),需要從里面找關(guān)系的時(shí)候,一般都需要使用模式識(shí)別算法來訓(xùn)練一個(gè)函數(shù)/分類器/模型,因此模式識(shí)別是機(jī)器學(xué)習(xí)的核心。《模式分類(第二版)》:這是一本適合普通讀者閱讀的教材,介紹了模式識(shí)別中經(jīng)典的分類器,講解細(xì)致,語言生動(dòng),難度適中,每一個(gè)算法都有偽代碼。The Elements of Statistical Learning:這本書使用嚴(yán)謹(jǐn)?shù)臄?shù)學(xué)工具分析模式識(shí)別算法,它比較難,但是非常深刻。每拿到一個(gè)模型它都會(huì)分析這個(gè)模型在數(shù)學(xué)上是如何構(gòu)造的,并且推導(dǎo)模型的分類錯(cuò)誤率。分析和推導(dǎo)是這本書的精髓。Pattern Recognition and Machine Learning:這是一本從貝葉斯學(xué)派的角度分析模式識(shí)別模型的書,它使用的工具主要是概率論,比較難,非常深刻,內(nèi)容非常豐富。雖然這兩本書很難,但是它們用到的數(shù)學(xué)知識(shí)不過是基本的概率論和線性代數(shù),只是用的比較活,計(jì)算機(jī)視覺這個(gè)學(xué)科需要的數(shù)學(xué)知識(shí)也是這個(gè)水平。圖形學(xué)圖形學(xué)教材首先推薦《計(jì)算機(jī)圖形學(xué)與幾何造型導(dǎo)論》,這本書用流暢的語言介紹了圖形學(xué)的基礎(chǔ)知識(shí),選材有趣,推導(dǎo)簡潔但是絕不跳步走,保證你能看懂而且不會(huì)看煩。光線追蹤器我看過一本薄的《Realistic Ray Tracing》和一本厚的《Ray Tracing from the Ground Up》,兩本書都有代碼。后一本內(nèi)容極其豐富,有中文版,翻譯尚可。后一本唯一的缺點(diǎn)就是講不清楚BRDF,但這恰恰是前一本的亮點(diǎn)。還有一些比較偏的書,比如偏微分方程在圖像處理中的應(yīng)用、細(xì)分、壓縮感知、馬爾科夫隨機(jī)場、超分辨率分析,概率機(jī)器人、多尺度幾何分析,這些領(lǐng)域都有各自的名著,你在某個(gè)領(lǐng)域深挖的時(shí)候,類似這樣的書可能會(huì)出現(xiàn)在參考文獻(xiàn)中,那時(shí)再看不遲。讀文獻(xiàn)寫到書里的知識(shí)基本上都有些過時(shí),你得通過看文獻(xiàn)掌握各個(gè)領(lǐng)域最新的發(fā)展動(dòng)態(tài)。計(jì)算機(jī)視覺的頂級期刊有兩個(gè)PAMI和IJCV,頂級會(huì)議有ICCV和CVPR,在科學(xué)網(wǎng)—[轉(zhuǎn)載]計(jì)算機(jī)視覺方向的一些頂級會(huì)議和期刊有更加詳細(xì)的介紹。你可以通過大量瀏覽會(huì)議文章合集和期刊的文章尋找一個(gè)自己感興趣的文章,先看圖,再讀摘要,最后有必要再看正文。從一兩篇文章開始細(xì)讀,肯定會(huì)有很多讀不懂的東西,這個(gè)時(shí)候就需要去看參考文獻(xiàn)列出的文章,看不懂再去看參考文獻(xiàn)的參考文獻(xiàn)。不斷走下去,你對一個(gè)領(lǐng)域的了解就加深了。看文章的時(shí)候注意上網(wǎng)搜索,作者可能在網(wǎng)上公布了代碼,你可以把代碼下載下來深入研究而不用自己重新發(fā)明輪子。