当前位置: 首页>編程日記>正文

深度学习目标检测之SSD网络(超级详细)

深度学习目标检测之SSD网络(超级详细)

SSD介绍:

        是作者Wei Liu在ECCV 2016上发表的论文提出的。对于输入尺寸300*300的SSD网络使用Nvidia Titan X在VOC 2007测试集上达到74.3%mAP以及59FPS(每秒可以检测59张图片);对于输入512*512的SSD网络,达到了76.9%mAP,超越了当时最强的Faster RCNN(73.2%mAP)。达到真正的实时检测。

SSD网络结构:(可以达到在不同特征尺度上预测不同尺度的目标

         1、会对输入的图像进行缩放,必须是300*300*3的RGB图像。

         2、接下来进入主干网络,采用的是VGG-16的Conv5_3(第5个卷积部分的第三层)及之前的部分结构,如图:详细了解深度学习图像处理之VGG网络模型_BIgHAo1的博客-CSDN博客。通过Conv4_3,得到第一个特征预测层,输出为38*38*512的特征矩阵。当通过该网络后,特征矩阵输出大小为19*19*512。

        3、接下来通过3*3*1024的卷积层,输出19*19*1024的特征矩阵(可以看成是VGG16的第一个全连接层)。

        4、接下来通过1*1*1024的卷积层,得到第二个特征预测层,输出19*19*1024的特征矩阵(可以看成是VGG16的第二个全连接层)。

        5、接下来通过1*1*256和3*3*512(这个卷积层的步距为2)的卷积层,得到第三个特征预测层,输出10*10*512的特征矩阵。

        6、接下来通过1*1*128和3*3*256(此步距为2)的卷积层,得到第四个特征预测层,输出为5*5*256的特征矩阵。

        7、接下来通过1*1*128和3*3*256的卷积层,得到第五个特征预测层,输出为3*3*256的特征矩阵。

        8、最后通过1*1*128和3*3*256的卷积层,得到第6个特征预测层,输出为1*1*256的特征矩阵。

        注意卷积层步距为2的padding则为1,步距为0的padding则为0。

        通过上述过程,则得到了SSD的6个特征层,可以在这6个预测层,分别预测不同大小的目标。比如在第一个特征预测层,会让它检测相对较小的目标(因为此时抽象程度较小,细节的信息保留更多),随着抽象程度加深,让后面的特征预测层去检测更大的目标

SSD原论文示例:

 

        如图:图a是标注好的原图,图b和图c分别是8*8和4*4的特征矩阵。8*8的特征矩阵相比4*4的特征矩阵,抽象程度较低一些,所以它会保留更多的细节信息,就可以预测较小的目标。在图a猫的面积相对于狗的面积较小一些,所以就在8*8的feature map进行预测猫的目标边界框。很显然在图c中,4*4的Default Box(类似于Faster R-cnn的anchor box)可以很好的匹配GT box。

SSD中的Default Box的scale(尺度)以及aspect(比例)的设定:

        原论中scale的计算:  

         在很多实现的方法中,都没有采用该方法去计算,所以在这里直接给出每个预测特征层的目标尺度以及对应比例:

         为什么这里每个特征预测层会有两个scale

因为在原论文当中,对于比例为1的情况,我们会额外增加一个default box。这个增加的default的scale的值为,其中sk指的是第一个scale值(如21),sk+1指的是第二个scale值(如45),其中sk+1对应着下一层的第一个scale值。

         接下来,将直接给出6个特征预测层的default boxs的尺寸比例,以及数量:

        

        如图:在第一个特征预测层,特征矩阵为38*38,其中default box的尺寸有两种:

1、scale大小为21,有三种比例:1:2,1:1,2:1

2、scale大小为\sqrt{21*45},只有一种比例:1:1

        依次类推。注意:根据每个尺寸及比例的不同,在各个特征预测层输出的特征图中,每个位置生成的default box数量也不同,如图:特征层①⑤⑥会生成4个,特征层②③④会生成6个

        所以,对于特征图层①,因为其特征图的大小为38*38以及每个位置会生成4个default box,所以在该特征层中,总计会生成38*38*4个defaul box。

        依次类推,总计8732个default box,与原论中一样。

对于Default Box的再次理解:

        上图给出预测特征图1以及预测特征图4,以及标注了预测特征层1和预测特征层4的scale以及aspect信息。并假设在feature map1的该点位置生成它的default boxs,

        通过映射信息,找到该点对应原图的坐标,然后以它为中心,去绘制default box。如上图,对于左边的4个default box,三个较小的是通过该scale和aspect绘制而来;外面较大的是通过该绘制而来。

Predictor(预测器)的实现:

        即如何在这6个预测特征矩阵层上进行预测?

        原论文:对于预测为m*n*p的特征矩阵,用3*3*p的卷积层,生成概率分数以及坐标偏移量(边界框回归参数)(实现方法类似于Faster R-CNN)。 

        那对于每一个特征预测层,要使用多少个卷积核呢?

        原论文:对于特征图上的每一个位置,都会生成 k个default box,对每一个default box分别计算c个类别分数以及4个坐标偏移量(边界框回归参数),所以就需要k*(c+4)个卷积核进行卷积处理。那么对于m*n的特征矩阵而言,就会生成m*n*k*(c+4)个输出值

        解释上文:(c+4)*k=c*k+4*k

        

 每一个default box都会预测c个类别分数,这里的c个类别分数包括了背景类别(即会预测背景概率)。比如csk Voc测试集,所需预测的类别个数为20,所以它所对应的c为21,且第一个为背景的分数,后面依次为所预测目标的分数。

 四个参数分别为中心坐标,宽度以及高度的预测。(注意这里与Faster R-CNN有点不同,这里对每个default box都只生成4个参数,而Faster R-CNN,会对每一个anchor box 进行分类生成,即4*c个参数,c为类别个数)。

训练SSD模型时,正负样本的选取:

        

        原论文给出2个准则:1、对每一个ground truth box去匹配与它 iou值最大的default box,则也是正样本。   2、对于任意一个default box,只要它与任意一个ground truth box的iou值大于0.5,则是正样本。(与Faster R-CNN类似)

         选取策略:在上面剩下的所有负样本,计算它们的最大confidence loss(可以理解为越大,越不能被选取),选取值较小的作为负样本,数量为正样本的3倍。


损失的计算:

        (说明:以上各图并非原创)


https://www.fengoutiyan.com/post/14659.html

相关文章:

  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機