區域建議網絡(RPN)首(shou)先在faster rcnn中提出。
得到用(yong)來預測的(de)feature map
圖片在輸入網(wang)絡(luo)后,依次經過(guo)一(yi)系列(lie)卷積+ReLU得到的51×39×256維feature map,準備后續用來選取proposal。
生成Anchors
anchor是固定尺寸(cun)的(de)(de)(de)(de)bbox。具(ju)體(ti)做法是:把feature map每(mei)個(ge)(ge)(ge)(ge)點(dian)(dian)映(ying)射回(hui)原圖的(de)(de)(de)(de)感(gan)受野的(de)(de)(de)(de)中(zhong)心(xin)點(dian)(dian)當成一(yi)個(ge)(ge)(ge)(ge)基準點(dian)(dian),然(ran)后圍(wei)繞這(zhe)個(ge)(ge)(ge)(ge)基準點(dian)(dian)選(xuan)取k個(ge)(ge)(ge)(ge)不同的(de)(de)(de)(de)尺寸(cun)和比例的(de)(de)(de)(de)anchor。對于(yu)W×H大小的(de)(de)(de)(de)卷(juan)積(ji)feature map(通常為2400),總共(gong)有W×H×k個(ge)(ge)(ge)(ge)錨點(dian)(dian)。默認(ren)使用3個(ge)(ge)(ge)(ge)尺度和3個(ge)(ge)(ge)(ge)縱橫比,在(zai)每(mei)個(ge)(ge)(ge)(ge)滑動位置上(shang)產(chan)生(sheng)k=9個(ge)(ge)(ge)(ge)anchor。在(zai)feature map上(shang)的(de)(de)(de)(de)每(mei)個(ge)(ge)(ge)(ge)特(te)征點(dian)(dian)預測多(duo)個(ge)(ge)(ge)(ge)region proposals。例如對于(yu)像素點(dian)(dian)個(ge)(ge)(ge)(ge)數為 51×39 的(de)(de)(de)(de)一(yi)幅feature map上(shang)就會產(chan)生(sheng) 51×39×9 個(ge)(ge)(ge)(ge)候選(xuan)框。雖然(ran)anchors是基于(yu)卷(juan)積(ji)特(te)征圖定義的(de)(de)(de)(de),但最終(zhong)的(de)(de)(de)(de) anchors是相對于(yu)原始圖片的(de)(de)(de)(de)。

圖(tu)1 九個(ge)候選框(anchor)示意圖(tu)
針對該像素(su)點的每個(ge)候選(xuan)框需(xu)要判斷(duan)其(qi)是不是目標區(qu)域(yu),如(ru)果是目標區(qu)域(yu),其(qi)邊(bian)框位置(zhi)如(ru)何確(que)定(ding),具體(ti)過程如(ru)圖2所示(shi),在RPN頭部 ,通(tong)過以下(xia)結(jie)構生成 k個(ge)anchor。

圖 2 RPN 過程示(shi)意(yi)圖
如圖2所(suo)示,針對(dui)特(te)征圖中的(de)(de)某一(yi)(yi)個(ge)(ge)位(wei)置(zhi)的(de)(de)像(xiang)素點,對(dui)應會有(you)9個(ge)(ge)候(hou)選框(kuang)。因(yin)為輸入RPN中有(you)256個(ge)(ge)通(tong)道的(de)(de)特(te)征圖,所(suo)以要同時對(dui)每個(ge)(ge)通(tong)道該位(wei)置(zhi)的(de)(de)像(xiang)素點都使用不同的(de)(de)3×3的(de)(de)滑(hua)動窗口(kou)進行卷(juan)積(ji),最后將所(suo)有(you)通(tong)道得到的(de)(de)該位(wei)置(zhi)像(xiang)素點的(de)(de)卷(juan)積(ji)值(zhi)都加起來,得到一(yi)(yi)個(ge)(ge)新的(de)(de)特(te)征值(zhi),最終使用256組這樣的(de)(de)3×3的(de)(de)卷(juan)積(ji)核,就(jiu)會得到一(yi)(yi)個(ge)(ge)新的(de)(de)256維的(de)(de)向(xiang)量,這個(ge)(ge)256維的(de)(de)向(xiang)量就(jiu)是用來預測(ce)該位(wei)置(zhi)的(de)(de)像(xiang)素點的(de)(de),該像(xiang)素點對(dui)應的(de)(de)9個(ge)(ge)候(hou)選框(kuang)共享這256維向(xiang)量。
256維向量后面對應(ying)兩條(tiao)分(fen)支(zhi),一(yi)條(tiao)目(mu)(mu)標和背景(jing)的(de)(de)二分(fen)類(classification),通過1×1×256×18的(de)(de)卷積核(he)得到 2k 個(ge)(ge)分(fen)數,k等于候(hou)(hou)(hou)選(xuan)(xuan)框的(de)(de)個(ge)(ge)數9,表(biao)示(shi)這9個(ge)(ge)anchor是(shi)(shi)背景(jing)的(de)(de)score和anchor是(shi)(shi)目(mu)(mu)標的(de)(de)score。如果(guo)候(hou)(hou)(hou)選(xuan)(xuan)框是(shi)(shi)目(mu)(mu)標區(qu)(qu)域,就去判斷該(gai)目(mu)(mu)標區(qu)(qu)域的(de)(de)候(hou)(hou)(hou)選(xuan)(xuan)框位(wei)置在哪(na),這個(ge)(ge)時候(hou)(hou)(hou)另一(yi)條(tiao)分(fen)支(zhi)就過1×1×256×36的(de)(de)卷積核(he)得到4k個(ge)(ge)坐標,每個(ge)(ge)框包含4個(ge)(ge)坐標(x,y,w,h),就是(shi)(shi)9個(ge)(ge)候(hou)(hou)(hou)選(xuan)(xuan)區(qu)(qu)域對應(ying)的(de)(de)框應(ying)該(gai)偏移的(de)(de)具體位(wei)置Δxcenter,Δycenter,Δwidth,Δheight。如果(guo)候(hou)(hou)(hou)選(xuan)(xuan)框不是(shi)(shi)目(mu)(mu)標區(qu)(qu)域,就直接(jie)將(jiang)該(gai)候(hou)(hou)(hou)選(xuan)(xuan)框去除掉,不再(zai)進(jin)行后續位(wei)置信息的(de)(de)判斷操作(zuo)。

分類分支(zhi)
考察訓練集中的每張圖像(含有(you)人(ren)工標定(ding)的gt box) 的所有(you)anchor劃(hua)分正負樣(yang)本:
(1)對每(mei)個(ge)標定的gt box區域(yu),與其重疊比例最大的anchor記為正(zheng)樣(yang)本,保證每(mei)個(ge)gt至少對應一個(ge)正(zheng)樣(yang)本anchor
(2)對(dui)(1)中剩(sheng)余的(de)(de)anchor,如果其與某(mou)個(ge)(ge)標定區域重疊比例大于0.7,記為正(zheng)樣本(ben)(每個(ge)(ge)gt可能(neng)會對(dui)應多個(ge)(ge)正(zheng)樣本(ben)anchor。但每個(ge)(ge)正(zheng)樣本(ben)anchor只可能(neng)對(dui)應一(yi)個(ge)(ge)gt;如果其與任意一(yi)個(ge)(ge)標定的(de)(de)重疊比例都小于0.3,記為負樣本(ben)。
回歸分支
x,y,w,h分別(bie)表示box的中(zhong)心坐標(biao)和(he)寬高,x,?,x分別表示predicted box, anchor box, and ground truth box (y,w,h同理)?表示predict box相對于anchor box的偏(pian)移(yi),?表示ground true box相對于(yu)anchor box的(de)(de)偏(pian)移,學習目標(biao)就是讓前者(zhe)接近后者(zhe)的(de)(de)值。
在 RPN中(zhong)部,分(fen)(fen)(fen)類分(fen)(fen)(fen)支(zhi)(zhi)(cls)和(he)邊(bian)框回歸(gui)分(fen)(fen)(fen)支(zhi)(zhi)(bbox reg)分(fen)(fen)(fen)別對這堆anchor進(jin)行各種計算。在RPN末端(duan),通(tong)過對兩個分(fen)(fen)(fen)支(zhi)(zhi)的結(jie)果進(jin)行匯總,來實現對anchor的初步篩除(chu)(先剔除(chu)越界(jie)的anchor,再根據cls結(jie)果通(tong)過非極大值抑制(NMS)算法去重)和(he)初步偏移(根據bbox reg結(jie)果),此時(shi)輸出的都bbox改(gai)頭換(huan)面(mian)叫 Proposal 了(le)
偏移公式如下(xia)。An就是anchor的(de)(de)框(kuang),pro就是最(zui)終得出回歸后的(de)(de)邊界框(kuang),到(dao)這里我(wo)們(men)的(de)(de)proposals就選好了(le):
非極大值抑制(Non-maximum suppression)
由于(yu)anchor一(yi)般是有重疊(die)的overlap,因此,相同object的proposals也存(cun)在重疊(die)。為了解決(jue)重疊(die)proposal問題,采(cai)用NMS算法處(chu)理:兩個proposal間IoU大(da)于(yu)預(yu)設閾值,則丟棄(qi)score較低的proposal。
IoU閾值(zhi)(zhi)的(de)預設(she)需要(yao)謹慎處理,如果IoU值(zhi)(zhi)太小,可能丟(diu)失(shi)objects的(de)一些 proposals;如果IoU值(zhi)(zhi)過大,可能會(hui)導致objects出現(xian)很多proposals。IoU典型值(zhi)(zhi)為0.6。
Proposal選擇(ze)
NMS處理后(hou),根據(ju)sore對top N個(ge)proposals排序。在(zai)Faster R-CNN論文中 N=2000,其值也可以小一點,如50,仍然能得(de)到(dao)好的結(jie)果。
