成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

深度學習目標檢測模型全面綜述:Faster R-CNN、R-FCN和SSD

人工智能 深度學習
Faster R-CNN、R-FCN 和 SSD 是三種目前最優且應用最廣泛的目標檢測模型。其他流行的模型通常與這三者類似,都依賴于深度 CNN(如 ResNet、Inception 等)來進行網絡初始化,且大部分遵循同樣的 proposal/分類管道。本文介紹了深度學習目標檢測的三種常見模型:Faster R-CNN、R-FCN 和 SSD。

[[204169]]

Faster R-CNN、R-FCN 和 SSD 是三種目前***且應用最廣泛的目標檢測模型。其他流行的模型通常與這三者類似,都依賴于深度 CNN(如 ResNet、Inception 等)來進行網絡初始化,且大部分遵循同樣的 proposal/分類管道。本文介紹了深度學習目標檢測的三種常見模型:Faster R-CNN、R-FCN 和 SSD。

 

隨著自動駕駛汽車、智能監控攝像頭、面部識別以及大量對人有價值的應用出現,快速、精準的目標檢測系統市場也日益蓬勃。這些系統除了可以對圖像中的每個目標進行識別、分類以外,它們還可以通過在該目標周圍繪制適當大小的邊界框(bounding box)來對其進行定位。這讓目標檢測技術較傳統計算機視覺處理技術——圖像分類而言,難度上升了不少。

然而,幸運的是,目前最成功的目標檢測方法是對圖像分類模型的擴展。幾個月前,Google 為 Tensorflow 發布了一個新的目標檢測 API。與其同時發布的還有針對一些特定模型預構建的框架和權重。

  • 基于 MobileNets 框架的 Single Shot Multibox Detector(SSD)模型。
  • 基于 Inception V2 框架的 SSD 模型。
  • 使用 ResNet-101 框架的基于 Region 的全卷積網絡(R-FCN)模型。
  • 基于 ResNet-101 框架的 Faster RCNN 模型。
  • 基于 Inception ResNet v2 的 Faster RCNN 模型。

以前的文章中 ,機器之心曾梳理了 Xception、Inception 和 ResNet 等基本網絡的架構和背后的設計思路。在本文中,我們會對 Tensorflow 的目標檢測模型 Faster R-CNN、R-FCN 以及 SSD 做同樣的介紹。希望在結束本文的閱讀之后,你可以了解到以下兩點:

  1. 深度學習是如何在目標檢測中得到應用的。
  2. 這些目標檢測模型的設計是如何在相互之間獲得靈感的同時也有各自的特點。

FASTER R-CNN 模型

Faster R-CNN 模型現在是一個典型的基于深度學習的目標檢測模型。在它的啟發下,出現了很多目標檢測與分割模型,比如本文中我們將會看到的另外兩個模型。然而,要真正開始了解 Faster R-CNN 我們需要理解其之前的 R-CNN 和 Fast R-CNN。所以,現在我們快速介紹一下 Faster R-CNN 的來龍去脈。

R-CNN 模型

如果要擬人化比喻,那 R-CNN 肯定是 Faster R-CNN 的祖父了。換句話說,R-CNN 是一切的開端。

R-CNN,或稱 Region-based Convolutional Neural Network,其工作包含了三個步驟:

  • 借助一個可以生成約 2000 個 region proposal 的「選擇性搜索」(Selective Search)算法,R-CNN 可以對輸入圖像進行掃描,來獲取可能出現的目標。
  • 在每個 region proposal 上都運行一個卷積神經網絡(CNN)。
  • 將每個 CNN 的輸出都輸入進:a)一個支持向量機(SVM),以對上述區域進行分類。b)一個線性回歸器,以收縮目標周圍的邊界框,前提是這樣的目標存在。

下圖具體描繪了上述 3 個步驟:

 

換句話說,首先,我們給出一些建議區域,然后,從中提取出特征,之后,再根據這些特征來對這些區域進行分類。本質而言,我們將目標檢測轉化成了圖像分類問題。R-CNN 模型雖然非常直觀,但是速度很慢。

Fast R-CNN

直接承接 R-CNN 的是 Fast R-CNN。Fast R-CNN 在很多方面與 R-CNN 類似,但是,憑借兩項主要的增強手段,其檢測速度較 R-CNN 有所提高:

  1. 在推薦區域之前,先對圖像執行特征提取工作,通過這種辦法,后面只用對整個圖像使用一個 CNN(之前的 R-CNN 網絡需要在 2000 個重疊的區域上分別運行 2000 個 CNN)。
  2. 將支持向量機替換成了一個 softmax 層,這種變化并沒有創建新的模型,而是將神經網絡進行了擴展以用于預測工作。

Fast R-CNN 模型結構示意圖: 

 

如圖所見,現在我們基于網絡***的特征圖(而非原始圖像)創建了 region proposals。因此,我們對整幅圖只用訓練一個 CNN 就可以了。

此外,我們使用了一個 softmax 層來直接輸出類(class)的概率,而不是像之前一樣訓練很多不同的 SVM 去對每個目標類(object class)進行分類。現在,我們只用訓練一個神經網絡,而之前我們需要訓練一個神經網絡以及很多 SVM。

就速度而言,Fast R-CNN 提升了許多。

然而,存在一大未解決的瓶頸:用于生成 region proposal 的選擇搜索算法(selective search algorithm)。

FASTER R-CNN

到現在為止,我們完成了對 Faster R-CNN 兩大早期模型的溯源。下面我們開始研究 Faster R-CNN。Faster R-CNN 的主要創新是,它用一個快速神經網絡代替了之前慢速的選擇搜索算法(selective search algorithm)。具體而言,它引入了一個 region proposal 網絡(RPN)。

RPN 工作原理:

  • 在***卷積得到的特征圖上,使用一個 3×3 的窗口在特征圖上滑動,然后將其映射到一個更低的維度上(如 256 維),
  • 在每個滑動窗口的位置上,RPN 都可以基于 k 個固定比例的 anchor box(默認的邊界框)生成多個可能的區域。
  • 每個 region proposal 都由兩部分組成:a)該區域的 objectness 分數。b)4 個表征該區域邊界框的坐標。

換句話說,我們會觀察我們***特征圖上的每個位置,然后關注圍繞它的 k 個不同的 anchor box:一個高的框、一個寬的框、一個大的框等等。對于每個這些框,不管我們是否認為它包含一個目標,以及不管這個框里的坐標是什么,我們都會進行輸出。下圖展示了在單個滑動框位置上發生的操作:

 

圖中 2k 分數代表了 k 中每一個邊界框正好覆蓋「目標」的 softmax 概率。這里注意到,盡管 RPN 輸出了邊界框的坐標,然而它并不會去對任何可能的目標進行分類:它惟一的工作仍然是給出對象區域。如果一個 anchor box 在特定閾值之上存在一個「objectness」分數,那么這個邊界框的坐標就會作為一個 region proposal 被向前傳遞。

一旦我們有了 region proposal,我們就直接把他們輸入一個本質上是 Fast R-CNN 的模型。我們再添加一個池化層、一些全連接層以及***,一個 softmax 分類層和邊界框回歸器(bounding box regressor)。所以在某種意義上,Faster R-CNN=RPN+Fast R-CNN。

 

總體而言,Faster R-CNN 較 Fast R-CNN 在速度上有了大幅提升,而且其精確性也達到了最***的水平。值得一提的是,盡管未來的模型能夠在檢測速度上有所提升,但是幾乎沒有模型的表現能顯著超越 Faster R-CNN。換句話說,Faster R-CNN 也許不是目標檢測最簡單、最快的方法,但是其表現還是目前***的。例如,Tensorflow 應用 Inception ResNet 打造的 Faster R-CNN 就是他們速度最慢,但卻最精準的模型。

也許 Faster R-CNN 看起來可能會非常復雜,但是它的核心設計還是與最初的 R-CNN 一致:先假設對象區域,然后對其進行分類。目前,這是很多目標檢測模型使用的主要思路,包括我們接下來將要提到的這個模型。

R-FCN

還記得 Fast R-CNN 是如何通過在所有 region proposal 上共享同一個 CNN,來改善檢測速度的嗎?這也是設計 R-FCN 的一個動機:通過***化共享計算來提升速度。

R-FCN,或稱 Region-based Fully Convolutional Net(基于區域的全卷積網絡),可以在每個輸出之間完全共享計算。作為全卷積網絡,它在模型設計過程中遇到了一個特殊的問題。

一方面,當對一個目標進行分類任務時,我們希望學到模型中的位置不變性(location invariance):無論這只貓出現在圖中的哪個位置,我們都想將它分類成一只貓。另一方面,當進行目標檢測任務時,我們希望學習到位置可變性(location variance):如果這只貓在左上角,那么我們希望在圖像左上角這個位置畫一個框。所以,問題出現了,如果想在網絡中 100% 共享卷積計算的話,我們應該如何在位置不變性(location invariance)和位置可變性(location variance)之間做出權衡呢?

R-FCN 的解決方案:位置敏感分數圖

每個位置敏感分數圖都代表了一個目標類(object class)的一個相關位置。例如,只要是在圖像右上角檢測到一只貓,就會激活一個分數圖(score map)。而當系統看見左下角出現一輛車時,另一個分數圖也將會被激活。本質上來講,這些分數圖都是卷積特征圖,它們被訓練來識別每個目標的特定部位。

以下是 R-FCN 的工作方式:

  1. 在輸入圖像上運行一個 CNN(本例中使用的是 ResNet)。
  2. 添加一個全卷積層,以生成位置敏感分數圖的 score bank。這里應該有 k²(C+1) 個分數圖,其中,k²代表切分一個目標的相關位置的數量(比如,3²代表一個 3×3 的空間網格),C+1 代表 C 個類外加一個背景。
  3. 運行一個全卷積 region proposal 網絡(RPN),以生成感興趣區域(regions of interest,RoI)。
  4. 對于每個 RoI,我們都將其切分成同樣的 k²個子區域,然后將這些子區域作為分數圖。
  5. 對每個子區域,我們檢查其 score bank,以判斷這個子區域是否匹配具體目標的對應位置。比如,如果我們處在「上-左」子區域,那我們就會獲取與這個目標「上-左」子區域對應的分數圖,并且在感興趣區域(RoI region)里對那些值取平均。對每個類我們都要進行這個過程。
  6. 一旦每個 k²子區域都具備每個類的「目標匹配」值,那么我們就可以對這些子區域求平均值,得到每個類的分數。
  7. 通過對剩下 C+1 個維度向量進行 softmax 回歸,來對 RoI 進行分類。

下面是 R-FCN 的示意圖,用 RPN 生成 RoI:

 

當然,即便有上述文字以及圖片的解釋,你可能仍然不太明白這個模型的工作方式。老實說,當你可以實際看到 R-FCN 的工作過程時,你會發現理解起來會更加簡單。下面就是一個在實踐中應用的 R-FCN,它正在從圖中檢測一個嬰兒:

 

我們只用簡單地讓 R-FCN 去處理每個 region proposal,然后將其切分成子區域,在子區域上反復詢問系統:「這看起來像是嬰兒的『上-左』部分嗎?」,「這看起來像是嬰兒的『上-中』部分嗎?」,「這看起來像是嬰兒的『上-右』部分嗎?」等等。系統會對所有類重復這個過程。如果有足夠的子區域表示「是的,我的確匹配嬰兒的這個部分!」那么 RoI 就會通過對所有類進行 softmax 回歸的方式被分類成一個嬰兒。」

借助這種設置,R-FCN 便能同時處理位置可變性(location variance)與位置不變性(location invariance)。它給出不同的目標區域來處理位置可變性,讓每個 region proposal 都參考同一個分數圖 score bank 來處理位置不變形。這些分數圖應該去學習將一只貓分類成貓,而不用管這只貓在在那個位置。***的是,由于它是全卷積的,所以這意味著網絡中所有的計算都是共享的。

因此,R-FCN 比 Faster R-CNN 快了好幾倍,并且可以達到類似的準確率。

SSD

我們***一個模型是 SSD,即 Single-Shot Detector。和 R-FCN 一樣,它的速度比 Faster R-CNN 要快很多,但其工作方式卻和 R-FCN 存在顯著不同。

我們前兩個模型分兩個步驟執行 region proposal 和 region classification。首先,它們使用一個 region proposal 網絡來生成感興趣區域(region of interest);然后,它們既可以用全連接層也可以用位置敏感卷積層來對那些區域進行分類。然而,SSD 可以在單個步驟中完成上述兩個步驟,并且在處理圖像的同時預測邊界框和類。

具體而言,給定一個輸入圖像以及一系列真值標簽,SSD 就會進行如下操作:

  1. 在一系列卷積層中傳遞這個圖像,產生一系列大小不同的特征圖(比如 10×10、6×6、3×3 等等。)
  2. 對每個這些特征圖中的每個位置而言,都使用一個 3×3 的卷積濾波器(convolutional filter)來評估一小部分默認的邊界框。這些默認邊的界框本質上等價于 Faster R-CNN 的 anchor box。
  3. 對每個邊界框都同時執行預測: a)邊界框的偏移;b)分類的概率。
  4. 在訓練期間,用這些基于 IoU(Intersection over Union,也被稱為 Jaccard 相似系數)系數的預測邊界框來匹配正確的邊界框。被***預測的邊界框將被標簽為「正」,并且其它邊界框的 IoU 大于 0.5。

SSD 的工作方式聽上去很直接,但是訓練它卻會面臨一個不一般的挑戰。在之前那兩個模型那里,region proposal 網絡可以確保每個我們嘗試進行分類的對象都會有一個作為「目標」的最小概率值。然而,在 SSD 這里,我們跳過了這個篩選步驟。我們從圖像中每個單一位置那里進行分類并畫出形狀、大小不同的邊界框。通過這種辦法,我們可以生成比別的模型更多的邊界框,但是它們基本上全是負面樣本。

為了解決這個問題,SSD 進行了兩項處理。首先,它使用非極大值抑制(non maximum suppression,NMS)技術來將高度重疊的邊界框整合成一個。換句話說,如果有 4 個形狀、尺寸等類似的邊界框中有同一只狗,那么 NMS 就會保留信度***的那個邊界框而拋棄掉其它的。第二,SSD 模型使用了一種被稱為 hard negative mining 的技術以在訓練過程中讓類保持平衡。在 hard negative mining 中,只有那些有***訓練損失(training loss)的負面樣本(negative example)子集才會在每次訓練迭代中被使用。SSD 的「正負」比一直保持在 1:3。

下圖是 SSD 的架構示意圖:

 

如上所述,最終有可縮小尺寸的「額外特征層」。這些尺寸變化的特征圖有助于捕捉不同大小的目標。例如,下面是一個正在執行的 SSD。

 

在更小的特征圖中(比如 4×4),每一單元覆蓋圖像的一個更大區域,使其探測更大的目標。region proposal 與分類同時被執行:假設 p 為目標類別,每個邊界框與一個 (4+p)-維度向量相連接,其輸出 4 個框偏移坐標和 p 分類概率。在***一步中,softmax 又一次被用來分類目標。

最終,SSD 與最初的兩個模型并無不同。它簡單跳過「region proposal」這一步,而不是同時考慮圖像每個位置的每個邊界及其分類。由于 SSD 一次性完成所有,它是三個模型中最快的,且相對而言依然表現出色。

結論

Faster R-CNN、R-FCN 和 SSD 是三種目前***且應用最廣泛的目標檢測模型。其他流行的模型通常與這三者類似,都依賴于深度 CNN(如 ResNet、Inception 等)來進行網絡初始化,且大部分遵循同樣的 proposal/分類 pipeline。

但是,使用這些模型需要了解 Tensorflow 的 API。Tensorflow 有一份使用這些模型的初學者教程(https://github.com/tensorflow/models/blob/master/object_detection/object_detection_tutorial.ipynb)。 

責任編輯:龐桂玉 來源: 36大數據
相關推薦

2022-11-21 15:18:05

模型檢測

2025-01-06 12:20:00

YOLO物體識別開發

2024-08-22 08:24:51

算法CNN深度學習

2017-06-10 16:48:03

神經網絡目標計數機器學習

2024-09-23 09:10:00

R-CNN深度學習Python

2017-04-24 23:46:40

卷積神經網絡圖像R-CNN

2017-09-20 16:25:00

深度學習視覺領域計算機

2022-10-26 15:41:38

深度學習Deepfake機器學習

2017-07-24 13:37:42

深度學習KerasTensorFlow

2021-10-08 09:46:42

深度學習神經網絡人工智能

2024-04-18 10:39:57

2018-03-26 20:04:16

深度學習

2017-08-31 10:48:59

CNN 模型壓縮算法

2017-07-28 10:14:30

SSDNANDFlash

2023-12-19 16:01:40

深度學習人工智能目標檢測

2017-10-02 16:13:47

深度學習目標檢測計算機視覺

2017-04-13 09:18:02

深度學習文本分類

2023-03-13 14:41:22

機器學習算法

2019-01-31 09:33:50

CNN神經網絡激活函數

2017-09-22 11:45:10

深度學習OpenCVPython
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲国产日韩欧美 | 亚洲精品亚洲人成人网 | 久久亚洲一区二区三区四区 | 亚洲欧美高清 | 国产清纯白嫩初高生在线播放视频 | 精品一区av | 91动漫在线观看 | 亚洲一区二区三区四区五区中文 | 日韩在线一区二区 | 精品在线 | 99精品99久久久久久宅男 | 久久久精品一区二区三区 | 成人国产毛片 | 日韩在线视频免费观看 | 99精品在线免费观看 | 欧美性另类| 久久国产精品一区二区三区 | 在线免费观看日本视频 | 91麻豆精品国产91久久久久久 | 国产精品亚洲成在人线 | 国产视频亚洲视频 | 国产日韩av一区二区 | 成人片免费看 | 精品久久久久久久久久久久久久久久久 | 久久一 | 91文字幕巨乱亚洲香蕉 | 99久久精品免费看国产小宝寻花 | 欧美一级免费片 | 欧美久久一区二区 | 国产综合在线视频 | 一级全黄视频 | 午夜在线影院 | 国产日韩欧美 | 久久久www成人免费无遮挡大片 | 久久伦理中文字幕 | 亚洲欧美激情网 | 久久99成人| 98成人网| 欧美午夜激情在线 | 欧美阿v | 日本不卡一区二区 |