python目标检测答案_你好,这里有一份2019年目标检测指南
譯者|Arno
來源|medium
目標檢測(Object detection)是一種計算機視覺技術,旨在檢測汽車、建筑物和人類等目標。這些目標通常可以通過圖像或視頻來識別。
目標檢測在視頻監控、自動駕駛汽車、人體跟蹤等領域得到了廣泛的應用。在本文中,我們將了解目標檢測的基礎知識,并回顧一些最常用的算法和一些全新的方法。
目標檢測的原理
目標檢測定位圖像中目標的存在,并在該目標周圍繪制一個邊界框(bounding box)。這通常包括兩個過程:預測目標的類型,然后在該目標周圍繪制一個框。現在讓我們來回顧一些用于目標檢測的常見模型架構:
R-CNN
Fast R-CNN
Faster R-CNN
Mask R-CNN
SSD (Single Shot MultiBox Defender)
YOLO (You Only Look Once)
Objects as Points
Data Augmentation Strategies for Object Detection
R-CNN 模型
該技術結合了兩種主要方法:使用一個高容量的卷積神經網絡將候選區域(region-proposals)自底向上的傳播,用來定位和分割目標;如果有標簽的訓練數據比較少,可以使用訓練好的參數作為輔助,進行微調(fine tuning),能夠得到非常好的識別效果提升。
論文鏈接: https://arxiv.org/abs/1311.2524?source=post_page—————————
進行特定領域的微調,從而獲得高性能的提升。由于將候選區域(region-proposals)與卷積神經網絡相結合,論文的作者將該算法命名為R-CNN(Regions with CNN features)。
該模型在對每張圖片提取了約2000個自底向上的候選區域。然后,它使用一個大型CNN計算每個區域的特征。然后,利用專門針對類別數據的線性支持向量機(SVMs)對每個區域進行分類。該模型在PASCAL VOC 2010上的平均精度達到53.7%。
該模型中的目標檢測系統由三個模塊組成。第一個負責生成類別無關的候選區域,這些區域定義了一個候選檢測區域的集合。第二個模塊是一個大型卷積神經網絡,負責從每個區域提取固定長度的特征向量。第三個模塊由一個指定類別的支持向量機組成。
該模型采用選擇性搜索(selective search)方法來生成區域類別,根據顏色、紋理、形狀和大小選擇搜索對相似的區域進行分組。在特征提取方面,該模型使用CNN的一個Caffe實現版本對每個候選區域抽取一個4096維度的特征向量。將227×227 RGB圖像通過5個卷積層和2個完全連接層進行前向傳播,計算特征。論文中所解釋的模型與之前在PASCAL VOC 2012的結果相比,取得了30%的相對改進。
而R-CNN的一些缺點是:
訓練需要多階段: 先用ConvNet進行微調,再用SVM進行分類,最后通過regression對 bounding box進行微調。
訓練空間喝時間成本大: 因為像VGG16這樣的深度網絡占用了大量的空間。
目標檢測慢: 因為其需要對每個目標候選進行前向計算。
Fast R-CNN
下面的論文中提出了一種名為Fast Region-based Convolutional Network(Fast R-CNN)目標檢測方法。
https://arxiv.org/abs/1504.08083?source=post_page—————————
它是用Python和c++使用Caffe實現的。該模型在PASCAL VOC 2012上的平均精度為66%,而R-CNN的平均精度為62%。
與R-CNN相比,Fast R-CNN具有更高的平均精度、單階段訓練,訓練更新所有網絡層并且特征緩存不需要磁盤存儲。
在其架構中, Fast R-CNN接收圖像以及一組目標候選作為輸入。然后通過卷積層和池化層對圖像進行處理,生成卷積特征映射。然后,通過針對每個推薦區域,ROI池化層從每個特征映射中提取固定大小的特征向量。
然后將特征向量提供給完全連接層。然后這些分支成兩個輸出層。其中一個為多個目標類生成softmax概率估計,而另一個為每個目標類生成4個實數值。這4個數字表示每個目標的邊界框的位置。
Faster R-CNN
論文鏈接: https://arxiv.org/abs/1506.01497?source=post_page—————————
論文提出了一種針對候選區域任務進行微調和針對目標檢測進行微調的訓練機制。
Faster R-CNN模型由兩個模塊組成:負責提出區域的深度卷積網絡和使用這些區域的Fast R-CNN探測器。候選區域網絡(Region Proposal Network)以圖像為輸入,生成矩形目標候選的輸出。每個矩形都有一個objectness score。
Mask R-CNN
論文鏈接: https://arxiv.org/abs/1703.06870?source=post_page—————————
論文提出的模型是上述Faster R-CNN架構的擴展。它還可以用于人體姿態估計。
在該模型中,使用邊界框和對每個像素點進行分類的語義分割對目標進行分類和定位。該模型通過在每個感興趣區域(ROI)添加分割掩碼(segmentation mask)的預測,擴展了Faster R-CNNR-CNN。Mask R-CNN產生兩個輸出:類標簽和邊界框。
SSD: Single Shot MultiBox Detector
論文鏈接: https://arxiv.org/abs/1512.02325?source=post_page—————————
論文提出了一種利用單個深度神經網絡對圖像中目標進行預測的模型。該網絡使用應用于特征映射的小卷積濾波器為每個目標類別生成分數。
這種方法使用了一個前饋卷積神經網絡,針對那些方框里的目標類別實例,產生一個固定大小的邊界框的集合和分數。增加了卷積特征層,允許多比例特征映射檢測。在這個模型中,每個特征映射單元(feature map cell)都鏈接到一組默認的邊界框(default box)。下圖顯示了SSD512在動物、車輛和家具上的性能。
You Only Look Once (YOLO)
論文提出了一種基于神經網絡的圖像邊界框和類概率預測方法。
論文鏈接: https://arxiv.org/abs/1506.02640?source=post_page—————————
YOLO模型每秒實時處理45幀。YOLO將圖像檢測看作是一個回歸問題,使得它的管道非常簡單。因為這個簡單的管道,它非常快。
它可以實時處理流視頻,延遲小于25秒。在訓練過程中,YOLO可以看到整個圖像,因此能夠在目標檢測中包含上下文。
在YOLO中,每個邊界框都由整個圖像的特征來預測。每個邊界框有5個預測:x, y, w, h,和置信度。(x, y)表示邊界框的中心相對于網格單元格的邊界。w和h是整個圖像的預測寬度和高度。
該模型作為卷積神經網絡實現,并在PASCAL VOC檢測數據集上進行了評價。網絡的卷積層負責提取特征,全連接層負責預測坐標和輸出概率。
該模型的網絡架構受到了用于圖像分類的GoogLeNet模型的啟發。該網絡有24個卷積層和2個全連接層。該模型的主要挑戰在于,它只能預測一個類,而且在鳥類等小目標上表現不佳。
該模型的平均精度達到52.7%,但有可能達到63.4%。
Objects as Points
論文提出將目標建模為單個點。它使用關鍵點估計來找到中心點,并回歸到其他目標屬性。
論文鏈接: https://arxiv.org/abs/1904.07850v2?source=post_page—————————
這些屬性包括3D位置、姿態和尺寸。它使用了CenterNet,這是一種基于中心點的方法,比其他邊界框探測器更快、更準確。
目標大小和姿態等屬性是由圖像中心位置的特征回歸得到的。該模型將圖像輸入卷積神經網絡,生成熱力圖。這些熱力圖中的峰值表示圖像中目標的中心。為了估計人體姿態,該模型檢測關節點(2D joint)位置,并在中心點位置對其進行回歸。
在COCO上,該模型以每秒1.4幀的速度實現了45.1%的平均精度。下圖顯示了與其他研究論文的結果進行比較的結果。
Learning Data Augmentation Strategies for Object Detection
數據增廣包括通過旋轉和調整大小等操作原始圖像來創建新圖像數據的過程。
論文鏈接: https://arxiv.org/abs/1906.11172v1?source=post_page—————————
雖然這本身不是一個模型結構,但論文提出了可以應用于可以轉移到其他目標檢測數據集的目標檢測數據集的變換的創建。轉換通常在訓練時應用。
該模型將增廣策略定義為訓練過程中隨機選擇的n個策略集合。該模型中應用的一些操作包括顏色變化、圖像幾何變化以及只變化bounding box annotations的像素內容。
在COCO數據集上的實驗表明,優化數據增廣策略可以使檢測精度提高到+2.3以上的平均精度。這使得單個推理模型的平均精度達到50.7。
總結
現在,我們應該對在各種上下文中進行目標檢測的一些最常見的技術(以及一些最新的技術)有所了解。
上面的論文/摘要也包含它們的代碼實現的鏈接。希望能看到你在測試這些模型后得到的結果。
總結
以上是生活随笔為你收集整理的python目标检测答案_你好,这里有一份2019年目标检测指南的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python装饰器setter实现原理_
- 下一篇: websocket python爬虫_p