0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

全卷積網(wǎng)絡(luò)也可以實(shí)現(xiàn)E2E檢測(cè)

工程師鄧生 ? 來源:機(jī)器之心Pro ? 作者:王劍鋒 ? 2020-12-09 16:36 ? 次閱讀

目標(biāo)檢測(cè)計(jì)算機(jī)視覺領(lǐng)域的一個(gè)基礎(chǔ)研究主題,它利用每張圖像的預(yù)定義類標(biāo)簽來預(yù)測(cè)邊界框。大多數(shù)主流檢測(cè)器使用的是基于錨的標(biāo)簽分配和非極大值抑制(NMS)等手動(dòng)設(shè)計(jì)。近來,很多研究者提出方法通過距離感知和基于分布的標(biāo)簽分類來消除預(yù)定義的錨框集。盡管這些方法取得了顯著的進(jìn)展和優(yōu)越的性能,但拋棄手動(dòng)設(shè)計(jì)的 NMS 后處理可能阻礙完全的端到端訓(xùn)練。

基于這些問題,研究人員相繼提出了 Learnable NMS、Soft NMS 和 CenterNet 等,它們能夠提升重復(fù)刪除效果,但依然無法提供有效的端到端訓(xùn)練策略。之后,F(xiàn)acebook AI 研究者提出的 DETR 將 Transformer 用到了目標(biāo)檢測(cè)任務(wù)中,還取得了可以媲美 Faster R-CNN 的效果。但是,DETR 的訓(xùn)練時(shí)間卻大大延長,在小目標(biāo)上的性能也相對(duì)較低。

所以,在本文中,來自曠視科技和西安交通大學(xué)的研究者提出了一個(gè)新穎問題:全卷積網(wǎng)絡(luò)是否可以實(shí)現(xiàn)良好的端到端目標(biāo)檢測(cè)效果?并從標(biāo)簽分配和網(wǎng)絡(luò)架構(gòu)兩個(gè)方面回答并驗(yàn)證了這一問題。

論文鏈接:https://arxiv.org/pdf/2012.03544.pdf

項(xiàng)目代碼:https://github.com/Megvii-BaseDetection/DeFCN (內(nèi)部代碼遷移 + 審查中,后續(xù)放出)

具體而言,研究者基于 FCOS,首次在 dense prediction 上利用全卷積結(jié)構(gòu)做到 E2E,即無 NMS 后處理。研究者首先分析了常見的 dense prediction 方法(如 RetinaNet、FCOS、ATSS 等),并且認(rèn)為 one-to-many 的 label assignment 是依賴 NMS 的關(guān)鍵。受到 DETR 的啟發(fā),研究者設(shè)計(jì)了一種 prediction-aware one-to-one assignment 方法。

此外,研究者還提出了 3D Max Filtering 以增強(qiáng) feature 在 local 區(qū)域的表征能力,并提出用 one-to-many auxiliary loss 加速收斂。本文方法基本不修改模型結(jié)構(gòu),不需要更長的訓(xùn)練時(shí)間,可以基于現(xiàn)有 dense prediction 方法平滑過渡。本文方法在無 NMS 的情況下,在 COCO 數(shù)據(jù)集上達(dá)到了與有 NMS 的 FCOS 相當(dāng)?shù)男阅?;在代表了密集場景?CrowdHuman 數(shù)據(jù)集上,本文方法的 recall 超越了依賴 NMS 方法的理論上限。

整體方法流程如下圖所示:

58435d70f13d4b55a7a25b9abb0d4ecf.png

One-to-many vs. one-to-one

自 anchor-free 方法出現(xiàn)以來,NMS 作為網(wǎng)絡(luò)中最后一個(gè) heuristic 環(huán)節(jié),一直是實(shí)現(xiàn) E2E dense prediction 的最大阻礙。但其實(shí)可以發(fā)現(xiàn),從 RPN、SSD、RetinaNet 等開始,大家一直遵循著這樣一個(gè)流程:先對(duì)每個(gè)目標(biāo)生成多個(gè)預(yù)測(cè)(one-to-many),再將多個(gè)預(yù)測(cè)去重(many-to-one)。所以,如果不對(duì)前一步 label assignment 動(dòng)刀,就必須要保留去重的環(huán)節(jié),即便去重的方法不是 NMS,也會(huì)是 NMS 的替代物(如 RelationNet,如 CenterNet 的 max pooling)。

3a8fafac2e164ab58d8783826bf0d1c8.png

那直接做 one-to-one assignment 的方法是否存在呢?其實(shí)是有的。上古時(shí)代有一個(gè)方法叫 MultiBox,對(duì)每個(gè)目標(biāo)和每個(gè)預(yù)測(cè)做了 bipartite matching,DETR 其實(shí)就是將該方法的網(wǎng)絡(luò)換成了 Transformer。此外還有一個(gè)大家熟知的方法:YOLO,YOLO 也是對(duì)每個(gè)目標(biāo)只匹配一個(gè) grid[1] ,只不過它是采用中心點(diǎn)做的匹配,而且有 ignore 區(qū)域。

Prediction-aware one-to-one

于是接下來的問題就是,在 dense prediction 上能不能只依賴 one-to-one label assignment,比較完美地去掉 NMS?研究者首先基于去掉 centerness 分支的 FCOS,統(tǒng)一網(wǎng)絡(luò)結(jié)構(gòu)和訓(xùn)練方法,用 Focal Loss + GIoU Loss,做了如下分析實(shí)驗(yàn):

fa8012f59c394bfa839079e104466d43.png

研究者設(shè)計(jì)了兩種 hand-crafted one-to-one assignment 方法,分別模仿 RetinaNet(基于 anchor box)和 FCOS(基于 center 點(diǎn)),盡可能做最小改動(dòng),發(fā)現(xiàn)已經(jīng)可以將有無 NMS 的 mAP 差距縮小到 4 個(gè)點(diǎn)以內(nèi)。

但研究者認(rèn)為手工設(shè)計(jì)的 label assignment 規(guī)則會(huì)較大地影響 one-to-one 的性能,比方說 center 規(guī)則對(duì)于一個(gè)偏心的物體就不夠友好,而且在這種情況下 one-to-one 規(guī)則會(huì)比 one-to-many 規(guī)則的魯棒性更差。所以認(rèn)為規(guī)則應(yīng)該是 prediction-aware 的。研究者首先嘗試了 DETR 的思路,直接采用 loss 做 bipartite matching 的 cost[2] ,發(fā)現(xiàn)無論是絕對(duì)性能還是有無 NMS 的差距,都得到了進(jìn)一步的改善。

但他們知道,loss 和 metrics 往往并不一致,它常常要為優(yōu)化問題做一些妥協(xié)(比如做一些加權(quán)等等)。也就是說,loss 并不一定是 bipartite matching 的最佳 cost。因而研究者提出了一個(gè)非常簡單的 cost:

190a2ef8f8264f3793efc8105be7b978.png

看起來稍微有點(diǎn)復(fù)雜,但其實(shí)就是用網(wǎng)絡(luò)輸出的 prob 代表分類,網(wǎng)絡(luò)輸出和 gt 的 IoU 代表回歸,做了加權(quán)幾何平均,再加一個(gè)類似于 inside gt box 的空間先驗(yàn)。加權(quán)幾何平均和空間先驗(yàn)在后面都分別做了 ablation。

這就是研究者提出的 POTO 策略,它進(jìn)一步地提升了無 NMS 下的性能,也側(cè)面驗(yàn)證了 loss 并不一定是最好的 cost[3]。但從 Table 1 中也發(fā)現(xiàn)了,POTO 的性能依舊不能匹敵 one-to-many+NMS 組合。研究者認(rèn)為問題出在兩個(gè)方面:

one-to-one 需要網(wǎng)絡(luò)輸出的 feature 非常 sharp,這對(duì) CNN 提出了較嚴(yán)苛的要求(這也是 Transformer 的優(yōu)勢(shì));

one-to-many 帶來了更強(qiáng)的監(jiān)督和更快的收斂速度。

于是分別用 3D Max Filtering 和 one-to-many auxiliary loss 緩解如上問題。

3D Max Filtering

f0ddb745d5af443eb3a226ff591ada8e.png

如 Figure 3 所示,這個(gè)模塊只采用了卷積、插值、max pooling 3d,速度非??欤膊恍枰獙?cuda kernel。

One-to-many auxiliary loss

針對(duì)第二點(diǎn)監(jiān)督不夠強(qiáng)、收斂速度慢,研究者依舊采用 one-to-many assignment 設(shè)計(jì)了 auxiliary loss 做監(jiān)督,該 loss 只包含分類 loss,沒有回歸 loss。assignment 本身沒什么可說的,appendix 的實(shí)驗(yàn)也表明多種做法都可以 work。這里想提醒大家的是注意看 Figure 2 的乘法,它是 auxiliary loss 可以 work 的關(guān)鍵。在乘法前的一路加上 one-to-many auxiliary loss,乘法后是 one-to-one 的常規(guī) loss。由于 1*0=0,1*1=1,所以只需要大致保證 one-to-one assignment 的正樣本在 one-to-many 中依然是正樣本即可。

實(shí)驗(yàn)

最主要的實(shí)驗(yàn)結(jié)果已經(jīng)在 Table 1 中呈現(xiàn)了,此外還有一些 ablation 實(shí)驗(yàn)。

80c704d7ae0b4f93b1b7e79538c2bedc.png

這里 highlight 幾點(diǎn):

α越低,分類權(quán)重越大,有無 NMS 的差距越小,但絕對(duì)性能也會(huì)降低 [4];α太高也不好,后續(xù)所有實(shí)驗(yàn)用α=0.8;

在α合理的情況下,空間先驗(yàn)不是必須的,但空間先驗(yàn)?zāi)軌蛟谄ヅ溥^程中幫助排除不好的區(qū)域,提升絕對(duì)性能;研究者在 COCO 實(shí)驗(yàn)中采用 center sampling radius=1.5,在 CrowdHuman 實(shí)驗(yàn)中采用 inside gt box[5];

加權(quán)幾何平均數(shù)(Mul)[6]比加權(quán)算術(shù)平均數(shù)(Add)[7]更好。

去掉 NMS 的最大收益其實(shí)是 crowd 場景,這在 COCO 上并不能很好地體現(xiàn)出來。所以又在 CrowdHuman 上做了實(shí)驗(yàn)如下:

17ec52d698d8427c98f0f6dc7b38221a.png

請(qǐng)注意 CrowdHuman 的 ground-truth 做 NMS threshold=0.6,只有 95.1% 的 Recall,這也是 NMS 方法的理論上限。而本文方法沒有采用 NMS,于是輕易超越了這一上限。

研究者還做了其它一些實(shí)驗(yàn)和分析,歡迎看原文。

可視化

經(jīng)過以上改進(jìn),研究者成功把 one-to-one 的性能提升到了與 one-to-many+NMS 方法 comparable 的水平。此外還可視化了 score map,可以發(fā)現(xiàn) FCN 是有能力學(xué)出非常 sharp 的表示的,這也是很讓研究者驚奇的一點(diǎn)。

結(jié)果圖中比較明顯的改善出現(xiàn)在多峰 case 上。比如兩個(gè)物體有一定的 overlap(但又沒有特別重合),這個(gè)時(shí)候 one-to-many+NMS 方法經(jīng)常出現(xiàn)的情況是,除了兩個(gè)物體分別出了一個(gè)框之外,在兩個(gè)物體中間也出了一個(gè)框,這個(gè)框與前兩個(gè)框的 IoU 不足以達(dá)到 NMS threshold,但置信度又比較高。這類典型的多峰問題在 POTO 中得到了較大的緩解。

Others

有些人可能比較關(guān)心訓(xùn)練時(shí)間,因?yàn)闈撘庾R(shí)里在 dense prediction 上做 bipartite matching 應(yīng)該是很慢的。然而實(shí)際上依賴于 scipy 對(duì) linear_sum_assignment 的優(yōu)化,實(shí)際訓(xùn)練時(shí)間僅僅下降了 10% 左右。

如果對(duì)這一時(shí)間依然敏感,可以用 topk(k=1)代替 bipartite matching;在 dense prediction 里 top1 實(shí)際上是 bipartite matching 的近似解 [8] 。相似地,k》1 的情況對(duì)應(yīng)了 one-to-many 的一種新做法,研究者也對(duì)此做了一些工作,后續(xù)可能會(huì)放出來。

責(zé)任編輯:PSY

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    關(guān)于卷積神經(jīng)網(wǎng)絡(luò),這些概念你厘清了么~

    隨著人工智能(AI)技術(shù)的快速發(fā)展,AI可以越來越多地支持以前無法實(shí)現(xiàn)或者難以實(shí)現(xiàn)的應(yīng)用。本文基于此解釋了 卷積神經(jīng)網(wǎng)絡(luò) (CNN)及其對(duì)
    發(fā)表于 10-24 13:56

    神經(jīng)網(wǎng)絡(luò)中的卷積層、池化層與連接層

    在深度學(xué)習(xí)中,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)是一種特別適用于處理圖像數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。它通過卷積層、池化層和
    的頭像 發(fā)表于 07-11 14:18 ?6229次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的工作原理和應(yīng)用

    卷積神經(jīng)網(wǎng)絡(luò)(FCN)是深度學(xué)習(xí)領(lǐng)域中的一種特殊類型的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),尤其在計(jì)算機(jī)視覺領(lǐng)域表現(xiàn)出色。它通過全局平均池化或轉(zhuǎn)置卷積處理任意尺寸
    的頭像 發(fā)表于 07-11 11:50 ?1161次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)示例

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,簡稱CNN)是一種深度學(xué)習(xí)模型,主要用于處理具有網(wǎng)格結(jié)構(gòu)的數(shù)據(jù),如圖像。CNN通過卷積層自動(dòng)提取圖像特征,然后通過
    的頭像 發(fā)表于 07-03 10:51 ?455次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)原理

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,簡稱CNN)是一種深度學(xué)習(xí)模型,廣泛應(yīng)用于圖像識(shí)別、視頻分析、自然語言處理等領(lǐng)域。本文將詳細(xì)介紹卷積神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 07-03 10:49 ?562次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)分類方法有哪些

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)是一種深度學(xué)習(xí)模型,廣泛應(yīng)用于圖像分類、目標(biāo)檢測(cè)、語義分割等計(jì)算機(jī)視覺任務(wù)。本文將詳細(xì)介紹卷積神經(jīng)
    的頭像 發(fā)表于 07-03 09:40 ?479次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)和工作原理

    和工作原理。 1. 引言 在深度學(xué)習(xí)領(lǐng)域,卷積神經(jīng)網(wǎng)絡(luò)是一種非常重要的模型。它通過模擬人類視覺系統(tǒng),能夠自動(dòng)學(xué)習(xí)圖像中的特征,從而實(shí)現(xiàn)對(duì)圖像的識(shí)別和分類。與傳統(tǒng)的機(jī)器學(xué)習(xí)方法相比,CNN具有更強(qiáng)的特征提取能力,能夠處理更復(fù)雜的數(shù)
    的頭像 發(fā)表于 07-03 09:38 ?669次閱讀

    cnn卷積神經(jīng)網(wǎng)絡(luò)分類有哪些

    卷積神經(jīng)網(wǎng)絡(luò)概述 卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,簡稱CNN)是一種深度學(xué)習(xí)模型,由多層卷積層和池
    的頭像 發(fā)表于 07-03 09:28 ?636次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)可以通過輸出反推到輸入嗎

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,簡稱CNN)是一種深度學(xué)習(xí)模型,廣泛應(yīng)用于圖像識(shí)別、視頻分析、自然語言處理等領(lǐng)域。CNN通過卷積層、池化層和
    的頭像 發(fā)表于 07-03 09:17 ?686次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練的是什么

    、訓(xùn)練過程以及應(yīng)用場景。 1. 卷積神經(jīng)網(wǎng)絡(luò)的基本概念 1.1 卷積神經(jīng)網(wǎng)絡(luò)的定義 卷積神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 07-03 09:15 ?428次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的原理與實(shí)現(xiàn)

    1.卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,簡稱CNN)是一種深度學(xué)習(xí)模型,廣泛應(yīng)用于圖像識(shí)別、視頻分析、自然語言處理等領(lǐng)域。 卷積神經(jīng)網(wǎng)絡(luò)是一種前饋
    的頭像 發(fā)表于 07-02 16:47 ?606次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)及其功能

    。 引言 深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)分支,它通過模擬人腦神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和功能,實(shí)現(xiàn)對(duì)數(shù)據(jù)的自動(dòng)學(xué)習(xí)和特征提取。卷積神經(jīng)網(wǎng)絡(luò)是深度學(xué)習(xí)中的一種重要模型,它通過
    的頭像 發(fā)表于 07-02 14:45 ?2298次閱讀

    詳解TSMaster CAN 與 CANFD 的 CRC E2E 校驗(yàn)方法

    面對(duì)切換工具鏈的用戶來說,在TSMaster上完成總線通訊中的CRC/E2E校驗(yàn)處理不是特別熟悉,該文章可以協(xié)助客戶快速使用TSMaster完成CAN/CANFD總線通訊的CRC/E2E校驗(yàn)。本文
    的頭像 發(fā)表于 05-25 08:21 ?2444次閱讀
    詳解TSMaster CAN 與 CANFD 的 CRC <b class='flag-5'>E2E</b> 校驗(yàn)方法

    小鵬汽車與大眾汽車宣布簽署E/E架構(gòu)技術(shù)合作框架協(xié)議

    是其垂直集成的棧軟硬件技術(shù)的核心。它支持ADAS和Connectivity OS等軟件與底層硬件和車輛平臺(tái)解耦,實(shí)現(xiàn)跨平臺(tái)軟件的快速迭代。小鵬汽車最新一代E/E架構(gòu)采用基于中央計(jì)算和
    的頭像 發(fā)表于 04-23 14:49 ?530次閱讀
    小鵬汽車與大眾汽車宣布簽署<b class='flag-5'>E</b>/<b class='flag-5'>E</b>架構(gòu)技術(shù)合作框架協(xié)議

    verilog實(shí)現(xiàn)卷積運(yùn)算

    在Verilog中實(shí)現(xiàn)卷積運(yùn)算,你可以使用以下示例代碼。這里假設(shè)輸入數(shù)據(jù)是有符號(hào)8位數(shù),輸出數(shù)據(jù)也是有符號(hào)8位數(shù)。卷積在數(shù)字信號(hào)處理中通常指的是兩個(gè)序列的逐元素乘積的和,也就是點(diǎn)乘。
    發(fā)表于 03-26 07:51