博客專欄

        EEPW首頁 > 博客 > 中科院最新開源!無需訓練也能讓DETR輕松漲點!真正的"即插即用"來了!

        中科院最新開源!無需訓練也能讓DETR輕松漲點!真正的"即插即用"來了!

        發布人:計算機視覺工坊 時間:2023-08-03 來源:工程師 發布文章
        0. 筆者個人體會

        DETR作為Transformer-based目標檢測模型,已經逐漸和YOLO系統的各大模型分庭抗禮,尤其是前段時間RT-DETR的發布,更是證明了Transformer模型大一統的趨勢。所以一直使用YOLO的小伙伴也可以嘗試使用下DETR模型。

        就在這兩天,中科院、百度、香港大學又聯合開源了RefineBox。本來以為又是像之前一樣設計一個Attention變體模塊,然后插入到網絡里重新訓練的套路。結果RefineBox竟然不需要重新訓練!直接插入到DETR模型里就可以提高定位能力!而且對Conditinal、DAB、DN-DETR這些DETR-like模型都適用!那么,具體是什么原理呢?我們一起來看看吧~

        1. 效果展示

        先來看一下具體效果!

        圖片

        可以發現,幾乎對于所有DETR-like模型,RefineBox都能提兩個點左右。而且對于Swin-Tiny模型僅增加了0.4M的參數量,對于ResNet模型僅增加了0.5M的參數量。重點是,無需重新訓練!模型直接插入到DETR模型中就可以漲點!這可太棒了!要知道以前所謂的"即插即用"模塊,都是以重新訓練為代價的,沒有模塊說自己可以直接嵌入到網絡中。

        圖片

        總之,效果非常好。代碼即將開源,感興趣的小伙伴可以關注一下。下面我們來看看具體的文章信息。

        2. 摘要

        針對DETR-like模型中的定位問題,我們提出了一個簡單、高效且通用的框架。我們將插件添加到訓練好的模型中,而不是低效地設計新模型并從頭開始訓練。該方法稱為RefineBox,通過輕量級的優化網絡對DETR-like檢測器的輸出進行優化。RefineBox只利用訓練好的檢測模型中的特征和預測框,易于實現和訓練。我們的方法也是有效的,因為我們在訓練過程中凍結了訓練好的檢測器。此外,我們可以很容易地將RefineBox推廣到各種訓練好的檢測模型中,而不需要做任何修改。我們在COCO和LVIS 1.0上進行了實驗。實驗結果表明了我們的RefineBox對于DETR及其代表性變體的有效性。例如,DETR、Conditinal-DETR、DAB-DETR和DN-DETR的性能增益分別為2.4 AP、2.5 AP、1.9 AP和1.6 AP。我們希望我們的工作能引起檢測界對當前DETR-like模型定位瓶頸的關注,以及RefineBox框架的潛力。

        3. 算法解析

        DETR模型是將目標檢測轉為集合預測的方式,從而省去NMS后處理,也無需人為設置anchor。另一方面,目標檢測可以分為兩個子任務:分類和定位。

        那么,限制DETR模型性能提升的瓶頸是什么呢?

        RefineBox詳細分析了這一過程,在DETR模型輸出結果(定位+分類)以后,首先使用匈牙利匹配得到與Ground Truth匹配的檢測結果,然后分別去探索分類和定位對性能提升的影響。具體來說,就是一方面將DETR輸出的分類調整為Ground Truth,一方面將定位結果再單獨調整為Ground Truth,分別去查看性能提升了多少(好巧妙的思路)。

        圖片

        結果發現,將分類調整為真值,對性能并沒有太大提升,但將定位調整為真值,性能提升很明顯!仔細想想,這實際上也是增加正樣本權重的過程

        RefineBox實際上就是盯上了"定位"這一過程。

        讓我們來看看具體的網絡架構:

        RefineBox主要分為兩部分,一方面通過FPN提取原始DETR模型中的多尺度特征,另一方面提取DETR輸出的分類框,借助多尺度特征來優化box坐標。具體來說,Refiner的輸入為box和特征金字塔,每個Refiner包括ROI Align層、殘差模塊以及MLP,借助box的真值來優化box坐標。注意,所有Refiner模塊的權重是共享的。

        圖片

        訓練損失函數上就沒啥可說的了,因為重點在定位,所以沒有計算分類損失,只使用GIoU和L1來計算分類損失。還需要注意的是,未包含預測真值的物體邊界框沒有參與優化。

        這里再次推薦「3D視覺工坊」新課程《目標檢測中的視覺Transformer》

        說到這里,其實RefineBox和兩階段目標檢測網絡很像,也就是先生成提議,再優化。不同的是RefineBox第一階段生成了具體的檢測結果,而不是像傳統的兩階段網絡那樣去拒絕提議。與遷移學習也不太一樣,RefineBox沒有對預訓練模型進行微調或者重新訓練。從這一點來看,RefineBox是思想還是很新的,這種想法應用到別的領域來水一篇文章應該很容易。

        4. 實驗結果

        RefineBox在COCO數據集上相較于DETR-R50、Conditional-DETR-R50、DAB-DETR-R50、DN-DETR-R50分別提升了2.4、2.5、1.9、1.6的AP,性能提升可以說非常好了。對于更強的backbone(ResNet101和Swin-Tiny),性能提升同樣很高。當然筆者覺得性能提升本身不是關鍵,這種探索性能提升具體原因的思想更為重要。

        圖片

        在LVIS也有和COCO相同的結果。

        圖片

        這篇文章很有意思的一點是,它深入分析了性能提升的真正原因。我們在看很多所謂的"即插即用"的論文時,真的想忍不住吐槽"參數量增加這么多,性能不提升才有問題好吧""多訓練了幾十個epoch,性能肯定會更好啊"。但是RefineBox這篇文章里,作者對這個問題進行了詳細分析。具體來說,作者重新訓練了具有相似GFLOPs的DAB-DETR-R50+(b),同時也觀察不使用RefineBox但訓練更多的epoch(c),證明了性能提升的原因不是參數量、不是FLOPs,也不是多余的訓練時長。其他同類的實驗還有很多,比如添加額外的分類優化,證明性能會不會進一步提升,結果是性能提升非常微小(d)。很有意思的一個點是,作者嘗試了同時訓練DETR和RefineBox,結果性能反而下降了,進一步證明了RefineBox是直接應用于預訓練權重上。

        圖片

        5. 總結

        RefineBox感覺是一項很有意思的工作,其他所謂的"即插即用"模塊,大多都是指嵌入到模型中重新訓練然后性能提升,但這些理論就很矛盾"參數量增加了,FLOPs增加了,訓練時間增加了,性能提升不是必然的?",所以很多文章的結論就顯得沒那么有說服力。而RefineBox這項工作,提出了一個不需要重新訓練就可以使用的模塊,做到了真正意義上的"即插即用"。

        但是,筆者覺得,這項工作最大的意義,不在于提出了一個新方法新模塊。而在于它分析問題的思路非常的合理,探索問題的邏輯讓人聽起來很信服,而且也使用各種實驗證明了性能提升的真正原因就是他們所提的,整篇文章讀起來很舒服。筆者覺得這一點更應該深入學習。


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: AI

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 民和| 棋牌| 安塞县| 霍城县| 东莞市| 永丰县| 滦平县| 博爱县| 海安县| 宁夏| 新建县| 莆田市| 绥阳县| 浠水县| 垦利县| 和龙市| 秦安县| 平舆县| 汽车| 当雄县| 房山区| 临安市| 峨山| 怀宁县| 思南县| 阿克| 泽州县| 杨浦区| 万宁市| 盐源县| 贺州市| 阿克| 岚皋县| 靖安县| 鹰潭市| 衢州市| 西贡区| 迁安市| 北流市| 南京市| 曲阳县|