目標檢測評測指標
mAp(Mean Average Precision)
true prediction: & 而且,多個類似的預測,只取一個,其他認爲是false。即對一張圖的同一個物體,假設有5個預測的IoU > threshold, 且 ,我們則認爲有1個true + 4個false
Recall:
理解R-CNN
- 輸入:圖像
- 輸出:圖像中每個物體的邊界框(四個座標?兩個)和邊框內物體的類別
R-CNN是最早的結合CNN的目標檢測框架之一,當時在PASCAL, ILSVR上的評測效果達到最高。其主要思想就是判斷哪些區域可能存在物體,再判斷這些區域包含了那個物體。步驟如圖:
- 生成2k個可能包含物體的邊框
- warp圖片至統一大小,訓練CNN(fine-runing),然後用CNN提取fixed-size的特徵
- 用Linear SVM對所有特徵進行分類
- 迴歸模型生成邊框
一些需要明確的問題:
1. 如何生成邊框? Selective search《Efficient 》
2. 對2k個區域,我們截取圖片並resize至227x227大小(AlexNet的輸入圖片大小)。然後使用在大數據集(ImageNet 或VOC2007)下pre-trained的模型,進行fine-tuning,然後提取得到4096(6x6x256)維的特徵。
問:怎麼構建數據集用於fine-tune CNN呢?
X:每個propsal區域的圖像 fixed size(227x227)
Y:每個propsal區域,我們選和它overlap最大,且IoU>0.5的GT區域的標籤作爲label,這些被我們成爲positive example。其他proposal都被標記爲背景,是negtive examples。它們組成的數據集將被用於fine-tune CNNs
3. 存儲所有上一階段的特徵,訓練linear svm分類器。
問:怎麼構建數據集用於訓練SVM呢?
X:CNN features。
Y: 對每個類,只取GT的bbx作爲positive example,取IoU<0.3的爲negtive example,剩下的捨棄。
問:爲什麼不直接用fine-tuned CNN的最後一層softmax?
實驗證明再次使用SVM效果更好。原因可能是fine_tuning的時候樣本數量太少,我們通過‘jittered’增加30倍。fine-tuned的時候使用不是嚴格的GT,訓練SVM的時候是。
4. 如何最後確定邊框(class-specific bounding-box regression)
- 用 表示一個bbx,前兩個是p的座標,後兩個是bbx的寬和高。用 表示真實值的bbx信息。我們希望學習一個 的線性映射,或者說迴歸。
我們只選有效的P用於訓練bbx。有效的定義:
- 與GT的IoU>threshold = 0.6 - 如果對一個GT有多個overlap的pred,取IoU最大的一個 - 其他的不選