摘要:我們可以通過(guò)在特征圖上滑動(dòng)窗口來(lái)檢測(cè)目標(biāo)。以前的滑動(dòng)窗口方法的致命錯(cuò)誤在于使用窗口作為最終的邊界框,這就需要非常多的形狀來(lái)覆蓋大部分目標(biāo)。更有效的方法是將窗口當(dāng)做初始猜想,這樣我們就得到了從當(dāng)前滑動(dòng)窗口同時(shí)預(yù)測(cè)類別和邊界框的檢測(cè)器。
單次檢測(cè)器
Faster R-CNN 中,在分類器之后有一個(gè)專用的候選區(qū)域網(wǎng)絡(luò)。
Faster R-CNN 工作流
基于區(qū)域的檢測(cè)器是很準(zhǔn)確的,但需要付出代價(jià)。Faster R-CNN 在 PASCAL VOC 2007 測(cè)試集上每秒處理 7 幀的圖像(7 FPS)。和 R-FCN 類似,研究者通過(guò)減少每個(gè) ROI 的工作量來(lái)精簡(jiǎn)流程。
作為替代,我們是否需要一個(gè)分離的候選區(qū)域步驟?我們可以直接在一個(gè)步驟內(nèi)得到邊界框和類別嗎?
讓我們?cè)倏匆幌禄瑒?dòng)窗口檢測(cè)器。我們可以通過(guò)在特征圖上滑動(dòng)窗口來(lái)檢測(cè)目標(biāo)。對(duì)于不同的目標(biāo)類型,我們使用不同的窗口類型。以前的滑動(dòng)窗口方法的致命錯(cuò)誤在于使用窗口作為最終的邊界框,這就需要非常多的形狀來(lái)覆蓋大部分目標(biāo)。更有效的方法是將窗口當(dāng)做初始猜想,這樣我們就得到了從當(dāng)前滑動(dòng)窗口同時(shí)預(yù)測(cè)類別和邊界框的檢測(cè)器。
基于滑動(dòng)窗口進(jìn)行預(yù)測(cè)
這個(gè)概念和 Faster R-CNN 中的錨點(diǎn)很相似。然而,單次檢測(cè)器會(huì)同時(shí)預(yù)測(cè)邊界框和類別。例如,我們有一個(gè) 8 × 8 特征圖,并在每個(gè)位置做出 k 個(gè)預(yù)測(cè),即總共有 8 × 8 × k 個(gè)預(yù)測(cè)結(jié)果。
64 個(gè)位置
在每個(gè)位置,我們有 k 個(gè)錨點(diǎn)(錨點(diǎn)是固定的初始邊界框猜想),一個(gè)錨點(diǎn)對(duì)應(yīng)一個(gè)特定位置。我們使用相同的 錨點(diǎn)形狀仔細(xì)地選擇錨點(diǎn)和每個(gè)位置。
使用 4 個(gè)錨點(diǎn)在每個(gè)位置做出 4 個(gè)預(yù)測(cè)。
以下是 4 個(gè)錨點(diǎn)(綠色)和 4 個(gè)對(duì)應(yīng)預(yù)測(cè)(藍(lán)色),每個(gè)預(yù)測(cè)對(duì)應(yīng)一個(gè)特定錨點(diǎn)。
4 個(gè)預(yù)測(cè),每個(gè)預(yù)測(cè)對(duì)應(yīng)一個(gè)錨點(diǎn)。
在 Faster R-CNN 中,我們使用卷積核來(lái)做 5 個(gè)參數(shù)的預(yù)測(cè):4 個(gè)參數(shù)對(duì)應(yīng)某個(gè)錨點(diǎn)的預(yù)測(cè)邊框,1 個(gè)參數(shù)對(duì)應(yīng) objectness 置信度得分。因此 3× 3× D × 5 卷積核將特征圖從 8 × 8 × D 轉(zhuǎn)換為 8 × 8 × 5。
使用 3x3 卷積核計(jì)算預(yù)測(cè)。
在單次檢測(cè)器中,卷積核還預(yù)測(cè) C 個(gè)類別概率以執(zhí)行分類(每個(gè)概率對(duì)應(yīng)一個(gè)類別)。因此我們應(yīng)用一個(gè) 3× 3× D × 25 卷積核將特征圖從 8 × 8 × D 轉(zhuǎn)換為 8 × 8 × 25(C=20)。
每個(gè)位置做出 k 個(gè)預(yù)測(cè),每個(gè)預(yù)測(cè)有 25 個(gè)參數(shù)。
單次檢測(cè)器通常需要在準(zhǔn)確率和實(shí)時(shí)處理速度之間進(jìn)行權(quán)衡。它們?cè)跈z測(cè)太近距離或太小的目標(biāo)時(shí)容易出現(xiàn)問(wèn)題。在下圖中,左下角有 9 個(gè)圣誕老人,但某個(gè)單次檢測(cè)器只檢測(cè)出了 5 個(gè)。
SSD
SSD 是使用 VGG19 網(wǎng)絡(luò)作為特征提取器(和 Faster R-CNN 中使用的 CNN 一樣)的單次檢測(cè)器。我們?cè)谠摼W(wǎng)絡(luò)之后添加自定義卷積層(藍(lán)色),并使用卷積核(綠色)執(zhí)行預(yù)測(cè)。
同時(shí)對(duì)類別和位置執(zhí)行單次預(yù)測(cè)。然而,卷積層降低了空間維度和分辨率。因此上述模型僅可以檢測(cè)較大的目標(biāo)。為了解決該問(wèn)題,我們從多個(gè)特征圖上執(zhí)行獨(dú)立的目標(biāo)檢測(cè)。
使用多尺度特征圖用于檢測(cè)。
以下是特征圖圖示。
圖源:https://arxiv.org/pdf/1512.02325.pdf
SSD 使用卷積網(wǎng)絡(luò)中較深的層來(lái)檢測(cè)目標(biāo)。如果我們按接近真實(shí)的比例重繪上圖,我們會(huì)發(fā)現(xiàn)圖像的空間分辨率已經(jīng)被顯著降低,且可能已無(wú)法定位在低分辨率中難以檢測(cè)的小目標(biāo)。如果出現(xiàn)了這樣的問(wèn)題,我們需要增加輸入圖像的分辨率。
YOLO
YOLO 是另一種單次目標(biāo)檢測(cè)器。YOLO 在卷積層之后使用了 DarkNet 來(lái)做特征檢測(cè)。
然而,它并沒(méi)有使用多尺度特征圖來(lái)做獨(dú)立的檢測(cè)。相反,它將特征圖部分平滑化,并將其和另一個(gè)較低分辨率的特征圖拼接。例如,YOLO 將一個(gè) 28 × 28 × 512 的層重塑為 14 × 14 × 2048,然后將它和 14 × 14 ×1024 的特征圖拼接。之后,YOLO 在新的 14 × 14 × 3072 層上應(yīng)用卷積核進(jìn)行預(yù)測(cè)。
YOLO(v2)做出了很多實(shí)現(xiàn)上的改進(jìn),將 mAP 值從第一次發(fā)布時(shí)的 63.4 提高到了 78.6。YOLO9000 可以檢測(cè) 9000 種不同類別的目標(biāo)。
圖源:https://arxiv.org/pdf/1612.08242.pdf
以下是 YOLO 論文中不同檢測(cè)器的 mAP 和 FPS 對(duì)比。YOLOv2 可以處理不同分辨率的輸入圖像。低分辨率的圖像可以得到更高的 FPS,但 mAP 值更低。
圖源:https://arxiv.org/pdf/1612.08242.pdf
YOLOv3
YOLOv3 使用了更加復(fù)雜的骨干網(wǎng)絡(luò)來(lái)提取特征。DarkNet-53 主要由 3 × 3 和 1× 1 的卷積核以及類似 ResNet 中的跳過(guò)連接構(gòu)成。相比 ResNet-152,DarkNet 有更低的 BFLOP(十億次浮點(diǎn)數(shù)運(yùn)算),但能以 2 倍的速度得到相同的分類準(zhǔn)確率。
圖源:https://pjreddie.com/media/files/papers/YOLOv3.pdf
YOLOv3 還添加了特征金字塔,以更好地檢測(cè)小目標(biāo)。以下是不同檢測(cè)器的準(zhǔn)確率和速度的權(quán)衡。
圖源:https://pjreddie.com/media/files/papers/YOLOv3.pdf
特征金字塔網(wǎng)絡(luò)(FPN)
檢測(cè)不同尺度的目標(biāo)很有挑戰(zhàn)性,尤其是小目標(biāo)的檢測(cè)。特征金字塔網(wǎng)絡(luò)(FPN)是一種旨在提高準(zhǔn)確率和速度的特征提取器。它取代了檢測(cè)器(如 Faster R-CNN)中的特征提取器,并生成更高質(zhì)量的特征圖金字塔。
數(shù)據(jù)流
FPN(圖源:https://arxiv.org/pdf/1612.03144.pdf)
FPN 由自下而上和自上而下路徑組成。其中自下而上的路徑是用于特征提取的常用卷積網(wǎng)絡(luò)??臻g分辨率自下而上地下降。當(dāng)檢測(cè)到更高層的結(jié)構(gòu),每層的語(yǔ)義值增加。
FPN 中的特征提取(編輯自原論文)
SSD 通過(guò)多個(gè)特征圖完成檢測(cè)。但是,最底層不會(huì)被選擇執(zhí)行目標(biāo)檢測(cè)。它們的分辨率高但是語(yǔ)義值不夠,導(dǎo)致速度顯著下降而不能被使用。SSD 只使用較上層執(zhí)行目標(biāo)檢測(cè),因此對(duì)于小的物體的檢測(cè)性能較差。
圖像修改自論文 https://arxiv.org/pdf/1612.03144.pdf
FPN 提供了一條自上而下的路徑,從語(yǔ)義豐富的層構(gòu)建高分辨率的層。
自上而下重建空間分辨率(編輯自原論文)
雖然該重建層的語(yǔ)義較強(qiáng),但在經(jīng)過(guò)所有的上采樣和下采樣之后,目標(biāo)的位置不較精確。在重建層和相應(yīng)的特征圖之間添加橫向連接可以使位置偵測(cè)更加準(zhǔn)確。
增加跳過(guò)連接(引自原論文)
下圖詳細(xì)說(shuō)明了自下而上和自上而下的路徑。其中 P2、P3、P4 和 P5 是用于目標(biāo)檢測(cè)的特征圖金字塔。
FPN 結(jié)合 RPN
FPN 不單純是目標(biāo)檢測(cè)器,還是一個(gè)目標(biāo)檢測(cè)器和協(xié)同工作的特征檢測(cè)器。分別傳遞到各個(gè)特征圖(P2 到 P5)來(lái)完成目標(biāo)檢測(cè)。
FPN 結(jié)合 Fast R-CNN 或 Faster R-CNN
在 FPN 中,我們生成了一個(gè)特征圖的金字塔。用 RPN(詳見(jiàn)上文)來(lái)生成 ROI?;?ROI 的大小,我們選擇最合適尺寸的特征圖層來(lái)提取特征塊。
困難案例
對(duì)于如 SSD 和 YOLO 的大多數(shù)檢測(cè)算法來(lái)說(shuō),我們做了比實(shí)際的目標(biāo)數(shù)量要多得多的預(yù)測(cè)。所以錯(cuò)誤的預(yù)測(cè)比正確的預(yù)測(cè)要更多。這產(chǎn)生了一個(gè)對(duì)訓(xùn)練不利的類別不平衡。訓(xùn)練更多的是在學(xué)習(xí)背景,而不是檢測(cè)目標(biāo)。但是,我們需要負(fù)采樣來(lái)學(xué)習(xí)什么是較差的預(yù)測(cè)。所以,我們計(jì)算置信度損失來(lái)把訓(xùn)練樣本分類。選取較好的那些來(lái)確保負(fù)樣本和正樣本的比例最多不超過(guò) 3:1。這使訓(xùn)練更加快速和穩(wěn)定。
推斷過(guò)程中的非極大值抑制
檢測(cè)器對(duì)于同一個(gè)目標(biāo)會(huì)做出重復(fù)的檢測(cè)。我們利用非極大值抑制來(lái)移除置信度低的重復(fù)檢測(cè)。將預(yù)測(cè)按照置信度從高到低排列。如果任何預(yù)測(cè)和當(dāng)前預(yù)測(cè)的類別相同并且兩者 IoU 大于 0.5,我們就把它從這個(gè)序列中剔除。
Focal Loss(RetinaNet)
類別不平衡會(huì)損害性能。SSD 在訓(xùn)練期間重新采樣目標(biāo)類和背景類的比率,這樣它就不會(huì)被圖像背景淹沒(méi)。Focal loss(FL)采用另一種方法來(lái)減少訓(xùn)練良好的類的損失。因此,只要該模型能夠很好地檢測(cè)背景,就可以減少其損失并重新增強(qiáng)對(duì)目標(biāo)類的訓(xùn)練。我們從交叉熵?fù)p失 CE 開(kāi)始,并添加一個(gè)權(quán)重來(lái)降低高可信度類的 CE。
例如,令 γ = 0.5, 經(jīng)良好分類的樣本的 Focal loss 趨近于 0。
編輯自原論文
這是基于 FPN、ResNet 以及利用 Focal loss 構(gòu)建的 RetianNet。
原文鏈接
https://medium.com/@jonathan_hui/what-do-we-learn-from-region-based-object-detectors-faster-r-cnn-r-fcn-fpn-7e354377a7c9
https://medium.com/@jonathan_hui/what-do-we-learn-from-single-shot-object-detectors-ssd-yolo-fpn-focal-loss-3888677c5f4d
歡迎加入本站公開(kāi)興趣群商業(yè)智能與數(shù)據(jù)分析群
興趣范圍包括各種讓數(shù)據(jù)產(chǎn)生價(jià)值的辦法,實(shí)際應(yīng)用案例分享與討論,分析工具,ETL工具,數(shù)據(jù)倉(cāng)庫(kù),數(shù)據(jù)挖掘工具,報(bào)表系統(tǒng)等全方位知識(shí)
QQ群:81035754
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/4762.html
摘要:摘要本文介紹使用和完成視頻流目標(biāo)檢測(cè),代碼解釋詳細(xì),附源碼,上手快。將應(yīng)用于視頻流對(duì)象檢測(cè)首先打開(kāi)文件并插入以下代碼同樣,首先從導(dǎo)入相關(guān)數(shù)據(jù)包和命令行參數(shù)開(kāi)始。 摘要:?本文介紹使用opencv和yolo完成視頻流目標(biāo)檢測(cè),代碼解釋詳細(xì),附源碼,上手快。 在上一節(jié)內(nèi)容中,介紹了如何將YOLO應(yīng)用于圖像目標(biāo)檢測(cè)中,那么在學(xué)會(huì)檢測(cè)單張圖像后,我們也可以利用YOLO算法實(shí)現(xiàn)視頻流中的目標(biāo)檢...
摘要:我盡可能對(duì)深度學(xué)習(xí)目標(biāo)檢測(cè)器的組成做一個(gè)概述,包括使用預(yù)訓(xùn)練的目標(biāo)檢測(cè)器執(zhí)行任務(wù)的源代碼。當(dāng)我們理解了什么是目標(biāo)檢測(cè)時(shí),隨后會(huì)概述一個(gè)深度學(xué)習(xí)目標(biāo)檢測(cè)器的核心模塊。方法傳統(tǒng)的目標(biāo)檢測(cè)技術(shù)路線第一個(gè)方法不是純端到端的深度學(xué)習(xí)目標(biāo)檢測(cè)器。 目標(biāo)檢測(cè)技術(shù)作為計(jì)算機(jī)視覺(jué)的重要方向,被廣泛應(yīng)用于自動(dòng)駕駛汽車、智能攝像頭、人臉識(shí)別及大量有價(jià)值的應(yīng)用上。這些系統(tǒng)除了可以對(duì)圖像中的每個(gè)目標(biāo)進(jìn)行識(shí)別、分類以外...
摘要:三大牛和在深度學(xué)習(xí)領(lǐng)域的地位無(wú)人不知。逐漸地,這些應(yīng)用使用一種叫深度學(xué)習(xí)的技術(shù)。監(jiān)督學(xué)習(xí)機(jī)器學(xué)習(xí)中,不論是否是深層,最常見(jiàn)的形式是監(jiān)督學(xué)習(xí)。 三大牛Yann LeCun、Yoshua Bengio和Geoffrey Hinton在深度學(xué)習(xí)領(lǐng)域的地位無(wú)人不知。為紀(jì)念人工智能提出60周年,的《Nature》雜志專門開(kāi)辟了一個(gè)人工智能 + 機(jī)器人專題 ,發(fā)表多篇相關(guān)論文,其中包括了Yann LeC...
摘要:本文是雜志為紀(jì)念人工智能周年而專門推出的深度學(xué)習(xí)綜述,也是和三位大神首次合寫(xiě)同一篇文章。逐漸地,這些應(yīng)用使用一種叫深度學(xué)習(xí)的技術(shù)。監(jiān)督學(xué)習(xí)機(jī)器學(xué)習(xí)中,不論是否是深層,最常見(jiàn)的形式是監(jiān)督學(xué)習(xí)。 本文是《Nature》雜志為紀(jì)念人工智能60周年而專門推出的深度學(xué)習(xí)綜述,也是Hinton、LeCun和Bengio三位大神首次合寫(xiě)同一篇文章。該綜述在深度學(xué)習(xí)領(lǐng)域的重要性不言而喻,可以說(shuō)是所有人入門深...
閱讀 3036·2021-11-18 10:07
閱讀 3784·2021-11-17 17:00
閱讀 2114·2021-11-15 18:01
閱讀 941·2021-10-11 10:58
閱讀 3399·2021-09-10 10:50
閱讀 3471·2021-08-13 15:05
閱讀 1240·2019-08-30 15:53
閱讀 2661·2019-08-29 13:01