CVPR 2021 Oral | Transformer再发力!华南理工和微信提出UP-DETR:无监督预训练检测器...
點擊下方卡片,關注“CVer”公眾號
AI/CV重磅干貨,第一時間送達
本文作者:飛奔的啦啦啦?? |??來源:知乎
https://zhuanlan.zhihu.com/p/313684358
UP-DETR: Unsupervised Pre-training for Object Detection with Transformers
論文:https://arxiv.org/abs/2011.09094
中cvpr oral啦!代碼和預訓練模型已經開源:
https://github.com/dddzg/up-detr
相信大家都有目共睹,無監督預訓練模型無論是在nlp(BERT,GPT,XLNet)還是在cv(MoCo,SimCLR,BYOL)上都取得了突破性的進展。而對于無監督(自監督)預訓練而言,最重要的就是設計一個合理的pretext,典型的像BERT的masked language model,MoCo的instance discrimination。他們都通過一定的方式,從樣本中無監督的構造了一個"label",從而對模型進行預訓練,提高下游任務的表現。
回到我們的UP-DETR,對于DETR而言,既然CNN可以是無監督預訓練的,那么transformer能不能也無監督預訓練一下呢。這就是我們的motivation。
當然啦,騷想法可以很豐滿,可現實總是很骨感(T.T)。對于現有的pretext任務,似乎都不太適合于DETR里transformer的預訓練。比如,你想搞個mask,可cv都是連續像素構成語義,沒法像nlp天然有個離散的token的概念,最后還可能訓成一個mask檢測器(狗頭。直接把MoCo那一套搬過也不太可行。我們認為主要的原因是DETR中的transformer主要是用來做空間信息上的定位而MoCo那一套主要是用來提高CNN的instance discrimination。
更重要的是,無監督預訓練檢測器,這聽起來就很違背自覺,因為是不是object某種意義上明明就是人為定義的。所以,我們換了一個思路,提出了一個叫random query patch detection的pretext,具體而言就是從原圖中,我們隨機的框若干個patch下來,把這些patch輸入到decoder,原圖輸入到encoder,然后整個任務就變成了給定patch找他們在原圖中的位置。最后,對于一個無監督訓好的DETR,只要輸入patch,它天然就能做到如下圖的無監督定位patch的功能(不需要額外的nms后處理),當然這個patch還能支持數據增強和尺度變換。從這個預訓練任務的角度來說,一個patch是不是object本身沒有任何先驗。
idea其實就這么簡單,但具體實現上,我們其實遇到了兩個主要的問題,在paper里,我們把它們總結為:multi-task learning和multi-query localization。更多詳細的內容大家可以參閱我們的論文,這里我們簡單介紹一下:
對于multi-task learning,主要是由于目標檢測其實本身就帶有定位和分類兩個任務,這兩個任務對特征其實有著不同的偏好。這其實在之前許許多多工作中都有大佬提到了,因此許多目標檢測的工作通常會設計了兩條不同的分支(帶有額外卷積結構)分別對應于分類和回歸。而detr其實完全共享了同一組特征,在實驗中,我們發現如果只做patch的定位,不管分類的話,UP-DETR遷移到voc上效果會不好。這意味著定位和分類,特征偏好上確實是有沖突的。所以,為了在預訓練中權衡這兩個任務的偏好,我們固定了預訓練好的CNN權重,新增了一個叫patch feature reconstruction的分支。motivation就是希望經過transformer的特征能保持和經過CNN后的特征一致的分類判別性。
對于multi-query localization,主要是說對于DETR,decoder其實有100個object query,這100個object query其實是100個網絡隱式學到的空間位置偏好的embedding。我們實際上是隨機搞了M個query patch,因為patch可能會在任意位置,直覺上得一個patch加到多個object query上,所以我們討論了一下如何在預訓練過程中,把這M個query patch分配到100個embedding上去。我們從最簡單的single-query開始介紹,把它拓展到了支持multi-query的預訓練。對于multi-query,我們認為有兩個要滿足的條件,第一個是 query之間框的預測是獨立的,所以我們提出了一個放在decoder上的attention mask,保證query之間彼此不可見。第二個是100個embedding和M個query patch應當是沒有任何位置先驗限制的,我們提出了object query shuffle的方法去達到這種隨機性。
解決了這倆問題,UP-DETR的預訓練過程如下圖所示,除此之外,下游目標檢測的微調是和訓DETR一模一樣的:
在實驗中,通過在ImageNet上無監督預訓練,UP-DETR在VOC和COCO上都取得了更快的收斂和更高的精度。即便在充足長的訓練epoch下,VOC上仍然有3 AP以上的提升,而對于COCO,UP-DETR仍然可以獲得0.7 AP的提升(42.8 AP)。要知道的是,對于在充足訓練時間下的COCO,預訓練CNN對于Faster R-CNN已經不重要了,但是對于DETR而言,預訓練CNN和transformer仍然能提升其性能。
最后的話,怕大家誤解,我先提前辯解一下,我們和DETR用的是一模一樣的模型結構,都是沒有FPN,以ResNet50最后一層作為encoder特征輸入(當然,由于attention高昂的復雜度也做不了FPN),這導致了小物體依舊挺拉跨,所以AP的提升比起deformable DETR和sparse R-CNN自然會低一些(噗通)。我覺得吧,站在通用視覺表征的立場上,這鍋怎么也得分給ResNet一半吧。希望知乎大佬們輕噴(害怕.jpg)。
上述論文和代碼下載
后臺回復:UP-DETR,即可下載上述論文PDF和項目源代碼
后臺回復:CVPR2021,即可下載CVPR 2021論文和開源代碼合集
點擊下方卡片并關注,了解CV最新動態
重磅!CVer-Transformer交流群成立
掃碼添加CVer助手,可申請加入CVer-Transformer方向?微信交流群,也可申請加入CVer大群,細分方向已涵蓋:目標檢測、圖像分割、目標跟蹤、人臉檢測&識別、OCR、姿態估計、超分辨率、SLAM、醫療影像、Re-ID、GAN、NAS、深度估計、自動駕駛、強化學習、車道線檢測、模型剪枝&壓縮、去噪、去霧、去雨、風格遷移、遙感圖像、行為識別、視頻理解、圖像融合、圖像檢索、論文投稿&交流、Transformer、PyTorch和TensorFlow等群。
一定要備注:研究方向+地點+學校/公司+昵稱(如Transformer+上海+上交+卡卡),根據格式備注,才能通過且邀請進群
▲長按加微信群
▲點擊上方卡片,關注CVer公眾號
整理不易,請給CVer點贊和在看!
總結
以上是生活随笔為你收集整理的CVPR 2021 Oral | Transformer再发力!华南理工和微信提出UP-DETR:无监督预训练检测器...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dynamicCondition v3.
- 下一篇: 求当前高度=n时,值x=多少?求解题思路