CornerNet-Lite,基於關鍵點的實時且精度高的目標檢測演算法已開源

dicksonjyl560101發表於2019-08-21

本文要介紹一篇實時性好,準確率又高的論文: CornerNet-Lite。該論文是由 普林斯頓大學的幾位學者提出。截止目前,據Amusi所瞭解,CornerNet-Lite應該是目標檢測(Object Detection)中FPS和mAP trade-off最佳演算法。

注:標題註明"吊打YOLOv3",這個不是標題黨。 因為CornerNet-Lite 在FPS和mAP上都超過了YOLOv3,具體詳見下文介紹。


簡介

CornerNet-Lite,基於關鍵點的實時且精度高的目標檢測演算法已開源

arXiv:

github:

作者團隊:普林斯頓大學

注:2019年04月19日剛出爐的paper


Abstract:基於關鍵點的方法是目標檢測中相對較新的範例,消除了對anchor boxes的需求並提供了簡化的檢測框架。基於Keypoint的CornerNet在單級(single-stage)檢測器中實現了最先進的精度。然而,這種準確性來自高處理代價。在這項工作中,我們解決了基於關鍵點的高效目標檢測問題,並引入了 CornerNet-Lite。CornerNet-Lite是CornerNet的兩種有效變體的組合:CornerNet-Saccade,它使用注意機制消除了對影像的所有畫素進行徹底處理的需要,以及引入新的緊湊骨幹架構的 CornerNet-Squeeze。這兩種變體共同解決了有效目標檢測中的兩個關鍵用例:在不犧牲精度的情況下提高效率,以及提高實時效率的準確性。 CornerNet-Saccade適用於離線處理,將CornerNet的效率提高6.0倍,將COCO的效率提高1.0%。CornerNet-Squeeze適用於實時檢測,提高了流行的實時檢測器YOLOv3的效率和準確性(在COCO資料集上, CornerNet-Squeeze為34ms / 34.4 mAP,而YOLOv3為39ms / 33mAP)。這些貢獻首次共同揭示了基於關鍵點的檢測對於需要處理效率的應用的潛力。

CornerNet-Lite,基於關鍵點的實時且精度高的目標檢測演算法已開源


背景

CornetNet 在 ECCV 2018 (oral)上橫空出世,引領一波基於關鍵點的目標檢測狂潮(最近anchor-free盛行),但這類演算法(很多one-stage)也有缺點。雖然mAP有很大提升,但速度上都遠不能達到實時(有些論文就避而不談FPS了)。這其實可以看成學術階段的成果,但距離落地應用還有一點距離。

而 本文CornetNet-Lite是對CornetNet進行最佳化,提出了兩種演算法:

  • CornerNet-Saccade
  • CornerNet-Squeeze

在Amusi看來:

CornerNet-Saccade是追求高準確率(mAP)的同時,儘可能提高速度(FPS),即準確率優先,其對標於CornerNet等演算法。創新點:引入Saccade思想

CornerNet-Squeeze是追求高實時性(FPS)的同時,儘可能提高準確率(mAP),即速度優先,其對標於YOLOv3等演算法。創新點:引入SqueezeNet最佳化思想


正文

1 CornerNet-Saccade

什麼是Saccades?

人類視覺中的Saccades(掃視運動)是指用於固定不同影像區域的一系列快速眼動。在目標檢測演算法中,我們廣義地使用該術語來表示在推理期間選擇性地 裁剪(crop)和處理影像區域(順序地或並行地,畫素或特徵)。

CornerNet-Saccade中的saccades是 single type and multi-object。CornerNet-Saccade檢測影像中可能的目標位置周圍的小區域內的目標。它使用縮小後的完整影像來預測注意力圖和粗邊界框;兩者都提出可能的物件位置,然後,CornerNet-Saccade透過檢查以高解析度為中心的區域來檢測目標。它還可以透過控制每個影像處理的最大目標位置數來提高效率。具體流程如下圖所示。

CornerNet-Lite,基於關鍵點的實時且精度高的目標檢測演算法已開源

CornerNet-Saccade設計了一種新的backbone:Hourglass-54(含3個hourglass模組,深度為54)。原CornerNet中使用的是Hourglass-104(含2個hourglass模組,深度為54)。

注: crop在CornerNet-Saccade中作用非常大

CornerNet-Lite,基於關鍵點的實時且精度高的目標檢測演算法已開源

2 CornerNet-Squeeze

與專注於subset of the pixels以減少處理量的 CornerNet-Saccade相比,而CornerNet-Squeeze探索了一種減少每畫素處理量的替代方法。在CornerNet中,大部分計算資源都花在了Hourglass-104上。Hourglass-104由殘差塊構成,其由兩個3×3卷積層和跳連線(skip connection)組成。儘管Hourglass-104實現了很強的效能,但在引數數量和推理時間方面卻很耗時。為了降低Hourglass-104的複雜性,本文將來自 SqueezeNet和MobileNets的想法融入到lightweight hourglass架構中

主要操作是:

  • 受SqueezeNet啟發,CornerNet-Squeeze將residual block替換為SqueezeNet中的Fire module
  • 受MobileNet啟發,CornerNet-Squeeze將第二層的3x3標準卷積替換為3x3深度可分離卷積(depth-wise separable convolution)

具體如下表所示:


CornerNet-Lite,基於關鍵點的實時且精度高的目標檢測演算法已開源

3 實驗結果

開原始碼是基於PyToch1.0.0,在COCO資料集上進行測試。測試硬體環境為:1080ti GPU + Intel Core i7-7700k CPU。

One-stage演算法效能比較

CornerNet-Lite,基於關鍵點的實時且精度高的目標檢測演算法已開源

CornerNet-Saccade演算法效能比較

可見Hourglass-54要強於Hourglass-104,另外gt attention對漲點幫助很大


CornerNet-Lite,基於關鍵點的實時且精度高的目標檢測演算法已開源

CornerNet-Squeeze演算法效能比較

見證奇蹟的時候來了!CornerNet-Squeeze吊打YOLOv3,因為即使是C語言版本的YOLOv3,都已被全方位(mAP+FPS)超過。

注:日常期待一下YOLOv4,畢竟YOLOv3已經是去年3月的"老人"了。

CornerNet-Lite,基於關鍵點的實時且精度高的目標檢測演算法已開源


程式碼已開源,快快下載嘗試一波:







來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2654424/,如需轉載,請註明出處,否則將追究法律責任。

相關文章