對幾種常用的用於目標檢測算法的理解
1 CNN 概述
1.1神經元
神經元是人工神經網絡的基本處理單元,一般是多輸入單輸出的單元,其結構模型如圖1所示。
圖1.神經元模型
其中:Xi 表示輸入信號; n 個輸入信號同時輸入神經元 j 。 Wij表示輸入信號Xi與神經元 j 連接的權重值,bj表示神經元的內部狀態即偏置值,yj 為神經元的輸出.輸入與輸出之間的對應關系可用下式表示:
f(·)為激勵函數,其可以有很多種選擇,可以是線性 糾 正 函 數 ( Rectified Linear Unit , ReLU ),sigmoid函數、tanh ( x )函數、徑向基函數等.
1.2 CNN
CNN 的基本結構由輸入層、卷積層( conbolu-tinal layer )、池 化 層 ( pooling layer ,也 稱 為 取 樣層)、全連接層及輸出層構成.卷積層和池化層一般會取若干個,采用卷積層和池化層交替設置,即一個卷積層連接一個池化層,池化層后再連接一個卷積層,依此類推.由於卷積層中輸出特征面的每個神經元與其輸入進行局部連接,並通過對應的連接權值與局部輸入進行加權求和再加上偏置值,得到該神經元輸入值,該過程等同於卷積過程.
1.2.1 卷積層
卷積層由多個特征面( Feature Map )組成,每個特征面由多個神經元組成,它的每一個神經元通過卷積核與上一層特征面的局部區域相連 。 卷積核是一個權值矩陣(如對於二維圖像而言可為 3×3 或5×5 矩陣)。CNN 的卷積層通過卷積操作提取輸入的不同特征,第 1 層卷積層提取低級特征如邊緣、線條、角落,更高層的卷積層提取更高級的特征 。為了能夠更好地理解 CNN ,下面以一維 CNN為例,二維和三維 CNN 可依此進行拓展 .圖2所示為一維CNN 的卷積層和池化層結構示意圖,最頂層為池化層,中間層為卷積層,最底層為卷積層的輸入層.
圖2.卷積層與池化層結構示意圖
由圖3可看出卷積層的神經元被組織到各個特征面中,每個神經元通過一組權值被連接到上一層特征面的局部區域,即卷積層中的神經元與其輸入層中的特征面進行局部連接。然后將該局部加權和傳遞給一個非線性函數如 ReLU 函數即可獲得卷積層中每個神經元的輸出值.在同一個輸入特征面和同一個輸出特征面中, CNN 的權值共享,如圖3所示,權值共享發生在同一種顏色當中,不同顏色權值不共享.通過權值共享可以減小模型復雜度,使得網絡更易於訓練.
1.2.2 池化層
池化層緊跟在卷積層之后,同樣由多個特征面組成,它的每一個特征面唯一對應於其上一層的一個特征面,不會改變特征面的個數.如圖3 ,卷積層是池化層的輸入層,卷積層的一個特征面與池化層中的一個特征面唯一對應,且池化層的神經元也與其輸入層的局部接受域相連,不同神經元局部接受域不重疊.池化層旨在通過降低特征面的分辨率來獲得具有空間不變性的特征。池化層起到二次提取特征的作用,它的每個神經元對部接受域進行池化操作.常用的池化方法有最大池化即取局部接受域中值最大的點、均值池化即對局部接受域中的所有值求均值、隨機池化 。
1.2.3 全連接層
在CNN 結構中,經多個卷積層和池化層后,連接着1個或1個以上的全連接層.與 MLP類似,全連接層中的每個神經元與其前一層的所有神經元進行全連接.全連接層可以整合卷積層或者池化層中具有類別區分性的局部信息 。 為了提升 CNN 網絡性能,全連接層每個神經元的激勵函數一般采用ReLU 函數 。最后一層全連接層的輸出值被傳遞給一個輸出層,可以采用 softmax 邏輯回歸(softmaxregression )進 行 分 類,該 層 也 可 稱 為 softmax 層(softmax layer ) .
對於一個具體的分類任務,選擇一個合適的損失函數是十分重要的。通常, CNN 的全連接層與 MLP 結構一樣,CNN 的訓練算法也多采用 BP 算法 .當一個大的前饋神經網絡訓練一個小的數據集時,由於它的高容量,它在留存測試數據( held- outtest data ,也可稱為校驗集)上通常表現不佳。為了避免訓練過擬合,常在全連接層中采用正則化方法———丟失數據(dropout )技術,即使隱層神經元的輸出值以 0.5 的概率變為 0 ,通過該技術部分隱層節點失效,這些節點不參加 CNN 的前向傳播過程,也不會參加后向傳播過程 。對於每次輸入到網絡中的樣本,由於dropout技術的隨機性,它對應的網絡 結 構 不 相 同,但 是 所 有 的 這 些 結 構 共 享 權值。由於一個神經元不能依賴於其它特定神經元而存在,所以這種技術降低了神經元間相互適應的復雜性,使神經元學習能夠得到更魯棒的特征。目前,關於 CNN 的研究大都采用ReLU+dropout技術,並取得了很好的分類性能 。
2 R-CNN
RCNN(Region with CNN feature)是卷積神經網絡應用於目標檢測問題的一個里程碑的飛躍。R-CNN具有良好的特征提取和分類性能,對圖像選取若干提議區域,然后用卷積神經網絡對每個提議區域做前向計算,抽取特征,再用這些特征預測提議區域的類別和邊界框。該算法可以分為三步(1)候選區域選擇。(2)CNN特征提取。(3)分類與邊界回歸。
2.1 候選區域選擇
區域建議Region Proposal是一種傳統的區域提取方法,基於啟發式的區域提取方法,用的方法是ss,查看現有的小區域,合並兩個最有可能的區域,重復此步驟,直到圖像合並為一個區域,最后輸出候選區域。然后將根據建議提取的目標圖像標准化,作為CNN的標准輸入可以看作窗口通過滑動獲得潛在的目標圖像,在RCNN中一般Candidate選項為1k~2k個即可,即可理解為將圖片划分成1k~2k個網格,之后再對網格進行特征提取或卷積操作,這根據RCNN類算法下的分支來決定。然后基於就建議提取的目標圖像將其標准化為CNN的標准輸入。
2.2 CNN特征提取
標准卷積神經網絡根據輸入執行諸如卷積或池化的操作以獲得固定維度輸出。也就是說,在特征提取之后,特征映射被卷積和匯集以獲得輸出。
2.3分類與邊界回歸
實際上有兩個子步驟,一個是對前一步的輸出向量進行分類(分類器需要根據特征進行訓練); 第二種是通過邊界回歸框回歸(縮寫為bbox)獲得精確的區域信息。其目的是准確定位和合並完成分類的預期目標,並避免多重檢測。在分類器的選擇中有支持向量機SVM,Softmax等等;邊界回歸有bbox回歸,多任務損失函數邊框回歸等 。R-CNN算法的流程如圖3.
圖3.R-CNN算法的流程
R-CNN的缺點:效率低下,花費時間長。導致這些問題的最大原因有三個:(1)需要事先提取多個候選區域對應的圖像。這一行為會占用大量的磁盤空間;針對傳統的CNN來說,輸入的map需要時固定尺寸的,而歸一化過程中對圖片產生的形變會導致圖片大小改變,這對CNN的特征提取有致命的壞處;(2)每個region proposal都需要進入CNN網絡計算。(3)獨立的特征抽取會導致過多次的重復的相同的特征提取,這一舉動會導致大大的計算浪費。
3 Fast R-CNN
Fast R-CNN主要解決R-CNN的以下問題:1、訓練、測試時速度慢R-CNN的一張圖像內候選框之間存在大量重疊,提取特征操作冗余。而Fast R-CNN將整張圖像歸一化后直接送入深度網絡,緊接送入從這幅圖像上提取出的候選區域。這些候選區域的前幾層特征不需要再重復計算。2、訓練所需空間大R-CNN中獨立的分類器和回歸器需要大量特征作為訓練樣本。Fast R-CNN把類別判斷和位置精調統一用深度網絡實現,不再需要額外存儲。fast R-CNN算法的流程如圖4.
圖4.fast R-CNN算法的流程
3.1 Fast R-CNN特征提取
通過CNN(如AlexNet)中的conv、pooling、relu等操作都不需要固定大小尺寸的輸入,因此,在原始圖片上執行這些操作后,輸入圖片尺寸不同將會導致得到的feature map(特征圖)尺寸也不同。這樣就不能直接接到一個全連接層進行分類。在Fast R-CNN中,提出了一個叫做ROI Pooling的網絡層,這個網絡層可以把不同大小的輸入映射到一個固定尺度的特征向量。ROI Pooling層將每個候選區域均勻分成M×N塊,對每塊進行max pooling。將特征圖上大小不一的候選區域轉變為大小統一的數據,送入下一層。這樣雖然輸入的圖片尺寸不同,得到的feature map(特征圖)尺寸也不同,但是可以加入這個神奇的ROI Pooling層,對每個region都提取一個固定維度的特征表示(如圖5),就可再通過正常的softmax進行類型識別。
圖5.對每個區域提取固定維度的特征
3.2 Fast R-CNN分類回歸階段
將最后一個階段的特征輸入到兩個並行的全連層中(如圖6)。一個是對區域的分類Softmax(包括背景),另一個是對bounding box回歸的微調。在SVM和Softmax的對比實驗中說明,SVM的優勢並不明顯,故直接用Softmax將整個網絡整合訓練更好。總代價為兩者加權和,Fast-RCNN把兩個回歸的loss進行聯合訓練。
圖6.分類回歸階段
Fast R-CNN的缺點:region proposal的提取仍然采用selective search,整個檢測流程時間大多消耗在這上面。
4 Faster R-CNN
Faster R-CNN設計輔助生成樣本的RPN(Region Proposal Networks)網絡來代替Fast R-CNN中的選擇性搜索,將算法結構分為兩個部分,先由RPN網絡判斷候選框是否為目標,再經分類定位的多任務損失判斷目標類型,整個網絡流程產生建議窗口的CNN和目標檢測的CNN共享卷積神經網絡提取的特征信息,節約計算成本,且解決Fast R-CNN算法生成正負樣本候選框速度慢的問題,同時避免候選框提取過多導致算法准確率下降。Faster R-CNN網絡模型如圖7.
圖7.Faster R-CNN網絡模型
4.1 RPN網絡
Region Proposal Networks是Faster RCNN出新提出來的proposal生成網絡。其替代了之前RCNN和Fast RCNN中的selective search方法,將所有內容整合在一個網絡中,大大提高了檢測速度。模型結構主要為“生成anchors -> softmax判定foreground與background-> bbox reg回歸fg anchors -> Proposal Layer生成proposals”。模型如圖8.
圖8.RPN網絡
RPN網絡具體結構下次再講。