CVPR目標檢測新框架:不再是YOLO,而是只需要一層特征(干貨滿滿,建議收藏)(1)
論文地址:https://arxiv.org/pdf/2103.09460.pdf
1
前言
自畢業(yè)以來,也接觸了各種各樣的目標檢測框架。從剛開始見證TensorFlow崛起到Pytorch占有人工智能半壁江山,到現(xiàn)在的MMDetection、OneFlow、MindSpore等自主學(xué)習(xí)框架,也證明了中國的人工智能技術(shù)在不斷飛速發(fā)展!目標檢測框架中,最為熟悉的應(yīng)該是YOLO系列,從2018年Yolov3年提出的兩年后,在原作者聲名放棄更新Yolo算法后,俄羅斯的Alexey大神扛起了Yolov4的大旗,然后不久又出現(xiàn)了Yolov5。
當然,在公司中實際做項目的時候,很多應(yīng)用場景中的第一步,都是進行目標檢測任務(wù),比如人臉識別、多目標追蹤、REID等場景。因此目標檢測是計算機視覺領(lǐng)域及應(yīng)用中非常重要的一部分。
2
背景及YoloF的引出
先給大家提供下前期yolo的地址:
YoloV1論文地址:https://arxiv.org/pdf/1506.02640.pdfYoloV2(Yolo9000)論文地址:https://arxiv.org/pdf/1612.08242.pdfYolov3論文地址:https://arxiv.org/pdf/1804.02767.pdf
Tiny YOLOv3代碼地址:https://github.com/yjh0410/yolov2-yolov3_PyTorchYolov4論文地址:https://arxiv.org/pdf/2004.10934.pdfYolov5代碼地址:https://github.com/ultralytics/yolov5
YOLObile論文地址:https://arxiv.org/pdf/2009.05697.pdfYoloF的模型比之前的模型復(fù)雜了不少,可以通過改變模型結(jié)構(gòu)的大小來權(quán)衡速度與精度。YoloV3的先驗檢測系統(tǒng)將分類器或定位器重新用于執(zhí)行檢測任務(wù)。他們將模型應(yīng)用于圖像的多個位置和尺度。此外,相對于其它目標檢測方法,YoloV3將一個單神經(jīng)網(wǎng)絡(luò)應(yīng)用于整張圖像,該網(wǎng)絡(luò)將圖像劃分為不同的區(qū)域,因而預(yù)測每一塊區(qū)域的邊界框和概率,這些邊界框會通過預(yù)測的概率加權(quán)。模型相比于基于分類器的系統(tǒng)有一些優(yōu)勢。它在測試時會查看整個圖像,所以它的預(yù)測利用了圖像中的全局信息。與需要數(shù)千張單一目標圖像的R-CNN不同,它通過單一網(wǎng)絡(luò)評估進行預(yù)測。這令YoloV3非???,一般它比R-CNN快1000倍、比Fast R-CNN快100倍。
而今天分享的YOLOF框架,主要對單階段目標檢測中的FPN進行了重思考并指出FPN的成功之處在于它對目標檢測優(yōu)化問題的分而治之解決思路而非多尺度特征融合。從優(yōu)化的角度出發(fā),作者引入了另一種方式替換復(fù)雜的特征金字塔來解決該優(yōu)化問題:從而可以僅僅采用一級特征進行檢測。
3
新框架詳解
在目前先進的目標檢測框架網(wǎng)絡(luò)中,出現(xiàn)頻率最多的還是特征金字塔網(wǎng)絡(luò)(Feature Pyramid Network,F(xiàn)PN),是一個不可或缺的組成部分。
研究者認為FPN主要有2個作用:
多尺度特征融合,提高特征豐富程度;
使用divide-and-conquer,將目標檢測任務(wù)按照目標尺寸大小,分成若干個檢測子任務(wù)。
為了探索FPN的上述2個作用對檢測器性能的貢獻程度,研究者做了實驗,將檢測器抽象成如下圖所示個3個組成部分。
上圖,Encoder主要處理Backbone提取的特征,將處理結(jié)果傳輸給Decoder,用于分類和回歸。
以RetinaNet-ResNet50為基線方案,將檢測任務(wù)分解為三個關(guān)鍵部分:主干網(wǎng)絡(luò)、Encoder及Decoder。下圖給出了不同部分的Flops對比:
- 相比SiMoEncoder,MiMoEncoder帶來顯著的內(nèi)存負載問題(134G vs 6G);
- 基于MiMoEncoder的檢測器推理速度明顯要慢于SiSoEncoder檢測器(13FPS vs 34FPS);
- 這個推理速度的變慢主要是因為高分辨率特征部分的目標檢測導(dǎo)致,即C3特征部分。
通過上述實驗,可知使用Backbone輸出的單一特征和分治法,就可以構(gòu)建一個良好的目標檢測框架網(wǎng)絡(luò)。但是使用Single-in-Multiple-out的結(jié)構(gòu)會使得模型變得更大和復(fù)雜,因為Encoder要輸出多個特征。
基于上述發(fā)現(xiàn),研究者提出了YOLOF(You Only Look One-level Feature)網(wǎng)絡(luò),在YOLOF中,Encoder只用到了Backbone輸出的C5特征,同時避免使用Single-in-Multiple-out的SiMo復(fù)雜結(jié)構(gòu),而是使用了Single-in-Single-out的SiSo結(jié)構(gòu)以減少計算量。
YOLOF框架草圖如下所示:
YOLOF框架中關(guān)鍵的組件主要是膨脹編碼器(Dilated Encoder)和均勻匹配(Uniform Matching),給整個檢測帶來了可觀的改進。下面詳細說說:
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。