Precise Detection in Densely Packed Scenes論文詳解

《Precise Detection in Densely Packed Scenes》是發(fā)表在2019cvpr上的文章并且有源碼。

代碼地址:https://github.com/eg4000/SKU110K_CVPR19

這篇文章的目的是對(duì)于一些人為的密集場(chǎng)景的物體進(jìn)行檢測(cè)定位阔涉。如下圖所示缆娃,在一些商店的貨架上待售商品擺放密集。使用一些SOTA的方法如RetinaNet瑰排,會(huì)出現(xiàn)檢測(cè)框重疊的問題贯要,如圖中a所示。使用文章方法可以減少這種問題椭住,如圖中b所示崇渗。其中c和d是對(duì)a和b的局部區(qū)域放大的結(jié)果。


1.png

文章方法分為四步京郑,圖片輸入宅广,網(wǎng)絡(luò)提取特征,EM-Merger推斷些举,NMS跟狱,不完全對(duì)應(yīng)但基本可以用下圖表示。


2.png

一金拒、網(wǎng)絡(luò)結(jié)構(gòu)

如上圖中的b所示兽肤,文章采用resnet50作為主干網(wǎng)絡(luò),網(wǎng)絡(luò)采用FPN框架绪抛,網(wǎng)絡(luò)有三個(gè)輸出分支都采用了RPN結(jié)果资铡,其中有兩個(gè)和RetinaNet一樣。

一個(gè)是detection head幢码,是用來回歸定位物體的笤休,輸出為(x,y,h,w)坐標(biāo),用來表示網(wǎng)絡(luò)檢測(cè)的物體坐標(biāo)症副。
第二個(gè)是classification店雅,是用來說明是什么物體的政基,輸出的值取值在0-1之間。
第三個(gè)是新提出來的闹啦,取名為soft-iou layer沮明。

1.1 Soft-IoU Layer

先說明一下為什么要提出這個(gè)網(wǎng)絡(luò)層。在一般的物體檢測(cè)算法中窍奋,檢測(cè)出來的框要經(jīng)過一個(gè)叫NMS的后處理荐健,這個(gè)后處理是根據(jù)預(yù)測(cè)框的類別、分?jǐn)?shù)和框的IOU來計(jì)算的琳袄。預(yù)測(cè)框的分?jǐn)?shù)一般是對(duì)于框內(nèi)物體進(jìn)行預(yù)測(cè)的江场,它并不能代表預(yù)測(cè)框和真實(shí)框之間的iou,所以可能存在預(yù)測(cè)框分?jǐn)?shù)很高窖逗,但是該預(yù)測(cè)框并沒有很好的定位出物體的情況址否。這里提出Soft-IoU就是為了估計(jì)框的定位是否準(zhǔn)確,該層的輸出就是預(yù)測(cè)框與真實(shí)框的IoU值碎紊。

對(duì)于IoU的計(jì)算佑附,假設(shè)預(yù)測(cè)出的是N個(gè)檢測(cè)框,每個(gè)預(yù)測(cè)框b_i,i\in \{1...N\}的IoU計(jì)算如下
IoU_i=\frac{Intersection(\hat矮慕_j,b_i)}{Union(\hat帮匾_j,b_i)}
其中\hat_j表示離預(yù)測(cè)框b_i最近的標(biāo)定框(文章寫的是\hat痴鳄_i,我覺得不合理瘟斜,這里如果有問題,歡迎指出)痪寻。

1.2 loss函數(shù)

先說一下新提出的Soft-IoU Layer的loss函數(shù)螺句,采用的是交叉熵,如下所示:
L_{sIoU}=-\frac{1}{n}\sum^{n}_{i=1}[IoU_ilog(c^{iou}_i)+(1-IoU_i)log(1-c^{iou}_i)]
其中n表示每個(gè)batch的標(biāo)定框數(shù)橡类,IoU_i表示預(yù)測(cè)框與真實(shí)框的iou蛇尚,c^{iou}_i表示預(yù)測(cè)的iou分?jǐn)?shù),說白了這一層就是一個(gè)簡(jiǎn)單的二分類顾画。

對(duì)于整個(gè)網(wǎng)絡(luò)的loss取劫,如下式所示:
L=L_{Classification}+L_{Regression}+L_{sIoU}
L_{sIoU}已經(jīng)介紹過了,其他兩個(gè)損失函數(shù)同F(xiàn)asterRCNN研侣。

二谱邪、EM-Merger單元(推斷過程使用)

對(duì)于網(wǎng)絡(luò)的輸出,有N個(gè)預(yù)測(cè)框的位置庶诡、置信度惦银、預(yù)測(cè)的iou分?jǐn)?shù)c^{iou}_i。為了處理密集場(chǎng)景,文章提出EM-Merger單元來過濾重疊的預(yù)測(cè)框扯俱。

2.1 Detections as Gaussians

名字取得有點(diǎn)迷书蚪,這部分說白了就是將檢測(cè)出的框看出是高斯分布,一個(gè)框?qū)?yīng)一個(gè)高斯分布迅栅,對(duì)于N個(gè)預(yù)測(cè)框使用下式表示:
F=\{f_i\}^N_{i=1}=\{\mathcal{N}(p;\mu_i,\Sigma_i) \}^N_{i=1}
p\in R^2殊校,是個(gè)二維的。\mu_{i}=(x_i,y_i)读存,說明高斯分布的均值是使用預(yù)測(cè)框的中心點(diǎn)來表示的箩艺。對(duì)角協(xié)方差\Sigma_i=[(h_i/4)^2,0;0,(w_i/4)^2],(h_i,w_i)表示預(yù)測(cè)框的長(zhǎng)和框。(這里代碼中有些值不同宪萄,不影響理解)

對(duì)于所有預(yù)測(cè)的框的分布就可以使用混合高斯(MoG)表示,如下式所示
f(p)=\sum^N_{i=1}\alpha_if_i(p)
其中f_i\in F榨惰,\alpha_i=\frac{c^{iou}_{i}}{\sum^N_{k=1}c^{iou}_k}拜英。

2.2 Selecting predictions: formal definition

這步是在2.1的基礎(chǔ)上,過濾一部分的預(yù)測(cè)框琅催,假設(shè)這步輸入的預(yù)測(cè)框有N個(gè)居凶,輸出的有K個(gè),其中K<<N藤抡。也就是從N個(gè)高斯分布中找到K個(gè)高斯分布侠碧,這K個(gè)高斯分布表示方法同2.1,如下所示缠黍。
G=\{g_j\}^K_{j=1}=\{\mathcal{N}(p;\mu'_j,\Sigma'_j) \}^K_{j=1}

并且希望這K個(gè)高斯分布的組合能夠和使用上面N個(gè)高斯分布組合出的分布很相似弄兜,K個(gè)高斯分布的組合如下所示
g(p)=\sum^K_{j=1}\beta_jg_j(p)

策略f和g的相似度,我們使用KL-divergence瓷式,如下式所示
d(f,g)=\sum^N_{i=1}\alpha_imin^K_{j=1}KL(f_i||g_j)

2.3 An EM-approach for selecting detections

這步是為了解決如何從N個(gè)高斯分布中找到K個(gè)近似的高斯分布表示替饿,從標(biāo)題可以看出,這步采用的是基于EM的算法贸典。

EM算法分為兩步视卢,一個(gè)叫E-step,另一個(gè)叫M-step廊驼。下面來詳細(xì)講解一下据过。

在這里E-step的任務(wù)是根據(jù)f_i和g的分布對(duì)f_i進(jìn)行聚類,表達(dá)式如下所示
\pi(i)=argmin^K_iKL(f_i||g_j)
上式想表達(dá)的就是將f_i通過KL-divergence將其分到K個(gè)類中妒挎。

M-step是通過新的聚類樣本更新聚類參數(shù)绳锅,更新方式如下
\beta_j=\sum_{i\in \pi^{-1}(j)}\alpha_i
\mu'_j=\frac{1}{\beta_j}\sum_{i\in \pi^{-1}(j)}\alpha_i\mu_i
\Sigma'_j=\frac{1}{\beta_j}\sum_{i\in \pi^{-1}(j)}\alpha_i(\Sigma_i+(\mu_i-\mu'_j)(\mu_i-\mu'_j)^T)

文章說明,當(dāng)?shù)恼`差小于1e-10或者達(dá)到一定的迭代次數(shù)時(shí)饥漫,認(rèn)為迭代收斂榨呆。

2.4 Gaussians as detections

通過2.3中的操作,一旦EM算法收斂,我們可以得到K個(gè)估計(jì)出的高斯分布积蜻。其中K的取值為K=size(I)/(\mu_w\mu_h)闯割,符號(hào)文章沒有解釋「筒穑看完代碼發(fā)現(xiàn)解釋起來相對(duì)不是很方便宙拉。

先講一下N個(gè)高斯分布怎么來的吧,對(duì)于一個(gè)檢測(cè)圖像丙笋,預(yù)測(cè)出了x個(gè)框谢澈,將所有框縮小一定的比例(比如代碼中的0.3)然后將x個(gè)框用高斯分布表示,這樣就能在圖像上畫出一個(gè)個(gè)的二維高斯分布圖御板,將對(duì)畫完的高斯分布圖求輪廓锥忿,每個(gè)輪廓包含的預(yù)測(cè)框就定為N個(gè)。上面K的求解,就是在這個(gè)輪廓中N個(gè)預(yù)測(cè)框的K個(gè)估計(jì)框分布,I為當(dāng)前輪廓的區(qū)域面積济赎,(\mu_w\mu_h)指的是N個(gè)預(yù)測(cè)框縮小0.3倍后面積取中位數(shù)的值酬蹋。

得到的K個(gè)高斯分布(也可以理解為K)并不是最終的檢測(cè)結(jié)果,還要經(jīng)過一些過濾規(guī)則,比如預(yù)測(cè)框中心點(diǎn)在K個(gè)高斯分布內(nèi)的內(nèi)的框,分?jǐn)?shù)(這里的分?jǐn)?shù)值得是)達(dá)到一定值,NMS等等,這些具體細(xì)節(jié)文章沒有寫出來数尿,可以看代碼。

經(jīng)過一系列操作后等到的最終結(jié)果就是最終的預(yù)測(cè)框了惶楼,這里一系列操作包括EM右蹦,以及EM后的過濾操作,這些都可以理解為過濾很多不必要的冗余檢測(cè)框歼捐。

這里原理基本講完了嫩实,后處理還是蠻復(fù)雜的,具體可以看看代碼https://github.com/liuheng92/SKU110K_CVPR19
我原代碼沒有改動(dòng)窥岩,加了一些注釋

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末甲献,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子颂翼,更是在濱河造成了極大的恐慌晃洒,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件朦乏,死亡現(xiàn)場(chǎng)離奇詭異球及,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)呻疹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門吃引,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事镊尺‰澹” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵庐氮,是天一觀的道長(zhǎng)语稠。 經(jīng)常有香客問我,道長(zhǎng)弄砍,這世上最難降的妖魔是什么仙畦? 我笑而不...
    開封第一講書人閱讀 58,562評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮音婶,結(jié)果婚禮上慨畸,老公的妹妹穿的比我還像新娘。我一直安慰自己衣式,他們只是感情好先口,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著瞳收,像睡著了一般。 火紅的嫁衣襯著肌膚如雪厢汹。 梳的紋絲不亂的頭發(fā)上螟深,一...
    開封第一講書人閱讀 51,482評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音烫葬,去河邊找鬼界弧。 笑死,一個(gè)胖子當(dāng)著我的面吹牛搭综,可吹牛的內(nèi)容都是我干的垢箕。 我是一名探鬼主播,決...
    沈念sama閱讀 40,271評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼兑巾,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼条获!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蒋歌,我...
    開封第一講書人閱讀 39,166評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤帅掘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后堂油,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體修档,經(jīng)...
    沈念sama閱讀 45,608評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評(píng)論 3 336
  • 正文 我和宋清朗相戀三年府框,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吱窝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,926評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖院峡,靈堂內(nèi)的尸體忽然破棺而出兴使,到底是詐尸還是另有隱情,我是刑警寧澤撕予,帶...
    沈念sama閱讀 35,644評(píng)論 5 346
  • 正文 年R本政府宣布鲫惶,位于F島的核電站,受9級(jí)特大地震影響实抡,放射性物質(zhì)發(fā)生泄漏欠母。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評(píng)論 3 329
  • 文/蒙蒙 一吆寨、第九天 我趴在偏房一處隱蔽的房頂上張望赏淌。 院中可真熱鬧,春花似錦啄清、人聲如沸六水。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽掷贾。三九已至,卻和暖如春荣茫,著一層夾襖步出監(jiān)牢的瞬間想帅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工啡莉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留港准,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,063評(píng)論 3 370
  • 正文 我出身青樓咧欣,卻偏偏與公主長(zhǎng)得像浅缸,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子魄咕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評(píng)論 2 354

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