精华内容
下载资源
问答
  • SSD目标检测算法论文-英文原版,SSD: Single Shot MultiBox Detector
  • SSD目标检测论文简读

    2018-09-11 18:37:13
    本文简单综合性地介绍一下SSD,SSD文章内容信息较多,若有失误之处,望能热心指出,感谢. SSD框架介绍:   算法的主网络结构是VGG16,将两个全连接层改成卷积层(Conv6与Conv7)再增加4个卷积层构成网络结构。然后对6...

    本文简单综合性地介绍一下SSD,SSD文章内容信息较多,若有失误之处,望能热心指出,感谢.

    SSD框架介绍:

     

    算法的主网络结构是VGG16,将两个全连接层改成卷积层(Conv6与Conv7)再增加4个卷积层构成网络结构。然后对6个特征图使用3*3卷积滤波器(k*(c+4)个滤波器)进行卷积,生成对应特征图大小的深度为k*(c+4)的矩阵,然后将6不同特征图得到的矩阵分别在分辨率维度上进行flatten并进行连接,最终生成一个8732*(4+c)的矩阵,形成这个矩阵的每一行对应一个图像目标检测的框.

    在训练阶段需要将得到的8732个经验框与真实目标框进行匹配.

    Default box匹配:在训练阶段,首先为每一个真实目标框在default box中匹配一个jaccard重叠最大的框,然后为所有的default box匹配jaccard重叠度大于0.5的真实目标框,匹配成功的经验框设置为正,剩下的设置为负,然后利用加权损失进行训练.

    文章参考:

    https://blog.csdn.net/wfei101/article/details/79323480

    https://blog.csdn.net/hx921123/article/details/56884701

    https://blog.csdn.net/Errors_In_Life/article/details/70494804

    https://blog.csdn.net/a8039974/article/details/77592395

     

    展开全文
  • 上一章我们了解到,物体识别检测算法是在传统CNN算法基础上加上目标区域建议策略和边框回归算法得到的。前辈们的工作主要体现在目标区域建议的改进策略上,从最开始的穷举建议框,到划分图像区域,再到从特征图上...

    4.2 改进的SSD

    上一章我们了解到,物体识别检测算法是在传统CNN算法基础上加上目标区域建议策略和边框回归算法得到的。前辈们的工作主要体现在目标区域建议的改进策略上,从最开始的穷举建议框,到划分图像区域,再到从特征图上生成建议框,算法的改进带来的收益越来越大。本节的主要内容是结合上一章讲的DenseNet和前面讲的SSD目标检测算法,将DenseNet作为SSD算法的基础网络,用于提取深度特征,再结合SSD算法中的目标边框建议策略和边框回归算法,重新构建一个端到端的物体识别检测网络。

    4.2.1 基础网络改进

    在寻找进一步提高检测准确性的方法时,尤其是对于小对象来说,除了提高预测边界框的空间分辨率外,更明显的目标是使用更好的特征网络和增加更多的上下文信息。以前的SSD版本是基于VGG网络,但很多研究人员使用更深的网络取得了更好的精确度。

    大多数目标检测方法,包括Fast R-CNN,YOLO等使用最顶层的卷积层来学习检测不同尺度的物体。尽管这些方法很实用,但是单层模型对于所有可能存在的目标尺寸和形状来说,拟合的能力有些捉襟见肘。有很多种方法可以利用ConvNet中的多个层来提高检测精度。一种方法就是合并不同层的特征图,由于组合特征映射具有来自不同抽象级别输入图像的特征,所以合并特征更具有描述性。但是,组合特征映射不仅显著增加模型的内存占有量,而且也降低了模型的速度。另一种方法使用ConvNet中的不同层来预测不同比例的对象。由于不同层的节点具有不同的接受域,因此从具有较大接受域的层预测较大对象并使用具有较小接受域的层来预测小对象是很自然的。然而,为了很好地检测小物体,这些方法需要使用具有小接受域和密集特征图的浅层信息,这可能导致小物体检测性能低下,因为浅层具有较少的关于物体的语义信息。通过使用跳跃连接,我们可以在特征映射中注入更多的语义信息,从而帮助预测小物体。

    我们的改进是使用DenseNet代替原始SSD结构中的VGG,以提高目标检测准确性。图4-9显示了以DenseNet为基础网络的SSD。在这种结构下,我们在conv5_x之后添加不同尺寸的特征图层,并预测conv3_x,conv5_x和其他特征图上的目标置信度和边框偏移量。
    在这里插入图片描述
    图4-9 SSD基础网络改进图

    4.2.2 预测网络改进

    在原始SSD中,目标函数直接作用于选定的特征映射,并且由于梯度的大小,L2归一化层被用于conv4_3层。研究表明,改进每个任务的子网络可以提高检测准确性。遵循这个原则,我们为每个预测层添加一个密集连接块,如图4-10中模块c所示。我们还尝试原始SSD方法(a)和带有跳跃连接(b)以及两个连续密集块(d)的版本。从实验结果来看,用DenseNet作为SSD的基础网络以及用DenseBlock作为预测网络相比原始SSD有更好的准确度。
    在这里插入图片描述
    图4-10 预测块及变种

    4.3 训练网络

    我们遵循与SSD一样的训练策略。首先,我们必须匹配一组Default Box来定位目标真实边框。对于每个目标真实边框,我们将其与最佳重叠的Default Box以及IoU大于阈值(例如0.5)的任何Box匹配,Box尺寸如表4-1所示。在未匹配的Box中,我们根据置信度损失来选择某些Box作为负样本,并使正负样本的比例为1:3。然后我们联合定位损失函数(如Smooth L1)和置信度损失(如Softmax),并最小化损失函数。最后采用随机光度测量失真和随机翻转裁剪区域来完成大量数据增强。

    在这里插入图片描述
    实验都基于DenseNet,它是在ILSVRC CLS-LOC数据集上预先训练的。遵循R-FCN的建议,我们将conv5阶段的有效步幅从32像素改为16个像素,以增加特征图的分辨率。在conv5阶段中第一个带有步幅2的卷积层被修改为1。然后遵循trous算法,对于卷积核大小大于1的conv5阶段中的所有卷积层,我们将它们的扩张幅度从1增加到2。跟SSD一样,我们使用DenseNet块生成一些额外的层,以弥补逐渐减少的特征图。

    我们在VOC 2007和VOC 2012的训练集上联合训练了模型。对于原始的SSD模型,我们对321×321输入的模型使用32的批处理大小,对于513×513输入的模型使用20的批处理大小,并且对于前40k的迭代开始0.001的学习率。然后,我们在60K迭代时将其降至0.0001,70K降至0.00001。我们将这个训练好的SSD模型作为网络的预训练模型。对于第一阶段,我们将前10k次迭代的学习率设为0.001,然后以0.0001的学习率继续训练10k次迭代。对于第二阶段,我们对整个网络进行微调,对于第一个20k迭代,学习率为0.001,并且在接下来的20k迭代中将其减小到0.0001。

    表4-2显示了被选中的VGG结构和DenseNet结构中特征层,深度depth就是网络中被选中层的位置。网络只考虑卷积层和池化层。注意这个网络的第一个预测层的深度很重要,虽然DenseNet包含101层,但我们需要使用密集层来预测较小的对象,只能选择conv3_x块中的最后一层。表4-2表示VGG与DenseNet中被选中用于预测的层所在的位置。
    在这里插入图片描述

    4.4 实验结果对比与分析

    如下图4-7所示,左侧是原始SSD检测出的图像,右侧是改进后的SSD检测出的图像。很显然,改进后的SSD网络对小物体比较敏感,能够对小物体产生很好的拟合。类似的对比见图4-8和图4-9。
    在这里插入图片描述
    图4-7 SSD(左)和改进SSD(右)的检测效果
    在这里插入图片描述
    图4-8 检测小目标效果图(1)
    在这里插入图片描述
    图4-9 检测小目标效果图(2)

    表4-3显示了在PASCAL VOC2007数据集上测试的结果。SSD300和SSD512采用最新的SSD扩展数据增强技术,它已经比许多其他最先进的检测器更好。通过将VGGNet替换为DenseNet,如果输入图像很小,则性能相似。例如,SSD-Res类似于SSD-VGG,尽管DenseNet似乎能够更快地收敛(例如,我们只使用VGGNet一半的迭代时间来训练我们的SSD版本)。有趣的是,当我们增加输入图像尺寸时,DenseNet比VGGNet好大约1%。我们推测,DenseNet具有较大的输入图像尺寸是非常重要的,因为它比VGGNet更深,因此对象在某些非常深的层(例如conv5_x)中仍然具有强大的空间信息。更重要的是,我们看到通过添加跳过连接,我们的DSSD321和DSSD513比没有这些额外层的准确率要好1到1.5%。这证明了我们提出的方法的有效性。值得注意的是,即使模型不需要任何手工的上下文区域信息,DSSD513也比尝试包含上下文信息的其他方法好得多。此外,我们的单模型精度比当前最先进的探测器R-FCN提高1%。
    在这里插入图片描述
    总之,SSD在测试任务中都显示出对具有特定背景和小对象的类的巨大改进。例如,飞机,船,牛和羊有非常特殊的背景,比如飞机后的天空,牛后的草地等。这表明SSD中小物体检测的弱点可以通过所提出的模型来解决,并且对于具有独特上下文的类来说,性能更好。

    为了了解我们添加到SSD中结构的有效性,我们在VOC2007上运行具有不同设置的模型,并在表4-4中记录它们的评估。PM即为Prediction模块。使用321像素作为输入的纯SSD是76.4%mAP。这个数字实际上比VGG模型差。通过添加预测模块,我们可以看到结果正在改进,最好的情况是在预测之前使用一个残差块作为中间层。这个想法是为了避免允许目标函数的梯度直接流入剩余网络的主干。如果在预测之前叠加两个PM,我们看不到太大的差异。

    在这里插入图片描述

    4.5 本章小结

    本章首先阐述了物体检测算法的原理,并重点介绍了SSD检测算法的原理,即在基础网络上加上检测区域建议和边框回归策略。原始SSD的缺点在于预测层太浅,不能很好的拟合小目标。我们将第三章介绍的DenseNet作为SSD的基础网络,并使用“跳跃连接”的方式在预测层上进行深度特征提取。利用DenseNet拥有良好的上下文信息的优势,成功改造了SSD,提高了速度和精度。使其对小目标也有很好的拟合。

    展开全文
  • 之前搜集的基于SSD目标检测结构的改进论文英文原文,看过的大佬不必在意,如果需要进行相关文档而不愿意费力去找的可以直接下载。
  • 针对SSD算法在计算机视觉中检测多目标时出现的漏检现象,在SSD算法的基础上,将VGG-16网络替换为密集型网络,并对目标检测后的所有预测框进行非极大值抑制算法改进,使得每层网络都直接连接输入和损失,保证所提取到...
  • SSD 目标检测

    千次阅读 2018-09-30 17:23:57
    转载自:...SSD github : https://github.com/weiliu89/caffe/tree/ssd SSD paper : https://arxiv.org/abs/1512.02325 SSD eccv2016 slide pdf : http://do...

    转载自:https://blog.csdn.net/a8039974/article/details/77592395

    SSD github : https://github.com/weiliu89/caffe/tree/ssd

    SSD paper : https://arxiv.org/abs/1512.02325

    SSD eccv2016 slide pdf : http://download.csdn.NET/download/zy1034092330/9940054

    SSD pose estimation paper : http://download.csdn.net/download/zy1034092330/9940059



    图1

    缩进SSD,全称Single Shot MultiBox Detector,是Wei Liu在ECCV 2016上提出的一种目标检测算法,截至目前是主要的检测框架之一,相比Faster RCNN有明显的速度优势,相比YOLO又有明显的mAP优势(不过已经被CVPR 2017的YOLO9000超越)。SSD具有如下主要特点:

    1. 从YOLO中继承了将detection转化为regression的思路,同时一次即可完成网络训练
    2. 基于Faster RCNN中的anchor,提出了相似的prior box;
    3. 加入基于特征金字塔(Pyramidal Feature Hierarchy)的检测方式,相当于半个FPN思路

    本文接下来都以SSD 300为例进行分析。


    1 SSD网络结构

    图2 SSD网络结构(和代码貌似有点差别)

    缩进上图2是原论文中的SSD 300网络结构图。可以看到YOLO在卷积层后接全连接层,即检测时只利用了最高层feature maps(包括Faster RCNN也是如此);而SSD采用了特征金字塔结构进行检测,即检测时利用了conv4-3,conv-7(FC7),conv6-2,conv7-2,conv8_2,conv9_2这些大小不同的feature maps,在多个feature maps上同时进行softmax分类和位置回归,如图3。

    图3 单层feature map预测和特征金字塔预测对比


    2 Prior Box

    缩进在SSD中引入了Prior Box,实际上与anchor非常类似,就是一些目标的预选框,后续通过softmax分类+bounding box regression获得真实目标的位置。SSD按照如下规则生成prior box:

    • 以feature map上每个点的中点为中心(offset=0.5),生成一些列同心的prior box(然后中心点的坐标会乘以step,相当于从feature map位置映射回原图位置)
    • 正方形prior box最小边长为,最大边长为:
    • 每在prototxt设置一个aspect ratio,会生成2个长方形,长宽为: 和 


    图4 prior box

    • 而每个feature map对应prior box的min_size和max_size由以下公式决定,公式中m是使用feature map的数量(SSD 300中m=6):

    第一层feature map对应的min_size=S1,max_size=S2;第二层min_size=S2,max_size=S3;其他类推。在原文中,Smin=0.2,Smax=0.9,但是在SSD 300中prior box设置并不能和paper中上述公式对应:

      min_size max_size
    conv4_3
    30
    60
    fc7
    60
    111
    conv6_2
    111
    162
    conv7_2
    162
    213
    conv8_2
    213
    264
    conv9_2 
    264
    315

    不过依然可以看出,SSD使用低层feature map检测小目标,使用高层feature map检测大目标,这也应该是SSD的突出贡献了。其中SSD 300在conv4_3生成prior box的conv4_3_norm_priorbox层prototxt定义如下:

    1. layer {  
    2.   name: "conv4_3_norm_mbox_priorbox"  
    3.   type: "PriorBox"  
    4.   bottom: "conv4_3_norm"  
    5.   bottom: "data"  
    6.   top: "conv4_3_norm_mbox_priorbox"  
    7.   prior_box_param {  
    8.     min_size: 30.0  
    9.     max_size: 60.0  
    10.     aspect_ratio: 2  
    11.     flip: true  
    12.     clip: false  
    13.     variance: 0.1  
    14.     variance: 0.1  
    15.     variance: 0.2  
    16.     variance: 0.2  
    17.     step: 8  
    18.     offset: 0.5  
    19.   }  
    20. }  

    知道了priorbox如何产生,接下来分析prior box如何使用。这里以conv4_3为例进行分析。

    图5

    从图5可以看到,在conv4_3 feature map网络pipeline分为了3条线路:

    • 经过一次batch norm+一次卷积后,生成了[1, num_class*num_priorbox, layer_height, layer_width]大小的feature用于softmax分类目标和非目标(其中num_class是目标类别,SSD 300中num_class = 21)
    • 经过一次batch norm+一次卷积后,生成了[1, 4*num_priorbox, layer_height, layer_width]大小的feature用于bounding box regression(即每个点一组[dxmin,dymin,dxmax,dymax],参考Faster RCNN 2.5节)
    • 生成了[1, 2, 4*num_priorbox]大小的prior box blob,其中2个channel分别存储prior box的4个点坐标和对应的4个variance

    缩进后续通过softmax分类+bounding box regression即可从priox box中预测到目标,熟悉Faster RCNN的读者应该对上述过程应该并不陌生。其实pribox box的与Faster RCNN中的anchor非常类似,都是目标的预设框,没有本质的差异。区别是每个位置的prior box一般是4~6个,少于Faster RCNN默认的9个anchor;同时prior box是设置在不同尺度的feature maps上的,而且大小不同。

    缩进还有一个细节就是上面prototxt中的4个variance,这实际上是一种bounding regression中的权重。在图4线路(2)中,网络输出[dxmin,dymin,dxmax,dymax],即对应下面代码中bbox;然后利用如下方法进行针对prior box的位置回归:

    1. decode_bbox->set_xmin(  
    2.     prior_bbox.xmin() + prior_variance[0] * bbox.xmin() * prior_width);  
    3. decode_bbox->set_ymin(  
    4.     prior_bbox.ymin() + prior_variance[1] * bbox.ymin() * prior_height);  
    5. decode_bbox->set_xmax(  
    6.     prior_bbox.xmax() + prior_variance[2] * bbox.xmax() * prior_width);  
    7. decode_bbox->set_ymax(  
    8.     prior_bbox.ymax() + prior_variance[3] * bbox.ymax() * prior_height);  

    上述代码可以在SSD box_utils.cpp的void DecodeBBox()函数见到。


    3 Permute,Flatten And Concat Layers

    图6

    缩进上一节以conv4_3 feature map分析了如何检测到目标的真实位置,但是SSD 300是使用包括conv4_3在内的共计6个feature maps一同检测出最终目标的。在网络运行的时候显然不能像图6一样:一个feature map单独计算一次softmax socre+box regression(虽然原理如此,但是不能如此实现)。那么多个feature maps如何协同工作?这时候就要用到Permute,Flatten和Concat这3种层了。其中conv4_3_norm_conf_perm的prototxt定义如下:

    Permute是SSD中自带的层,上面conv4_3_norm_mbox_conf_perm的的定义。Permute相当于交换caffe blob中的数据维度。在正常情况下caffe blob的顺序为:

    bottom blob = [batch_num, channel, height, width]

    经过conv4_3_norm_mbox_conf_perm后的caffe blob为:

    top blob = [batch_num, height, width, channel]

    而Flattlen和Concat层都是caffe自带层,请参照caffe official documentation理解。



    图7 SSD中部分层caffe blob shape变化


    缩进那么接下来以conv4_3和fc7为例分析SSD是如何将不同size的feature map组合在一起进行prediction。图7展示了conv4_3和fc7合并在一起的过程中caffe blob shape变化(其他层类似,考虑到图片大小没有画出来,请脑补)。

    • 对于conv4_3 feature map,conv4_3_norm_priorbox(priorbox层)设置了每个点共有4个prior box。由于SSD 300共有21个分类,所以conv4_3_norm_mbox_conf的channel值为num_priorbox * num_class = 4 * 21 = 84;而每个prior box都要回归出4个位置变换量,所以conv4_3_norm_mbox_loc的caffe blob channel值为4 * 4 = 16。
    • fc7每个点有6个prior box,其他feature map同理。
    • 经过一系列图7展示的caffe blob shape变化后,最后拼接成mbox_conf和mbox_loc。而mbox_conf后接reshape,再进行softmax(为何在softmax前进行reshape,Faster RCNN有提及)。
    • 最后这些值输出detection_out_layer,获得检测结果

    4 SSD网络结构优劣分析

    缩进SSD算法的优点应该很明显:运行速度可以和YOLO媲美,检测精度可以和Faster RCNN媲美。除此之外,还有一些鸡毛蒜皮的优点,不解释了。这里谈谈缺点:

    1. 需要人工设置prior box的min_size,max_size和aspect_ratio值。网络中prior box的基础大小和形状不能直接通过学习获得,而是需要手工设置。而网络中每一层feature使用的prior box大小和形状恰好都不一样,导致调试过程非常依赖经验。
    2. 虽然采用了pyramdial feature hierarchy的思路,但是对小目标的recall依然一般,并没有达到碾压Faster RCNN的级别。作者认为,这是由于SSD使用conv4_3低级feature去检测小目标,而低级特征卷积层数少,存在特征提取不充分的问题。


    5 SSD训练过程


    缩进对于SSD,虽然paper中指出采用了所谓的“multibox loss”,但是依然可以清晰看到SSD loss分为了confidence loss和location loss两部分,其中N是match到GT(Ground Truth)的prior box数量;而α参数用于调整confidence loss和location loss之间的比例,默认α=1。SSD中的confidence loss是典型的softmax loss:


    其中代表第i个prior box匹配到了第j个class为p类别的GT box;而location loss是典型的smooth L1 loss:

    Matching strategy:

    缩进在训练时,groundtruth boxes 与 default boxes(就是prior boxes) 按照如下方式进行配对:

    • 首先,寻找与每一个ground truth box有最大的jaccard overlap的default box,这样就能保证每一个groundtruth box与唯一的一个default box对应起来(所谓的jaccard overlap就是IoU,如图8)。
    • SSD之后又将剩余还没有配对的default box与任意一个groundtruth box尝试配对,只要两者之间的jaccard overlap大于阈值,就认为match(SSD 300 阈值为0.5)。
    • 显然配对到GT的default box就是positive,没有配对到GT的default box就是negative。

    图8 jaccard overlap

    Hard negative mining:
    缩进值得注意的是,一般情况下negative default boxes数量>>positive default boxes数量,直接训练会导致网络过于重视负样本,从而loss不稳定。所以需要采取:
    • 所以SSD在训练时会依据confidience score排序default box,挑选其中confidience高的box进行训练,控制positive:negative=1:3

    Data augmentation:

    缩进数据增广,即每一张训练图像,随机的进行如下几种选择:

    • 使用原始的图像
    • 采样一个 patch,与物体之间最小的 jaccard overlap 为:0.1,0.3,0.5,0.7 或 0.9
    • 随机的采样一个 patch
    采样的 patch 是原始图像大小比例是[0.1,1],aspect ratio在1/2与2之间。当 groundtruth box 的 中心(center)在采样的patch中时,保留重叠部分。在这些采样步骤之后,每一个采样的patch被resize到固定的大小,并且以0.5的概率随机的 水平翻转(horizontally flipped)。


    其实Matching strategy,Hard negative mining,Data augmentation,都是为了加快网络收敛而设计的。尤其是Data augmentation,翻来覆去的randomly crop,保证每一个prior box都获得充分训练而已。不过当数据达到一定量的时候,不建议再进行Data augmentation,毕竟“真”的数据比“假”数据还是要好很多。

    展开全文
  • SSD目标检测原理

    千次阅读 2017-10-04 11:51:42
    SSD目标检测原理

    转载博客:http://blog.csdn.net/u010167269/article/details/52563573

    Preface

    这是今年 ECCV 2016 的一篇文章,是 UNC Chapel Hill(北卡罗来纳大学教堂山分校) 的 Wei Liu 大神的新作,论文代码:https://github.com/weiliu89/caffe/tree/ssd 

    目前 voc 2012 的榜单 如下: 

    这里写图片描述

    做目标检测这块的多关注哦~


    Abstract

    这篇文章在既保证速度,又要保证精度的情况下,提出了 SSD 物体检测模型,与现在流行的检测模型一样,将检测过程整个成一个 single deep neural network。便于训练与优化,同时提高检测速度。

    SSD 将输出一系列 离散化(discretization) 的 bounding boxes,这些 bounding boxes 是在 不同层次(layers) 上的 feature maps 上生成的,并且有着不同的 aspect ratio

    在 prediction 阶段

    • 要计算出每一个 default box 中的物体,其属于每个类别的可能性,即 score,得分。如对于 PASCAL VOC 数据集,总共有 20 类,那么得出每一个 bounding box 中物体属于这 20 个类别的每一种的可能性。

    • 同时,要对这些 bounding boxes 的 shape 进行微调,以使得其符合物体的 外接矩形

    • 还有就是,为了处理相同物体的不同尺寸的情况,SSD 结合了不同分辨率的 feature maps 的 predictions。

    相对于那些需要 object proposals 的检测模型,本文的 SSD 方法完全取消了 proposals generation、pixel resampling 或者 feature resampling 这些阶段。这样使得 SSD 更容易去优化训练,也更容易地将检测模型融合进系统之中。

    在 PASCAL VOCMS COCOILSVRC 数据集上的实验显示,SSD 在保证精度的同时,其速度要比用 region proposals 的方法要快很多。

    SSD 相比较于其他单结构模型(YOLO),SSD 取得更高的精度,即是是在输入图像较小的情况下。如输入 300×300 大小的 PASCAL VOC 2007 test 图像,在 Titan X 上,SSD 以 58 帧的速率,同时取得了 72.1% 的 mAP。

    如果输入的图像是 500×500,SSD 则取得了 75.1% 的 mAP,比目前最 state-of-art 的 Faster R-CNN 要好很多。


    Introduction

    现金流行的 state-of-art 的检测系统大致都是如下步骤,先生成一些假设的 bounding boxes,然后在这些 bounding boxes 中提取特征,之后再经过一个分类器,来判断里面是不是物体,是什么物体。

    这类 pipeline 自从 IJCV 2013, Selective Search for Object Recognition 开始,到如今在 PASCAL VOCMS COCOILSVRC 数据集上取得领先的基于 Faster R-CNN 的 ResNet 。但这类方法对于嵌入式系统,所需要的计算时间太久了,不足以实时的进行检测。当然也有很多工作是朝着实时检测迈进,但目前为止,都是牺牲检测精度来换取时间。

    本文提出的实时检测方法,消除了中间的 bounding boxes、pixel or feature resampling 的过程。虽然本文不是第一篇这样做的文章(YOLO),但是本文做了一些提升性的工作,既保证了速度,也保证了检测精度。

    这里面有一句非常关键的话,基本概括了本文的核心思想:

    Our improvements include using a small convolutional filter to predict object categories and offsets in bounding box locations, using separate predictors (filters) for different aspect ratio detections, and applying these filters to multiple feature maps from the later stages of a network in order to perform detection at multiple scales.

    本文的主要贡献总结如下:

    • 提出了新的物体检测方法:SSD,比原先最快的 YOLO: You Only Look Once 方法,还要快,还要精确。保证速度的同时,其结果的mAP 可与使用 region proposals 技术的方法(如 Faster R-CNN)相媲美。

    • SSD 方法的核心就是 predict object(物体),以及其 归属类别的 score(得分);同时,在 feature map 上使用小的卷积核,去predict 一系列 bounding boxes 的 box offsets

    • 本文中为了得到高精度的检测结果,在不同层次的 feature maps 上去 predict objectbox offsets,同时,还得到不同 aspect ratio的 predictions。

    • 本文的这些改进设计,能够在当输入分辨率较低的图像时,保证检测的精度。同时,这个整体 end-to-end 的设计,训练也变得简单。在检测速度、检测精度之间取得较好的 trade-off

    • 本文提出的模型(model)在不同的数据集上,如 PASCAL VOCMS COCOILSVRC, 都进行了测试。在检测时间(timing)、检测精度(accuracy)上,均与目前物体检测领域 state-of-art 的检测方法进行了比较。


    The Single Shot Detector(SSD)

    这部分详细讲解了 SSD 物体检测框架,以及 SSD 的训练方法。

    这里,先弄清楚下文所说的 default box 以及 feature map cell 是什么。看下图:

    • feature map cell 就是将 feature map 切分成 8×8 或者 4×4 之后的一个个 格子

    • 而 default box 就是每一个格子上,一系列固定大小的 box,即图中虚线所形成的一系列 boxes。

    这里写图片描述


    Model

    SSD 是基于一个前向传播 CNN 网络,产生一系列 固定大小(fixed-size) 的 bounding boxes,以及每一个 box 中包含物体实例的可能性,即 score。之后,进行一个 非极大值抑制(Non-maximum suppression) 得到最终的 predictions。

    SSD 模型的最开始部分,本文称作 base network,是用于图像分类的标准架构。在 base network 之后,本文添加了额外辅助的网络结构:

    • Multi-scale feature maps for detection 
      在基础网络结构后,添加了额外的卷积层,这些卷积层的大小是逐层递减的,可以在多尺度下进行 predictions。

    • Convolutional predictors for detection 
      每一个添加的特征层(或者在基础网络结构中的特征层),可以使用一系列 convolutional filters,去产生一系列固定大小的 predictions,具体见 Fig.2。对于一个大小为 m×n,具有 p 通道的特征层,使用的 convolutional filters 就是 3×3×p   的 kernels。产生的 predictions,那么就是归属类别的一个得分,要么就是相对于 default box coordinate 的 shape offsets。 
      在每一个 m×n 的特征图位置上,使用上面的 3×3 的 kernel,会产生一个输出值。bounding box offset 值是输出的 default box 与此时 feature map location 之间的相对距离(YOLO 架构则是用一个全连接层来代替这里的卷积层)。

    • Default boxes and aspect ratios 
      每一个 box 相对于与其对应的 feature map cell 的位置是固定的。 在每一个 feature map cell 中,我们要 predict 得到的 box 与default box 之间的 offsets,以及每一个 box 中包含物体的 score(每一个类别概率都要计算出)。 
      因此,对于一个位置上的 k 个boxes 中的每一个 box,我们需要计算出 c 个类,每一个类的 score,还有这个 box 相对于 它的默认 box 的 4 个偏移值(offsets)。于是,在 feature map 中的每一个 feature map cell 上,就需要有 (c+4)×k 个 filters。对于一张m×n 大小的 feature map,即会产生 (c+4)×k×m×n 个输出结果。

    这里的 default box 很类似于 Faster R-CNN 中的 Anchor boxes,关于这里的 Anchor boxes,详细的参见原论文。但是又不同于 Faster R-CNN 中的,本文中的 Anchor boxes 用在了不同分辨率的 feature maps 上。

    这里写图片描述


    Training

    在训练时,本文的 SSD 与那些用 region proposals + pooling 方法的区别是,SSD 训练图像中的 groundtruth 需要赋予到那些固定输出的 boxes 上。在前面也已经提到了,SSD 输出的是事先定义好的,一系列固定大小的 bounding boxes。

    如下图中,狗狗的 groundtruth 是红色的 bounding boxes,但进行 label 标注的时候,要将红色的 groundtruth box 赋予 图(c)中一系列固定输出的 boxes 中的一个,即 图(c)中的红色虚线框。 

    这里写图片描述

    事实上,文章中指出,像这样定义的 groundtruth boxes 不止在本文中用到。在 YOLO 中,在 Faster R-CNN 中的 region proposal 阶段,以及在 MultiBox 中,都用到了。

    当这种将训练图像中的 groundtruth 与固定输出的 boxes 对应之后,就可以 end-to-end 的进行 loss function 的计算以及 back-propagation 的计算更新了。

    训练中会遇到一些问题:

    • 选择一系列 default boxes

    • 选择上文中提到的 scales 的问题

    • hard negative mining

    • 数据增广的策略

    下面会谈本文的解决这些问题的方式,分为以下下面的几个部分。 

    Matching strategy

    如何将 groundtruth boxes 与 default boxes 进行配对,以组成 label 呢?

    在开始的时候,用 MultiBox 中的 best jaccard overlap 来匹配每一个 ground truth box 与 default box,这样就能保证每一个 groundtruth box 与唯一的一个 default box 对应起来。

    但是又不同于 MultiBox ,本文之后又将 default box 与任何的 groundtruth box 配对,只要两者之间的 jaccard overlap 大于一个阈值,这里本文的阈值为 0.5。 

    Training objective

    SSD 训练的目标函数(training objective)源自于 MultiBox 的目标函数,但是本文将其拓展,使其可以处理多个目标类别。用 xpij=1 表示 第 i 个 default box 与 类别 p 的 第 j 个 ground truth box 相匹配,否则若不匹配的话,则 xpij=0

    根据上面的匹配策略,一定有 ixpij1,意味着对于 第 j 个 ground truth box,有可能有多个 default box 与其相匹配。

    总的目标损失函数(objective loss function)就由 localization loss(loc) 与 confidence loss(conf) 的加权求和: 

    L(x,c,l,g)=1N(Lconf(x,c)+αLloc(x,l,g))

    其中:

    • N 是与 ground truth box 相匹配的 default boxes 个数

    • localization loss(loc) 是 Fast R-CNN 中 Smooth L1 Loss,用在 predict box(l 与 ground truth box(g 参数(即中心坐标位置,width、height)中,回归 bounding boxes 的中心位置,以及 width、height

    • confidence loss(conf) 是 Softmax Loss,输入为每一类的置信度 c

    • 权重项 α,设置为 1


    Choosing scales and aspect ratios for default boxes

    大部分 CNN 网络在越深的层,feature map 的尺寸(size)会越来越小。这样做不仅仅是为了减少计算与内存的需求,还有个好处就是,最后提取的 feature map 就会有某种程度上的平移与尺度不变性。

    同时为了处理不同尺度的物体,一些文章,如 ICLR 2014, Overfeat: Integrated recognition, localization and detection using convolutional networks,还有 ECCV 2014, Spatial pyramid pooling in deep convolutional networks for visual recognition,他们将图像转换成不同的尺度,将这些图像独立的通过 CNN 网络处理,再将这些不同尺度的图像结果进行综合。

    但是其实,如果使用同一个网络中的、不同层上的 feature maps,也可以达到相同的效果同时在所有物体尺度中共享参数

    之前的工作,如 CVPR 2015, Fully convolutional networks for semantic segmentation,还有 CVPR 2015, Hypercolumns for object segmentation and fine-grained localization 就用了 CNN 前面的 layers,来提高图像分割的效果,因为越底层的 layers,保留的图像细节越多。文章 ICLR 2016, ParseNet: Looking wider to see better 也证明了以上的想法是可行的。

    因此,本文同时使用 lower feature maps、upper feature maps 来 predict detections。下图展示了本文中使用的两种不同尺度的 feature map,8×8 的feature map,以及 4×4 的 feature map: 

    这里写图片描述

    一般来说,一个 CNN 网络中不同的 layers 有着不同尺寸的 感受野(receptive fields)。这里的感受野,指的是输出的 feature map 上的一个节点,其对应输入图像上尺寸的大小。具体的感受野的计算,参见两篇 blog:

     

    这里写图片描述


    Hard negative mining

    在生成一系列的 predictions 之后,会产生很多个符合 ground truth box 的 predictions boxes,但同时,不符合 ground truth boxes 也很多,而且这个 negative boxes,远多于 positive boxes。这会造成 negative boxes、positive boxes 之间的不均衡。训练时难以收敛。

    因此,本文采取,先将每一个物体位置上对应 predictions(default boxes)是 negative 的 boxes 进行排序,按照 default boxes 的 confidence 的大小。 选择最高的几个,保证最后 negatives、positives 的比例在 3:1

    本文通过实验发现,这样的比例可以更快的优化,训练也更稳定。 

    Data augmentation

    本文同时对训练数据做了 data augmentation,数据增广。关于数据增广,推荐一篇文章:Must Know Tips/Tricks in Deep Neural Networks,其中的 section 1 就讲了 data augmentation 技术。

    每一张训练图像,随机的进行如下几种选择:

    • 使用原始的图像
    • 采样一个 patch,与物体之间最小的 jaccard overlap 为:0.10.30.50.7 与 0.9
    • 随机的采样一个 patch

    采样的 patch 是原始图像大小比例是 [0.11],aspect ratio 在 12 与 2 之间。

    当 groundtruth box 的 中心(center)在采样的 patch 中时,我们保留重叠部分。

    在这些采样步骤之后,每一个采样的 patch 被 resize 到固定的大小,并且以 0.5 的概率随机的 水平翻转(horizontally flipped)


    Experimental Results

    Base network and hole filling algorithm

    本文的 Base network 是基于 ICLR 2015, VGG16 来做的,在 ILSVRC CLS-LOC 数据集上进行了预训练。

    与 ICLR 2015, DeepLab-LargeFOV 的工作类似,本文将 VGG 中的 FC6 layer、FC7 layer 转成为 卷积层,并从模型的 FC6、FC7 上的参数,进行采样得到这两个卷积层的 parameters。

    还将 Pool5 layer 的参数,从2*2-s2 
     转变成 3
    ,外加一个 pad(1),如下图: 

    这里写图片描述

    但是这样变化后,会改变感受野(receptive field)的大小。因此,采用了 atrous algorithm 的技术,这里所谓的 atrous algorithm,我查阅了资料,就是 hole filling algorithm

    在 DeepLab 的主页上:http://liangchiehchen.com/projects/DeepLab.html,有一张如下的图: 

    这里写图片描述

    博客 1:http://www.cnblogs.com/jianyingzhou/p/5386222.html

    最早用的就是 deeplab 的文章了,Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFS 这篇文章和 fcn 不同的是,在最后产生 score map 时,不是进行upsampling,而是采用了 hole algorithm,就是在 pool4 和 pool 5层,步长由 2 变成 1,必然输出的 score map 变大了,但是 receptive field 也变小了,为了不降低 receptive field,怎么做呢?利用 hole algorithm,将卷积 weights 膨胀扩大,即原来卷积核是 3x3,膨胀后,可能变成 7x7 了,这样 receptive field 变大了,而 score map 也很大,即输出变成 dense 的了。

    这么做的好处是,输出的 score map 变大了,即是 dense 的输出了,而且 receptive field 不会变小,而且可以变大。这对做分割、检测等工作非常重要。

    博客 2:http://blog.csdn.net/tangwei2014/article/details/50453334

    既想利用已经训练好的模型进行 fine-tuning,又想改变网络结构得到更加 dense 的 score map.

    这个解决办法就是采用 Hole 算法。如下图 (a) (b) 所示,在以往的卷积或者 pooling 中,一个 filter 中相邻的权重作用在 feature map 上的位置都是物理上连续的。如下图 (c) 所示,为了保证感受野不发生变化,某一层的 stride 由 2 变为 1 以后,后面的层需要采用 hole 算法,具体来讲就是将连续的连接关系是根据 hole size 大小变成 skip 连接的(图 (c) 为了显示方便直接画在本层上了)。不要被 (c) 中的 padding 为 2 吓着了,其实 2 个 padding 不会同时和一个 filter 相连。

    pool4 的 stride 由 2 变为 1,则紧接着的 conv5_1, conv5_2 和 conv5_3 中 hole size 为 2。接着 pool5 由 2 变为 1 , 则后面的 fc6 中 hole size 为 4。 

    这里写图片描述

    本文还将 fully convolutional reduced (atrous) VGGNet 中的所有的 dropout layers、fc8 layer 移除掉了。

    本文在 fine-tuning 预训练的 VGG model 时,初始 learning rate 为 103,momentum 为 0.9,weight decay 为 0.0005,batch size 为 32,learning rate decay 的策略随数据集的不同而变化。


    PASCAL VOC 2007

    在这个数据集中,与 Fast R-CNNFaster R-CNN 进行了比较,几种检测网络都用相同的训练数据集,以及预训练模型(VGG16)。

    本文训练图像是 VOC 2007 train + VOC 2007 validation + VOC 2012 train + VOC 2012 validation,共计 16551 张图像;

    测试集选取的是 VOC 2007 test,共计 4952 张图像。

    下图展示了 SSD300 model 的结构: 

    这里写图片描述

    我们用 conv4_3conv7(原先的 FC7)conv8_2conv9_2conv10_2,以及 pool11,这些 layer 来 predict location、 confidence

    在 VGG16 上新加的 convolutional layers,其参数初始化都用 JMLR 2010, Understanding the difficulty of training deep feedforward neural networks 提出的 xavier 方法。

    因为 conv4_3 的尺寸比较大,size 为 38×38 的大小,我们只在上面放置 3 个 default boxes,一个 box 的 scale 为 0.1,另外两个 boxes 的 aspect ratio 分别为 122。但对于其他的用来做 predictions 的 layers,本文都放了 6 个 default boxes。

    文献 ICLR 2016, ParseNet: Looking wider to see better 指出,conv4_3 相比较于其他的 layers,有着不同的 feature scale,我们使用ParseNet 中的 L2 normalization 技术将 conv4_3 feature map 中每一个位置的 feature norm scale 到 20,并且在 back-propagation 中学习这个 scale。

    在最开始的 40K 次迭代中,本文使用的 learning rate 是 103,之后将其减小到 104,再接着迭代 20K 次。

    下面 Table 1 显示了,我们的 SSD300 model 的精度已经超过了 Fast R-CNN,当我们用 SSD 在更大的图像尺寸上,500×500 训练得到的 model,甚至要比 Faster R-CNN 还要高出 1.9% 的 mAP。 

    这里写图片描述

    为了更细节的了解本文的两个 SSD model,我们使用了 ECCV 2012, Diagnosing error in object detectors 的检测分析工具。下图 Figure 3 显示了 SSD 可以高质量的检测不同种类的物体。 

    这里写图片描述

    下图 Figure 4 展示了 SSD 模型对 bounding box 的 size 非常的敏感。也就是说,SSD 对小物体目标较为敏感,在检测小物体目标上表现较差。其实这也算情理之中,因为对于小目标而言,经过多层卷积之后,就没剩多少信息了。虽然提高输入图像的 size 可以提高对小目标的检测效果,但是对于小目标检测问题,还是有很多提升空间的。

    同时,积极的看,SSD 对大目标检测效果非常好。同时,因为本文使用了不同 aspect ratios 的 default boxes,SSD 对于不同 aspect ratios 的物体检测效果也很好。 

    这里写图片描述


    Model analysis

    为了更好的理解 SSD,本文还使用控制变量法来验证 SSD 中的每一部分对最终结果性能的影响。测试如下表 Table 2 所示: 

    这里写图片描述

    从上表可以看出一下几点:

    • 数据增广(Data augmentation)对于结果的提升非常明显 
      Fast R-CNN 与 Faster R-CNN 使用原始图像,以及 0.5 的概率对原始图像进行水平翻转(horizontal flip),进行训练。如上面写的,本文还使用了额外的 sampling 策略,YOLO 中还使用了 亮度扭曲(photometric distortions),但是本文中没有使用。 
      做了数据增广,将 mAP 从 65.4% 提升到了 72.1%,提升了 6.7%。 
      我们还不清楚,本文的 sampling 策略会对 Fast R-CNN、Faster R-CNN 有多少好处。但是估计不会很多,因为 Fast R-CNN、Faster R-CNN 使用了 feature pooling,这比人为的对数据进行增广扩充,还要更 robust。

    • 使用更多的 feature maps 对结果提升更大 
      类似于 FCN,使用含图像信息更多的低 layer 来提升图像分割效果。我们也使用了 lower layer feature maps 来进行 predict bounding boxes。 
      我们比较了,当 SSD 不使用 conv4_3 来 predict boxes 的结果。当不使用 conv4_3,mAP 下降到了 68.1%。 
      可以看见,低层的 feature map 蕴含更多的信息,对于图像分割、物体检测性能提升帮助很大的。

    • 使用更多的 default boxes,结果也越好 
      如 Table 2 所示,SSD 中我们默认使用 6 个 default boxes(除了 conv4_3 因为大小问题使用了 3 个 default boxes)。如果将 aspect ratios 为 133 的 boxes 移除,performance 下降了 0.9%。如果再进一步的,将 122 的 default boxes 移除,那么 performance 下降了近 2%

    • Atrous 使得 SSD 又好又快 
      如前面所描述,我们根据 ICLR 2015, DeepLab-LargeFOV,使用结合 atrous algorithm 的 VGG16 版本。 
      如果我们使用原始的 VGG16 版本,即保留 pool5 的参数为:2×2s2,且不从 FC6,FC7 上采集 parameters,同时添加 conv5_3 来做 prediction,结果反而会下降 0.7%。同时最关键的,速度慢了 50%


    PASCAL VOC 2012

    本文又在 VOC 2012 test 上进行的实验,比较结果如下: 

    这里写图片描述


    MS COCO

    为了进一步的验证本文的 SSD 模型,我们将 SSD300、SSD500 在 MS COCO 数据集上进行训练检测。

    因为 COCO 数据集中的检测目标更小,我们在所有的 layers 上,使用更小的 default boxes。

    这里,还跟 ION 检测方法 进行了比较。

    总的结果如下: 

    这里写图片描述


    Inference time

    本文的方法一开始会生成大量的 bounding boxes,所以有必要用 Non-maximum suppression(NMS)来去除大量重复的 boxes。

    通过设置 confidence 的阈值为 0.01,我们可以过滤掉大多数的 boxes。

    之后,我们再用 Thrust CUDA library 进行排序,用 GPU 版本的实现来计算剩下的 boxes 两两之间的 overlap。然后,进行 NMS,每一张图像保留 top 200 detections。这一步 SSD300 在 VOC 20 类的每张图像上,需要耗时 2.2 msec

    下面是在 PASCAL VOC 2007 test 上的速度统计: 

    这里写图片描述
    展开全文
  • 论文名称:ScratchDet: Training Single-Shot Object Detectors from Scratch(京东AI研究院) 地址:... ... 摘要: 当前最先进的目标检测器是通过在大规模分类数据集ImageNet上预先训练的...
  • 目标检测 SSD论文理解

    千次阅读 2018-10-18 20:44:17
    此文章只是自己看论文和...1.论文SSD-tensorflow代码 论文地址:https://arxiv.org/abs/1512.02325 代码链接:https://github.com/balancap/SSD-Tensorflow 2.yolo算法与SSD算法区别 two-stage方法:主要用到...
  • SSD目标检测分析

    2019-10-22 14:58:47
    目标检测主流算法主要分为两个类型: (1)two-stage方法,如R-CNN系列,主要思路是先通过启发式方法(selective search)或者CNN网络(RPN)产生一系列稀疏的候选框,然后对这些候选框进行分类与回归,two-stage方法...
  • 返回主目录 返回 目标检测史 目录 上一章:深度篇——目标检测史(四)细说从 Fast R-CNN到 Faster R-CNN目标检测 ...本小节,细说 SSD目标检测,下一小节细说 YOLO-V3目标检测 六.SSD目标检测 ...
  • 但是,传统SSD算法的特征金字塔检测方法很难融合不同尺度的特征,并且由于底层的卷积神经网络层具有较弱的语义信息,也不利于小物体的识别,因此本论文提出了以SSD算法的网络结构为基础的一种新颖的目标检测算法RF_...
  • SSD阅读重点IntroductionInnovationsarchitecturedefault boxchoosing default boxData augmentationloss fucntionResultVOC2007 test resultModel analysisVisualization of ...SSD论文https://arxiv.org/pdf/1...
  • SSD目标检测

    2018-06-15 18:22:56
    SSD github : https://github.com/weiliu89/caffe/tree/ssdSSD paper : https://arxiv.org/abs/1512.02325SSD eccv2016 slide pdf : http://download.csdn.NET/download/zy1034092330/9940054SSD po...
  • (一)图像目标检测论文SSD方法解析

    千次阅读 2019-04-03 19:17:35
    SSD方法使用单深度神经网络进行目标检测,该方法将输出框离散为一组默认的框,这些框在每个特征映射位置具有不同的比率和比例值。预测时,网络为每个默认框中的每个目标区域进行打分,并生成与目标尺寸较好匹配的...
  • 目标检测SSD论文解读

    千次阅读 2018-08-23 19:13:40
    本文提出的SSD算法是一种直接预测目标类别和bounding box的多目标检测算法。与faster rcnn相比,该算法没有生成 proposal 的过程,这就极大提高了检测速度。针对不同大小的目标检测,传统的做法是先将图像转换成不同...
  • 目标检测论文,SSD的讲解

    千次阅读 2018-08-23 19:09:58
    深度学习笔记(七)SSD 论文阅读笔记简化 目录一. 算法概述二. Default box三. 正负样本四. 网络结构五....本文提出的SSD算法是一种直接预测目标类别和bounding box的多目标检测算法。与faster rcnn...
  • 目标检测经典论文:RCNN系列,YOLO系列,SSD,相关综述类论文包括算法对比分析等
  • SSD论文地址:https://arxiv.org/abs/1512.02325 SSD代码:https://github.com/weiliu89/caffe/tree/ssd SSD检测模型框架 模型 ssd属于前馈卷积神经网络,通过该网络能够产生一系列边界框以及置信分数,...
  •  R-CNN系列算法检测速度不够快,YOLO v1检测准确率较低,而且无法检测到密集目标。 方法  SSD算法跟YOLO类似,都属于one stage的算法,即通过回归算法直接从原图得到预测结果,为了解决YOLO v1检测效果一般的...
  • SSD目标检测方法

    2019-08-18 22:27:17
    SSD是YOLO之后又一个引人注目的目标检测结构,它沿用了YOLO中直接回归 bbox和分类概率的方法,同时又参考了Faster R-CNN,大量使用anchor来提升识别准确度。通过把这两种结构相结合,SSD保持了很高的识别速度,还能...
  • SSD是发表在ECCV2016上的一篇文章,在当时的效果是要优于同为one-stage检测器yolo的。 但是后来yolo系列又经历了yolov2和yolov3两个版本的发展,就盖过了
  • 解读SSD目标检测方法

    万次阅读 2018-01-07 10:39:07
    论文链接:...SSD是YOLO之后又一个引人注目的目标检测结构,它沿用了YOLO中直接回归 bbox和分类概率的方法,同时又参考了Faster R-CNN,大量使用anchor来提升识别准确度。通过把这两种
  • 目标检测SSD:Single Shot MultiBoxDetector详论文翻译

    千次阅读 多人点赞 2018-04-10 21:51:46
    提示:红色标记表示添加的理解;绿色标记表示文章的重点;蓝色标记表示我们需要对这句话做解释,其后会跟着红色的解释;紫色标记是指org预印版论文与正式出版的...注意:如需编译配置SSD-caffe请参看博主博文:http...
  • SSD目标检测算法详解 (一)论文讲解 这一篇讲几个方面: 一、提要 二、论文详解: (1) SSD算法的特点 (2) SSD算法总体结构 (3) 前馈神经网络——VGG (4) 不同特征层的提取 (5) ...
  • 目前基于深度学习的目标检测算法主要分为两类,分别是one-stage和two-stage,其中,two-stage算法典型算法有R-CNN,先通过启发式方法或者CNN网络产生一系列稀疏的候选框,然后对这些候选框进行分类与回归;...
  • SSD 目标检测 Keras 版

    2019-02-19 16:16:03
    本文是基于论文SSD: Single Shot MultiBox Detector,实现的keras版本。该文章在既保证速度,又要保证精度的情况下,提出了SSD物体检测模型,与现在流行的检测模型一样,将检测过程整个成一个single deep neural ...
  • SSD目标检测 3.22:【场景文字识别】 场景文字识别 目标检测任务的目标是给定一张图像或是视频帧,让计算机找出其中所有目标的位置,并给出每个目标的具体类别。对于人类来说,目标检测是一个非常简单的任务。然而,...
  • 目标检测论文

    2018-10-04 10:54:00
    目标检测相关论文,包括selective search,R-CNN,SPP-Net, Fast R-CNN, Faster R-CNN, FPN, Mask R-CNN, YOLO V1 V2 V3, SSD, DSSD, CornerNet, IoUNet.
  • 论文下载地址:https://arxiv.org/abs/1512.02325 论文代码:https://github.com/weiliu89/caffe/tree/ssd ...是目前为止主要的目标检测算法。 算法的主要优点: 1. 速度比Faster-Rcnn快,精度比YOLO高。(在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,614
精华内容 3,045
关键字:

ssd目标检测论文翻译