衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

SSD多盒目標檢測技術的直觀解釋

zhKF_jqr_AI ? 2018-04-06 13:04 ? 次閱讀

編者按:Towards Data Science博主Eddie Forson直觀地解釋了SSD多盒目標檢測技術。

端到端目標檢測(來源:Microsoft)

本文的目的是構建一個SSD多盒目標檢測技術的直觀解釋。我嘗試盡可能少地使用數學,相反,緩慢地引導你了解整個架構的原則,包括解釋多盒算法的作用。閱讀本文之后,我希望你更好地理解了SSD,并可以自行嘗試使用這一模型。

自從AlexNet在2012年ILSVRC上暴風般地占領學術界之后,深度學習便成為圖像識別任務的首選方法,遠超文獻中更傳統的計算機視覺技術。在計算機視覺領域中,卷積神經網絡在圖像分類(classification)方面表現出色。圖像分類任務中,給定待分類的圖片和一個分類(class)的集合(例如,貓、狗),然后讓網絡決定圖像的最強(strongest)分類。

貓狗圖(來源:kaggle)

當前,深度學習網絡在圖像分類方面的表現已經超過人類,這表明這一技術是多么強大。然而,我們人類觀察世界和與世界交互時所做的遠不止分類圖片。我們同時定位(localize)和分類(classify)視野內的每個元素。這些復雜得多的任務,機器仍在艱辛地努力達到和人類相當的表現。事實上,我主張,表現良好的目標檢測將使機器更接近真實場景理解。

圖像顯示了貓、狗,還是兩者皆有?(來源:kaggle)

基于區域的卷積神經網絡(R-CNN)

幾年前,研究人員提出了R-CNN,以應對目標檢測、定位、分類任務。大體上說,R-CNN是一種特殊的CNN,可以定位和檢測圖像中的目標:輸出基本上是一組匹配檢測到的目標的包圍盒,以及對應的分類。下圖顯示了一個典型的R-CNN輸出的結果:

SSD多盒目標檢測技術的直觀解釋

這一領域的論文很多,對有興趣深入的讀者,我推薦從下面的“三部曲”開始:

R-CNN

Fast-R-CNN

Faster-R-CNN

正如你可能猜到的那樣,Fast-R-CNN是對R-CNN的改進,而Faster-R-CNN又是對Fast-R-CNN的改進,以研發針對實時目標檢測的更快的網絡。上面的“三部曲”達到的成就真的很驚人,不過沒有一個架構成功構建了一個實時目標檢測器。這些網絡存在以下問題(省略細節部分):

難以訓練,并且訓練時間過長

需要進行多階段訓練(例如,訓練候選區域和分類器)

網絡在推理階段太慢(即處理非訓練數據)

幸運的是,最近提出了新的架構,以解決R-CNN的瓶頸。其繼任者足以進行實時目標檢測。其中最有名的是YOLO(You Only Look Once,你只看一次)和SSD多盒(SSD是Single Shot Detector單次檢測器的縮寫)。本文將討論SSD,因為相比YOLO,目前網上介紹SSD架構的文章不多。另外,一旦你理解了SSD,你會更容易理解YOLO.

單次多盒檢測器

C. Szegedy等人在2016年11月底發表的論文SSD: Single Shot MultiBox Detector在目標檢測任務中創造了新紀錄,在PascalVOC和COCO這樣的標準數據集上取得了74% mAP(mean Average Precision),59幀每秒的成績。為了更好地理解SSD,讓我們先從解釋這一架構命名的由來開始:

Single Shot(單次)這意味著目標定位和分類任務通過網絡的單次前向傳播完成。

MultiBox(多盒)這是由Szegedy等開發的包圍盒回歸技術。

Detector(偵測器)該網絡是一個目標偵測器,分類檢測到的目標。

架構

SSD多盒目標檢測技術的直觀解釋

單次多盒偵測器架構(輸入 300x300x3)

如上圖所示,SSD的架構基于可敬的VGG-16架構,但拋棄了全連接層。使用VGG-16作為基礎網絡(base network)的原因是其在高畫質圖像分類任務上的強力表現和在遷移學習有助于改善結果的任務上的流行性。架構沒有使用原VGG的全連接層,轉而加入了一組輔助卷積層(自conv6開始),從而在不同尺度上提取特征,并逐層遞減輸入的尺寸。

SSD多盒目標檢測技術的直觀解釋

VGG架構(輸入 224x224x3)

多盒

SSD的包圍盒回歸技術受到了Szegedy在多盒方面的工作的啟發。多盒是一種快速分類不可知(class-agnostic)包圍盒坐標提議的方法。有趣的是,多盒使用的是Inception風格的卷積神經網絡。下圖中的1x1卷積有助于降維,因為維度將下降(但“寬度”和“高度”將保持不變)。

SSD多盒目標檢測技術的直觀解釋

多盒架構

多盒的損失函數同樣組合了兩個關鍵的組件,這也為SSD所吸收:

置信度損失(Confidence Loss)衡量網絡對計算出的包圍盒的objectness的置信度。使用類別交叉熵計算這一損失。

定位損失(Location Loss)衡量網絡預測的包圍盒和訓練集的標準答案相差多遠。這里使用了L2正則化。

不過多深究數學的話,(如果你很好奇并想了解更嚴謹的概念,請閱讀論文)損失的表達式如下:

multibox_loss = confidence_loss + alpha * location_loss

其中,alpha項幫助我們平衡定位損失的貢獻。

多盒先驗和IoU

涉及包圍盒生成的邏輯實際上比我之前陳述的要復雜。不過別怕:它仍在能力范圍之內。

多盒中的先驗(prior)(Faster-R-CNN術語中的錨(anchor))是提前計算的固定尺寸包圍盒,匹配原標準答案包圍盒的分布。事實上,這些先驗的選取方式使得它們和標準答案包圍盒的交并比(IoU,有時稱為Jaccard指數)大于0.5. 從下圖可以推測,0.5的交并比仍然不夠好,但是它確實為包圍盒回歸算法提供了一個強力的開始——這是一個比隨機坐標要好得多的策略!因此,多盒從將先驗作為預測開始,試圖回歸逼近標準答案包圍盒。

IoU示意部分取自維基百科

最終所得的架構(參考前文提及的多盒架構示意圖),每個特征映射細胞(8x8、6x6、4x4、3x3、2x2)包含11個先驗,而1x1特征映射僅包含一個先驗,即每張圖像共有1420個先驗,從而在輸入圖像上達到不同比例的穩健覆蓋,以檢測不同尺寸的目標。

最后,多盒僅僅保留最好的K個預測,這些預測同時最小化定位(LOC)損失和置信度(CONF)損失。

SSD的改進

回到SSD,SSD加入了一些調整,提升了該網絡定位和分類目標的能力。

固定先驗和多盒不同,每個特征映射細胞關聯一組尺寸和長寬比不同的默認包圍盒。這些先驗是手工(精心)選擇的,而在多盒中,先驗是基于與相應的標準答案包圍盒的交并比超過0.5選擇的。在理論上這使得SSD可以概括任何種類的輸入,無需生成先驗的預訓練階段。例如,假定我們為每個特征映射細胞的每個默認包圍盒b配置了兩個對角點(x1, y1)和(x2, y2),然后需要基于c個分類進行分類,而給定的特征映射尺寸為f = m * n,那么,SSD將為該特征映射計算f * b * (4 + c)值。

SSD多盒目標檢測技術的直觀解釋

定位損失SSD使用平滑L1正則化(smooth L1-Norm)計算定位損失。盡管不如L2正則化那樣精確,這仍然非常有效,也給了SSD更多取巧的空間,因為SSD的包圍盒預測并不追求“像素完美”(對許多人而言,一些像素的差異很難察覺)。

分類多盒并不執行目標分類,而SSD進行分類。因此,SSD為每個預測的包圍盒、數據集中的每個可能的分類計算c分類預測的集合。

訓練并運行SSD

數據集

我們將訓練和測試帶有標準答案包圍盒及相應的分類標簽(每個包圍盒有一個分類標簽)的數據集。Pascal VOC和COCO數據集是一個很好的開始。

Pascal VOC數據集圖像

默認包圍盒

建議配置一組多樣化的包圍盒,包括不同的比例和長寬比,確??梢圆蹲降酱蠖鄶的繕?。在SSD論文中,每個特征映射單元有6個包圍盒。

特征映射

特征映射(即卷積塊的結果)是不同尺度上圖像的主導特征的表示,因此在不同特征映射上運行多盒增加了逐漸檢測、定位、分類任何目標(大目標和小目標)的概率。下圖顯示了網絡是如何在特征映射上“看到”給定圖像的:

SSD多盒目標檢測技術的直觀解釋

VGG特征映射可視化(圖片來源 Brown Uni)

Hard Negative Mining

在訓練中,由于大多數包圍盒的IoU較低,會被視作負面訓練樣本,我們最終的訓練集可能會有不成比例的負面樣本。因此,建議不要使用所有的負面預測,將負面樣本和正面樣本的比例保持在3:1. 我們需要保留負面樣本的原因是網絡同樣需要學習什么構成了錯誤檢測。

SSD多盒目標檢測技術的直觀解釋

圖片來源 Jamie Kang

數據增強

SSD的作者說,和許多深度學習應用一樣,數據增強是非常重要的部分,使網絡能夠學習更穩健地應對輸入中的不同目標尺寸。為了達到這一目標,他們生成了額外的訓練樣本,包括不同IoU的補?。ɡ纾?.1、0.3、0.5等),以及隨機補丁。此外,每張圖像基于0.5的概率隨機水平翻轉,從而確保潛在目標出現在左側和右側的概率相同。

水平翻轉的圖像,來源:Behavioural Cloning

非極大值抑制(NMS)

在推理階段,SSD的前向傳播中生成了數量巨大的包圍盒,因此應用非極大值抑制(non-maximum suppression)技術修剪大多數包圍盒很有必要:置信度損失低于閾值ct(例如,0.01),IoU低于閾值lt(例如,0.45)的包圍盒被拋棄了,僅保留最高的N個預測。這確保只有最可能的預測被網絡保留,而移除了大多數噪聲。

NMS的例子(來源:DeepHub)

SSD的補充說明

SSD提出了以下觀察:

更多的默認包圍盒導致更精確的檢測,不過這會影響速度。

在多層上使用多盒同樣能帶來更好的檢測效果,這是因為檢測器在不同尺度的特征上運行。

80%的時間花在基礎VGG-16網絡上:這意味著使用一個速度更快的同樣精確的網絡,SSD的性能會更好。

相似類別的目標會迷惑SSD(例如,動物)。這大概是因為不同分類的位置相同。

SSD-500(使用512x512輸入圖像的SSD最高分辨率變體)在Pascal VOC2007上達到了最佳mAP(76.8%),不過相應的代價是速度,幀率降至22 fps. 因此,SSD-300是一個更好的折衷(74.3% mAP、59 fps)。

SSD在較小的目標上表現較差,因為較小的目標可能不在所有特征映射上出現。增加輸入圖像分辨率緩解了這一問題,但并沒有完全解決它。

嘗試SSD

網上有一些SSD實現,包括論文作者的Caffe代碼。我選用的是Paul Balan?a的TensorFlow實現。代碼和論文都值得一讀,以便更好地理解所有東西是如何結合在一起的。

我最近決定基于SSD重新實現一個基于傳統計算機視覺技術的車輛檢測項目。下面的gif表明SSD的效果非常好:

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • SSD
    SSD
    +關注

    關注

    21

    文章

    2888

    瀏覽量

    117861
  • 計算機視覺
    +關注

    關注

    8

    文章

    1700

    瀏覽量

    46129

原文標題:SSD多盒實時目標檢測教程

文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    檢測目標

    你好,我想使用PICKIT-3。用MPLAX 3.50.PIC KIT-3進行檢測檢測目標。但是在MPLAB V8上。檢測到90個PIC試劑
    發表于 05-27 11:41

    ssd模型對小目標檢測的效果不好分析

    對于ssd對小目標檢測效果的思考
    發表于 09-06 09:24

    迅為3399開發板新增目標檢測技術-RKSSD-編譯程序

    幀率達到 8 幀以上,精度略低而速度更快的 MobileNet SSD300 0.75 的運行幀率超過 11 幀。準實時的運行速度,將目標檢測這一基礎 AI 技術在嵌入式端帶向實用。除
    發表于 02-01 14:12

    基于EMD和維數的固定微弱目標檢測

    為了對強海雜波中的固定微弱目標進行檢測,論文提出了基于EMD和維數的目標檢測算法。該算法首先采用EMD方法在時域內提取海雜波的低頻分量,并
    發表于 05-19 15:39 ?0次下載

    基于通道注意力機制的SSD目標檢測算法

    為提升原始SSD算法的小目標檢測精度及魯棒性,提出一種基于通道注意力機制的SSD目標檢測算法。在
    發表于 03-25 11:04 ?20次下載

    基于尺度融合SSD的小目標檢測算法綜述

    針對一階段目標檢測算法在識別小目標時無法兼顧精度與實時性的問題,提出一種基于尺度融合單點多探測器(S
    發表于 05-27 16:32 ?9次下載

    基于SSD和深層神經網絡的目標檢測方法

    為了提高計算機視覺中目標檢測的一種基本模型SSD在多任務場景中的準確率和效率,基于深度學習的相關理論研究,結合一種輕量級的深層神經網絡 Mobilenεt的基本思想,構建了一種結合特征金字塔的
    發表于 05-28 14:55 ?11次下載

    尺度卷積特征融合的SSD目標檢測

    提岀了一種改進的尺度卷積特征目標檢測方法,用以提高SSD( single shot multibox detector)模型對中目標和小
    發表于 06-11 16:21 ?11次下載

    基于Grad-CAM與KL損失的SSD目標檢測算法

    時會出現漏檢甚至錯檢的情況,提出一種改進的SSD目標檢測算法,以提高中小目標檢測的準確性.運用Gradient-weighted Class
    發表于 01-21 08:40 ?1006次閱讀

    基于改進SSD的車輛小目標檢測方法

    基于改進SSD的車輛小目標檢測方法 來源:《應用光學》,作者李小寧等 ? 摘?要:地面車輛目標檢測問題中由于
    發表于 02-08 08:55 ?1440次閱讀
    基于改進<b class='flag-5'>SSD</b>的車輛小<b class='flag-5'>目標</b><b class='flag-5'>檢測</b>方法

    基于并行附加特征提取網絡的SSD地面小目標檢測模型

    基于并行附加特征提取網絡的SSD地面小目標檢測模型 來源:《電子學報》 ,作者李寶奇等 摘 要: 針對SSD原始附加特征提取網絡(Original Additional Feature
    的頭像 發表于 02-17 16:41 ?1495次閱讀

    基于SSD算法的小目標檢測方法研究

    針對通用目標檢測方法在復雜環境下檢測目標時效果不佳、漏檢率高等問題,本文對SSD目標
    的頭像 發表于 04-02 16:14 ?4152次閱讀

    目標檢測與識別技術的關系是什么

    目標檢測與識別技術是計算機視覺領域的兩個重要研究方向,它們之間存在著密切的聯系和相互依賴的關系。 一、目標檢測與識別
    的頭像 發表于 07-17 09:38 ?780次閱讀

    目標檢測與識別技術有哪些

    目標檢測與識別技術是計算機視覺領域的重要研究方向,廣泛應用于安全監控、自動駕駛、醫療診斷、工業自動化等領域。 目標檢測與識別
    的頭像 發表于 07-17 09:40 ?748次閱讀

    ICY DOCK M.2轉U.2 SSD轉接如何重新定義M.2 NVMe SSD

    ICY DOCK M.2轉U.2 SSD轉接如何重新定義M.2 NVMe SSD
    的頭像 發表于 10-21 18:08 ?330次閱讀
    ICY DOCK M.2轉U.2 <b class='flag-5'>SSD</b>轉接<b class='flag-5'>盒</b>如何重新定義M.2 NVMe <b class='flag-5'>SSD</b>
    香港六合彩特码资料| www.sbobet2.com| 久治县| 百家乐官网桌游| 百家乐游戏软件开发| 百家乐五铺的缆是什么意思| 盛世国际娱乐场| 百家乐官网技巧头头娱乐| 百家乐冯耕耘打法| 永利高现金网| 百家乐官网好的平台| 摩纳哥百家乐官网的玩法技巧和规则 | 新世百家乐的玩法技巧和规则| 速博娱乐| 百家乐官网博娱乐场| 百苑百家乐的玩法技巧和规则| 香港六合彩报码室| 网络百家乐官网真人游戏| 百家乐赌场游戏平台| 顶旺国际| A8百家乐官网娱乐| 百家乐官网筹码多少钱| 百家乐看炉子的方法| 万豪网| 做生意属虎的朝向| 大发888洗码| 百家乐官网赌博代理| 淘宝博百家乐的玩法技巧和规则| 湘阴县| 专业的百家乐官网玩家| 现场百家乐官网平台源码| 百家乐官网清零| 百家乐官网详情| 什么风水适合做生意| 百家乐偷码| 极速百家乐官网真人视讯| 游戏百家乐官网的玩法技巧和规则 | 百家乐官网二代皇冠博彩| 百家乐太阳城真人游戏| 罗平县| 百家乐西园二手房|