9.1.1 簡述目標檢測領域中的單階段模型和兩階段模型的性能差異及其原因

9.1目標檢測

場景描述

  • 目標檢測(Object Detection)任務是計算機視覺中極為重要的基礎問題,也是解決實例分割(Instance Segmentation)、場景理解(Scene Understanding)、目標跟蹤(ObjectTracking)、圖像標注(Image Captioning)等問題的基礎

  • 目標檢測,顧名思義,就是檢測輸入圖像中是否存在給定類別的物體,如果存在,則輸出物體在圖像中的位置信息。這里的位置信息通常用矩形邊界框(bounding box)的坐標值來表示。

  • 物體檢測模型大致可以分為單階段(one-stage)模型兩階段(two-stage)模型兩大類。

  • 本節分析和對比了這兩類模型在架構、性能和效率上的差異,給出了原理解釋,并介紹了其各自的典型模型和發展前沿,以幫助讀者對物體檢測領域建立一個較為全面的認識。

知識點
物體檢測、單步模型、兩步模型、R-CNN系列模型、YOLO系列模型

9.1.1 簡述目標檢測領域中的單階段模型和兩階段模型的性能差異及其原因

  • 單階段模型

    • 單階段模型是指沒有獨立地、顯式地提取候選區域(region proposal),直接由輸入圖像得到其中存在的物體的類別和位置信息的模型。

    • 典型的單階段模型有

      • OverFeat[1]、
      • SSD(Single Shotmultibox-Detector)[2]、
      • YOLO(You Only Look Once)[3-5]系列模型等。

兩階段模型

  • 兩階段模型獨立的、顯式的候選區域提取過程,即先在輸入圖像上篩選出一些可能存在物體的候選區域,然后針對每個候選區域,判斷其是否存在物體,如果存在,就給出物體的類別和位置修正信息。

  • 典型的兩階段模型有

    • R-CNN [6]
    • SPPNet [7]
    • Fast R-CNN[8]
    • Faster R-CNN[9]
    • R-FCN[10]
    • Mask R-CNN[11]等
    性能差異

    圖9.1總結了目標檢測領域重一些典型模型(包括單階段和兩階段)的發展歷程(截止2017年年底)[12]。

    在這里插入圖片描述

    一般來說,單階段模型計算效率上有優勢兩階段模型檢測精度上有優勢

    參考文獻[13]對比了Faster R-CNN和SSD等模型在速度和精度上的差異,如圖9.2所示。

    在這里插入圖片描述

注:圖9.2中,SSD的顏色是棕色圓圈。R-FCN是深綠色圓圈。

可以看到:

當檢測時間較短時,單階段模型SSD能取得更高的精度;

而隨著檢測時間的增加,兩階段模型Faster R-CNN則在精度上取得優勢。

在速度和精度上的差異原因

對于單階段模型與兩階段模型在速度和精度上的差異,學術界一般認為有如下原因。

  1. 摘要兩階段模型有獨立候選框提取步驟,所以到第二步分類和修正候選框的時候,正負樣本比例平衡

    單階段模型負樣本比例較大

  • 單階段模型:大多數單階段模型是利用**預設的錨框(Anchor Box)**來捕捉可能存在于圖像中各個位置的物體。

    因此,單階段模型會對數量龐大的錨框進行是否含有物體及物體所屬類別的密集分類

    由于一幅圖像中實際含有的物體數目遠小于錨框的數目,因而在訓練這個分類器時正負樣本數目是極不均衡的,這會導致分類器訓練效果不佳

    RetinaNet(14)通過Focal Loss抑制負樣本對最終損失的貢獻以提升網絡的整體表現

  • 兩階段模型:在兩階段模型中,由于含有獨立的候選區域提取步驟第一步就可以篩選掉大部分不含有待檢測物體的區域(負樣本),在傳遞給第二步進行分類和候選框位置/大小修正時,正負樣本的比例已經比較均衡,不存在類似的問題

  1. 摘要兩階段模型修正了兩次候選框單階段模型沒有修正,所以單階段模型質量較差
  • 兩階段模型:在候選區域提取的過程會對候選框的位置和大小進行修正,因此在進入第二步前,候選區域的特征已被對齊,這樣有利于為第二步的分類提供質量更高的特征。

    另外,兩階段模型在第二步中候選框會被再次修正,因此一共修正了兩次候選框,這帶來了更高的定位精度,但同時也增加了模型復雜度

  • 單階段模型:沒有候選區域提取過程,自然也沒有特征對齊步驟,各錨框的預測基于該層上每個特征點的感受野,其輸入特征未被對齊,質量較差,因而定位和分類精度容易受到影響

  1. 摘要:兩階段模型在第二部對候選框進行分類和回歸時,受累于大量候選框,所以兩階段模型存在計算量大、速度慢的問題
  • 兩階段模型:以Faster R-CNN為代表的兩階段模型在第二步對候選區域進行分類和位置回歸時,是針對每個候選區域獨立進行的,因此該部分的算法復雜度線性正比于預設的候選區域數目,這往往十分巨大,導致兩階段模型的頭重腳輕(heavy head)問題。

    解決:近年來雖然有部分模型(如Light-Head R-CNN[15])試圖精簡兩階段模型中第二步的計算量,但較為常用的兩階段模型仍受累于大量候選區域,相比于單階段模型仍存在計算量大、速度慢的問題。

最新的一些基于

  • 單階段模型的物體檢測方法有CornerNet[16]、RefineDet[17]、ExtremeNet[18]等

  • 兩階段模型的物體檢測方法有PANet[19]、Cascade R-CNN[20]、Mask Score R-CNN[21]等

參考文獻:

[1]SERMANET P, EIGEN D, ZHANG X, et al. OverFeat: Integrated recognition,localization and detection using convolutional networks[J]. arXiv preprintarXiv:1312.6229,2013.
[2]LIU W,ANGUELOV D, ERHAN D, et al. SSD: Single shot multibox detector[C]//European Conference on Computer Vision. Springer, 2016: 21-37.
[3]REDMON J,DIVVALA S, GIRSHICK R, et al. You only look once: Unified, real-time object detection[C]//Proceedings of the IEEE Conference on ComputerVision and Pattern Recognition, 2016: 779-788.
[4] REDMON J, FARHADI A. YOLO9000: Better, faster, stronger[C]//Proceedingsof the IEEE Conference on Computer Vision and Pattern Recognition, 2017:7263-7271.
[5]REDMON J, FARHADI A. YOLOv3: An incremental improvement[J]. arXivpreprint arXiv:1804.02767,2018.
GIRSHICK R, DONAHU J,DARRELL T, et al. Rich feature hierarchies for[9]accurate object detection and semantic segmentation[C]//Proceedings of theIEEE Conference on Computer Vision and Pattern Recognition, 2014:580-587.
[7] HE K,ZHANG X, REN S,et al. Spatial pyramid pooling in deep convolutionalnetworks for visual recognition[J]. IEEE Transactions on Pattern Analysisand Machine Intelligence, IEEE, 2015,37(9):1904-1916.
[8]GIRSHICK R. Fast R-CNN[C]//Proceedings of the IEEE International Conferenceon Computer Vision, 2015: 1440-1448.
[9]REN S,HE K,GIRSHICK R, et al. Faster R-CNN: Towards real-time objectdetection with region proposal networks[C]//Advances in Neural InformationProcessing Systems, 2015:91-99.
[10] DAI J, LI Y, HE K, et al. R-FCN: Object detection via region-based fully convolutional networks[C]//Advances in Neural Information Processing Systems, 2016: 379-387.

[11] HE K, GKIOXARI G, DOLLáR P, et al. Mask R-CNN[C]//Proceedings of the IEEE International Conference on Computer Vision, 2017: 2961-2969.
[12] LIU L, OUYANG W, WANG X, et al. Deep learning for generic object detection:A survey[J]. arXiv preprint arXiv:1809.02165,2018.
[13] HUANG J, RATHOD V, SUN C, et al. Speed/accuracy trade-offs for modernconvolutional object detectors[C]//Proceedings of the IEEE Conference onComputer Vision and Pattern Recognition, 2017: 7310-7311.
[14] LIN T-Y,GOYAL P,GIRSHICK R, et al. Focal loss for dense object detection[C]//Proceedings of the IEEE International Conference on Computer Vision,2017:2980-2988.
[15] LI Z, PENG C, YU G, et al. Light-head R-CNN: In defense of two-stage objectdetector[J].arXiv preprint arXiv:1711.07264,2017.
[16] LAW H, DENG J. CornerNet: Detecting objects as paired keypoints[C]//Proceedings of the European Conference on Computer Vision, 2018:734-750.
[17] ZHANG S, WEN L, BIAN X, et al. Single-shot refinement neural network forobject detection[C]//Proceedings of the IEEE Conference on Computer Visionand Pattern Recognition, 2018: 4203-4212.
[18] ZHOU X, ZHUO J,KR?HENBüHL P. Bottom-up object detection by groupingextreme and center points[J]. arXiv preprnt arXiv:1901.08043,2019.
[19] LIU S, QI L,QIN H,et al. Path aggregation network for instance segmentation [C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2018:8759-8768.
[20] CAI Z, VASCONCELOS N. Cascade R-CNN: Delving into high qualityobject detection[C]//Proceedings of the IEEE Conference on Computer Visionand Pattern Recognition, 2018:6154-6162.
[21] HUANG Z,HUANG L, GONG Y,et al. Mask scoring R-CNN[C]//Proceedings ofthe IEEE Conference on Computer Vision and Pattern Recognition,2019:6409-6418.

參考文獻:

《百面深度學習》 諸葛越 江云勝主編

出版社:人民郵電出版社(北京)

ISBN:978-7-115-53097-4

2020年7月第1版(2020年7月北京第二次印刷)

推薦閱讀:

//好用小工具↓

分享一個免費的chat工具

分享一個好用的讀論文的網站

// 深度學習經典網絡↓

LeNet網絡(1989年提出,1998年改進)

AlexNet網絡(2012年提出)

VGGNet網絡(2014年提出)

LeNet、AlexNet、VGGNet總結

GoogLeNet網絡(2014年提出)

ResNet網絡(2015年提出)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/21753.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/21753.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/21753.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

詳解 Spark SQL 代碼開發之用戶自定義函數

一、UDF 一進一出函數 /**語法:SparkSession.udf.register(func_name: String, op: T > K) */ object TestSparkSqlUdf {def main(args: Array[String]): Unit {// 創建 sparksql 環境對象val conf new SparkConf().setMaster("local[*]").setAppNam…

subline text3安裝numpy,scipy,matplotlib,pandas,sklearn,ipynb

1,numpy(基礎數值算法) 安裝,要是在cmd直接安裝到最后會報錯, import numpy as np ModuleNotFoundError: No module named numpy 直接進入python環境,輸入python -m pip install numpy就不會報錯…

【SringBoot項目中MyBatis-Plus多數據源應用實踐】

文章目錄 前言 一、Mybatis-Plus是什么? 二、多數據源是什么? 三、使用步驟 1. 新建一個SpringBoot項目 2. 引入必要的MyBatis架包 3. 新建兩個數據庫及兩張表 3.3.1 新建數據庫:DB_A,并創建一張數據表alarm_kind,以及…

云端數據提取:安全、高效地利用無限資源

在當今的大數據時代,企業和組織越來越依賴于云平臺存儲和處理海量數據。然而,隨著數據的指數級增長,數據的安全性和高效的數據處理成為了企業最為關心的議題之一。本文將探討云端數據安全的重要性,并提出一套既高效又安全的數據提…

淺測 長亭雷池 WAF “動態防護”

本文首發于 Anyeの小站 前言 雷池 WAF 社區版的更新速度是真快啊,幾乎一周一個小版本,倆月一個大版本,攻城獅們真的狠啊,沒法測了。 廢話不多說,前兩天看到了 這篇文章,對雷池的“動態防護”功能挺感興趣…

Android應用的基本構造及威脅(apk)

目錄 APK文件是什么 apk文件解壓后的目錄結構 apk文件的存儲位置

去掉el-table表頭右側類名是gutter,width=17px的空白區域(包括表頭樣式及表格奇偶行樣式和表格自動滾動)

代碼如下&#xff1a; <el-table:data"tableData"ref"scroll_Table":header-cell-style"getRowClass":cell-style"styleBack"height"350px"style"width: 100%"><el-table-column prop"id" l…

Scrum團隊在迭代中如何處理計劃外的工作

認為 Scrum 團隊不做計劃其實是一個誤區&#xff0c;實際上很多 Scrum 團隊在沖刺計劃會議以及在細化工作項時均會進行詳細規劃。此外&#xff0c;他們還會創建一個路線圖&#xff0c;以便顯示他們在多個沖刺中的計劃。 Scrum 團隊需要經常進行計劃&#xff0c;以便在不斷變化…

linux學習:進程

目錄 例子1 獲取當前進程的進程標識符 例子2 創建一個新的子進程 例子3 展示了父進程和子進程的進程標識符 例子4 區分父進程和子進程 例子5 區分父進程和子進程的行為 例子6 比較進程標識符來區分父進程和子進程 例子7 子進程如何修改一個變量&…

混合動力電動汽車介紹(二)

接續前一章內容&#xff0c;本篇文章介紹混合動力汽車串聯、并聯和混聯的系統組成和工作原理。 一、串聯混合動力電動汽車的系統組成和工作原理 上圖為串聯混合動力電動汽車的結構簡圖。汽車由電動機-發電機驅動行駛&#xff0c;電機控制器的動力來自油箱-發動機-發電機-發電機…

Python 爬蟲零基礎:探索網絡數據的神秘世界

Python 爬蟲零基礎&#xff1a;探索網絡數據的神秘世界 在數字化時代&#xff0c;網絡數據如同無盡的寶藏&#xff0c;等待著我們去發掘。Python爬蟲&#xff0c;作為獲取這些數據的重要工具&#xff0c;正逐漸走進越來越多人的視野。對于零基礎的學習者來說&#xff0c;如何入…

基于Spring Boot框架的分頁查詢和文件上傳

分頁查詢 分析 要想從數據庫中進行分頁查詢&#xff0c;我們要使用LIMIT關鍵字&#xff0c;格式為&#xff1a;limit 開始索引 每頁顯示的條數 假設一頁想展示10條數據 查詢第1頁數據的SQL語句是&#xff1a; select * from emp limit 0,10; 查詢第2頁數據的SQL語句是&…

【Pytest官方文檔翻譯及學習】2.2 如何在測試中編寫和報告斷言

目錄 2.2 如何在測試中編寫和報告斷言 2.2.1 使用assert語句斷言 2.2.2 關于預期異常的斷言 2.2.3 關于預期警告的斷言 2.2.4 應用上下文相關的比較 2.2.5 為失敗的斷言定義自己的解釋 2.2.6 斷言內省細節 2.2 如何在測試中編寫和報告斷言 2.2.1 使用assert語句斷言 p…

6、架構-服務端緩存

為系統引入緩存之前&#xff0c;第一件事情是確認系統是否真的需要緩 存。從開發角度來說&#xff0c;引入緩存會提 高系統復雜度&#xff0c;因為你要考慮緩存的失效、更新、一致性等問題&#xff1b;從運維角度來說&#xff0c;緩存會掩蓋一些缺 陷&#xff0c;讓問題在更久的…

npm徹底清理緩存

在使用npm過程中&#xff0c;肯定會遇到清緩存的情況&#xff0c;網上的命令一般為 npm cache clear --force有時筆者在清理緩存之后npm install依然失敗&#xff0c;仔細發現&#xff0c;執行該命令之后npm報了一個警告 npm WARN using --force Recommended protections dis…

代碼隨想錄算法訓練營第27天|● 39. 組合總和● 40.組合總和II● 131.分割回文串

組合總和 題目鏈接 39. 組合總和 - 力扣&#xff08;LeetCode&#xff09; 代碼&#xff1a; class Solution {public List<List<Integer>> res new ArrayList<>();public List<Integer> list new ArrayList<>();public int sum 0;/**…

在nginx中配置反向代理

在nginx中配置反向代理&#xff0c;需要使用proxy_pass指令。以下是一個簡單的nginx反向代理配置示例&#xff1a; server {listen 80;server_name example.com;location / {proxy_pass http://backend_server;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote…

LoadRunner 錄制腳本時提示無Internet訪問/加載慢,如何解決?

LoadRunner 錄制腳本時提示無Internet訪問/加載慢&#xff0c;如何解決&#xff1f; 在使用LoadRunner 12.02 進行錄制腳本時提示無Internet訪問&#xff0c;這是如下圖&#xff1a; 翻譯中文如下&#xff1a; 這里&#xff0c;我認為大家應該都已經點過yes了&#xff0c;但是…

python結構化模式匹配switch-case,Python 3.10中引入,Python的模式匹配(pattern matching)語法

增加了采用模式加上相應動作的 match 語句 和 case 語句 的形式的結構化模式匹配。 模式由序列、映射、基本數據類型以及類實例構成。 模式匹配使得程序能夠從復雜的數據類型中提取信息、根據數據結構實現分支&#xff0c;并基于不同的數據形式應用特定的動作。 語法與操作 模…

Linux下配置Pytorch

1.Anaconda 1.1虛擬環境創建 2.Nvidia驅動 3.CUDA驅動安裝 4.Pytorch安裝 具體的步驟如上&#xff1a;可參考另一位博主的博客非常詳細&#xff1a; Linux服務器配置PythonPyTorchCUDA深度學習環境_linux cuda環境配置-CSDN博客https://blog.csdn.net/NSJim/article/detai…