吳恩達深度學習筆記(101)-目標檢測之候選區域 Region proposals

候選區域(Region proposals)

如果你們閱讀一下對象檢測的文獻,可能會看到一組概念,所謂的

候選區域,這在計算機視覺領域是非常有影響力的概念。

吳恩達深度學習筆記(101)-目標檢測之候選區域 Region proposals

你們還記得滑動窗法吧,你使用訓練過的分類器,在這些窗口中全部運行一遍,然後運行一個檢測器,看看裡面是否有車輛,行人和摩托車。現在你也可以運行一下卷積算法,這個算法的其中一個缺點是,它在顯然沒有任何對象的區域浪費時間,對吧。

吳恩達深度學習筆記(101)-目標檢測之候選區域 Region proposals

所以這裡這個矩形區域(編號1)基本是空的,顯然沒有什麼需要分類的東西。也許算法會在這個矩形上(編號2)運行,而你知道上面沒有什麼有趣的東西。

[Girshick R, Donahue J, Darrell T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2014: 580-587.]

所以Ross Girshick,Jeff Donahue,Trevor Darrell,Jitendra Malik,在本幻燈片底部引用到的論文中提出一種叫做R-CNN的算法,意思是帶區域的卷積網絡,或者說帶區域的CNN。這個算法嘗試選出一些區域,在這些區域上運行卷積網絡分類器是有意義的,所以這裡不再針對每個滑動窗運行檢測算法,而是隻選擇一些窗口,在少數窗口上運行卷積網絡分類器。

選出候選區域的方法是運行圖像分割算法,分割的結果是下邊的圖像為了找出可能存在對象的區域

比如說,分割算法在這裡得到一個色塊,所以你可能會選擇這樣的邊界框(編號1),然後在這個色塊上運行分類器,就像這個綠色的東西(編號2),在這裡找到一個色塊,接下來我們還會在那個矩形上(編號2)運行一次分類器,看看有沒有東西。在這種情況下,如果在藍色色塊上(編號3)運行分類器,希望你能檢測出一個行人,如果你在青色色塊(編號4)上運行算法,也許你可以發現一輛車,我也不確定。

吳恩達深度學習筆記(101)-目標檢測之候選區域 Region proposals

所以這個細節就是所謂的分割算法,你先找出可能2000多個色塊,然後在這2000個色塊上放置邊界框,然後在這2000個色塊上運行分類器,這樣需要處理的位置可能要少的多,可以減少卷積網絡分類器運行時間,比在圖像所有位置運行一遍分類器要快。

特別是這種情況,現在不僅是在方形區域(編號5)中運行卷積網絡,我們還會在高高瘦瘦(編號6)的區域運行,嘗試檢測出行人,然後我們在很寬很胖的區域(編號7)運行,嘗試檢測出車輛,同時在

各種尺度運行分類器

這就是R-CNN或者區域CNN的特色概念,現在看來R-CNN算法還是很慢的。

所以有一系列的研究工作去改進這個算法,所以基本的R-CNN算法是使用某種算法求出候選區域,然後對每個候選區域運行一下分類器,每個區域會輸出一個標籤,有沒有車子?有沒有行人?有沒有摩托車?並輸出一個邊界框,這樣你就能在確實存在對象的區域得到一個精確的邊界框。

澄清一下,R-CNN算法不會直接信任輸入的邊界框,它也會輸出一個邊界框b_x,b_y,b_h和b_w,這樣得到的邊界框比較精確,比單純使用圖像分割算法給出的色塊邊界要好,所以它可以得到相當精確的邊界框。

現在R-CNN算法的一個缺點是太慢了,所以這些年來有一些對R-CNN算法的改進工作,Ross Girshik提出了Fast R-CNN算法,它基本上是R-CNN算法不過用卷積實現了滑動窗法

最初的算法是逐一對區域分類的,所以Fast R-CNN用的是滑動窗法的一個卷積實現,這和卷積的滑動窗口實現)中看到的大致相似,這顯著提升了R-CNN的速度

吳恩達深度學習筆記(101)-目標檢測之候選區域 Region proposals

事實證明,Fast R-CNN算法的其中一個問題是得到候選區域的聚類步驟仍然非常緩慢,所以另一個研究組,任少卿(Shaoqing Ren)、何凱明(Kaiming He)、Ross Girshick和孫劍(Jiangxi Sun)提出了更快的

R-CNN算法(Faster R-CNN),使用的是卷積神經網絡,而不是更傳統的分割算法來獲得候選區域色塊,結果比Fast R-CNN算法快得多。不過我認為大多數Faster R-CNN的算法實現還是比YOLO算法慢很多。

候選區域的概念在計算機視覺領域的影響力相當大,所以我希望你們能瞭解一下這些算法,因為你可以看到還有人在用這些概念。

對我個人來說,這是我的個人看法而不是整個計算機視覺研究界的看法,我覺得候選區域是一個有趣的想法,但這個方法需要兩步,首先得到候選區域,然後再分類,相比之下,能夠一步做完,類似於YOLO或者你只看一次(You only look once)這個算法,在我看來,是長遠而言更有希望的方向。

參考文獻:

	Joseph Redmon, Santosh Divvala, Ross Girshick, Ali Farhadi - You Only Look Once: Unified, Real-Time Object Detection (2015)
Joseph Redmon, Ali Farhadi - YOLO9000: Better, Faster, Stronger (2016)
Allan Zelener - YAD2K: Yet Another Darknet 2 Keras
The official YOLO website (https://pjreddie.com/darknet/yolo/)


分享到:


相關文章: