傳統算法目標檢測知識點整理(一)

1.直方圖均衡化、濾波編碼、閾值分割(峯谷法、灰度閾值法)、區域增長、分裂合併

https://wenku.baidu.com/view/6341c428a36925c52cc58bd63186bceb18e8ed02.html

2.區域生長、區域分離合並、使用分水嶺變化(來源:Matlab(岡薩雷斯)

3. 基於圖的分割(https://blog.csdn.net/guoyunfei20/article/details/78727972

3. PCA主成分分析方法(來源大論文)

主成分分析[39](PCA)方法是一種數學變換方法,它能夠將高維數據按實際問題的需要被簡化的描述出來,同時還能夠反映出高維數據中那些本質的數據信息,達到降低數據維數的目的[40]。它簡單實用,而且沒有參數限制,應用領域多。最早將PCA方法用於人臉識別過程中的研究者是Pentland,由於該方法被證實簡單有效,因而很快流行起來。在人臉識別過程中,PCA把人臉空間中的高維數據經過KL變換分解映射到較小維數的特徵空間中,這種方法在損失最小人臉數據信息的前提下獲得了最大限度的數據降維。設參加訓練用的人臉圖像大小爲M×N,讓其按照行或列順序重新排列成爲一個d=M×N維的向量,設樣本集有k幅表情圖像,則所有訓練樣本的向量集合記爲X={Xi ,i=1, 2,…, k},Xi對應一幅圖像形成的d維向量。計算k幅圖像的平均向量,平均向量又叫平均臉:

                                                                                  

然後用每幅訓練圖像減去平均向量,得:

                                                                                

Ai, i=1, 2,…, k作爲列,生成d×k維的矩陣A,計算A的協方差矩陣 :        
                                                                               

這裏Cd×d維的矩陣,然後求C的特徵向量,並由它們構成一組新的正交基,我們將這組特徵向量記作V1,V2,…Vd,同時求出特徵向量對應的特徵值λ1,λ2,…,λd。特徵向量按行組合形成特徵矩陣V,則人臉圖像Xi在這組基下的投影Yi爲:

                                                                               

投影后的向量Yi的維數仍爲d,可以將特徵值λ1,λ2,…,λd按從小到大的順序排列,從C的特徵向量中選出前k個特徵值所對應的向量組成特徵矩陣V,這裏k<dXi在此特徵矩陣上進行投影得到的Yik維向量,相比Xi有很大程度的降維,這裏的向量Yi便是從對應人臉樣本Xi上提取得到的即將用於後續分類器訓練的特徵向量。若將得到的特徵向量V1,V2,…,Vd按照樣本圖像大小M×N還原成矩陣並作爲圖像顯示出來,可以看出特徵向量呈人臉形狀。因此該方法也爲“特徵臉”方法。圖3.1(a)是ORL人臉庫中所有人臉樣本的平均臉,圖3.1(b)是爲用ORL人臉庫中的一系列樣本求得的前3個特徵臉,即爲求得的V1,V2,V3所對應的圖

                                                        

4. Haar特徵

基於機器學習的方法分爲訓練和測試兩個階段,訓練階段需要採集大量的人臉和非人臉樣本圖像供機器學習所用,通過學習可以獲得一個確定了判別函數的分類器。在測試階段,便可利用該分類器對一幅輸入圖像進行人臉檢測,具體檢測過程可描述如下:在被檢測圖像上設置一子窗口,提取該子窗口上的特徵向量,將特徵向量作爲訓練階段所確定的分類器的輸入,從而來判斷該子窗口是否爲人臉。子窗口在整個圖像上逐像素的移動,每個子窗口都進行相同的判斷,從而最終確定檢測圖像上是否存在人臉以及人臉的位置。和基於先驗知識的方法相比較,基於機器學習的方法能夠應對複雜環境下的人臉檢測問題,它是當前的主流研究方向。在基於機器學習的方法中,人臉的特徵或類別是利用統計分析和機器學習[31]的技術從樣本中學習來的。機器學習方法主要有人工神經網絡方法,支持向量機方法,Adaboost方法,其中Adaboost方法已經被證明是一種有效而實用的學習方法,由於該方法的巨大成功,近幾年的人臉檢測方法通常是該方法的變形或者擴展,有着廣泛的應用性。

AdaBoost算法是由Freund和Schapire[32]提出的一種將弱分類器訓練成強分類器的方法。Viola和Jones[33]於2001年首次將AdaBoost算法應用在人臉檢測這一領域,該方法的關鍵是使用了Haar矩形特徵和積分圖[34]。

                            

Haar矩形特徵結構不復雜,計算代價小,可以作爲人臉檢測用特徵。基本的Haar矩形特徵有5種形式,如圖2.1所示。其中兩個矩形塊狀(a)和(b)的特徵取值是白色矩形中的像素灰度值之和與黑色框像素灰度值之和的差,可用來表示圖像中邊緣信息。三個矩形塊狀(c)和(d)的特徵值爲兩個黑色矩形中的像素灰度值之和與一個白色矩形中框像素灰度值之和的差,可用於表示圖像中線條信息。四個矩形塊狀(e)的特徵值定義爲兩個白色矩形中的像素灰度值之和與兩個黑色矩形框像素灰度值之和的差,可用來表示圖像中斜向邊界信息。這種圖像特徵的數量是十分巨大的,例如一個大小爲24×24的檢測器模板,相應矩形框的個數有4萬多個。

可藉助積分圖像快速計算出基本的Haar特徵值。如圖2.2(a)所示,任意一幅圖像f的積分圖像g在任何一個像素點(x,y)的取值定義爲:

              

由圖2.2(b)可知,藉助於積分圖像,只需經過4次查表便可獲得任意一個矩形框內的所有像素之和。經過8次查表運算可以得到任意一個包含兩個矩形框的Haar特徵。由圖2.1可知,由於Haar特徵的矩形框相互鄰接,所以一個包含2個矩形框的Haar特徵可由6次查表運算得到,一個包含3個矩形框的Haar特徵可由8次查表運算得到,一個包含4個矩形框的特徵可由9次查表運算得到。Adaboost算法中用到了Haar特徵來訓練分類器,該算法的基本思想是先將多個分類能力一般的弱分類器通過某種方法集成起來,構成一個鑑別能力很強的強分類器,再將若干個強分類器串聯成爲級聯分類器以完成圖像的搜索檢測[35]。

鑑於AdaBoost算法在人臉檢測方面良好的性能表現,OpenCV提供了基於該算法的相關函數,研究者便可以利用這些現成的函數來快速進行人臉檢測。OpenCV包含一系列預先訓練好的物體識別文件,當然代碼也允許你訓練並存儲新的物體模型。此技術雖然可以用於人臉檢測,但也不限於此,它還可以進行人眼檢測。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章