R-CNN詳解

Test的過(guò)程:

1. 對(duì)給定的一張圖片,通過(guò)Selective Search得到2000個(gè)Proposals

2. 每一個(gè)Proposal都經(jīng)過(guò)已經(jīng)訓(xùn)練好的CNN網(wǎng)絡(luò), 得到fc7層的features,4096-dimension,即2000*4096

3. 用SVM分類器(4096*K)得到相應(yīng)的score,即2000*K

4. 用CNN中pool5的特征,利用已經(jīng)訓(xùn)練好的權(quán)值,得到bounding box的修正值,原先的proposal經(jīng)過(guò)修正得到新的proposal的位置

5. 對(duì)每一類別的scores,進(jìn)行non-maximum suppression。具體來(lái)講,對(duì)于2000*K中的每一列,進(jìn)行nms。對(duì)于特定的這一列(這一類),選取值最大的對(duì)應(yīng)的proposal,計(jì)算其他proposal跟此proposal的IOU,剔除那些重合很多的proposal。再?gòu)氖O碌膒roposal里選取值最大的,然后再進(jìn)行剔除,如此反復(fù)進(jìn)行,直到?jīng)]有剩下的proposal。K列(K類)都進(jìn)行這樣的操作,即可得到最終的bounding box和每一個(gè)bounding box對(duì)應(yīng)的類別及其score值。

Training的過(guò)程:

1. 對(duì)訓(xùn)練集中所有的圖片,用selective search提取出各圖片對(duì)應(yīng)的2000個(gè)proposal,并保存。(圖片路徑+bounding box信息)

2. 對(duì)每張圖片,根據(jù)圖片中bounding box的ground truth信息,給該圖片的2000個(gè)proposal賦類標(biāo)簽,并保存。(這2000個(gè)proposal,如果跟ground truth中的proposal的IoU值超過(guò)了閾值,則把ground truth中的proposal對(duì)應(yīng)的類標(biāo)簽賦給原始產(chǎn)生的這個(gè)proposal,其余的proposal都標(biāo)為background)

3. 根據(jù)2中得到的文件,每次隨機(jī)取batch,32 positive windows and 96 background windows,來(lái)訓(xùn)練一個(gè)在ImageNet上訓(xùn)好的模型,每一個(gè)proposal輸入CNN,對(duì)應(yīng)的類標(biāo)簽,來(lái)訓(xùn)練這201類的classification網(wǎng)絡(luò),訓(xùn)練好后,對(duì)所有的proposal,forward一遍來(lái)得到fc7 feature,保存最終的fc7特征及對(duì)應(yīng)的proposal信息到文件中

4. 訓(xùn)練SVM分類器。對(duì)某一個(gè)特定的類,把跟屬于這個(gè)類的ground truth的bounding box的IoU大于閾值的原始提取的proposal標(biāo)為正樣本,其余標(biāo)為負(fù)樣本,得到新的一個(gè)文件(加上之前得到的fc7特征信息)。用這個(gè)文件去訓(xùn)練這一個(gè)類的SVM。同樣的方法,循環(huán)訓(xùn)好其他類別的分類器。

5. 用CNN得到的pool5的特征和bounding box的ground truth來(lái)訓(xùn)練bounding box regression,只對(duì)那些跟ground truth的IoU超過(guò)某個(gè)閾值的proposal進(jìn)行訓(xùn)練,其余的不參與。

補(bǔ)充:

1. 在把proposal丟進(jìn)CNN之前,需要把proposal處理成固定的一個(gè)大小,paper里提到“Prior to warping, dilate the tight bounding box, make p pixels around the original”,這個(gè)是什么意思?

比例=proposal的w/227-2p,把原圖按此比例進(jìn)行變換,以proposal的中心為中心,截取227大小的圖作為輸入,進(jìn)入CNN

2. Detection中,mAP是怎么計(jì)算的?

對(duì)于每一個(gè)類,設(shè)置一個(gè)閾值,score大于此值的為正,否則為負(fù),與ground truth相比,得到屬于次此類別且score大于閾值的proposal,屬于此類別但score不大于閾值的proposal,得到不屬于此類別但score大于閾值的proposal,不屬于此類別但score不大于閾值的proposal。由此計(jì)算,precision, recall。通過(guò)改變閾值,得到不同組對(duì)應(yīng)的recall和precision。畫(huà)曲線即可得到AP。

得到每一個(gè)類別對(duì)應(yīng)的AP后,取平均值得到mAP。

recall = 屬于次此類別且score大于閾值的proposal/(屬于此類別且score大于閾值的proposal+屬于此類別但score不大于閾值的proposal

precision = 屬于次此類別且score大于閾值的proposal/(屬于此類別且score大于閾值的proposal+不屬于此類別但score大于閾值的proposal

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容