您好,登錄后才能下訂單哦!
目標檢測在視頻監控、自動駕駛汽車、目標/人跟蹤等領域得到了廣泛的應用。在本文中,我們將了解目標檢測的基礎知識,并回顧一些最常用的算法和一些全新的方法。
原標題 | A 2019 Guide to Object Detection
作 者 | Derrick Mwiti
翻 譯 | 林肯二百一十三(西安交通大學)、陳華Mark(武漢大學)、BBuf(西南科技大學)
編 輯 | Pita
目標檢測是一種為了檢測汽車、建筑物和人類等目標對象的計算機視覺技術,這些對象通常可以通過圖片或視頻來識別。
目標檢測在視頻監控、自動駕駛汽車、目標/人跟蹤等領域得到了廣泛的應用。在本文中,我們將了解目標檢測的基礎知識,并回顧一些最常用的算法和一些全新的方法。
目標檢測的工作原理
目標檢測會定位圖像中的對象,并在該對象周圍繪制一個包圍框。這過程通常分為兩步:目標分類并確定類型,然后在該對象周圍繪制一個框。我們之前已經討論過圖像分類,現在讓我們來回顧一些用于目標檢測的常見模型架構:
R-CNN
Fast R-CNN
Faster R-CNN
Mask R-CNN
SSD(單點多框檢測器)
YOLO (You Only Look Once)
將目標視作一個點
用于目標檢測的數據增強策略
R-CNN 模型
該技術 結合 了兩種主要方法:將大容量卷積神經網絡應用于自底向上的區域方案中,對目標進行定位和分割;有監督的預訓練。
查看論文: 特征層次結構豐富,可以精確的進行目標檢測和語義分割 (https://arxiv.org/abs/1311.2524)
這是通過 domain-specific fine-tuning 來獲得高性能提升。由于將區域(Regional)劃分的 建議 與卷積神經網絡相 結合 ,這篇論文的作者將該算法命名為 R-CNN (具有 CNN 特征的區域)。
論文鏈接:https://arxiv.org/pdf/1311.2524.pdf
該模型先基于圖片提取出大約2000個自底向上的候選區域。然后使用一個大型CNN模型計算每個候選區域的特征向量。最后利用線性支持向量機 (SVMs)對每個區域進行分類。該模型在PASCAL VOC 2010( http ://host.robots.ox.ac.uk/pascal/VOC/voc2010/index.html)上的平均精度達到53.7%。
該模型的目標檢測系統實現由三個模塊組成。第一個模塊負責生成分類獨立的候選區域,這些區域是檢測可用的候選數據集。第二個模塊是一個大型卷積神經網絡CNN模型,負責從每個區域提取固定長度的特征向量。第三個模塊是多類別SVM分類器 。
論文鏈接:https://arxiv.org/pdf/1311.2524.pdf
該模型使用selective search方法來生成候選區域集。根據顏色、紋理、形狀和大小選擇 搜索 相似的區域。在特征提取方面,該模型采用4096維特征向量,并將Caffe CNN實現應用于每個區域提案。將227×227 RGB圖像通過5個卷積層和2個完全連通層進行正向傳播,計算特征。本文所詮釋的模型與之前PASCAL VOC 2012的結果相比,取得了 30 %相關的效果改進。
R-CNN的一些缺點:
訓練是一個多階段的流程。對卷積神經網絡進行目標 建議 優化,將svm與ConvNet特征進行擬合,最后學習邊界框回歸器。
模型訓練在空間占用和時間消耗上代價都很高昂,因為VGG16這樣的深度網絡占用了大量的空間。
對象檢測比較慢,因為它對每個對象 建議 執行一個ConvNet轉發。
Fast R-CNN
下文提出了一種基于區域卷積網絡的快速目標檢測方法(Fast R-CNN)。
查看論文: 快速R-CNN (https://arxiv.org/abs/1504.08083)
它是用Caffe通過Python和c++(https://github .com /rbgirshick/fast-rcnn)實現的。該模型在PASCAL VOC 2012上的平均精度為66%,而R-CNN的平均精度為62%。
論文鏈接:https://arxiv.org/pdf/1504.08083.pdf
與R-CNN相比,Fast R-CNN具有:更高的平均精度值,單階段訓練特性,可更新所有網絡層訓練的特性,并且它也不需要磁盤存儲來進行特征緩存。
在其架構中,一個 Fast R-CNN接收的圖像既作為輸入也作為一組目標 建議 集。模型對圖像進行卷積和最大池化處理,生成卷積特征圖,通過針對每個區域 建議 的興趣池層區域從每個特征圖中提取出固定層的特征向量。
接下來,將特征向量提供給完全連接的層,這些將分支成兩個輸出層,其中一個為多個對象類生成softmax概率估計,而另一個為每個對象類生成四個實值數字,而這4個數字就代表了每個對象包圍框的位置。
Faster R-CNN
查看論文: 更快的 R-CNN:利用區域 建議 網絡實現實時目標檢測 (https://arxiv.org/abs/1506.01497)
本文提出了一種訓練機制,該機制可交替進行區域 建議 任務的微調和目標檢測的微調。
source:https://arxiv.org/pdf/1506.01497.pdf
Faster R-CNN模型由兩個模塊組成:負責區域候選框生成的的深度卷積網絡和使用產生的候選框的R-CNN檢測器。區域 建議 網絡以圖像為輸入,產生一系列矩形目標候選框。每個矩形目標框都有屬于某個類別的分數。
source:https://arxiv.org/pdf/1506.01497.pdf
Mask R-CNN
查看論文: Mask R-CNN (https://arxiv.org/abs/1703.06870)
本文提出的模型是上述Faster R-CNN體系結構的擴展,它還可以對人體姿勢進行估計。
圖源:https://arxiv.org/pdf/1703.06870.pdf
在這個模型中,目標通過標注的目標框和一個標注相同類別的像素集合的語義分割標簽來對目標進行分類和定位。這個模型在Faster R-CNN的基礎上對每個感興趣區域添加了對分割掩膜的預測。Mask R-CNN產生兩個輸出:一個分類標簽和一個目標框。
這篇論文 (https://arxiv.org/abs/1512.02325)提出了使用單個深度神經網絡來對圖像中的目標進行檢測的模型。該網絡使用了應用于特征映射的小卷積核為每個目標出現的區域進行打分。
來源:https://arxiv.org/pdf/1512.02325.pdf
這種方法使用一個前饋式卷積神經網絡,產生了一個邊界框的集合以及對每個邊界框所屬類別進行打分。增加了卷積特征層以允許網絡能在多個尺度上進行特征檢測。在這個網絡模型中,每個特征圖都和一組目標候選框相關聯。下面的圖像展示了SSD512的模型在動物,交通工具和家具數據上進行目標檢測的表現。
來源:https://arxiv.org/pdf/1512.02325.pdf
You only look once,顧名思義,你只看一遍。這篇文章提出了一種使用單個神經網絡一次運行即可預測物體邊框與類別概率的方法,是單階段目標檢測模型的代表之一(與Faster R-CNN為代表的兩階段目標檢測方法的區別)。
論文地址: You Only Look Once: Unified, Real-Time Object Detection(https://arxiv.org/abs/1506.02640)
YOLO 模型可以跑到每秒鐘45幀的實時速度。YOLO 把圖像目標檢測視作回歸問題,這使得它處理圖像的流水線相當簡單,這也是它速度很快的主要原因。
YOLO 可以在不超過25秒延遲下實時處理視頻流。在訓練過程中,YOLO看到的是整張圖像,因此在目標檢測時可以考慮上下文信息。
在YOLO中,每個物體邊框是使用整個圖像的特征預測出來的。每一個邊框的預測值有5個:x、y、w、h和置信度(confidence)。(x, y)代表邊框中心相對于每個網格的位置偏移,w和h代表物體相對于整張圖片的相對寬度和高度。
YOLO模型是使用卷積神經網絡實現并在PASCAL VOC目標檢測數據集上進行訓練的。網絡的卷積層用來提取特征,之后的全連接層用于預測邊框坐標和物體屬于各個類別的概率。
YOLO網絡的架構設計受到了用于圖像分類的GoogLeNet(https://ai.google/research/pubs/pub4 30 22)的啟發。網絡又24個卷積層和兩個全連接層。YOLO模型的主要問題是它對每個網格僅能夠預測一個類別的物體,而且對較小的目標(比如鳥)的檢測效果較差。
譯者注 1: 很多朋友對YOLO“劃分網格”的操作不是很理解。請看上圖最右的一個方塊,這就是YOLO模型輸出的原始結果——一個shape為7×7× 30 的特征圖。7×7是原始的416×416尺寸的圖像通過經過一系列的卷積、下采樣和padding后得到的尺寸。換句話說,這7×7個網格各自對應著原圖中的某一個區域。卷積層的通道數為 30 意味著每一個網格被預測出了 30 個數值,這三十個數值分別是這個網格內預測的兩個候選框的(x, y, w, h, confidence)以及網格內物體可能屬于的20個類(PASCAL VOC數據集包含20個類別的物體)。讀者可能會疑惑:為什么預測了兩個候選框卻只預測了一次類別概率呢?這也就是我們上文提到的YOLO的缺點了:它對每個網格,確實只能預測一個類別的物體。
YOLO在PASCAL VOC數據集上達到了63.4%的mAP,并且作者在原文中還提出了更小的版本——Fast YOLO。Fast YOLO在當時PASCAL數據集上最快的通用目標檢測器,而且達到了52.7%的mAP指標。
譯者注 2: 截至2019年7月,YOLO的作者還提出了兩個后續升級版本:YOLO9000(又稱YOLOv2)和YOLOv3。YOLO9000將網絡主干改為更快速的全卷積網絡DarkNet-19,并引入了Faster R-CNN的anchor機制使得檢測效果更佳。YOLOv3改進了損失函數計算方式、引入了特征金字塔并提出了高效的主干網絡DarkNet-53。目前YOLOv3已成為目標檢測最常用的算法之一。
論文地址:YOLO9000: Better, Faster, Stronger(https://arxiv.org/abs/1612.08242)
YOLOv3: An Incremental Improvement(https://pjreddie .com /media/files/papers/YOLOv3.pdf)
論文地址: Objects as Points (https://arxiv.org/abs/1904.07850v2)
這篇論文提出了一種將物體視作一個點的建模方式。它使用關鍵點估計來檢測物體的中心點,并對物體的其他屬性進行回歸。這些屬性包括:3D位置,人體姿勢,朝向,尺寸等等。也就是說——使用CenterNet,物體的各種屬性也作為網絡的輸出被一并回歸出來。CenterNet成為了一種更快、更準確的基于邊框回歸的目標檢測器。
譯者注 3: 有另一篇目標檢測論文與該論文幾乎同時發布:CenterNet: Keypoint Triplets for Object Detection,其簡稱也是CenterNet。但本文提到的CenterNet都是指Objects as Points這篇工作。
那么這些屬性究竟是如何回歸得到的呢?在CenterNet模型中,原始圖像被輸入網絡并得到一個熱圖(置信圖),這個熱圖表示了可能存在物體中心的位置(熱值的峰極有可能是出現物體中心點的位置)。除了這個熱圖以外,CenterNet模型的輸出還有一些其他的通道,從各個通道取出置信圖的峰值處的值,即可得到網絡對這個物體各種屬性值的預測。
CenterNet在COCO將目標檢測數據集上達到了45.1%的AP和1.4 fps的速度。下表為CenterNet與其他目標檢測器的效果對比。
數據增強,即通過操作原始圖像(如旋轉、縮放等)來獲得新的圖像數據的過程。通過數據增強,往往可以達到更好的訓練效果。
論文地址: Learning Data Augmentation Strategies for Object Detection (https://arxiv.org/abs/1906.11172v1)
這篇論文沒有提出新的模型結構,而是提出了一些可以遷移到其他目標檢測數據集上的圖像變換策略,這些策略經常被用在目標檢測網絡的訓練中。
在該論文的模型中,訓練時的增強策略包含N種操作。作者在模型中使用的增強方法包括改變顏色通道值、幾何變換或僅改變標注的物體邊框中的像素。
通過在COCO數據集上的實驗,作者發現使用優化的數據增強策略可以在mAP指標(mean average precision)上得到2.3%的提升,使得單模型可以達到50.7%的mAP。
通過閱讀本文,你應該已經對最近最常見的一般場景目標檢測方法有所了解了。
本文提到的一些論文中也包括他們的代碼實現。各位不妨自己測試一下看看效果如何。
https://www.toutiao.com/i6723778178361328136/
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。