CornerNet-Lite: Efficient Keypoint Based Object Detection

普林斯頓大學(xué)

CornerNet-Saccade在追求高準(zhǔn)確率的同時,盡可能提高速度,以準(zhǔn)確率優(yōu)先,對標(biāo)于CornerNet。

Corner-Squeeze在追求高實時性的同時搬味,盡可能提高準(zhǔn)確率,以速度優(yōu)先,對標(biāo)于YOLOv3碰纬。

https://github.com/princeton-vl/CornerNet-Lite

摘要

基于關(guān)鍵點檢測的方法在目標(biāo)檢測中是比較新穎的萍聊,不需要anchor boxes,讓模型框架更簡潔悦析。CornerNet在單階段檢測器中的性能是state of art的寿桨,但是需要大量的預(yù)處理才能得到較高的準(zhǔn)確率,消耗較多的計算資源她按。本文提出CornerNet的兩種變形:CornerNet-Saccade牛隅,基于attention機制,從而并不需要對圖片中的每個像素做處理酌泰。另一個是CornerNet-Squeeze媒佣,引入了更加緊湊的主干網(wǎng)絡(luò)。CornerNet 的這倆變體解決了目標(biāo)檢測領(lǐng)域的兩個問題:提升速度而不犧牲準(zhǔn)確率陵刹,提升準(zhǔn)確性而不犧牲速度默伍。CornerNet-Saccade 可以用于線下處理,將 CornerNet 的速度提升 6 倍衰琐,將 COCO 上的 AP 值提升1.0 1.0%1.0也糊。CornerNet-Squeeze 適合用于實時檢測,提升 YOLOv3 的準(zhǔn)確率和速度(CornerNet-Squeenze 的 COCO AP 值是34.4羡宙,速度是34ms狸剃,而 YOLOv3 的 COCO AP 值是33.0,速度是39ms)狗热。

準(zhǔn)確率和速度比較

介紹

基于關(guān)鍵點的目標(biāo)檢測方法通過檢測和組合關(guān)鍵點產(chǎn)生目標(biāo)物體的邊框钞馁,CornerNet 檢測物體左上角點和右下角點并將其組合起來,它使用一組 Hourglass networks 預(yù)測角點的熱力圖匿刮,然后將它們組合起來僧凰。CornerNet 無需使用 anchor boxes,在 COCO 上的準(zhǔn)確率在單階段檢測器中是 state of art 的熟丸。

但是训措,CornerNet 的主要問題就是推理速度太慢。在COCO上它的平均精度COCO AP 有42.2光羞,而它的前向速度要每張圖片 1.147s绩鸣,這對視頻應(yīng)用來說太慢了。盡管我們可以減少要處理的像素個數(shù)來提升推理速度(從多尺度變?yōu)閱纬叨忍幚砩炊遥档蛨D像分辨率等)全闷,但這樣準(zhǔn)確率會下降很多。比如萍启,我們采用單尺度處理,然后降低輸入的分辨率,這可以將CornerNet 的推理速度提升至 42ms每張圖片勘纯,YOLOv3 的處理速度也不過39ms局服,但是它的 AP會降到25.6,而YOLOv3 的AP 是33.0 驳遵。這樣看淫奔,CornerNet 就沒那么成功了。

這篇論文提升了 CornerNet 的推理速度堤结。任何一個目標(biāo)檢測器的效率都可以從 2 個方向去改進(jìn):(1) 降低要處理像素的數(shù)量唆迁,(2) 減少每個像素點上要處理的步驟。我們對這兩個方向都進(jìn)行了探索竞穷,提出了 CornerNet 的兩個變體:CornerNet-Squeeze, CornerNet-Saccade唐责,統(tǒng)稱為 CornerNet-Lite。

CornerNet-Saccade通過減少像素的個數(shù)來加速前向速度瘾带,使用注意力機制鼠哥,首先縮小一幅圖像,產(chǎn)生一個attention map看政,再進(jìn)行放大和后續(xù)處理朴恳,原始的CornerNet在多個尺度上進(jìn)行全卷積操作,而CornerNet-Saccade選取若干個分辨率的裁剪區(qū)域來檢測允蚣,在COCO數(shù)據(jù)集上達(dá)到43.2的AP于颖,速度是190ms一張圖片,相比于原來速度提升了6倍嚷兔。

CornerNet-Squeeze 減少每個像素點上需要處理的步驟森渐,以此來加速前向,它融合了 SqueezeNet 和MobileNet 的思想谴垫,引入了一個緊湊的主干網(wǎng)絡(luò)章母,這個主干網(wǎng)絡(luò)中大量使用了 1×1的卷積,bottleneck層翩剪,以及深度可分離卷積乳怎。有了新的主干網(wǎng)絡(luò),CornerNet-Squeeze 在 COCO上的AP是34.4前弯,速度是30ms每張圖片蚪缀。

是否能將CornerNet-Squeeze和Saccade網(wǎng)絡(luò)結(jié)合起來使用?實驗證明不太行恕出,CornerNet-Squeeze-Saccade速度和準(zhǔn)確率都要比 CornerNet-Squeeze差询枚。原因在于,使用Saccade浙巫,網(wǎng)絡(luò)應(yīng)當(dāng)產(chǎn)生足夠準(zhǔn)確的attention maps金蜀,但是Squeeze模型的主干網(wǎng)絡(luò)過于緊湊刷后,不具備這樣的能力。此外渊抄,原來的CornerNet應(yīng)用在多個不同尺度的圖像上尝胆,有足夠的冗余像素來進(jìn)行Saccade操作,但是CornerNet-Squeeze由于推理成本的限制护桦,只能用在單尺度上含衔,可供Saccade 操作的空間就很小。

Related Work

人眼睛的 Saccades 是指一系列的眼球快速運動二庵,然后關(guān)注在不同的圖像區(qū)域上贪染。在目標(biāo)檢測算法中這個詞主要意思就是在前向推理中,選擇性地裁剪并處理不同的圖像區(qū)域(連續(xù)或并行催享,像素點或特征)杭隙。

在R-CNN, Fast R-CNN, Faster R-CNN 中,Saccdes 就是每個裁剪區(qū)域所代表的可能物體睡陪。處理完后寺渗,通過分類和回歸操作,每個裁剪區(qū)域要么被丟掉兰迫,要么成為一個帶標(biāo)簽的邊框信殊。Cascade R-CNN 擴(kuò)展了 Faster R-CNN,通過一組分類器和回歸器丟掉或修正候選框汁果。這些基于 R-CNN 的方法都是“單類型”和“單目標(biāo)”檢測器涡拘,因為裁剪區(qū)域的類型只有一個,每個裁剪區(qū)域最多只有一個目標(biāo)物體据德。

AutoFocus 基于SNIPER 改進(jìn)了 R-CNN 訓(xùn)練鳄乏,在 Faster R-CNN 里增加了一個分支,預(yù)測那些可能包含小物體的區(qū)域棘利。然后再進(jìn)行裁剪橱野,對每個裁剪區(qū)域都使用 Faster R-CNN。在 AutoFOcus中善玫,有兩種裁剪方式水援,一個是輸出多個物體(調(diào)用 Faster R-CNN),另一個是輸出至多一個物體(在Faster R-CNN中進(jìn)行裁剪)茅郎。AutoFocus 中的Saccades 因此是“多類型”和“混合式”的蜗元。

然而,CornerNet-Saccade 中的Saccade 是“單類型”和“多目標(biāo)”的系冗,因為它只有一種裁剪處理奕扣,每個裁剪區(qū)域可以輸出多個物體,而不需要額外的子裁剪掌敬。也就是說惯豆,CornerNet-Saccade 中裁剪區(qū)域的個數(shù)會小于目標(biāo)物體的個數(shù)池磁,而 R-CNN 和 AutoFocus 中裁剪區(qū)域的個數(shù)會和目標(biāo)物體的個數(shù)至少相等。

自 R-CNN 之后循帐,檢測器的速度得到了很大提升框仔。R-CNN 中,對 RoIs 重復(fù)應(yīng)用卷積網(wǎng)絡(luò)會帶來許多冗余的計算拄养。SPP 和 Fast R-CNN 在圖像上進(jìn)行全卷積操作,在特征圖上對每個 RoI 直接提取特征银舱。Faster R-CNN 進(jìn)一步提升了效率瘪匿,使用RPN產(chǎn)生候選區(qū)域。R-FCN 將全連接子檢測網(wǎng)絡(luò)替換為全卷積網(wǎng)絡(luò)寻馏。Light-head R-CNN 通過可分離卷積進(jìn)一步降低了 R-FCN 的計算成本棋弥,在 RoI 池化前減少特征圖的通道數(shù)。另一方面诚欠,單階段檢測器去除了雙階段檢測器中的區(qū)域池化步驟顽染。

SqueezeNet 提出了一個 fire module,將 AlexNet 中的參數(shù)個數(shù)降低了至少 50倍轰绵,但是性能類似粉寞。MobileNets 使用深度可分離卷積搭建輕量級網(wǎng)絡(luò),并提出了平衡精度和速度的策略左腔。PeleeNet通過引入DenseNet 的變體證明了標(biāo)準(zhǔn)卷積的有效性唧垦,DenseNet 的變體由two-way dense layers和stem 模塊組成。

也有不少網(wǎng)絡(luò)專門為了實時檢測進(jìn)行設(shè)計液样。YOLOv2 設(shè)計了一個新的VGG變體網(wǎng)絡(luò)振亮,參考了 NIN 的想法。YOLOv3 進(jìn)一步改進(jìn)了 DarkNet-19鞭莽,讓網(wǎng)絡(luò)變得更深坊秸,增加了 skip 連接。RFBNet 提出了一個新的模塊澎怒,模仿人眼系統(tǒng)的感受野來搜集不同尺度的信息褒搔。

CornerNet-Saccade

CornerNet-Saccade 在較小的區(qū)域范圍內(nèi)檢測物體。它利用縮小后的圖片來預(yù)測 attention maps以及大概的邊框丹拯,兩者都能提供物體可能的位置站超。CornerNet-Saccade然后在高分辨率的圖像中,在位置中心附近區(qū)域內(nèi)檢測物體乖酬。它也可以通過調(diào)節(jié)每張圖片上物體位置的最大個數(shù)來平衡精度和速度死相。

CornerNet-Saccade網(wǎng)絡(luò)結(jié)構(gòu)

Estimating Object Locations

CornerNet-Saccade 的第一步就是獲取圖像中可能的物體位置。使用縮小的圖像預(yù)測 attention maps咬像,它能指出物體的位置以及物體大致的尺寸算撮。給定輸入圖像生宛,我們將圖像縮小至長邊為 255 像素或者192 像素。對于長邊為192像素的圖像肮柜,在邊緣位置填充0陷舅,使得它的大小能到255像素,這樣它們就可以并行處理审洞。使用這樣的低分辨率圖有2個原因:首先莱睁,這一步不應(yīng)該成為前向推理時的瓶頸;其次芒澜,網(wǎng)絡(luò)應(yīng)該很容易就可以利用圖像的全局信息預(yù)測attention maps仰剿。

對每一個縮小后的圖片,CornerNet-Saccade預(yù)測3個attention maps痴晦,一個針對小物體南吮,一個針對中等物體,一個針對大物體誊酌。如果一個物體邊框的長邊小于32像素部凑,它就被認(rèn)為是小物體,超過96像素的就被認(rèn)為是大物體碧浊,中間的就是中等物體涂邀。對不同大小的物體分開預(yù)測位置,讓我們能更好地控制 CornerNet-Saccade 在每個位置應(yīng)該放大多少辉词。我們在小物體位置可以放大的多一些必孤,在大物體位置可以放大的少一些。

我們利用不同比例的特征圖來預(yù)測attention maps瑞躺。從CornerNet-Saccade 的主干網(wǎng)絡(luò)中獲取特征圖敷搪。每一個Hourglass 模塊都使用了多個卷積和下采樣層來降低輸入特征圖的大小。然后再將特征圖通過多個上采樣層和卷積層上采樣至原始輸入的分辨率幢哨。上采樣層輸出的特征圖用于預(yù)測attention maps赡勘。尺度較精細(xì)的特征圖用于預(yù)測小物體,而尺度較粗糙的用于預(yù)測大物體捞镰。我們在每個特征圖上應(yīng)用一個 3×3卷積-ReLU 模塊闸与,后面跟著一個1×1卷積-Sigmoid 模塊,以此來預(yù)測 attention maps岸售。在測試時践樱,僅處理得分高于閾值0.3的位置。

當(dāng) CornerNet-Saccade處理縮小后的圖像凸丸,它就可能會檢測到圖像中的物體并生成邊框拷邢。從縮小后的圖像上獲取的邊框可能不那么準(zhǔn)確。因此屎慢,我們需要在高分辨率的圖像上再檢測一次瞭稼,來獲得更準(zhǔn)確的邊框忽洛。

在訓(xùn)練時,我們將attention map上每個邊框?qū)?yīng)的中心位置設(shè)為正樣本环肘,其余都為負(fù)樣本欲虚,然后再使用Focal Loss,其中\alpha =2悔雹。

Detecting Objects

CornerNet-Saccade 使用縮小后圖像上得到的位置來決定到底在哪個位置進(jìn)行處理复哆。如果直接在縮小后的圖像上進(jìn)行裁剪,有一些物體可能就會變得很小荠商,使檢測變得不準(zhǔn)確寂恬。因此,應(yīng)該在更高分辨率的圖像上進(jìn)行檢測莱没。

對于從 attention maps 上獲得的位置,對不同的物體大小設(shè)置不同的放大比例酷鸦,對小物體饰躲,設(shè)置放大比例為S_{s} ,對中等大小物體臼隔,設(shè)置放大比例為S_{m} 嘹裂,對大物體,設(shè)置放大比例為S_{l} 摔握,三者應(yīng)該滿足:S_{s} >S_{m} >S_{l} 寄狼,實際上,S_{s} =4,S_{m}=2,S_{l}=1氨淌,在每一個可能的位置(x,y)上泊愧,就根據(jù)物體大小以相應(yīng)的放大比例來放大縮小后的圖片,將 CornerNet-Saccade 應(yīng)用在一個 255×255的窗口上盛正,窗口的中心就是該位置删咱。

從邊框預(yù)測得到的位置能給出物體大小的更多信息。我們可以根據(jù)邊框的大小來決定放大的比例豪筝,這樣對于一個小物體痰滋,放大后邊框的長邊是24,中等物體的邊框長邊是64续崖,大物體邊框長邊是192敲街。

為了讓處理更加地高效,首先严望,我們以批次來處理所有區(qū)域多艇,這樣能更好地利用GPU。其次著蟹,將原始圖片保存在GPU 顯存里墩蔓,在GPU里面進(jìn)行縮放和裁剪梢莽,降低CPU 和 GPU 之間轉(zhuǎn)移圖像數(shù)據(jù)帶來的消耗。

在每個可能存在物體的位置檢測完畢后奸披,通過Soft-NMS將邊框融合起來昏名,去除多余的邊框。同時去掉那些觸碰到裁剪區(qū)邊界的邊框阵面。訓(xùn)練時轻局,使用和 CornerNet 中一樣的損失函數(shù)來預(yù)測角點熱力圖,embeddings和偏移样刷。

去掉碰到邊界的檢測框

通過控制每張圖片上物體位置的最大個數(shù)仑扑,可以平衡效率和準(zhǔn)確率。優(yōu)先處理那些更可能包含物體的位置置鼻。因此镇饮,當(dāng)我們得到了物體的位置后,根據(jù)它們的得分將它們排序箕母,然后優(yōu)先處理那些從邊框中得到的位置储藐。給定要處理的最大裁剪個數(shù)k_{max},在這些位置上進(jìn)行物體檢測嘶是。

當(dāng)物體之間距離很近時钙勃,可能會得到高度重疊的裁剪框。我們并不想把這兩個框都檢測一遍聂喇,因為檢測其中一個框時就可能會檢測到另一個框中的物體辖源,采取了一個類似于 NMS 的方法,去除多余的位置希太。首先克饶,我們將目標(biāo)物體的位置進(jìn)行排序,優(yōu)先處理邊框內(nèi)的位置跛十,然后再處理 attention maps上的位置彤路。保留最佳的物體位置,去除那些距離最佳位置過于近的位置芥映。重復(fù)以上操作洲尊,直到?jīng)]有物體位置剩余。

抑制重疊的位置

Backbone Network

設(shè)計了一個新的 Hourglass 主干網(wǎng)絡(luò)奈偏,更適合用在 CornerNet-Saccade坞嘀。新的 Hourglass 網(wǎng)絡(luò)由3個 Hourglass 模塊組成,深度是54層惊来,而原 CornerNet 中的 Hourglass-104 由2個 Hourglass 模塊組成丽涩,深度是104層。新的主干網(wǎng)絡(luò)稱為 Hourglass-54。

Hourglass-54 中每一個 Hourglass 模塊的參數(shù)量更少矢渊,也要更淺穷绵。以步長2來縮小特征圖狸相,在每個下采樣層后面使用了一個殘差模塊刮吧。每個 Hourglass 模塊將輸入特征尺寸降低3倍承边,增加它的通道數(shù)(384,384毡鉴,512)崔泵。在模塊的中間位置有一個512通道的殘差模塊,在每個上采樣層后面有一個殘差模塊猪瞬。在 Hourglass 模塊之前將圖像的尺寸縮小2倍憎瘸。

CornerNet-Squeeze

CornerNet-Saccade 是減少要處理像素的數(shù)量,而CornerNet-Squeeze 則是研究了一個替換方案陈瘦,降低每個像素點上要處理的成本幌甘。在CornerNet 中,絕大多數(shù)的計算資源都耗費在 Hourglass-104 上痊项。Hourglass-104 由殘差模塊組成含潘,每個殘差模塊由 2 個 3×3 的卷積層外加一個 skip 連接構(gòu)成。盡管 Hourglass-104 獲得了不錯的效果线婚,但是就它的參數(shù)數(shù)量和前向時間來說,它是非常昂貴的盆均。為了降低 Hourglass-104的復(fù)雜度塞弊,引入了 SqueezeNet 和 MobileNet中的思想,設(shè)計一個輕量級 Hourglass 架構(gòu)泪姨。

Ideas from SqueezeNet and MobileNets

SqueezeNet 提出了3個降低網(wǎng)絡(luò)復(fù)雜度的策略:

1游沿、將3*3的卷積替換為1*1的卷積;

2肮砾、降低3*3卷積的輸入通道數(shù)诀黍;

3、將降采樣延后仗处。

SqueezeNet中的fire module封裝了前兩個策略眯勾,fire module首先通過由 1×1卷積組成的 squeeze 層降低輸入通道數(shù),然后經(jīng)過 1×1 和3×3 卷積混合組成的expand層婆誓〕曰罚基于 SqueezeNet 的想法,在 CornerNet-Squeeze 中使用了fire module洋幻,沒有用殘差模塊郁轻。而且,受 MobileNet 的啟發(fā),我們將第二層中的標(biāo)準(zhǔn) 3×3卷積替換為 3×3的深度可分離卷積好唯,這進(jìn)一步加快了推理速度竭沫。

在 Hourglass模塊之前增加了一個下采樣層,以此降低 Hourglass模塊特征圖的最大分辨率骑篙,并且在每個Hourglass模塊內(nèi)去掉了一個下采樣層蜕提。CornerNet-Squeeze 在Hourglass模塊前相應(yīng)地將圖像尺寸縮小了 3 倍,但是 CornerNet 僅將圖像尺寸縮小了 2 倍替蛉。在 CornerNet的預(yù)測模塊中贯溅,將 3×3卷積替換為 1×1卷積。最后躲查,將Hourglass 網(wǎng)絡(luò)中的nearest neighbor上采樣替換為了 4×4卷積核的反卷積 (transpose convolution)它浅。

Experiments

實驗結(jié)果
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市镣煮,隨后出現(xiàn)的幾起案子姐霍,更是在濱河造成了極大的恐慌,老刑警劉巖典唇,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件镊折,死亡現(xiàn)場離奇詭異,居然都是意外死亡介衔,警方通過查閱死者的電腦和手機恨胚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來炎咖,“玉大人赃泡,你說我怎么就攤上這事〕伺危” “怎么了升熊?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長绸栅。 經(jīng)常有香客問我级野,道長,這世上最難降的妖魔是什么粹胯? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任蓖柔,我火速辦了婚禮,結(jié)果婚禮上矛双,老公的妹妹穿的比我還像新娘渊抽。我一直安慰自己,他們只是感情好议忽,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布懒闷。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪愤估。 梳的紋絲不亂的頭發(fā)上帮辟,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機與錄音玩焰,去河邊找鬼由驹。 笑死,一個胖子當(dāng)著我的面吹牛昔园,可吹牛的內(nèi)容都是我干的蔓榄。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼默刚,長吁一口氣:“原來是場噩夢啊……” “哼甥郑!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起荤西,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤澜搅,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后邪锌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體勉躺,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年觅丰,在試婚紗的時候發(fā)現(xiàn)自己被綠了饵溅。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡妇萄,死狀恐怖概说,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嚣伐,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布萍丐,位于F島的核電站轩端,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏逝变。R本人自食惡果不足惜基茵,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望壳影。 院中可真熱鬧拱层,春花似錦、人聲如沸宴咧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至烙肺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間桃笙,已是汗流浹背氏堤。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工鼠锈, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留星著,地道東北人购笆。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像强饮,于是被迫代替她去往敵國和親由桌。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345