CVPR 2021 华南理工和微信的Transformer:UP-DETR无监督预训练检测器
點擊上方“機器學習與生成對抗網絡”,關注星標
獲取有趣、好玩的前沿干貨!
作者:飛奔的啦啦啦? ?知乎
https://www.zhihu.com/question/432321109/answer/1606004872
論文標題:
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)。
論文:https://arxiv.org/abs/2011.09094
中cvpr oral啦!代碼和預訓練模型已經開源:
https://github.com/dddzg/up-detr
猜您喜歡:
超100篇!CVPR 2020最全GAN論文梳理匯總!
拆解組新的GAN:解耦表征MixNMatch
StarGAN第2版:多域多樣性圖像生成
附下載 |?《可解釋的機器學習》中文版
附下載 |《TensorFlow 2.0 深度學習算法實戰》
附下載 |《計算機視覺中的數學方法》分享
《基于深度學習的表面缺陷檢測方法綜述》
《零樣本圖像分類綜述: 十年進展》
《基于深度神經網絡的少樣本學習綜述》
總結
以上是生活随笔為你收集整理的CVPR 2021 华南理工和微信的Transformer:UP-DETR无监督预训练检测器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一款极简的原生农历日期滚动选择器(小程序
- 下一篇: 织梦任意前台密码修改漏洞复现