摘要
提出一種在圖像中檢測物體的方法俏拱,叫做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).
多尺度
由SSD的網(wǎng)絡(luò)結(jié)構(gòu)可以看出玫霎,SSD使用6個(gè)不同特征圖檢測不同尺度的目標(biāo)。低層預(yù)測小目標(biāo)妈橄,高層預(yù)測大目標(biāo)庶近。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.
理論感受野和有效感受野
影響某個(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)檢測方法是相同的诫尽,都是對滑動窗口的分類。
注:
- 這里要好好理解這兩個(gè)概念:“每一層實(shí)際的有效感受野”和“default box設(shè)置的有效感受野”
- 注意全卷積神經(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è)方面考慮:
- 增大輸入尺寸
- 使用更低的特征圖做檢測
- 設(shè)置default box的大小遵馆,讓default box能夠更好的匹配實(shí)際的有效感受野
原文:https://blog.csdn.net/qianqing13579/article/details/82106664