往期的文章裡,我們介紹了分類模型EfficientNet 【AI論技】EfficientNet的原理和應用
由谷歌大腦實驗室提出的目標檢測網絡EfficientDet也非常優秀。該模型是以EfficientNet為骨架網絡,並沿用了其compound scaling方法,在目標檢測任務中實現了精度和速度的極佳平衡。
本文作者Eddie
品覽視覺算法研究員
密西根大學安娜堡分校碩士
兩年AI算法經驗
EfficientDet概述
說到新一代的高性能目標檢測網絡,除了Yolo系列外,谷歌大腦實驗室提出的EfficientDet模型[1]也非常優秀。該模型是以分類模型EfficientNet為骨架網絡,並沿用了其compound scaling方法[10],在目標檢測任務中實現了精度和速度的極佳平衡。由於模型不包含RoI(Region of Interest)推理模塊,EfficientDet仍然屬於one-stage檢測器。相比two-stage檢測器(比如Fast-RCNN系列),one-stage檢測器結構簡單,推理速度快。在模型設計上,EfficientDet仍然採取了「特徵抽取backbone + 多尺度feature融合 + box/class預測」的架構,這種架構與RetinaNet和Yolo等主流one-stage檢測模型是相似的。
圖1. EfficientDet的模型架構[1]。使用了EfficientNet作為特徵抽取backbone,然後用BiFPN網路把不同尺寸的特徵加權融合,最後通過輸出層預測物體的box和class。
EfficientDet系列包含D1~D7七個模型,序號越大表示模型的算力消耗和參數量越大,但精確度越高。EfficientDet-D7在COCO數據集上取得了53.7的mAP(論文發表時的mAP是52.2,後來被研究者又提升到了53.7,見官方源碼[7]),在COCO數據集的精確度排行榜上穩居前三。在耗時上,EfficientDet的性價比也很高。最輕的EfficientDet-D0的精確度略高於YoloV3,但是FLOPS(floating point operations per second, 用來衡量計算量的參數)只有YoloV3的二十八分之一。
此外,EfficientDet具有的簡潔漂亮的模型結構,獨具特色的特徵融合方法,系統高效的模型擴增方法等眾多可圈可點之處,給這個系列帶來了長足的潛力。
圖2. EfficientDet與其他檢測模型的性能對比[1]。這裡沒有包括YoloV4, DetecoRS等2020年中旬才提出的最新檢測模型。
多尺度特徵融合
目標檢測的一大難點就是克服不同物體的尺寸差異。比如COCO數據集中物體的尺寸就非常不平衡,而且包含大量小尺寸物體,為高精度的目標檢測帶來了很大的難度。因此早期的目標檢測任務中,對輸入圖片採用了圖像金字塔採樣的方法,確保模型可以較好地識別出不同尺寸的物體(FPN的論文[2]中有相應的回顧)。然而這個方法大幅增加了推理耗時,也沒有用到CNN模型天然的特徵多尺度性(深層feature map比淺層feature map的長寬要小,但通道數更多)。
為了利用到CNN中的多尺度特徵,SSD模型[3]通過skip-layer-architecture,將骨架網絡VGG中最後幾個block的輸出feature map各自取出分別預測物體的box和class,再把每個尺度feature map的物體檢測結果stack在一起。這使得SSD取得了超過YoloV1的精度和速度。
進一步提高模型的精度不單單需要用到多尺度特徵,還需要將不同尺度的特徵高效融合。FAIR實驗室於2017年提出的FPN網絡(Feature Pyramid Network),將從backbone網絡取出的不同尺寸特徵圖,用包含cross-scale connection的CNN網絡進行重組。具體的做法是把用1x1卷積和上採樣把兩個feature map的通道數和長寬轉化為相同後,再把兩個feature map相加。FPN在COCO數據集上將Faster-RCNN模型的mAP提升了8個點。之後沿用到RetinaNet[4]中也取得了很好的效果。自此以後,FPN及其衍生出的結構成為了目標檢測模型中的一大常用結構。
圖3. FPN結構圖[3]
BiFPN結構
FPN中只有top-down流向的信息通路,即把深層的小尺寸特徵圖上採樣後與淺層的大尺寸特徵圖融合。PA-Net[5]和NAS-FPN[6]加入了把淺層大尺寸特徵下採樣後與深層小尺寸特徵進行融合的bottom-up通路,進一步提升了精度。EfficientDet借鑑了PA-Net的思路,提出了獨具特色的BiFPN結構。
圖4. BiFPN與其他特徵融合網絡的結構對比[1]
具體做法是在PA-Net中的第一層中只保留輸入邊和輸出邊個數都為2的節點,在第二層中的每個節點增加一條來自相同層級的原始特徵圖的輸入邊。相比PA-Net, BiFPN的結構更加緊湊,特徵融合效率更高。同時,研究者對每個特徵圖的融合權重做了快速正則化(Fast normalized fusion),增加了融合過程中穩定性(這裡推薦看一下原始論文)。
模型擴展
研究者基於啟發式(heuristic)的參數,決定了EfficientDet中輕型模型和重型模型在圖片解析度,通道數和模型深度方面的遞增關係。
圖5. EfficientDet D0~D7的解析度,模型寬度,模型深度的遞增關係[1]
這種方法通過均勻地增大解析度,模型寬度和模型深度,使得模型儘可能以最小的FLOPs增加帶來最大的精度提升。從EfficientDet D0~D6上模型每升一級,FLOPS大約增加一倍,但是精度提升明顯。比如D2~D3,FLOPS從11 billion增加大25 billion提升了2.27倍(近似2倍),但COCO測試集上的mAP提升了2.8個點。
圖6. EfficientDet D0~D7的性能對比[1]
最輕的EfficientDet-D0的mAP與YoloV3相當,但FLOPs只有不到二十分之一。最深的EfficientDet-D7的mAP可以達到52.2(目前這一mAP已被提高到53.7)。
總結
根據谷歌在efficientDet開源實現上給出的數據[7],在tesla-v100上,EfficentDet-D0的單張推理速度可以達到97FPS,EfficientDet-D4的單張推理速度可以達到24FPS(且COCO測試集上的mAP高達49.4)。
在這個基於深度學習的檢測模型百花齊放的年代, EfficientDet也遇到了的大量對手。2020年中旬提出的DetectoRS模型[8],目前在COCO數據集上佔據榜首(mAP高達54.7);2020年4月提出的YoloV4模型[9],在COCO數據集上的mAP達到43.5,而FPS高達65。值得注意的是,YoloV4中仍然採取了PA-Net進行多尺度特徵融合,可提升之處還是很大的。
總體而言,EfficientDet系列結構簡潔,模型拓展高效,具備很高的性能和發展潛力。
參考文獻:
[1]. Mingxing Tan Ruoming Pang Quoc V. Le, EffificientDet: Scalable and Effiicient Object Detection
[2]. Tsung-Yi Lin, Piotr Dollar , Ross Girshick, Kaiming He, Bharath Hariharan, and Serge Belongie, Feature Pyramid Networks for Object Detection
[3]. W. Liu, D. Anguelov, D. Erhan, C. Szegedy, and S. Reed., SSD: Single shot multibox detector
[4]. Tsung-Yi, Lin Priya Goyal, Ross Girshick, Kaiming He , and Piotr Dollar, Focal Loss for Dense Object Detection
[5]. Shu Liu, Lu Qi, Haifang Qin, Jianping Shi, and Jiaya Jia., Path aggregation network for instance segmentation.
[6]. Golnaz Ghiasi, Tsung-Yi Lin, Ruoming Pang, and Quoc V. Le. Nas-fpn, Learning scalable feature pyramid architecture for object detection.
[7]. 谷歌基於tensorflow的efficientDet的開源實現:
https://github.com/google/automl/tree/master/efficientdet
[8]. Siyuan Qiao, Liang-Chieh Chen, Alan Yuille, DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution
[9]. Alexey Bochkovskiy, Chien-Yao Wang, Hong-Yuan Mark Liao, YOLOv4: Optimal Speed and Accuracy of Object Detection
[10]. Mingxing Tan, Quoc V. Le, EffificientNet: Rethinking Model Scaling for Convolutional Neural Networks
品覽Pinlan是AI物品識別專家,我們的產品結合了AI的認知識別能力,Cloud的強勁算力,IoT的邊緣支持。我們的使命是讓物品識別能力無處不在,賦能星球上的每一個企業與個體。在AI應用領域,團隊服務過欣和集團、上汽集團、頂新集團(味全)、Farfetch、自如、英德知、河南中煙等客戶。我們同全球頂級合作夥伴微軟,企業微信,百度AI大腦等一起為企業客戶提供AI巡店通,AI億覽通,小覽機器人以及品識-AI商品識別平臺產品服務。