<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          統(tǒng)一視角理解目標檢測算法:最新進展分析與總結

          共 5591字,需瀏覽 12分鐘

           ·

          2020-12-12 01:06

          ↑ 點擊藍字?關注極市平臺

          作者丨王Sr@知乎
          來源丨h(huán)ttps://zhuanlan.zhihu.com/p/333743702
          編輯丨極市平臺

          極市導讀

          ?

          本文是一篇目標檢測算法的進展總結與分享,作者用更為清晰的體系框架,去幫助大家更好的理解現(xiàn)有的目標檢測算法機器的發(fā)展。通過對目標檢測問題的建模方式進行更為細致的探討與分析,引出Dense or Multi-stage refine是提高檢測算法性能的關鍵,合理折中效果更佳的觀點。>>12月10日(周四)極市直播|湯凱華:利用因果分析解決通用的長尾分布問題

          這是一篇目標檢測算法的進展總結與分享。和以往的很多總結不同,本文不會以論文為中心介紹各種算法,而是嘗試以更統(tǒng)一的視角看待目標檢測算法及其發(fā)展。首先先多啰嗦幾句,也算是給本文定個基調:目標檢測中有好多概念,例如兩階段、單階段、anchor-free、anchor-based等等,但其實這些概念并沒有十分嚴密的理論體系,也沒有非常明確的劃分標準,這也導致目前目標檢測領域的研究看起來比較混亂。所以本文嘗試理出一條更為清晰的體系框架,來更好的理解現(xiàn)有的目標檢測算法,或是給以后的研究提供一個更清晰的思路。

          前言

          從我個人的理解來說,目前基于深度學習的端到端算法大體都由輸入+網(wǎng)絡+輸出組成。遵循這個思路,目標檢測算法研究大致也可以大致分為三類,一類從輸入的角度入手,研究在訓練及測試過程中將怎樣的圖像輸入網(wǎng)絡和怎樣將圖像輸入網(wǎng)絡,例如多尺度訓練和測試、data-augmentation、數(shù)據(jù)resampling等等;另一類則從輸出的角度入手,研究應該怎樣對檢測問題進行建模,也就是研究網(wǎng)絡應該輸出怎樣的形式,以滿足目標檢測任務的需求;最后一類則從網(wǎng)絡的角度入手,研究怎樣的網(wǎng)絡結構可以更好的連接輸入與輸出,根據(jù)輸入更高效的提取更為有效的特征用以得到更準確的輸出,這一類的研究也很多,例如研究FPN等等。當然,雖然上面總結成了三個方面,但并不意味著這三類研究相互獨立,實際算法設計時,上面的三個方面可能會相互影響,只有相互匹配才能取得更好的效果。而本文將重點對其中的第二類,也就是從輸出形式的角度對目標檢測算法進行分析與介紹,這類問題也是目前在目標檢測領域我個人看到的最多被研究也是最值得被研究的問題,因為“輸入”與“網(wǎng)絡”很大程度上會服務于“輸出”。

          multi-region classification & regression

          那么接下來進入正題,重點對目標檢測問題的建模方式進行更為細致的探討與分析。建模方式之所以會成為目標檢測領域的重點問題,主要原因就在于目標檢測問題的輸出形式更為復雜,具有不確定性,這里可以對照圖像分類問題來看,圖像分類問題的輸出形式就是一個簡單的類別,輸出形式是與輸入無關的;但是目標檢測問題則不一樣,圖片中的物體個數(shù)并不確定,可能包含數(shù)十個物體,但也可能壓根就沒有物體,而這種不定數(shù)量的輸出就會給算法的設計帶來很大的問題。因此,我們需要考慮怎樣對目標檢測問題進行建模,使其輸出形式固定下來。而目前廣為采納的建模方式是采用了分治的方式,也就是說在一張圖片上預定義若干regions(這些regions在圖片的不同位置,具有不同的長寬,也可以相互重疊),然后對每個region逐一進行分類與回歸,更具體的解釋分類與回歸任務就是:這個region附近是否存在物體,如果存在,那么這一物體是什么類別,而它的位置相對于這個region又在哪里。也就是說,目標檢測任務被建模成了multi-region classification & regression。
          如果我們接納了這個建模思路,那么接下來我們需要解決的問題就是:1)我們應該怎樣設計這個“region”:例如應該設計多少個“region”,每個“region”該長什么樣子,這些“region”又該在圖片的什么位置?;2)每個“region”應該負責多大的范圍?換句話說每個“region”都需要“管轄”它周圍的區(qū)域,負責找到它周圍的物體,但這個“管轄范圍”怎樣定義?3)我們怎樣更有效的提取每個“region”的特征,完成分類和回歸任務,也就是找到它負責區(qū)域范圍內的物體。接下來我將對這三個問題進行更具體的介紹。
          首先來聊一聊第一個問題,“region”這個概念。
          它的含義很廣,在不同的論文方法里也有不同的名字:例如更早期的傳統(tǒng)sliding windows檢測算法中,它叫做windows;在RetinaNet等anchor-based的算法中,它的名字叫做anchor(在圖片中不同位置密集平鋪的一系列不同尺度、不同長寬比的框);而在FCOS等anchor-free的算法中,它又代表著anchor point(再解釋一下就是,雖然這類anchor-free的算法中沒有anchor的概念,但實際上這類算法依舊需要在feature map上的每個位置上進行輸出,實際上每個輸出依舊隱式地代表了圖片中的某個區(qū)域,從這個角度說,這類算法和anchor-based方法在思路上沒啥太多差別,或者說只是回歸時的reference不太一樣)。而下一個問題就是這個“region”怎么設計,這個問題可能不能一概而論,而是需要因地制宜。更具體的說,這個“region”的設計更多的反映的是對于所需要解決的問題及場景的先驗,例如:如果我們要檢測的物體都是瘦長的,比如說行人,那么我們的這個region就可以更多的設計為瘦長的形狀;再比如,如果我們知道物體更可能出現(xiàn)在哪個區(qū)域,那么我們就可以在這個區(qū)域鋪設更多的“region”,當然這個場景在目標檢測領域不太常出現(xiàn),但或許我們可以把單目標跟蹤任務理解為這種情況。
          接下來再來聊一聊第二個問題,每個“region”應該負責多大的范圍。
          這個問題在我個人理解中可能是目標檢測領域最難解決的問題之一。每個“region”都應該“管轄”它周圍的區(qū)域,負責找到它附近的物體,但是問題就在于這個“管轄范圍”應該怎樣定義:一方面,我們需要保證這個“管轄范圍”足夠大,足以使得無論物體出現(xiàn)在圖片的哪個位置,都會使其至少落入一個“region”的“管轄范圍”,這是高recall的必要條件。另一方面,我們又需要保證這個“管轄范圍”不太大,最直白的解釋就是我們顯然不可能讓位于圖片左上角的region判斷圖片右下角是否有物體;另外,我們還需要考慮盡可能避免歧義的發(fā)生,如果有兩個物體出現(xiàn)在一個“region”的周圍,那么這個“region”就會困惑究竟應該關注哪個物體。
          而這個“管轄范圍”的設定,也和第一個問題中“region”的設定息息相關,這兩個問題通常會被一起考慮與研究。例如,如果“region”稀疏,就需要“管轄范圍”一些,而如果“region”密集,“管轄范圍”就可以一些。但問題遠沒有這么簡單,我們在設定“region”和“管轄范圍”的時候還會遇到很多問題,例如:在圖片中,往往有些區(qū)域物體很密集,而有些區(qū)域又很稀疏,怎樣設計可以使其兼顧不同的物體密度的區(qū)域?再如:圖片中的物體的尺度、形狀非常多變,對于各種形態(tài)的物體,怎么設計“region”并以統(tǒng)一的規(guī)則定義“管轄范圍”?還有:“region”的數(shù)量直接決定了計算成本,一般來說越多的“region”就意味著越高的計算成本;除此之外,如果“region”設計的很密集,而“管轄范圍”又比較小,那么就會導致訓練過程中絕大多數(shù)的“region”都被定義為負樣本,也就需要面對正負樣本極端不平衡的問題。
          而上述問題在論文中一般被定義為anchor design & label assignment。我們可以看一下現(xiàn)有算法都是怎么做的:RetinaNet在圖片上均勻平鋪了一系列不同尺度、不同長寬比的region(anchor),并基于gt bbox(ground truth bounding box)和anchor的IoU,定義了“管轄范圍”;而FCOS等anchor-free算法中則平鋪了一系列anchor point,并采用中心點距離+尺度約束的方式定義了“管轄范圍”;ATSS中提出設置自適應的閾值,來定義“管轄范圍”;當然上述方案都是靜態(tài)的設定了“管轄范圍”,近年出現(xiàn)了另一類改進方案,諸如FreeAnchor,AutoAssign,PAA等算法中則提出了動態(tài)的 “管轄范圍”設置方案(即“管轄范圍”與網(wǎng)絡的輸出相關);當然還有很多論文提出了各種各樣的方案,這里就不一一列舉了,之前也有很多文章對這一部分有過更具體的介紹。
          Dense or Multi-stage refine
          對于anchor design & label assignment的問題,可能還有另一種更巧妙的方式,而這種方式甚至在很早之前就被提出,那就是通過級聯(lián)的方式來應對這個問題,也就是通過設置多級multi-region classification & regression,每一級以上一級的輸出結果作為新的region進一步進行refine。這種架構為后續(xù)算法的設計提供了極大的便利:首先,可以為每一級設置不同的“管轄范圍”規(guī)則,由松到嚴,初始幾級保證recall,最后幾級保證precision;其次,每一級都可以僅處理上一級的輸出中可能包含物體的regions(sparse regions),使得進一步加速水到渠成;除此之外,這一方案還提供了特征對齊的特性(關于這一點AlignDet中有更具體的介紹)。
          實際上,如果想要得到更理想的檢測算法性能,我們就需要研究dense和multi-stage refine之間的折中;在沒有任何先驗的情況下,sparse & single-stage的方案理論上就存在本質缺陷,一定難以取得最理想的性能。而在此框架下,一切對region和“管轄范圍”的改進方案都算是錦上添花,可以進一步推動上述平衡的極限,但仍舊無法進入sparse & single-stage的“禁區(qū)”。
          而近幾年的目標檢測算法在建模方式上的改進大體也遵循了這個思路:有些致力于解決極端正負樣本不平衡問題以使得dense anchor發(fā)揮出更大的作用,例如RetinaNet (Focal loss);有些則設計各種多級refine的方案,例如Faster RCNN,Cascade RCNN, RefineDet,RPDet,AlignDet,Guided anchoring,Cascade RPN等;有些則嘗試提出更有效的region & label assignment方案,例如FCOS,CenterNet,ATSS,F(xiàn)reeAnchor等。
          最后,再來討論一下第三個問題,如何有效提取每個region的特征。
          用以完成分類與回歸的任務。首先,我們可以考慮多個區(qū)域共享由全圖提取的特征,而無需逐區(qū)域計算特征(Fast R-CNN中提出);其次,CNN可以提取“規(guī)范”區(qū)域的特征,即落在grid上、長寬比一定的區(qū)域的特征;而對于“非規(guī)范”區(qū)域,可以通過池化/插值的形式得到這些區(qū)域的特征(ROI pooling/ROI Align/Deformable Conv w. specified offsets等)。從這個角度說,如果把anchor理解為original proposal,那么faster r-cnn等一系列multi-stage detector中rpn和r-cnn所做的事情并沒有本質差別。

          總結

          總結一下全篇的內容:首先本文將目標檢測問題定義為了multi-region classification & regression,然后通過對design of regions and label assignment的分析,引出了如下觀點:Dense or Multi-stage refine是提高檢測算法性能的關鍵,合理折中效果更佳。
          最后,簡單分析一下最近比較熱門的DETR算法。首先,DETR仍舊屬于本文所述框架,驗證了sparse + multi-stage的可行性,只是一次性跨出了很多步,使得給人感覺有些陌生。但這些步究竟是否必要,還有待進一步研究。而從目前出現(xiàn)的幾篇DETR改進及相關算法可以看出,尋求dense & multi-stage的折中,依舊是DETR的核心改進方向之一。關于這一系列算法,將在作者的下一篇文章中進行更具體的分析。
          最后的最后,再引一下之前寫的同系列的文章,歡迎關注、點贊、收藏。
          https://zhuanlan.zhihu.com/p/121839698


          推薦閱讀




          添加極市小助手微信(ID : cvmart2),備注:姓名-學校/公司-研究方向-城市(如:小極-北大-目標檢測-深圳),即可申請加入極市目標檢測/圖像分割/工業(yè)檢測/人臉/醫(yī)學影像/3D/SLAM/自動駕駛/超分辨率/姿態(tài)估計/ReID/GAN/圖像增強/OCR/視頻理解等技術交流群:月大咖直播分享、真實項目需求對接、求職內推、算法競賽、干貨資訊匯總、與?10000+來自港科大、北大、清華、中科院、CMU、騰訊、百度等名校名企視覺開發(fā)者互動交流~

          △長按添加極市小助手

          △長按關注極市平臺,獲取最新CV干貨

          覺得有用麻煩給個在看啦~??
          瀏覽 70
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美色图视频一区 | 亚洲日韩一 | www.97.色色 | 成人午夜无码视频 | 国产激情性爱小说视频 |