當前位置:聚美館>智慧生活>心理>

學習機器視覺需要哪些基礎知識

心理 閱讀(2.7W)
學習機器視覺需要哪些基礎知識

計算機視覺是一個很大的範疇的總和,有兩種學習方式,一種是閱讀基礎書,搞懂它的每一部分另一種是找一個問題,看文獻,編程實現,不斷往深走。這兩種學習方式是互補的,如果你看了好幾年書還不能上手解決問題,或者只會解決某些很特殊的問題,對其他問題束手無策都不算成功。因此你需要把看書掌握一般知識和編程實驗解決具體問題齊頭並進。下面說你要幹什麼:

下載安裝OpenCV2

OpenCV是一個非常強大的計算機視覺庫,包括了圖像處理、計算機視覺、模式識別、多視圖幾何的許多基本算法,有c++和Python兩種接口。學習的材料首先是安裝目錄下doc檔案夾裏的幫助文檔,提供所有函數的用法,任何時候對任何函數有疑問請查閱幫助文檔,安裝目錄下還提供一大堆寫好的演示程序供參考《OpenCV_2 Computer Vision Application Programming Cookbook》是一本比較基礎的介紹材料,它的缺點是沒有介紹分類器(模式識別)方面的函數怎麼用。雖然網上還有其他很多流行的庫,比如處理特徵點的VLfeat,處理點雲的PCL,處理GPU運算的CUDA,處理機器人問題的ROS和MRPT,但是這些都是你在解決具體問題時纔會考慮去用的東西,如果你想快速讀取視頻、做個屏幕交互程序、使用流行的分類器、提取特徵點、對圖像做處理、進行雙目重建,OpenCV都提供相應函數,因此在你不知道該把餘生用來幹什麼的時候,先裝OpenCV學習。

讀綜述

Computer Vision: Algorithms and Application。這本書用1000頁篇幅圖文並茂地瀏覽了計算機視覺這門學科的諸多大方向,如果你不知道計算機視覺是一門搞什麼的學科,這本書是你絕佳的選擇。它的優點是涉獵了大量文獻,缺點是缺乏細節,因此很顯然只讀這本書你根本沒法上手工作,因爲它講的實在是太粗糙了。如果你對其中的某一部分感興趣,就請去讀相關文獻,繼續往下走,這就是這本書的意義。有中文版,但是翻譯的不好,也不建議你細細去讀,看看裏面的圖片即可。Computer Vision: Models, Learning, and Inference:這本書是我認爲研究生和高年級本科生入門計算機視覺最好的教材。它內容豐富,難度適中,推導翔實,語言流暢,強烈推薦你花2個月時間把這本書讀完。

多視圖幾何

Multiple View Geometry in Computer Vision:這本書是多視圖幾何的聖經,意思就是說想搞三維重建或者圖像測量之類的項目,這本書是必讀的。它需要你有線性代數的基本知識,會SVD分解即可。第一版有中文版,翻譯的非常好,但是已經絕版了,可以上淘寶高價買一本,第二版添加的內容很少,在網上可以下載到。

模式識別

模式識別核心就是訓練一個函數來擬合手頭的數據,如果數據的標籤是離散的,稱爲分類問題,如數據的標籤是連續的,稱爲迴歸問題分類又分有監督分類和無監督分類,有監督分類器有神經網絡、支援向量機、AdaBoost、隨機場、樹模型等等。當你拿到一大堆數據,需要從裏面找關係的時候,一般都需要使用模式識別算法來訓練一個函數/分類器/模型,因此模式識別是機器學習的核心。《模式分類(第二版)》:這是一本適合普通讀者閱讀的教材,介紹了模式識別中經典的分類器,講解細緻,語言生動,難度適中,每一個算法都有僞代碼。The Elements of Statistical Learning:這本書使用嚴謹的數學工具分析模式識別算法,它比較難,但是非常深刻。每拿到一個模型它都會分析這個模型在數學上是如何構造的,並且推導模型的分類錯誤率。分析和推導是這本書的精髓。Pattern Recognition and Machine Learning:這是一本從貝葉斯學派的角度分析模式識別模型的書,它使用的工具主要是概率論,比較難,非常深刻,內容非常豐富。雖然這兩本書很難,但是它們用到的數學知識不過是基本的概率論和線性代數,只是用的比較活,計算機視覺這個學科需要的數學知識也是這個水平。

圖形學

圖形學教材首先推薦《計算機圖形學與幾何造型導論》,這本書用流暢的語言介紹了圖形學的基礎知識,選材有趣,推導簡潔但是絕不跳步走,保證你能看懂而且不會看煩。光線追蹤器我看過一本薄的《Realistic Ray Tracing》和一本厚的《Ray Tracing from the Ground Up》,兩本書都有代碼。後一本內容極其豐富,有中文版,翻譯尚可。後一本唯一的缺點就是講不清楚BRDF,但這恰恰是前一本的亮點。還有一些比較偏的書,比如偏微分方程在圖像處理中的應用、細分、壓縮感知、馬爾科夫隨機場、超分辨率分析,概率機器人、多尺度幾何分析,這些領域都有各自的名著,你在某個領域深挖的時候,類似這樣的書可能會出現在參考文獻中,那時再看不遲。

讀文獻

寫到書裏的知識基本上都有些過時,你得透過看文獻掌握各個領域最新的發展動態。計算機視覺的頂級期刊有兩個PAMI和IJCV,頂級會議有ICCV和CVPR,在

科學網—[轉載]計算機視覺方向的一些頂級會議和期刊

有更加詳細的介紹。你可以透過大量瀏覽會議文章合集和期刊的文章尋找一個自己感興趣的文章,先看圖,再讀摘要,最後有必要再看正文。從一兩篇文章開始細讀,肯定會有很多讀不懂的東西,這個時候就需要去看參考文獻列出的文章,看不懂再去看參考文獻的參考文獻。不斷走下去,你對一個領域的瞭解就加深了。看文章的時候注意上網搜尋,作者可能在網上公佈了代碼,你可以把代碼下載下來深入研究而不用自己重新發明輪子。