回覆列表
-
1 # 視覺Slam學習社群
-
2 # AI約讀社
深度學習時代,目標檢測領域湧現了大量的演算法,發展歷程如下:
RCNN Family:RCNN是目標檢測領域的一項傑出成果,它證明了使用深度神經網路的有效性,現在發展了一個龐大Family。例如:Faster RCNN、Mask RCNN等SSD & YOLO Family:與兩階段方法(如RCNN Family)相比,這些模型跳過了region proposal(區域建議)階段,直接從特徵對映中提取檢測結果。因此,單級模型速度更快,適合算力有限的device。Anchor Free:2019年,Anchor Free的方法大爆發,並且取得了不錯的成果。Anchor Free,其實可以看做是Single Anchor,每個object只有一個 anchor,對這個anchor進行類別分類、box和offset迴歸。不過有些anchor free的方法沒有做offset,從這點來看,這些演算法關注的是本身,而不是single anchor。Anyway,AnchorFree還是避免了anchor method中繁瑣的anchor decoded操作。DeTr:NLP領域工作者都知道,2018年transformer帶來了多大的影響。transformer取得了不錯的效果,基本上取代之前的model。CV看起來不像是transformer的領域,但仍然取得了不錯的成績,並解決了目前目標檢測無法解決的問題。所以,重要性不言而喻。用一個詞來形容DeTr:Elegant。因為再也無需設計anchor,新增NMS後處理等等。
目前主流的目標檢測演算法主要是基於深度學習模型,其可以分成兩大類:(1)two-stage檢測演算法,其將檢測問題劃分為兩個階段,首先產生候選區域(region proposals),然後對候選區域分類(一般還需要對位置精修),這類演算法的典型代表是基於region proposal的R-CNN系演算法,如R-CNN,Fast R-CNN,Faster R-CNN等;(2)one-stage檢測演算法,其不需要region proposal階段,直接產生物體的類別機率和位置座標值,比較典型的演算法如YOLO和SSD。目標檢測模型的主要效能指標是檢測準確度和速度,對於準確度,目標檢測要考慮物體的定位準確性,而不單單是分類準確度。一般情況下,two-stage演算法在準確度上有優勢,而one-stage演算法在速度上有優勢。不過,隨著研究的發展,兩類演算法都在兩個方面做改進。Google在2017年開源了TensorFlow Object Detection API,並對主流的Faster R-CNN,R-FCN及SSD三個演算法在MS COCO資料集上的效能做了細緻對比。Facebook的FAIR也開源了基於Caffe2的目標檢測平臺Detectron,其實現了最新的Mask R-CNN,RetinaNet等檢測演算法。