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