one stage物體檢測框架總體效能低於two stage框架的根本原因是什麼?

時間 2021-05-30 11:41:16

1樓:forest

個人理解,一階段方法提出的主要意義在於速度快,所以解析度比二階段方法低是必然,如果放棄了速度,談準確率,二階段方法做的精細一些。

2樓:KevenLee

如果是用AP來衡量的效能,在 backbone 一致,fpn 之類都用的情況下,那大體上會是 one-stage 要弱於 two-stage,但這也不能絕對。如果用了很多 tricks 的 one-stage,比如現在紅紅火火的 yolov4,那是detection tricks的大整合, 其效果並不會太差。但,很多 one-stage 用的 tricks 總體上也是可以在 two-stage 上應用的。

so, 個人覺得,one-stage 和 two-stage 的比較,拋開 tricks 不說,很大乙個原因是因為所謂的特徵不對齊,refineDet 在一定程度縮小了這個差距,AlignDet 進一步提出了解決這個問題的方法,效果都是不錯的,另外,one-stage 訓練過程中,其樣本不平衡問題要比 two-stage 的要嚴重一些,這也可能是導致 AP 稍差的原因。再說到 fps 的問題,個人覺得,two-stage 的 detect head 是拖累 fps 的乙個重要因素,採用 light detect head 可以縮小 two-stage 和 one-stage 在 fps 上的差距,另外,在 RCNN 階段,每個 ROI 都要過一遍,這個肯定要比 one-stage 慢,減少這個階段的 ROI 數量,fps 應該也可以提速,效果嘛,嘿嘿。

3樓:rootkitchao

one-stage物體檢測框架總體效能針的低於two-stage框架麼?

這個對比本身就不嚴謹,沒有限制條件(計算量/執行速度/記憶體,backbone是否一致,或者乾脆是同一硬體條件下能做到的最高準確度?)

對比兩個典型的檢測器:SSD和Faster RCNN,發表時間都在2023年,SSD的效能並不差。

原版SSD VS 原版Faster RCNN,backbone是VGG

如果沒記錯的話這個說法最初是在Focal Loss那篇文章裡提出來的,可是那篇文章本身寫的就是換上Focal Loss之後SSD的準確度不輸Faster RCNN。

Focal Loss對SSD的提公升很明顯,這張表裡Faster RCNN資料有誤

考慮到後來的研究中各種各樣的tricks漲點還有各種NAS、資料增強的影響很多,這裡只對比RetinaNet(one-stage)和Faster RCNN/Mask RCNN(two-stage),資料來自detectron2提供的Model Zoo進行對比(儘量減少影響因素)。環境:8 NVIDIA V100 GPUs & NVLink,PyTorch 1.

3, CUDA 9.2, cuDNN 7.4.

2 or 7.6.3,train batch_size=16

看上去在detectron2 model zoo中2階段檢測器的box AP比用上了Focal Loss的一階段檢測器依然有優勢,但是這裡還有乙個細節:輸入解析度不一樣,RetinaNet的輸入解析度是640*640,detectron2中的Faster RCNN/Mask RCNN是1333*800,這帶來了額外的優勢(對MSCOCO中的小目標會特別明顯),而兩階段檢測器的推理速度則慢了好幾倍。

NAS-FPN VS FPN VS MASK-RCNN

NAS-FPN一文中的對比更加直觀,在輸入解析度接近的情況下(1024*1024 VS 1280*800),相同backbone的情況下RetinaNet(圖中標註為FPN)的準確度甚至比Mask RCNN更高一些。

EfficientDet

至於MSCOCO上刷點,很大程度上不是單階段/雙階段的問題,而是能不能找到有效的tricks,用NAS找到更適合目標檢測的backbone/head。這些都用上了的EfficientDet也能摸到50以上的mAP。

所以應該認為,」one-stage物體檢測框架總體效能低於two-stage框架「這個命題本身不成立

4樓:托比昂

本人菜雞,只能用現階段知識儲備回答一波,下文中主要用到faster rcnn和SSD兩個經典演算法在voc資料集上進行說明。

faster rcnn首先使用RPN去提取2000個目標候選框,然後使用第二階段的box head完成目標探測。首先看RPN,講道理RPN幹的事情和SSD本質上沒啥太大區別,但是RPN的任務會更簡單一些,因為它不區分類別,RPN把所有物體類別都當成一類,但是SSD需要區分20種不同的目標類別,RPN和SSD在訓練過程中同樣面對正負錨框不平衡問題,但是由於不用區分類別,顯然RPN的訓練會比SSD更加簡單一些。說完第一階段再來看第二階段,有了RPN提供的2000個錨框,box head的訓練也會更加的容易,畢竟把大部分的負樣本過濾掉了,因此綜上所述,faster rcnn通過把任務拆分成兩個階段,使得每個階段做的事情都會比SSD直接一步完成要簡單很多,因此效能也會更好一些。

one stage目標檢測演算法中,淺層特徵圖檢測小目標,為什麼不同時也檢測大目標?

YaqiLYU 問 淺層特徵圖檢測小目標,為什麼不同時也檢測大目標?答 簡單來說就是感受野不夠。只有特徵圖的感受野大於目標大小時才能正確檢測,不然就是瞎猜為主,一般要兼顧該層特徵圖的stride和感受野receptive field設定anchor,保證感受野大於anchor,感受野越大越好。就這樣...

One Stage目標檢測演算法可以直接回歸目標的座標是什麼原理?

我談談我淺顯的理解,以retinanet回歸為例。onestage的回歸任務我認為可以當作是一種打分。卷積的過程就是卷積核以一定的步長滑動,以乙個固定大小的感受野感受物體的不同位置並打分。最後經過f scores 得到最後邊框的回歸值。感受野正好覆蓋待檢測物體時,得分會高,覆蓋部分待檢測物體或者是不...

抗體檢測,核酸檢測,各自優缺點是啥,檢測病毒時誰的綜合性能更強?

學技巧 抗體檢測儘管有便捷 快速的優勢,但目前還不可能替代核酸檢測。如何將病毒抗體 抗原 檢測方法與病毒核酸檢測方法聯合應用,發揮各自優勢,急需進行評價和驗證。目前針對新型冠狀病毒檢測試劑分成兩類,一類是對病毒的直接檢測,一類是間接檢測。直接檢測就是目前實驗室廣泛應用的針對病毒的核酸檢測,檢測新型冠...