當前位置:
首頁 > 最新 > 自然場景中物體識別演算法研究

自然場景中物體識別演算法研究

華南理工大學碩士畢業論文胡耀電路與系統電子與信息學院2016

Research on Object Recognition in Natural Scene

摘要

近年來,隨著互聯網的快速發展,網路中的圖片數目也與日俱增,如何讓計算機擁有識別圖像中核心物體的能力成為了人們日益迫切的需求。目前流行的物體識別演算法主要有兩大類:基於人工特徵的物體識別演算法與基於深度學習的物體識別演算法。本文分別對這兩大類物體識別演算法進行了研究和創新,提出了基於 SIFT 和 SURF 融合特徵的物體識別演算法與基於 DCNN 的物體識別演算法。並在 DCNN 的基礎上提出了基於 Gabor 特徵的 DCNN 物體識別演算法,改進 DCNN 無法學習到一些好的人工特徵的缺點。本文的主要工作和創新點如下:

(1)提出了一種基於 SIFT 和 SURF 融合特徵的物體識別演算法。傳統基於人工特徵的物體識別演算法的做法是先提取圖像的 SIFT 特徵,再通過標準詞袋模型進行圖像特徵表達,最後用 SVM 分類器對圖像分類。雖然 SIFT 演算法對尺度變化和旋轉變化都具有很好的魯棒性,但是它在亮度變化以及圖像模糊方面的穩定性不如 SURF 演算法,且 SIFT特徵空間位置信息會被標準詞袋模型所忽略。所以本文提出了一種基於 SIFT 和 SURF融合特徵的物體識別演算法。通過不同數據集的對比實驗,表明本文所提出的演算法要優於傳統的物體識別演算法。

(2)提出了一種基於 DCNN 的物體識別演算法。傳統的特徵提取演算法,只能夠提取到數據集低層特徵,無法對數據集進行更本質的刻畫。因此本文對深度學習演算法進行了研究,並設計了一種全新的深度卷積神經網路 4CS-DCNN,在 Image Net10 數據集上取得了 80.27%的識別率,顯著優於基於 SIFT 和 SURF 融合特徵的物體識別演算法。

(3)提出了一種基於 Gabor 特徵的 DCNN 物體識別演算法。由於 DCNN 不能提取出一些比較好的人工特徵,比如說圖像紋理特徵,故本文在 DCNN 的基礎上,通過加入Gabor 特徵來加強網路對紋理信息的學習,最終在 Image Net10 數據集上取得了 81.53%的識別率,比單獨的 DCNN 物體識別演算法提升了1.30%。

關鍵詞:物體識別;SIFT;SURF;卷積神經網路;Gabor

第一章緒論

1.1 研究背景及意義

在整個計算機視覺架構中,物體識別扮演著非常重要的角色,它是視頻跟蹤和場景描述的基礎。

雖然物體識別在近幾年已經有了快速的發展,但是物體識別仍然是一個具有挑戰性的課題,具體的原因如下:

(1)外界環境多樣性:對於同樣一個物體,由於在圖像拍攝過程中的不同光照、不同距離、不同拍攝角度以及其他物體不同程度的遮擋影響,所拍得的圖片具有多樣性,由此增加了計算機物體識別的難度。

(2)類別複雜性:類別複雜度來自於兩個方面。

一是類內之間的差別大,對於同一類物體,比如椅子,不同的椅子可能具有不同的形狀和大小,這樣會增大識別難度。

二是類間的差距小,比如狗與狼,雖然屬於兩個不同的種類,但是它們在外觀表現上卻非常相似。

(3)語義多樣性:對於同一張圖,即便用人眼來看,不同的人的語義理解也不盡相同,對於計算機也是如此。如圖 1-1 所示,可以理解成兩個面對面的老人,也可以理解成兩個年輕人在歡快地彈著吉他。

1.2 物體識別的國內外研究現狀

物體識別演算法主要有兩種:

一種方案是基於人工特徵的物體識別演算法,其主要過程如下:首先人工提取出原始圖像中的底層特徵,常見的底層特徵提取方法有興趣點檢測和密集的局部特徵提取。 提取完底層特徵之後,由於密集提取的底層特徵具有很大的冗餘性,為了消去這些冗餘,常常會利用特徵編碼技術,以便找出更加具有區分性的底層特徵。特徵編碼後,利用壓縮後的特徵向量集對原始圖像進行表達,生成特徵向量直方圖表達,得到特徵向量直方圖之後,再利用支持向量機等分類器對原始圖像進行分類,最終識別圖像。

另外一種方案是基於深度學習模型的物體識別演算法,它通過層次化的網路結構自主學習數據集底層到高層的特徵,並利用softmax 等分類器進行分類。

1.3 論文的研究內容和結構安排

首先研究了基於人工特徵的物體識別演算法,在傳統的「SIFT 局部特徵提取+向量量化直方圖+SVM 分類器」的物體識別演算法的基礎上,提出了一種基於 SIFT 和 SURF 融合特徵的物體識別演算法。

其次研究了基於深度學習的物體識別演算法,根據 Image Net10 數據集本身的特點,提出了一種全新的深度卷積神經網路 DCNN(Deep Convolutional Neural Network)。

最後結合了基於人工特徵的物體識別演算法和基於深度學習的物體識別演算法的各自優點,提出了一種基於 Gabor 特徵的 DCNN 物體識別演算法。

本文的具體內容安排如下:

第一章:緒論。

第二章:特徵提取及詞袋模型的相關理論。

第三章:人工神經網路及卷積神經網路的演算法理論。

第四章:基於 SIFT 和 SURF 融合特徵的物體識別演算法。

第五章:基於 Gabor 特徵的 DCNN 物體識別演算法。

第六章:結論。

第二章特徵提取及詞袋模型相關理論

基於人工特徵的物體識別演算法的理論基礎

2.1 SIFT 演算法

SIFT 演算法通過構建尺度空間來找到具有尺度不變性的特徵點,並且產生特徵點描述子。

2.1.1 構建尺度空間

尺寸空間的核心思想是對原圖作尺度變換,得到原始圖像在不同尺度下的圖像序列。

只有高斯核函數才能實現尺度變換。

為了更加快速準確地在尺寸空間中找到關鍵點的位置,引入了高斯差分尺度空間(Difference Of Guassians scale-space,DOG scale-space)

高斯差分金字塔的構建過程。塔的層數由圖片的尺寸所決定,第一層塔的第一張圖片為原始圖像,通過高斯卷積可以得到第一層塔的其他圖片,從直觀上來說,同一層塔,越往上,圖片越模糊。第一層塔構建完後,第二層塔的第一張圖片為第一層塔的第三張圖片降採樣的結果,尺寸只有原始圖像的四分之一,然後重複進行與第一層塔相似的高斯卷積操作,就可以得到圖 2-1 左側的高斯金字塔。再對高斯金字塔中相鄰圖片做差分運算,就能夠得到最終的高斯差分金字塔。

2.1.2 極值點的檢測與定位

對於每一個待檢測的採樣點,都要與當前圖片的周圍 8 個點以及上下相鄰圖片的各自 9 個點,總共 26 個像素點進行比較,假如當前點比其他 26 個點都小或者都大,就認為當前點是局部極值點。

因為雜訊的存在,所以 DOG 會產生很多偽極值點。為了增強圖像匹配的準確性並提升特徵的抗噪能力,應淘汰低對比度點(對雜訊敏感)和不穩定的邊緣點(由 DOG的邊緣效應產生)。

2002 年引入了擬合三維二次函數。利用泰勒公式對 DOG 進行展開(取前兩項),得到局部極值點的位置實驗表明,所有比 0.03 小的極值點都能夠去除。

邊緣效應點在平行邊緣方向的主曲率值較大,在垂直邊緣方向主曲率值較小。2.1.3 關鍵點的方向分配

2.1.4 關鍵點描述

為了使關鍵點能有更強的不變性(比如對於光照變化),需要將其周圍像素的梯度和方向信息也加入到關鍵點描述符中。以下是產生關鍵點描述符的步驟:

(1)以關鍵點為中心,取16 × 16大小的窗口,並將窗口劃分為 4 個子窗(每個子窗的大小為8 × 8);

(2)對每個子窗中的各個像素計算其梯度和方向,按照4 × 4大小的二級窗口進行梯度值和方向的累加,如圖 2-3。這樣一個8 × 8的子窗就可以產生4 × 8維的特徵向量;

(3)將 4 個8 × 8的子窗產生的特徵向量連接成一維向量,最終生成關鍵點的 128維描述子。

2.1.5 SIFT 特徵提取實例

金字塔的層數由原始圖的大小以及頂層圖的大小共同決定,

= log2 ? , ∈ [0, 2)

高斯金字塔以及高斯差分金字塔的結果

實驗結果表明 SIFT運算元能夠很好地檢測出圖像中的局部特徵。

2.2 詞袋模型

詞袋模型就是採用了聚類映射的方法解決了向量維度的問題。

詞袋模型(Bag Of Words,BOW)

2.2.1 文本信息檢索分類演算法

詞袋模型一開始被運用於文本信息檢索任務。

1. Jack wants to play basketball, John wants too.

2. Jack also wants to play football.

通過詞袋模型,可以構造如下的詞典:

Dictionary=;

上例中,該詞典共有 9 個單詞,則文檔 1、文檔 2 就可以用一個 9 維向量表示,向量中每個元素代表在詞典中對應單詞在該文檔中出現的頻率:

Vector1: [1, 2, 1, 1, 1, 1, 1, 0, 0];

Vector2: [1, 1, 1, 1, 0, 0, 0, 1, 1];

由此,一個文檔就可以轉換成單詞直方圖,便於後期的文本檢索。

2.2.2 詞袋模型的基本原理

在圖像領域中,應用詞袋模型對圖像進行表達,可理解為對每幅圖像用若干獨立無序的視覺單詞的集合來描述的過程,

過程:首先對圖像提取包含豐富局部信息的關鍵點描述,接著對這些局部特徵進行聚類,從而將相似的特徵分配到一起形成一個聚類中心。然後把每個聚類中心看成是一個視覺辭彙,則這些聚類中心的集合就形成了視覺詞典。最終,根據各個視覺辭彙在原始圖片中出現的頻率,就能夠生成視覺單詞直方圖,這樣有利於後續的分類。

基本實現過程:

第一步,圖像分割,採用N × N的固定網格對圖像均勻分割,生成N × N個圖像區域;

第二步,底層特徵描述,通過 SIFT 特徵演算法提取每個圖像區域的底層局部特徵,則每個區域都可用一個 128 維的特徵向量去描述;

第三步,構建視覺詞典,利用非監督聚類演算法(如 K-means)對提取到的局部特徵進行聚類,並把每個聚類中心看成是一個視覺辭彙,所有的聚類中心的就組成了一個視覺詞典;

第四步,用視覺辭彙表達圖像,將每個圖像區域的 SIFT 特徵與上一步構造的視覺詞典中的每個視覺辭彙所對應的特徵向量作比較,取最相似的視覺單詞來表達圖像區域,最終得到若干視覺單詞的組合來表達每幅圖像。

2.2.3 視覺詞典

一般先將高維特徵映射到低維空間中,即把底層局部特徵映射到視覺單詞空間,從而構建視覺詞典。

首先,視覺詞典中單詞的構成情況對詞典在分類任務中的判別力以及分類性能起決定性作用。

其次,視覺詞典的規模大小直接影響著準確率和計算的複雜程度。

2.2.4 空間金字塔詞袋模型的圖像表達

為了提高計算效率,所有的特徵直方圖都需要做加權歸一化處理。

2.3 SVM 分類器

SVM,它是一種基於風險最小化的分類模型。其思想主要有兩點:

(1)樣本集線性可分,它利用結構風險最小化思想,在特徵空間中構造最優分類面,使得樣本儘可能的被正確分開。

(2)樣本集線性不可分,它利用核函數,映射低維空間中線性不可分的樣本到高維空間,從而實現線性可分。

2.3.1 線性可分 SVM

SVM 分類器最終的目的是構建一條最優分類線,不僅能夠把兩類樣本完全正確的分開,而且能夠讓分類間隔最大化,從而最小化經驗風險和真實分類風險。從二維類比到高維空間,最優的分類線就對應成了最優的分類面。

2.3.2 線性不可分 SVM

2.3.3 非線性 SVM

2.3.4 核函數

核函數在支持向量中扮演著非常重要的角色,能夠有效解決維數災難和非線性可分的問題。

2.4 本章小結

第三章人工神經網路及卷積神經網路的演算法理論

受到人腦神經系統的啟發,人工神經網路也採用多層神經元相連的拓撲結構,並通過基於梯度下降法的反向傳播演算法的訓練來擬合輸入輸出間的關係。

3.1 人工神經網路簡介

人工神經網路的工作原理是:學習多組已知的輸入輸出數據,發現輸入輸出之間的規律,當輸入一個新數據時,根據發現的規律推算出該數據的輸出結果。

人工神經網路有如下的四個特徵:

(1)非線性。自然界中普遍存在各種複雜的非線性關係,人工神經網路通過非線性的激活函數實現非線性;

(2)非常定性。人工神經網路能夠很好的感知外界環境的變化,具備自學習、自適應能力;

(3)輸入輸出間的對應關係。人工神經網路通過學習訓練樣本,擬合出輸入和輸出之間的規律。

(4)魯棒性。人工神經網路最終學習到的數據是由所有的訓練樣本共同決定的,它發現的是所有樣本的普遍性規律,換句話說,一個雜訊樣本不會影響到神經網路最終的學習結果,神經網路最終學習到的規律存儲在相鄰神經元的權重和偏置中。

3.1.1 神經元模型

3.1.2 人工神經網路的類別

(1)前饋神經網路(Feedforward Neural Networks)。

(2)反饋神經網路(Feedback Neural Networks)。

(3)自組織神經網路(Self-Organizing Neural Networks,SOM)。

3.1.3 人工神經網路的學習模式

根據學習策略的不同,可將神經網路分為監督式學習網路、無監督學習網路以及強化學習網路三種:

3.2 反向傳播演算法

反向傳播(Back Propagation,BP)演算法的思想是:先對網路進行正向傳播得到網路的損失函數值,再用該損失函數值對每一層的權重求梯度,並根據這個梯度去更新網路的權重,重複上述步驟,讓網路最終能夠擬合輸入和輸出之間的關係。

3.3 卷積神經網路

卷積神經網路通過結合局部感受野,共享權重以及在空間上的降採樣等方法對原始圖像進行特徵提取。

3.3.1 卷積神經網路結構

3.3.2 卷積層的梯度計算

3.3.3 下採樣層的梯度計算

3.4 本章小結

第四章基於 SIFT 和 SURF 融合特徵的物體識別演算法

SIFT 演算法對尺度變化和旋轉變化都具有很好的不變性,但是在亮度變化及圖像模糊情況下的不變性不如 SURF 演算法

4.1 SURF 演算法

SURF 特徵是 Bay於 2006 年提出的具有尺度和旋轉不變性的特徵描述子。與 SIFT特徵不同,SURF 使用 Hessian 矩陣行列式近似值圖像來檢測特徵點,並且使用積分圖像來加速特徵提取。

4.1.1 特徵點檢測與定位

SIFT 特徵利用高斯差分圖像來構建金字塔, 與 SIFT 特徵不同,SURF 使用 Hessian矩陣行列式近似值圖像來構建金字塔,通過這種方法加快特徵點的檢測。

4.1.2 特徵點描述

SURF 特徵描述符主要通過兩個步驟來生成:

(1)根據特徵點周圍圓形區域內的 Haar小波特徵信息,確定 SURF 特徵的主方向。

(2)沿著 SURF 特徵的主方向構建一個正方形區域,並在此區域內生成特徵描述子。

4.2 SIFT 和 SURF 融合特徵表達

本文首先對原始圖像在多尺度空間下分別提取其SIFT特徵和SURF特徵,由於SIFT特徵和 SURF 特徵都是 128 維向量,所以本文將這兩個特徵相互拼接,形成 SIFT 和 SURF融合特徵來描述圖像。

本文通過實驗表明,基於 SIFT 和 SURF 融合特徵構成的分類器比僅使用 SIFT 特徵或 SURF 特徵構成的分類器的識別率高。

4.3 金字塔詞袋模型表達

本文採用基於空間金字塔匹配原理的詞袋模型對圖像進行特徵表達。

實驗結果顯示,基於空間金字塔匹配的詞袋錶達能夠更好地反映視覺單詞的空間關係,分類效果更好。

4.4 基於融合特徵和金字塔詞袋模型的物體分類器

本文採用的分類器是基於直方圖相交核的 SVM 分類器

分類器的構造分為兩步:

第一步:訓練分類器。

第二步:識別。

4.5 實驗結果和分析

4.5.1 相關實驗數據集介紹

Caltech101、Caltech256 以及 Image Net 三個數據集。

(正好是難度逐漸增加的三個數據集,可以考慮使用)

4.5.2 實驗結果與分析

與標準詞袋模型相比,使用金字塔詞袋模型更能夠充分考慮到圖像特徵的空間關係,分類性能較好,所以本文選擇金字塔詞袋模型。

由以上圖表可知,對於相同的訓練集和測試集,本文提出的融合特徵分類器的分類性能總體上比單獨的 SURF 特徵分類器或 SIFT 特徵分類器好。分類性能好壞程度比較結果(由好到壞)為:SIFT 和 SURF 融合特徵 > SIFT 特徵 > SURF 特徵。

4.6 本章小結

第五章基於 Gabor 特徵的 DCNN 物體識別演算法

傳統的人工特徵提取演算法,只能夠提取到一些通用的特徵點,無法對數據集進行更本質的刻畫。基於這個事實,本章研究了基於深度學習的物體識別演算法,並有以下兩個創新點:

(1)在 Alex Net 的基礎上,本文設計了一種全新的深度卷積神經網路 DCNN,通過調整學習率、激活函數類型、網路層數以及卷積核數目,構建了在 Image Net10 數據集上最優的 4CS-DCNN 結構,最終達到了 80.27%的識別率,比基於 SIFT 和 SURF 融合特徵的物體識別演算法提升了 24.74%。

(2)在 DCNN 的基礎上,本文提出了基於 Gabor 特徵的 DCNN 物體識別演算法,通過加入 Gabor 特徵來加強網路對紋理信息的學習。實驗表明,基於 Gabor 特徵的 DCNN物體識別演算法的識別率比基於 DCNN 的物體識別演算法提升了 1.30%。

5.1 Alex Net 網路

5.1.1 網路全局結構

Alex Net 包含八個權重層,前五個是卷積層,另外三個是全連接層。全連接層的神經元連接上一層的所有神經元,最後一個全連接層為 1000 維的 softmax輸出單元,實際上它輸出的是 1000 類的概率分布。

5.1.2 網路結構細節

5.1.2.1 非線性單元 Re LU

5.1.2.2 多 GPU 訓練

5.1.2.3 重疊下採樣

5.1.2.4 減少過擬合

(1)數據擴充

(2)dropout

5.2 基於 DCNN 的物體識別演算法

根據具體數據集的特點,重新設計了卷積神經網路的結構來對自然場景中的物體進行識別。

5.2.1 實驗環境搭建

Caffe相比於其他的深度學習框架(如 Theono 和 Torch)具有以下優勢:

(1)快速上手。模型的定義和優化都是以文本的形式給出,而不是以代碼的形式給出的。

(2)速度快。由於 Caffe 是和 cu DNN 結合使用的,所以運行速度很快,比如在 K40上測試 Alex Net 模型,每張圖片的處理時間只需要 1.17ms。

(3)模塊化。Caffe 提供各種常見層的模塊,比如卷積層、下採樣層和 Re LU 層,使用人員能夠很方便地定義自己的模型。

(4)開源性。Caffe 的所有代碼都在 github 上開源,當 Caffe 自帶的代碼不能夠滿足需求時,使用人員只需要修改 Caffe 的源代碼,重新編譯即可。

(5)社區性好。目前有很多關於 Caffe 的論壇,方便大家交流學習。

5.2.2 實驗數據集

從大型圖像數據集 Image Net 中隨機採集 10 類物體構成 Image Net10 數據集

5.2.3 DCNN 網路結構設計

本文利用 Alex Net 結構設計中用到的非線性單元 Re LU、重疊下採樣以及 dropout等設計技巧,針對 Image Net10 數據集,重新設計了深度卷積神經網路 DCNN。

5.2.4 DCNN 學習率的確定

5.2.5 DCNN 激活函數的確定

5.2.6 DCNN 層數的確定

為了確定 DCNN 最佳的層數,本文設計了三種不同層數的DCNN 結構:3CS-DCNN、4CS-DCNN、5CS-DCNN。

綜上,本文採用的 DCNN 結構為識別率最高的 4CS-DCNN。

5.2.7 DCNN 卷積核個數的確定

5.3 Gabor 特徵與 4CS-DCNN 相結合的物體識別演算法

本節在4CS-DCNN 的基礎上,加入人工提取的 Gabor 特徵來加強網路對紋理信息的學習,實驗結果表明,這樣的處理能夠有效地提升識別率。

5.3.1 Gabor 特徵提取

5.3.2 Gabor 特徵與 4CS-DCNN 相結合的模型

本文提出了 Gabor 特徵與 4CS-DCNN 相融合的模型。具體過程如下:先對訓練集中所有的圖像進行 0°、45°、90°三個方向的 Gabor 濾波,並且將這三個方向的 Gabor灰度特徵圖合併成一張三通道的 Gabor 特徵偽彩圖。

得到 Gabor 特徵偽彩圖之後,利用 Gabor 特徵偽彩圖作為網路輸入,對 4CS-DCNN進行預訓練,加強 DCNN 對 Gabor 特徵的學習。得到預訓練好的 4CS-DCNN 之後,再利用該模型對原圖進行訓練和識別。

用Gabor 特徵圖作為輸入預訓練網路,再用原圖 finetune 預訓練好的模型的最終分類結果會比沒有經過預訓練的 4CS-DCNN 的分類結果好。

原因:預訓練過的網路加強了對原始圖像中的紋理信息的學習,從而能夠提取到更加全面的特徵,最終的識別率也因此得到了提升。

5.4 基於 Gabor 特徵的 DCNN 模型的具體應用

5.5 本章小結

結論

本文主要成果如下:

(1)提出了一種基於 SIFT 和 SURF 融合特徵的物體識別演算法。

(2)設計了一種全新的深度卷積神經網路 DCNN。

(3)提出了一種基於 Gabor 特徵的 DCNN 物體識別演算法。

接下去,本文提出的物體識別演算法還能夠在以下方面進行優化:

(1)本文提出的基於 SIFT 和 SURF 融合特徵的物體識別演算法採用的是單級的 SVM分類器,未來可以把單級的 SVM 分類器換成級聯的分類器。

(2)本文設計的4CS-DCNN模型具有跨數據集的問題,4CS-DCNN對於 Image Net10數據集來說是最佳的網路設計,但是對於其他數據集來說可能並不是最佳的網路結構。如何設計出一個通用的網路,對於卷積神經網路和其他深度學習演算法來說,都是一個亟需解決的問題。

(3)本文設計的 4CS-DCNN 針對的是相對比較小的數據集,面對大數據集(如ILSVRC1000),網路訓練的計算複雜度會變得非常高,硬體無法承受,今後可以採用網路並行的方法來加速 4CS-DCNN 在大數據集上的收斂速度。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 paper大講堂 的精彩文章:

基於深度學習的圖像態勢感知應用研究

TAG:paper大講堂 |