機器視覺中的目標檢測

2022-05-28 04:09:11 字數 2236 閱讀 3128

今天撇去不同目標追蹤演算法的框架,比如kcf、tld、mean shift等,忽略它們繁瑣的公式,看了對目標檢測的基本理解。這裡做乙個簡單的總結,目標檢測的框架一般是下圖這樣的:

目標檢測分為以下幾個步驟:

1、 訓練分類器所需樣本的建立

訓練樣本一般包括正樣本和負樣本,正樣本是指第一幀圖中框定的待檢測的目標,負樣本是指其它不包含目標的任意(比如背景),所有的樣本都被歸一化同樣的尺寸大小(比如20c20)。

2、 特徵提取

一般來說,我們把原始資料組成的空間叫測量空間,把分類識別賴以進行的空間叫做特徵空間,通過變換,我們可把在維數較高的測量空間中表示的模式轉變為在維數較低的特徵空間中表示的模式。(這部分和我目前正在看的svm和核函式聯絡極大,公式比較繁瑣,定義也比較多,目前暫未全部羅列消化,雖然最近看了一部分,大部人說用的不一定需要懂,可是感覺不懂根本無法用好,最近正在致力於消化的小目標,準備從這裡開始入手machine learning)

3、 用訓練樣本來訓練分類器

這部分首先得先明白分類器是什麼?wikipedia上的解釋是:在機器學習領域,分類的目標是指將具有相似特徵的物件聚集,通過特徵的線性組合來做出分類決定,以達到此種目的。在這裡,物件的特徵通常被描述為特徵值,在向量中被描述為特徵向量。

比如,人腦本身也算乙個分類器(強大到超乎想象),人對事物的識別就是乙個分類的過程,人在成長和學習過程中,會通過觀察a類事物的多個具體事例來得到對a類事物性質和特點的認識,以後遇到乙個新物體的時候,人腦會根據這個事物的特徵去判斷是否符合a類事物的性質和特點,然後將其分為a類或者b類(這裡是乙個簡單的二分類問題)。

在這裡,訓練分類器(大腦)可以通過對正樣本和負樣本的觀察(學習),是其具有對該目標的檢測能力,從而遇到該目標時可以檢測出來。

從數學來表達,分類器就是乙個函式y=f(x),x是某個事物的特徵,y是類別,通俗的說就是例如,你輸入張三的特徵x1,分類器就給你認出來這個是張三y1,你輸入李四的特徵x2,它就給你認出來這個是李四y2。那麼分類器是個函式,它的數學模型是什麼呢?一次函式y=kx+b?高次函式?等等好複雜的都有,我們需要先確定它的模型;確定了模型後,模型是不是由很多引數呢?例如上面的一次函式y=kx+b的k和b,高斯函式的均值和方差等等。這個就可以通過什麼最小化分類誤差、最小化懲罰啊等等方法來確定,其實訓練分類器好像就是找這些引數,使得達到最好的分類效果。

此外,為了使分類器檢測準確率較好,訓練樣本一般都是成千上萬,然後每個樣本提取出很多個特徵,這樣就產生了很多的訓練資料,所以訓練的過程一般也都是很耗時的。

4、 利用訓練好的進行目標檢測

得到了分類器後,我們就可以用來對輸入的影象進行分類了,也就是在影象中檢測是否存在我們想要檢測的目標。一般的檢測過程是這樣的:用乙個掃瞄子視窗在待檢測的影象中不斷的移位滑動,子視窗每到乙個位置,就會計算出該區域的特徵,然後用我們訓練好的分類器對該特徵進行篩選,判定該區域是否為目標。有時候可能因為目標影象的大小和你訓練分類器時使用的樣本大小不一樣,所以就需要對這個掃瞄的子視窗變大或者變小(或者將影象變小),再在影象中滑動,重新進行匹配一遍。

5、 學習和改進分類器

現在如果樣本數較多,特徵選取和分類器演算法都比較好的情況下,分類器的檢測準確度都挺高的了。但也會有誤檢的時候。所以更高階點的話就是加入了學習或者自適應,也就是說你把這張圖分類錯誤了,我就把這張圖拿出來,標上其正確的類別,再放到樣本庫中去訓練分類器,讓分類器更新、醒悟,下次別再再弄錯了。我們怎麼知道他弄錯了呢?我的理解是:(1)、可能是靠先驗知識來判定(例如目標本身存在著結構啊或者什麼的約束)(2)、根據跟蹤速度來判定(目標一般不會運動得太快)(3)、比較在初始幀採集的樣本集得到的殘差函式值的大小來判定(比如說我們得到的目標函式使得殘差值過大)(4)、也可能根據以上這些情況來綜合來判斷的。

6、 小總結

上面模式分類的過程適合很多領域,例如影象、語音識別等等,它的關鍵點在於兩個方面。

(1)    特徵選取:比如說目前比較盛行的有: haar特徵、lbp特徵、hog特徵和shif特徵等;他們各有千秋,視要檢測的目標情況而定,例如:拳頭:紋理特徵明顯:haar、lbp(目前有將其和hog結合);手掌:輪廓特徵明顯:hog特徵(行人檢測一般用這個)

(2)    分類器演算法

感覺目前比較盛行的有:svm支援向量機、adaboost演算法等;其中檢測行人的一般是hog特徵+svm,opencv中檢測人臉的一般是haar+adaboost,opencv中檢測拳頭一般是lbp+ adaboost;

目標識別與追蹤真心涉及到很多很多演算法和machine learning的基礎知識,並且有不斷地湧現的大牛提出各種演算法,簡單的哲學,複雜的數學!!感覺身體被掏空,在此勉勵自己,希望自己能在機器視覺領域更上一層樓!

機器學習 目標檢測

如何理解一張?根據後續任務的需要,有三個主要層次 一 分類 二 檢測 三 分割 檢測模型 兩階段 2 stage 1 r cnn regions with cnn features r cnn系列的開山之作 2 fast r cnn 共享卷積運算 3 faster r cnn 兩階段模型的深度化 單...

陶瓷生產檢測中的機器視覺技術

上世紀90年代國外已經出現分色檢測,在2000年前後出現在國內,但並未能應用於陶瓷行業。中國的陶瓷磚生產裝置和環境尤其複雜,操作應用上差異化也很大,先進裝置的推廣應用需強大的技術作為支撐。尤其在噴墨時代下,陶瓷磚的花紋圖案越來越多,顏色越來越繽紛多彩,這對以往人工檢測的要求無疑大大提高。瓷磚檢測 鑑...

晶圓缺陷檢測裝置 機器視覺檢測 視覺缺陷檢測裝置

機器視覺是一種裝備感測視覺儀器的檢測裝置,其中光學檢測儀器的比例很高,可用於檢測各種產品中的缺陷,判別和選擇物體,或丈量尺寸。應用於自動化生產線對物料進行校準定位。計算機視覺是最工業化的部分,首要用於工廠自動化測驗和機械人工業。機器視覺系統主要由三個部分組成的,輸出或顯示的影象採集,處理和分析影象。...