1. 程式人生 > >影象物體分類和物體檢測演算法的概括

影象物體分類和物體檢測演算法的概括

參考資料《影象物體分類與檢測演算法綜述》--黃凱奇 計算機學報

1.研究問題

物體分類:要解決是否這張圖片中包含某類物體

物體檢測:物體出現在圖中的什麼地方,需要給出物體外接矩形

物體分類與檢測演算法的主流方法:基於表達學習和結構學習

2.研究任務


物體分類任務:一張影象中是否包含某種物體,對影象進行特徵描述是物體分類的主要研究內容. 一般說來,物體分類演算法通過手工特徵或者特徵學習方法對整個影象進行全域性描述,然後使用分類器判斷是否存在某類物體.

物體檢測任務則更為複雜,它需要回答一張影象中在什麼位置存在一個什麼物體,因而除特徵表達外,物體結構是物體檢測任務不同於物體分類的最重要之處.

3.分類演算法的流程

分類演算法一般採用詞包模型,主要分為4個步驟

1.底層特徵提取

    a.基於興趣點檢測:畫素點、邊緣、角點、一般會有一定的幾何不變性,用的比較多的有Harris角點、FAST(feature from accelerated segment test)、LOG(laplacian of guassian)、DOG(difference of gaussian)。

    b.密集點提取:從影象中按照固定步長、尺度提取出大量的區域性特徵描述如SIFT、HOG、LBP(local binary pattern)

2.特徵編碼

    底層特徵包含冗餘和噪聲,需要一種特徵變換演算法對底層進行編碼,從而獲得更加具有區分性、更加魯棒的特徵表達,重要的特徵編碼演算法包括:向量量化編碼,核詞典編碼、稀疏編碼、區域性線性約束編碼、顯著性編碼、Fisher向量編碼、超向量編碼。

    向量量化編碼:是通過一種量化的思想,使用一個較小的特徵集合(視覺詞典)來對底層特徵進行描述,達到特徵壓縮的目的.向量量化編碼只在最近的視覺單詞上響應為1,因而又稱為硬量化編碼、硬投票編碼,這意味著向量量化編碼只能對區域性特徵進行很粗糙的重構. 但向量量化編碼思想簡單、直觀,也比較容易高效實現。

   侷限性:在實際影象中影象區域性特徵常常存在一定的模糊性即一個區域性特徵可能和多個視覺單詞差別很小這個時候若使用向量量化編碼將只利用距離最近的視覺單詞而忽略了其他相似性很高的視覺單詞。

   軟量化編碼(又稱核視覺詞典編碼)演算法,區域性特徵不再使用一個視覺單詞描述,而是由距離最近的犓個視覺單詞加權後進行描述,有效解決了視覺單詞的模糊性問題,提高了物體識別的精度.

   稀疏編碼通過最小二乘重構加入稀疏約束來實現在一個過完備基上響應的稀疏性.得到一個高維的高度稀疏的特徵表達,大大提高了特徵表達的線性可分性,僅僅使用線性分類器就得到了當時最好的物體分類結果,將物體分類的研究推向了一個新的高度上。

   侷限性:稀疏編碼存在一個問題,即相似的區域性特徵可能經過稀疏編碼後在不同的視覺單詞上產生響應,這種變換的不連續性必然會產生編碼後特徵的不匹配,影響特徵的區分效能.

   區域性線性約束編碼它通過加入區域性線性約束,在一個區域性流形上對底層特徵進行編碼重構,這樣既可以保證得到的特徵編碼不會有稀疏編碼存在的不連續問題,也保持了稀疏編碼的特徵稀疏性。

   顯著性編碼引入了視覺顯著性的概念如果一個區域性特徵到最近和次近的視覺單詞的距離差別很小則認為這個區域性特徵是不顯著的”,從而編碼後的響應也很小。編碼速度也比稀疏編碼快很多
   FISHER向量編碼同時融合了產生式模型和判別式模型的能力,與傳統的基於重構的特徵編碼方法不同,它記錄了局部特徵與視覺單詞之間的一階差分和二階差分

   超向量編碼則直接使用區域性特徵與最近的視覺單詞的差來替換之前簡單的硬投票. 這種特徵編碼方式得到的特徵向量表達通常是傳統基於重構編碼方法的M倍(M是區域性特徵的維度).

3.特徵匯聚

    空間特徵匯聚是特徵編碼後進行的特徵集整合操作,通過對編碼後的特徵,每一維都取其最大值或者平均值,得到一個緊緻的特徵向量作為影象的特徵表達. 這一步得到的影象表達可以獲得一定的特徵不變性,同時也避免了使用 特徵集進行影象表達的高額代價. 最大值匯聚在絕大部分情況下的效能要優於平均值匯聚,也在物體分類中使用最為廣泛。由於影象通常具有極強的空間結構約束,空間金字塔匹配(spatial pyramid matching,SPM)提出將影象均勻分塊,然後每個區塊裡面單獨做特徵匯聚操作並將所有特徵向量拼接起來作為影象最終的特徵表達.

4.使用分類器進行分類

    常用的分類器有支援向量機、犓 近鄰、神經網路、隨機森林等。特別是使用了核方法的支援向量機.通過學習過完備的稀疏特徵,可以在高維特徵空間提高特徵的線性可分性,使用線性支援向量機就得到了當時最好的分類結果,大大降低了訓練分類器的時間和空間消耗。

深度學習模型

深度學習模型是另一類物體識別演算法,其基本思想是通過有監督或者無監督的方式學習層次化的特徵表達,來對物體進行從底層到高層的描述. 主流的深度學習模型包括自 動編碼器、受限波爾茲曼機(RBM)、 深度信念網 絡 (DBN)、卷積神經網路(CNN)、生物啟發式模型等。

4.物體檢測演算法

    根據獲得視窗位置策略的不同,物體檢測方法大致可分為滑動視窗和廣義霍夫投票兩類方法. 滑動視窗方法比較簡單,它是通過使用訓練好的模板在輸入影象的多個尺度上進行滑動掃描,通過確定最大響應位置找到目標物體的外接視窗. 廣義霍夫投票方法則是通過在引數空間進行累加,根據區域性極值獲得物體位置的方法,可以用於任意形狀的檢測和一般物體檢測任務。

    與物體分類問題不同,物體檢測問題從數學上是研究輸入影象X與輸出物體視窗Y之間的關係,這裡Y的取值不再是一個實數,而是一組“結構化”的資料,指定了物體的外接視窗和類別,是一個典型的結構化學習問題

    處理結構化分類問題演算法有:結構化支援向量機、隱變數支援向量機、若標籤結構化支援向量機、條件隨機場

物體分類和物體檢測在特徵提取、特徵編碼、分類器設計方面很大程度是相似的。