SSD: Single Shot MultiBox Detector

[pdf] [code]

摘要

提出一種在圖像中檢測物體的方法俏拱,叫做SSD卖毁,使用single deep neural network涝动;
SSD: 將bounding boxes的輸出空間離散化成一組default boxes(在每個(gè)feature map location上不同寬高比尺度)扣孟;
預(yù)測時(shí):網(wǎng)絡(luò)為每個(gè)default box中存在的每個(gè)物體類別評分良瞧,并調(diào)整box以更好匹配物體形狀;
另外悄晃,網(wǎng)絡(luò)預(yù)測結(jié)合了多種feature maps和不同分辨率來處理不同尺寸的物體

The Single Shot Detector (SSD)

多種寬高比和尺度的default box

Fig. 1: SSD framework. (a) SSD only needs an input image and ground truth boxes for each object during training. In a convolutional fashion, we evaluate a small set (e.g. 4) of default boxes of different aspect ratios at each location in several feature maps with different scales (e.g. 8 × 8 and 4 × 4 in (b) and (c)). For each default box, we predict both the shape offsets and the confidences for all object categories ((c1, c2, · · · , cp)). At training time, we first match these default boxes to the ground truth boxes. For example, we have matched two default boxes with the cat and one with the dog, which are treated as positives and the rest as negatives. The model loss is a weighted sum between localization loss (e.g. Smooth L1 [6]) and confidence loss (e.g. Softmax).

多尺度

Fig. 2: A comparison between two single shot detection models: SSD and YOLO. Our SSD model adds several feature layers to the end of a base network, which predict the offsets to default boxes of different scales and aspect ratios and their associated confidences. SSD with a 300 × 300 input size significantly outperforms its 448 × 448 YOLO counterpart in accuracy on VOC2007 test while also improving the speed.
由SSD的網(wǎng)絡(luò)結(jié)構(gòu)可以看出玫霎,SSD使用6個(gè)不同特征圖檢測不同尺度的目標(biāo)。低層預(yù)測小目標(biāo)妈橄,高層預(yù)測大目標(biāo)庶近。

理論感受野和有效感受野

影響某個(gè)神經(jīng)元輸出的輸入?yún)^(qū)域就是理論感受野,也就是我們平時(shí)說的感受野眷细,但該輸入?yún)^(qū)域的每個(gè)像素點(diǎn)對輸出的重要性不同拦盹,越靠近中心的像素點(diǎn)影響越大,呈高斯分布溪椎,也就是說只有中間的一小部分區(qū)域?qū)ψ詈蟮妮敵鲇兄匾挠绊懫沼撸@個(gè)中間的一小部分區(qū)域就是有效感受野恬口。

圖a中,整個(gè)黑色區(qū)域就是理論感受野(TRF)沼侣,中間呈高斯分布的白色點(diǎn)云區(qū)域就是有效感受野(ERF)
圖b中祖能,圖中黑色虛線區(qū)域?qū)?yīng)理論感受野,藍(lán)色虛線部分對應(yīng)有效感受野蛾洛,紅色實(shí)線框是anchor大小,他比理論感受野小很多养铸,但是能夠匹配有效感受野。

為什么要設(shè)置default box?

SSD在6個(gè)特征圖上使用2組3x3的卷積核分別做分類和boundingbox回歸,所以SSD是一個(gè)全卷積神經(jīng)網(wǎng)絡(luò)轧膘。我們知道每個(gè)特征圖上每個(gè)像素點(diǎn)對應(yīng)一個(gè)理論感受野钞螟,所以SSD相當(dāng)于對原圖中所有的理論感受野作分類和回歸,由于有效感受野在理論感受野中有重要的影響谎碍,其他區(qū)域的影響可以忽略鳞滨,所以這里我們認(rèn)為SSD是對有效感受野作分類和回歸,那么問題來了蟆淀,既然是對所有的有效感受野做分類和回歸拯啦,那每個(gè)有效感受野的分類的label和回歸的label是如何確定的呢?default box就是用來干這個(gè)的。
每一層的default box設(shè)置了每一層特征圖的有效感受野熔任,然后使用這些default box與ground truth進(jìn)行匹配來確定特征圖上每個(gè)像素點(diǎn)的實(shí)際的有效感受野的label(包含分類label和回歸label)褒链,分別用于分類和boundingbox回歸。說的簡單點(diǎn)疑苔,default box就是用來確定特征圖上每個(gè)像素點(diǎn)實(shí)際的有效感受野的label的甫匹。
既然default box是確定實(shí)際有效感受野的label的,所以如果default box設(shè)置的有效感受野能夠很好的匹配實(shí)際的有效感受野夯巷,SSD模型效果就會很好赛惩,如果兩者相差較大哀墓,模型效果就會很差趁餐。

上圖中,某一層特征圖的某個(gè)像素點(diǎn)對應(yīng)的實(shí)際有效感受野是紅色區(qū)域篮绰,這個(gè)實(shí)際有效感受野的label應(yīng)該是貓后雷,但是SSD訓(xùn)練時(shí)這個(gè)紅色區(qū)域的label是由default box確定的,如果default box設(shè)置的有效感受野對應(yīng)的是藍(lán)色區(qū)域吠各,通過對default box與ground truth進(jìn)行匹配我們發(fā)現(xiàn)臀突,藍(lán)色區(qū)域的label不是貓,而是背景贾漏,這樣由default box確定的labe與實(shí)際有效感受野的真實(shí)的label就匹配不上了候学,如果用這個(gè)label作為紅色區(qū)域的真實(shí)label就不對了,訓(xùn)練效果就會很差纵散。
由于default box只要匹配實(shí)際的有效感受野就可以了梳码,而實(shí)際的有效感受野要比理論感受野小很多隐圾,所以SSD中每一層的default box的大小可以比理論感受野小很多。作者在論文中也提到了這一點(diǎn):
Feature maps from different levels within a network are known to have different (empirical) receptive field sizes .Fortunately, within the SSD framework, the default boxes do not necessary need to correspond to the actual receptive fields of each layer. We design the tiling of default boxes so that specific feature maps learn to be responsive to particular scales of the objects.
大意就是:SSD中default box不必響應(yīng)實(shí)際的感受野掰茶,default box只對特定尺度的目標(biāo)響應(yīng)暇藏。也就是說,SSD的default box只要能夠響應(yīng)有效感受野就可以了濒蒋。
所以在訓(xùn)練SSD的時(shí)候盐碱,default box大小的設(shè)置非常重要。目前實(shí)際的有效感受野的大小還不能精確計(jì)算出來沪伙,如何讓default box設(shè)置的有效感受野更好的匹配實(shí)際的有效感受野還需要進(jìn)一步研究瓮顽。這一點(diǎn)作者在論文中也提到了:
An alternative way of improving SSD is to design a better tiling of default boxes so that its position and scale are better aligned with the receptive field of each position on a feature map. We leave this for future work.
了解了default box的作用后,我們就很容易知道SSD的本質(zhì)了围橡。

SSD對6個(gè)特征圖上所有的default box進(jìn)行分類和回歸趣倾,其實(shí)就是對6個(gè)特征圖對應(yīng)的實(shí)際的有效感受野進(jìn)行分類和回歸,說得更加通俗一點(diǎn)某饰,這些有效感受野其實(shí)就是原圖中的滑動窗口儒恋,所以SSD本質(zhì)上就是對所有滑動窗口進(jìn)行分類和回歸。這些滑動窗口圖像其實(shí)就是SSD實(shí)際的訓(xùn)練樣本黔漂。知道SSD的原理后我們發(fā)現(xiàn)深度學(xué)習(xí)的目標(biāo)檢測方法本質(zhì)與傳統(tǒng)的目標(biāo)檢測方法是相同的诫尽,都是對滑動窗口的分類。

注:

  1. 這里要好好理解這兩個(gè)概念:“每一層實(shí)際的有效感受野”“default box設(shè)置的有效感受野”
  2. 注意全卷積神經(jīng)網(wǎng)絡(luò)與非全卷積神經(jīng)網(wǎng)絡(luò)的區(qū)別炬守,一般的分類網(wǎng)絡(luò)比如AlexNet只需要對整幅圖像提取特征然后做分類牧嫉,感受野是整幅圖像,所以最后會用全連接層减途,而SSD中酣藻,由于要對每一個(gè)感受野做分類,所以只能用卷積層鳍置。

default box的匹配

現(xiàn)在我們知道了default box是用來確定label的辽剧,那么是如何確定label的呢?

在訓(xùn)練階段税产,SSD會先尋找與每個(gè)default box的IOU最大的那個(gè)ground truth(大于IOU閾值0.5)怕轿,這個(gè)過程叫做匹配。如果一個(gè)default box找到了匹配的ground truth,則該default box就是正樣本辟拷,該default box的類別就是該ground truth的類別撞羽,如果沒有找到,該default box就是負(fù)樣本衫冻。圖1(b)中8x8特征圖中的兩個(gè)藍(lán)色的default box匹配到了貓诀紊,該default box的類別為貓,圖1(c)中4x4特征圖中的一個(gè)紅色的default box匹配到了狗隅俘,該default box的類別為狗邻奠。圖2顯示了實(shí)際的匹配過程到推,兩個(gè)紅色的default box分別匹配到了貓和狗,左上角的default box沒有匹配惕澎,即為負(fù)樣本莉测。

為什么要設(shè)置多種寬高比的default box?

我們知道default box其實(shí)就是SSD的實(shí)際訓(xùn)練樣本,如果只設(shè)置了寬高比為1的default box,最多只有1個(gè)default box匹配到唧喉,如果設(shè)置更多寬高比的default box捣卤,將會有更多的default box匹配到,也就相當(dāng)于有更多的訓(xùn)練樣本參與訓(xùn)練八孝,模型訓(xùn)練效果越好董朝,檢測精度越高。

作者實(shí)驗(yàn)結(jié)果表明干跛,增加寬高比為1/2,2,1/3,3的default box子姜,mAP從71.6%提高到了74.3%。

如何選擇default box的scale和aspect ratio楼入?

假設(shè)我們用m個(gè)feature maps做預(yù)測哥捕,那么對于每個(gè)featuer map而言其default box的scale是按以下公式計(jì)算的赖瞒。

示例:
假設(shè)m=6纯续,即使用6個(gè)特征圖做預(yù)測, 則每一層的scale: 0.2, 0.34, 0.48, 0.62, 0.76, 0.9
對于第一層拧略,scale=0.2,對應(yīng)的6個(gè)default box為:

寬高比
1 0.200000 0.200000
2 0.282843 0.141421
3 0.346410 0.115470
1/2 0.141421 0.282843
1/3 0.115412 0.346583
最后增加的default box 0.260768 0.260768

注:表格中每個(gè)寬高比的default box的實(shí)際寬和高需要乘以輸入圖像的大小吼和,如SSD300,則需要使用上面的數(shù)值乘以300得到default box實(shí)際大小。

數(shù)據(jù)增強(qiáng)

SSD中使用了兩種數(shù)據(jù)增強(qiáng)的方式
放大操作: 隨機(jī)crop劫笙,patch與任意一個(gè)目標(biāo)的IOU為0.1,0.3,0.5,0.7,0.9井辆,每個(gè)patch的大小為原圖大小的[0.1,1],寬高比在1/2到2之間借跪。能夠生成更多的尺度較大的目標(biāo)
縮小操作: 首先創(chuàng)建16倍原圖大小的畫布孕惜,然后將原圖放置其中愧薛,然后隨機(jī)crop,能夠生成更多尺度較小的目標(biāo)

作者實(shí)驗(yàn)表明衫画,增加了數(shù)據(jù)增強(qiáng)后毫炉,mAP從65.5提高到了74.3!

SSD的缺點(diǎn)及改進(jìn)

SSD主要缺點(diǎn):SSD對小目標(biāo)的檢測效果一般碧磅,作者認(rèn)為小目標(biāo)在高層沒有足夠的信息碘箍。
論文原文:
This is not surprising because those small objects may not even have any information at the very top layers. Increasing the input size (e.g. from 300× 300 to 512× 512) can help improve detecting small objects, but there is still a lot of room to improve.
對SSD的改進(jìn)可以從下面幾個(gè)方面考慮:

  1. 增大輸入尺寸
  2. 使用更低的特征圖做檢測
  3. 設(shè)置default box的大小遵馆,讓default box能夠更好的匹配實(shí)際的有效感受野

原文:https://blog.csdn.net/qianqing13579/article/details/82106664

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鲸郊,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子货邓,更是在濱河造成了極大的恐慌秆撮,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件换况,死亡現(xiàn)場離奇詭異职辨,居然都是意外死亡盗蟆,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進(jìn)店門舒裤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來喳资,“玉大人,你說我怎么就攤上這事腾供∑偷耍” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵伴鳖,是天一觀的道長节值。 經(jīng)常有香客問我,道長榜聂,這世上最難降的妖魔是什么搞疗? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮须肆,結(jié)果婚禮上匿乃,老公的妹妹穿的比我還像新娘。我一直安慰自己豌汇,他們只是感情好扳埂,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著瘤礁,像睡著了一般阳懂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上柜思,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天岩调,我揣著相機(jī)與錄音,去河邊找鬼赡盘。 笑死号枕,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的陨享。 我是一名探鬼主播葱淳,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼抛姑!你這毒婦竟也來了赞厕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤定硝,失蹤者是張志新(化名)和其女友劉穎皿桑,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡诲侮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年镀虐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沟绪。...
    茶點(diǎn)故事閱讀 39,981評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡刮便,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出绽慈,到底是詐尸還是另有隱情诺核,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布久信,位于F島的核電站窖杀,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏裙士。R本人自食惡果不足惜入客,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望腿椎。 院中可真熱鬧桌硫,春花似錦、人聲如沸啃炸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽南用。三九已至膀钠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間裹虫,已是汗流浹背肿嘲。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留筑公,地道東北人雳窟。 一個(gè)月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像匣屡,于是被迫代替她去往敵國和親封救。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評論 2 355