實際上,更實用的方法是候選區(qū)域(Region Proposals )方法來獲取感興趣的區(qū)域(ROI)组题。選擇性搜索(Selective Search )就是一種典型的候選區(qū)域方法
物體檢測之選擇性搜索(Selective Search)
選擇性搜索算法用于為物體檢測算法提供候選區(qū)域葫男,它速度快,召回率高崔列。
選擇性搜索算法需要先使用《Efficient Graph-Based Image Segmentation》論文里的方法產(chǎn)生初始的分割區(qū)域梢褐,然后使用相似度計算方法合并一些小的區(qū)域。
下列兩張圖分別是原圖和原始分割圖:
我們不能使用原始分割圖的區(qū)域作為候選區(qū)域赵讯,原因如下:
1.大部分物體在原始分割圖里都被分成多個區(qū)域.
2.原始分割圖無法體現(xiàn)物體之間的遮擋和包含盈咳。
如果我們試圖通過進一步合并相鄰的區(qū)域來解決第一個問題,我們最終會得到一個包含兩個對象的分段區(qū)域边翼。
我們不要需要完美的的分割區(qū)域鱼响,我們只想要和實際物體高度重合的區(qū)域就行了。
選擇性搜索算法使用《Efficient Graph-Based Image Segmentation》論文里的方法產(chǎn)生初始的分割區(qū)域作為輸入组底,通過下面的步驟進行合并:
1.首先將所有分隔區(qū)域的外框加到候選區(qū)域列表中丈积。
2.基于相似度合并一些區(qū)域筐骇。
3.將合并的分隔區(qū)域作為一個整體,跳到步驟1。
通過不停的迭代江滨,候選區(qū)域列表中的區(qū)域越來越大铛纬。可以說唬滑,我們通過自底向下的方法創(chuàng)建了越來越大的候選區(qū)域告唆。表示效果如下:
相似度
選擇性搜索算法如何計算兩個區(qū)域的像素度的呢?
主要是通過以下四個方面:顏色晶密、紋理擒悬、大小和形狀交疊
最終的相似度是這四個值取不同的權重相加。
利用候選區(qū)域與CNN結合做目標定位
借鑒了滑動窗口思想稻艰,R-CNN采用對區(qū)域識別的文案
具體是:
1.給定一張輸入圖片援所,從圖片中提取2000個類別獨立的候選區(qū)域扣典。
2.對于每個區(qū)域利用CNN抽取一個固定長度的特征向量。
3.在對每一個區(qū)域利用SVM鏡像目標分類。
特征抽取
R-CNN抽取了一個4096維的特征向量尸闸,采用的是Alexnet笔呀。
需要注意的是Alextnet的輸入圖像大小是227*227
而通過Selective Search 產(chǎn)生的候選區(qū)域大小不一卖子,為了與Alexnet兼容搀矫,R-CNN采用了非常暴力的手段,那就是無視候選區(qū)域的大小和形狀摇展,統(tǒng)一變換成227*227的尺寸吻氧。
有一個細節(jié),在對區(qū)域進行變換的時候咏连,首先對這些區(qū)域進行膨脹處理盯孙,再其box周圍附加了p個像素,也就是人為添加了邊框祟滴,p=16振惰。
測試階段的目標檢測
在測試階段,R-CNN 在每張圖片上抽取近 2000 個候選區(qū)域垄懂。
然后將每個候選區(qū)域進行尺寸的修整變換骑晶,送進神經(jīng)網(wǎng)絡以讀取特征,然后用 SVM 進行類別的識別草慧,并產(chǎn)生分數(shù)桶蛔。
候選區(qū)域有 2000 個,所以很多會進行重疊漫谷。
針對每個類仔雷,通過計算 IoU 指標,采取非極大性抑制,以最高分的區(qū)域為基礎碟婆,剔除掉那些重疊位置的區(qū)域电抚。
訓練
R-CNN采取遷移學習
提取在 ILSVRC 2012 的模型和權重,然后在 VOC 上進行 fine-tune脑融。
需要注意的是,這里ImageNet上訓練的是模型識別物體類型的能力缩宜,而不是預測bbox位置的能力肘迎。
ImageNet 的訓練當中需要預測 1000 個類別,而 R-CNN 在 VOC 上進行遷移學習時锻煌,神經(jīng)網(wǎng)絡只需要識別 21 個類別妓布。這是 VOC 規(guī)定的 20 個類別加上背景這個類別。
R-CNN將候選區(qū)域與GroundTrue中的box標簽相比較宋梧,如果IOU >0.5,說明兩個對象重疊的位置比較多匣沼,于是就可以認為這個候選區(qū)域是positive,否則就是Negetive。
訓練策略是:采用 SGD 訓練捂龄,初始學習率為 0.001释涛,mini-batch 大小為 128。
對象識別相關
通常對待一個二值化的分類器倦沧,它的結果只要 2 中唇撬,Positive 和 Negetive。
比如展融,有一個汽車分類器窖认,它可以輕松地確認,一個方框里面包含了一輛汽車告希,那么它肯定就是 Positive扑浸。
也可以很清楚地確認,如果一個背景方框中沒有包含汽車燕偶,那么它就是 Negetive喝噪。
但是,比較難確認的是指么,如果一個方框仙逻,只有一部分與汽車重疊,那么如何標注這個方框呢涧尿?
R-CNN 采用的是 IoU 的閾值系奉,這個 threshold 取 0.3,如果一個區(qū)域與 Ground tureth 的 IoU 值低于設定的閾值姑廉,那么可以講它看成是 Negetive.
IoU 的 threshold 它不是作者胡亂取值的缺亮,而是來自 {0,0.1,0.2,0.3,0.4,0.5} 的數(shù)值組合的。
而且,這個數(shù)值至關重要萌踱,如果 threshold 取值為 0.5,mAP 指標直接下降 5 個點葵礼,如果取值為 0,mAP 下降 4 個點并鸵。
一旦特征抽取成功鸳粉,R-CNN 會用 SVM 去識別每個區(qū)域的類別,但這需要優(yōu)化园担。
因為訓練的數(shù)據(jù)太大届谈,不可能一下子填充到電腦內(nèi)存當中,R-CNN 作者采取了一種叫做 Hard negetive mining 的手段弯汰。
bbox回歸
bbox 的值其實就是物體方框的位置艰山,預測它就是回歸為題,而不是分類問題咏闪。
受DPM的啟發(fā)曙搬,作者訓練了一個線性的回歸模型,這個模型能夠針對候選區(qū)域的pool5 數(shù)據(jù)預測一個新的box 位置鸽嫂。
回顧
1.R-CNN采用AlexNet
2.R-CNN采用Selective Search 技術生成Region Proposal
3.R-CNN 在 ImageNet 上先進行預訓練纵装,然后利用成熟的權重參數(shù)在 PASCAL VOC 數(shù)據(jù)集上進行 fine-tune
4.R-CNN 用 CNN 抽取特征,然后用一系列的的 SVM 做類別預測据某。
5.R-CNN 的 bbox 位置回歸基于 DPM 的靈感搂擦,自己訓練了一個線性回歸模型。