自學視覺演算法
Ⅰ 機器視覺演算法基本步驟
1、圖像數據解碼
2、圖像特徵提取
3、識別圖像中目標
Ⅱ 視覺追蹤的典型演算法
(1)基於區域的跟蹤演算法
基於區域的跟蹤演算法基本思想是:將目標初始所在區域的圖像塊作為目標模板,將目標模板與候選圖像中所有可能的位置進行相關匹配,匹配度最高的地方即為目標所在的位置。最常用的相關匹配准則是差的平方和准則,(Sum of Square Difference,SSD)。
起初,基於區域的跟蹤演算法中所用到的目標模板是固定的,如 Lucas 等人提出 Lucas-Kanade 方法,該方法利用灰度圖像的空間梯度信息尋找最佳匹配區域,確定目標位置。之後,更多的學者針對基於區域方法的缺點進行了不同的改進,如:Jepson 等人提出的基於紋理特徵的自適應目標外觀模型[18],該模型可以較好的解決目標遮擋的問題,且在跟蹤的過程中採用在線 EM 演算法對目標模型進行更新;Comaniciu 等人[19]提出了基於核函數的概率密度估計的視頻目標跟蹤演算法,該方法採用核直方圖表示目標,通過 Bhattacharya 系數計算目標模板與候選區域的相似度,通過均值漂移(MeanShift)演算法快速定位目標位置。
基於區域的目標跟蹤演算法採用了目標的全局信息,比如灰度信息、紋理特徵等,因此具有較高的可信度,即使目標發生較小的形變也不影響跟蹤效果,但是當目標發生較嚴重的遮擋時,很容易造成跟蹤失敗。
(2)基於特徵的跟蹤方法
基於特徵的目標跟蹤演算法通常是利用目標的一些顯著特徵表示目標,並通過特徵匹配在圖像序列中跟蹤目標。該類演算法不考慮目標的整體特徵,因此當目標被部分遮擋時,仍然可以利用另一部分可見特徵完成跟蹤任務,但是該演算法不能有效處理全遮擋、重疊等問題。
基於特徵的跟蹤方法一般包括特徵提取和特徵匹配兩個過程:
a) 特徵提取
所謂特徵提取是指從目標所在圖像區域中提取合適的描繪性特徵。這些特徵不僅應該較好地區分目標和背景,而且應對目標尺度伸縮、目標形狀變化、目標遮擋等情況具有魯棒性。常用的目標特徵包括顏色特徵、灰度特徵、紋理特徵、輪廓、光流特徵、角點特徵等。D.G. Lowe 提出 SIFT(Scale Invariant Feature Transform)演算法[20]是圖像特徵中效果較好的一種方法,該特徵對旋轉、尺度縮放、亮度變化具有不變性,對視角變化、仿射變換、雜訊也具有一定的穩定性。
b) 特徵匹配
特徵匹配就是採用一定的方式計算衡量候選區域與目標區域的相似性,並根據相似性確定目標位置、實現目標跟蹤。在計算機視覺領域中,常用的相似性度量准則包括加權距離、Bhattacharyya 系數、歐式距離、Hausdorff 距離等。其中,Bhattacharyya 系數和歐式距離最為常用。
Tissainayagam 等人提出了一種基於點特徵的目標跟蹤演算法[21]。該演算法首先在多個尺度空間中尋找局部曲率最大的角點作為關鍵點,然後利用提出的MHT-IMM 演算法跟蹤這些關鍵點。這種跟蹤演算法適用於具有簡單幾何形狀的目標,對於難以提取穩定角點的復雜目標,則跟蹤效果較差。
Zhu 等人提出的基於邊緣特徵的目標跟蹤演算法[22],首先將參考圖像劃分為多個子區域,並將每個子區域的邊緣點均值作為目標的特徵點,然後利用類似光流的方法進行特徵點匹配,從而實現目標跟蹤。
(3)基於輪廓的跟蹤方法
基於輪廓的目標跟蹤方法需要在視頻第一幀中指定目標輪廓的位置,之後由微分方程遞歸求解,直到輪廓收斂到能量函數的局部極小值,其中,能量函數通常與圖像特徵和輪廓光滑度有關。與基於區域的跟蹤方法相比,基於輪廓的跟蹤方法的計算復雜度小,對目標的部分遮擋魯棒。但這種方法在跟蹤開始時需要初始化目標輪廓,因此對初始位置比較敏感,跟蹤精度也被限制在輪廓級。
Kass 等人[23]於 1987 年提出的活動輪廓模型(Active Contour Models,Snake),通過包括圖像力、內部力和外部約束力在內的三種力的共同作用控制輪廓的運動。內部力主要對輪廓進行局部的光滑性約束,圖像力則將曲線推向圖像的邊緣,而外部力可以由用戶指定,主要使輪廓向期望的局部極小值運動,。
Paragios 等人[24]提出了一種用水平集方法表示目標輪廓的目標檢測與跟蹤演算法,該方法首先通過幀差法得到目標邊緣,然後通過概率邊緣檢測運算元得到目標的運動邊緣,通過將目標輪廓向目標運動邊緣演化實現目標跟蹤。
(4)基於模型的跟蹤方法[25]
在實際應用中,我們需要跟蹤的往往是一些特定的我們事先具有認識的目標,因此,基於模型的跟蹤方法首先根據自己的先驗知識離線的建立該目標的 3D 或2D 幾何模型,然後,通過匹配待選區域模型與目標模型實現目標跟蹤,進而在跟蹤過程中,根據場景中圖像的特徵,確定運動目標的各個尺寸參數、姿態參數以及運動參數。
Shu Wang 等人提出一種基於超像素的跟蹤方法[26],該方法在超像素基礎上建立目標的外觀模板,之後通過計算目標和背景的置信圖確定目標的位置,在這個過程中,該方法不斷通過分割和顏色聚類防止目標的模板漂移。
(5)基於檢測的跟蹤演算法
基於檢測的跟蹤演算法越來越流行。一般情況下,基於檢測的跟蹤演算法都採用一點學習方式產生特定目標的檢測器,即只用第一幀中人工標記的樣本信息訓練檢測器。這類演算法將跟蹤問題簡化為簡單的將背景和目標分離的分類問題,因此這類演算法的速度快且效果理想。這類演算法為了適應目標外表的變化,一般都會採用在線學習方式進行自更新,即根據自身的跟蹤結果對檢測器進行更新。
Ⅲ 學習了哪些知識,計算機視覺才算入門
計算機視覺是一個很大的范疇的總和,有兩種學習方式,一種是閱讀基礎書,搞懂它的每一部分;另一種是找一個問題,看文獻,編程實現,不斷往深走。這兩種學習方式是互補的,如果你看了好幾年書還不能上手解決問題,或者只會解決某些很特殊的問題,對其他問題束手無策都不算成功。因此你需要把看書掌握一般知識和編程實驗解決具體問題齊頭並進。下面說你要干什麼:
下載安裝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,在科學網—[轉載]計算機視覺方向的一些頂級會議和期刊有更加詳細的介紹。
Ⅳ 自學機器視覺應該怎麼入門
找本機器視覺的書來系統的學習。
比如:《圖像處理分析與機器視覺》、《機器視覺演算法與應用》、《機器視覺與機電一體化實踐》