关键词不能为空

当前您在: 主页 > 英语 >

ssd算法

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-13 18:55
tags:

-

2021年2月13日发(作者:7974)


本文提出的


SSD


算法是一种直接预测目标类别 和


bounding box


的多目标检测


算法。




faster rcnn


相比,该算法没有生成



proposal


的过程,这就极大提高了检


测速度。


针对不同大小的目标检测,


传统的做法是先将 图像转换成不同大小


(图


像金字塔),然后分别检测,最后将结 果综合起来(


NMS


)。


< p>


SSD


算法则利用不同卷积层的



feature


map


进行综合也能达到同样的效


果。算法的主网络结构是


VGG16


,将最后两个全连接层改成卷积层,


并随后增

< br>加了


4


个卷积层来构造网络结构。对其中


5


种不同的卷积层的输出(


feature


map



分别


用两


个不


同的



3×3


的卷积


核进行卷积,一


个输

< p>
出分类用的


confidence



每个


default box


生成


21


个类别


confidence


一个输出回归用




localization


,每个



default box


生成


4


个坐标值(


x, y, w, h


)。



此外,这

5



feature


map


还经过



PriorBox


层生成



prior


box


(生成的是


坐标)



上述


5



feature map


中每一层的


default box

的数量是给定的


(8732



)< /p>


。最后将前面三个计算结果分别合并然后传给


loss

< p>
层。



Default box



文章的核心之一是作者同时采用


lower



upper



feature map


做检测。



如图


Fig


1

所示,这里假定有


8×8



4×4


两种不同的


feature


map< /p>


。第一


个概念是


feature map cell



feature map cell


是指


feature map


中每一个


小格子


,如图中分别有


64

< p>


16



cell


。另外有一个概念:


default box


,是


指在


feature ma p


的每个小格


(cell)


上都有一系 列固定大小的


box



如下图有


4


个(下图中的虚线框,仔细看格子的中间有比格子还小的一个


box


)。



假设每个


feature map cell

< br>有


k



default box


,那么对于每个


default box


都需要预测


c


个类别


scor e



4



of fset


,那么如果一个


feature

map


的大


小是


m×n

< p>
,也就是有


m*n



fe ature map cell


,那么这个


feature m ap



一共有



c+4



*k * m*n


个输出 。这些输出个数的含义是


:采用


3×3


的卷积


核对该层的


feature map

卷积时卷积核的个数,包含两部分(实际


code


是分


别用不同数量的


3*3


卷积核对该层


feature map


进行卷积):


数量< /p>


c*k*m*n



confidence


输出,表示每个


default box



confidence


,也就是类别的概

< br>率;数量


4*k*m*n



lo calization


输出,表示每个


default


box


回归后的坐



)。训练中还有一个东西:


prior box


,是指实际中选择的


default box


(每


一个


feature map cell


不是


k



default box


都取)。



也就是说


default box


是一种概念,


prior box


则是实际的选取。


训练中一张完


整的图片送进网络获得各个< /p>


feature


map


,对于正样本训 练来说,需要先将


prior box



ground truth box

< br>做


匹配


,匹配成功说明这个


pr ior box


所包


含的是个目标,但离完整目标的

< p>
ground


truth


box


还有段距离,训练的目的


是保证


default < /p>


box


的分类


confidence


的同时将


prior


box


尽可能回归到


ground truth box




举个列子:假 设一个训练样本中有


2



ground


truth


box


,所有的


feature


map


中获取的


prior box< /p>


一共有


8732


个。

那个可能分别有


10



20



prior


box


能分别与这


2



ground truth box


匹配上。训练的损失包含定位损失和


回归损 失两部分。



作者的实验表明


default box



shape


数量越多,效果越好。



这里用到的



default


box



Faster


RCNN


中的



anchor


很像,在


Faster


RCNN




anchor


只用在最后一个卷积层,但是在本文中,


default


box



应用在多个不同层的


feature map


上。



那么


default box



scale


(大小)和


aspect rat io


(横纵比)要怎么定呢?假


设我们用


m



feature


maps


做预测,那么对于每个


featuer


map


而言其


default box



scale


是按以下公式计算的:< /p>





Sk=S min+Smax?Sminm?1(k?1),k



[1,m ]



这里


smin


0.2


,表示最底层的


scal e



0.2



smax



0.9


,表示最高层的


scale



0.9




至于


aspect ratio


,用


a_r


表示为下式:注意这里一共 有


5



aspect ratio


a_r = {1, 2, 3, 1/2, 1/3}



因此每个


default box


的宽的计算公式为:



w_k^a=s_ksqrt{a_r}


高的计算公式为:(很容易理解宽和高的乘积是


scale


的平方)



h_k^a=s_k/sqrt{a_r}



另外当


aspect ratio


为< /p>


1


时,作者还增加一种


scale



default box




s_k^{'}=sqrt{s_{k}s_{k+1}}



因此,对于每个


feature map cell

< p>
而言,一共有


6



def ault box




可以看出这种


default


box


在不同的


feature


层有不同的< /p>


scale


,在同一个


feature< /p>


层又有不同的


aspect


ratio


,因此基本上可以覆盖输入图像中的各种


形状和大小的


object




(训 练自己的样本的时候可以在


FindMatch()


之后检查是 否能覆盖了所有的



ground truth box









< /p>


ssd_













caffe




< /p>


prior_box_



Forward _cpu()


实现。



最后会得到(


38*38*4


+


19*19*6


+


10*10*6


+


5*5*6


+


3*3*4


+


1*1*4



=


8732



prior box




Fig.2 SSD


框架



正负样本




prior box




grount truth box


按照


IOU



JaccardOverlap


)进行匹配,


匹配成功 则这个


prior box


就是


positive example


(正样本),


如果匹配不上,


就是

negative example


(负样本),显然这样产生的负样本的数量要远 远多于


正样本。


这里将前向


loss< /p>


进行排序,


选择最高的


num_sel< /p>



prior box


序号集



D



那么如果


Match


成功后的正样本序号集合


P


< br>那么最后正样本集为



P -


Dcap{P}



负样本集为



D - Dcap{P}



同时可以通 过规范


num_sel


的数量


(是


正样本数量的三倍)来控制使得最后正、负样本的比例在



1



3


左右。



Fig.3 positive and negtive sample VS ground_truth box



1.


正样本获得



我们已经在图上画出了


prior box


,同时也有了


ground truth


,那么下一步就




prio r


box





ground


truth








src/caffe/utlis/bbox_




FindMatches


以及子 函数


MatchBBox


函数里完成的。


值得注意的是先是从


groudtruth box


出发给每个


groudtruth


box


找到了最匹配的


prior b ox


放入


候选正样本集


,然后再从


prior box


出发



prior

< p>
box


集中寻找与


groundtruth


box


满足


IOU>0.5


的一个


IOU


最大



prior box


(如果有的话)放入


候选正 样本集


,这样显然就增大了候选正样本


集的数量。



2.


负样本获得



在生成一系列的



prior


boxes


之后,会产生很多个符合



ground


truth


box




positive boxes


(候选正样本集),但同时,不符合



ground truth boxes


也很多,


而且这个



negative boxes


(候选负样本集)



远多于



positive boxes



这会造成



negative boxes



positive boxes


之间的不均衡。训练时难以收敛。



因 此,


本文采取,


先将每一个物体位置上对应


predictions



prior boxes



loss


进行排序。



对于

候选正样本集



选择最高的几个


p rior box


与正样本集匹配


(box

索引同时存在于这两个集合里则匹配成功


)


,匹配不成功则 删除这个正样本(因


为这个正样本不在难例里已经很接近


gro und truth box


了,


不需要再训练了)

< p>


对于


候选负样本


集:选 择最高的几个


prior


box


与候 选负样本集匹配,匹配成


功则作为负样本。


< br>这就是一个难例挖掘的过程,举个例子,假设在这


8732



prior box


里,经



FindMatches


后得到候选正样本


P


个,


候选负样本那就有


8732-P


个。



prior box



prediction loss

按照从大到小顺序排列后选择最高的


M


< br>prior


box


。如果这


P


个候选正样本里有


a



box


不在这


M


< p>
prior


box


里,将这

M



box


从候选正样本集中踢出 去。如果这


8732-P


个候选负样本集中包含



8732-P



M-a


个在这


M



pri or box


,则将这


M-a


个候选负 样本作为


负样本。


SSD


算法中通过这 种方式来保证



positives



negatives


的比例。实


际代 码中有三种负样本挖掘方式:



如果选择


HARD_EXAMPLE


方式


(源于论文

< br>Training Region-based Object


Detectors with Online Hard Example Mining


),则默认


M = 64


,由于


无法控制正样本数量,


这种方式就有点类似于分类、


回归按比重不同交替训练了。







MAX_NEG ATIVE





M


=


P*neg_pos_ ratio





neg_pos_ratio = 3


的时候

< p>
,


就是论文中的正负样本比例


1:3


了。



enum


{


MultiBoxLossParameter_MiningType


MultiBoxLossParameter_MiningType_NONE


=


0,

-


-


-


-


-


-


-


-



本文更新与2021-02-13 18:55,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/652110.html

ssd算法的相关文章

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文