热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

目标检测系列:SSD系列SSD、FSSD、DSSD、DSOD

SSDDSSDFSSDDSODSSD动机目前目标检测的一些算法包括基于深度学习的,都是先假定一些候选框,接着对候选框内容进行特征提取再分类ÿ

  • SSD
  • DSSD
  • FSSD
  • DSOD

SSD


动机

目前目标检测的一些算法包括基于深度学习的,都是先假定一些候选框,接着对候选框内容进行特征提取再分类,然后再对边框的位置进行修正这一系列的计算,最典型的例如Faster RCNN,虽然准确,但是计算太过于密集,即使是在高端的硬件上,检测的速度也非常慢,难以达到实时检测的要求。
而另一种基于回归的方法例如YOLO算法,虽然达到了实时的要求,但是牺牲了准确率,并且对于目标的位置也不够精确。并且对于相邻比较近的多个物体,YOLO只能检测出一个。另外对于小物体的检测效果比较差。
因此希望在YOLO的基础上改良,希望能在达到实时的标准下,能够做到和Faster RCNN相媲美的准确率。


主要创新点


不同比例的默认框(Default boxes)

YOLO网络对于一个网格生成B个候选框,而SSD在此基础上添加了不同的长宽比的概念,因此候选框的生成能够更好的涵盖各种各样的目标,如图所示在一个特征点上生成4个不同的候选框,候选框的大小不同,长宽比例也不一样。这里的default boxes与Faster RCNN的锚点anchors相类似,但是SSD与RPN不同的是,SSD在多个大小的特征图上提取候选区域,而RPN只在最后一层特征图上提取候选区域。因此SSD可以对不同大小的目标都具有比较好的检测效果,高层的特征图负责大目标,低层的特征图负责小目标。
在这里插入图片描述


多尺度预测

SSD在原来卷积网络的基础上,又增加了几个卷积层,使得网络能够在多个不同大小的特征图上分别进行预测,这样就能够保证对于图中的不同大小的目标都可以有效的检测,大大提高了目标检测的准确率。


算法

在这里插入图片描述
SSD在YOLO网络的基础上进行改进,首先是将原始图像输入一系列卷积层,经过VGG16基础网络的5层卷积层之后得到38x38x512的特征图,与YOLO不同的是,SSD网络去除接下的来的全连接层,将VGG中的fc6、fc7用一系列卷积层来代替,得到了不同大小的特征图,例如图中的19x19,10x10,5x5,3x3,对每一个特征图分别进行预测。
预测的方法是用一个3x3的卷积核,例如在图中38x38的特征图上进行预测,对于原来的38x38x512的特征图,乘上3x3x512x(4x(classes+4))的卷积核,填充为1,步长的为1的卷积得到38x38x(4x(classes+4))((38-3+1x2)/1+1=38)的特征图,表示38x38每个特征点上默认生成4个默认框,每个默认框中有4个位置偏移的预测值以及每一个类别的得分值。因此输出的是4x(classes+4)个通道,分别表示的是每一个特征点各个默认框的位置偏移以及类别打分,这样就可以一次性预测同一个特征图上的所有区域。
最后将所有特征图的输出结合到一起,就达到了同时预测一张图片上所有的默认框的类别,实现了YOLO一次运算就完成了整张图像的检测的思想。


优缺点

SSD检测速度比较快,能够达到实时检测目标的要求,但是对于默认框的设置比较依赖经验,而这对准确率有比较大影响,因此适合于一些大小已知比较固定的目标。


准确率

由于用到了多个不同尺度的特征图进行预测,再加上多个不同长宽比例的默认框的思想,检测的准确率相较于YOLO的63.4%提高到了74.3%,达到了Faster RCNN的效果(73.2%)。


运行速度

由于将YOLO网络中的全连接层用卷积层代替,运算的参数也减少了,检测速度由YOLO的45fps提到高了59fps。


缺点


  • 网络中默认框的大小和长宽比不能通过学习得到,因此非常依赖于经验调整。
  • 虽然用到了多个尺度特征图,但是最大仍然是VGG5个卷积层之后得到的,因此对于小物体的检测效果也没有那么好。
  • 没有结合多层特征图(例如FPN中的那样),导致底层特征图虽然对于位置的预测比较准确,但是对于语义的判定还比较低级,只能检测表示边缘特征。

DSSD

TODO


FSSD

TODO


DSOD


动机

卷积神经网络在计算机视觉领域已经有了很广泛的应用,包括图像分类、目标检测以及图像的分割,而在目标检测领域内,基于深度学习的模型已经取得了很好的效果。
但是之前的一些基于深度学习的目标检测的模型都是从已有的模型进行微调得到的,例如ImageNet上的分类模型,这样会在学习的过程带来偏差。首先是已有模型中参数非常大,因此新的模型难以在原有的预训练模型的基础上改变结构;其次就是在分类和检测的过程中,损失函数以及类别的分布并不相同,导致学习有偏差;最后就是一些特定的领域例如医学图像与传统的图像有较大差异,造成学习有所误差。
因此就希望能够提出一种新的模型,能够从零开始进行学习,也能够达到从预训练模型微调那样保持比较高的准确率。


主要创新点


Dense Block

DOSD一大特点就是吸取了DenseNet的优点,将DOSD基础的卷积网络部分换成了DenseNet,通过一个个Dense Block连接。
在这里插入图片描述
如图所示,Dense Block吸取了ResNet的残差的特性,但是在ResNet中只连接了间接相邻的一层,例如H2与H4之间有一个残差连接,如果H3层卷积导致整个网络的分类效果有所下降,则跳过H3,将H2的直接输入到H4。而DenseNet则是在一个模块内,一个卷积层的输入来自之前所有层的输出,例如图中H4的输入则是H0、H1、H2以及H3所有的层。通过加深了网络的结构,有效的提高了网络的分类性能。
除此以外,由于卷积层的输入是网络前面多个卷积层输出的特征图,因此减少了每一层卷积核的通道数,这样通过融合多层卷积层输出的特征图,也能得到ResNet一样的效果。通过“特征复用”不但融合了多层特征图,并且可以大大减少了网络中需要训练的参数。


密集的预测结构

在这里插入图片描述
如图所示,左侧是SSD的结构,SSD中用到了6个种不同尺度的特征图进行预测,只不过六个特征图都是单独来进行预测。而右侧就是DOSD的结构,同样吸取了DenseNet的密集型结构,加上SSD原本的框架,通过一个下采样层将高维的特征图降低到下一个特征图一样的维度,再将两层特征图相加结合起来进行预测,这样就做到了对于新的特征图一半是新学习到的而另一半是复用的上一层特征图,因此也大大减少了需要学习的参数。


算法

DOSD主要的思想就是希望能够从零开始学习训练也能够达到与那些预训练模型上微调得到的模型所一样的效果,但那些基于区域提取的网络例如Faster RCNN从零开始训练无法收敛,因此选择了SSD的基础上进行改进。DOSD实际上就是SSD加上DenseNet,整体的流程与SSD基本一致,主要变化的地方在于首先是基础的卷积网络由VGG换成了分类性能更好的DenseNet,另外就是对于新的特征图采取一半学习一半复用的原则,通过融合了两层特征图,既提高了检测的性能,同时减少了参数,对于从零开始训练加快了训练的速度。
整体的流程就是首先对于一张输入的图像进行卷积运算,接着得到不同尺度的特征图,通过密集的预测结构来得到6个新的不同尺度的特征图,分别在这6个新的特征图上进行预测。


优点

DOSD主要解决的就是不需要预训练模型也能跑出很好的效果,因此适用于例如医疗影像这些与传统图像相差较大的领域。


准确率

DOSD主要就是希望能够对于不用预训练模型从零开始也能够达到相媲美的效果,在VOC07的测试集上准确率达到77.7%,相较于Faster RCNN+ResNet的结构甚至略有提升(Faster RCNN76.4%),虽然相较于R-FCN(79.5%)还略有不足。


运行速度

由于密集型结构的思想,DOSD网络中的参数非常少,因此在单一GPU上,检测速度达到17.4fps,相比之下R-FCN只有11fps,SSD+ResNet-101也仅有12.1fps。(SSD+VGG 有45fps)。


推荐阅读
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • 通过使用CIFAR-10数据集,本文详细介绍了如何快速掌握Mixup数据增强技术,并展示了该方法在图像分类任务中的显著效果。实验结果表明,Mixup能够有效提高模型的泛化能力和分类精度,为图像识别领域的研究提供了有价值的参考。 ... [详细]
  • 基于OpenCV的图像拼接技术实践与示例代码解析
    图像拼接技术在全景摄影中具有广泛应用,如手机全景拍摄功能,通过将多张照片根据其关联信息合成为一张完整图像。本文详细探讨了使用Python和OpenCV库实现图像拼接的具体方法,并提供了示例代码解析,帮助读者深入理解该技术的实现过程。 ... [详细]
  • 本文详细介绍了 Java 网站开发的相关资源和步骤,包括常用网站、开发环境和框架选择。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • 独家解析:深度学习泛化理论的破解之道与应用前景
    本文深入探讨了深度学习泛化理论的关键问题,通过分析现有研究和实践经验,揭示了泛化性能背后的核心机制。文章详细解析了泛化能力的影响因素,并提出了改进模型泛化性能的有效策略。此外,还展望了这些理论在实际应用中的广阔前景,为未来的研究和开发提供了宝贵的参考。 ... [详细]
  • 【图像分类实战】利用DenseNet在PyTorch中实现秃头识别
    本文详细介绍了如何使用DenseNet模型在PyTorch框架下实现秃头识别。首先,文章概述了项目所需的库和全局参数设置。接着,对图像进行预处理并读取数据集。随后,构建并配置DenseNet模型,设置训练和验证流程。最后,通过测试阶段验证模型性能,并提供了完整的代码实现。本文不仅涵盖了技术细节,还提供了实用的操作指南,适合初学者和有经验的研究人员参考。 ... [详细]
  • 从2019年AI顶级会议最佳论文,探索深度学习的理论根基与前沿进展 ... [详细]
  • 浅层神经网络解析:本文详细探讨了两层神经网络(即一个输入层、一个隐藏层和一个输出层)的结构与工作原理。通过吴恩达教授的课程,读者将深入了解浅层神经网络的基本概念、参数初始化方法以及前向传播和反向传播的具体实现步骤。此外,文章还介绍了如何利用这些基础知识解决实际问题,并提供了丰富的实例和代码示例。 ... [详细]
  • 专业人士如何做自媒体 ... [详细]
  • 三角测量计算三维坐标的代码_双目三维重建——层次化重建思考
    双目三维重建——层次化重建思考FesianXu2020.7.22atANTFINANCIALintern前言本文是笔者阅读[1]第10章内容的笔记,本文从宏观的角度阐 ... [详细]
  • 利用python爬取豆瓣电影Top250的相关信息,包括电影详情链接,图片链接,影片中文名,影片外国名,评分,评价数,概况,导演,主演,年份,地区,类别这12项内容,然后将爬取的信息写入Exce ... [详细]
  • 深入解析HTML5字符集属性:charset与defaultCharset
    本文将详细介绍HTML5中新增的字符集属性charset和defaultCharset,帮助开发者更好地理解和应用这些属性,以确保网页在不同环境下的正确显示。 ... [详细]
  • 深入解析国内AEB应用:摄像头和毫米波雷达融合技术的现状与前景
    本文作者程建伟,武汉极目智能技术有限公司CEO,入选武汉市“光谷3551人才计划”。文章详细探讨了国内自动紧急制动(AEB)系统中摄像头与毫米波雷达融合技术的现状及未来前景。通过分析当前技术的应用情况、存在的挑战以及潜在的解决方案,作者指出,随着传感器技术的不断进步和算法优化,AEB系统的性能将大幅提升,为交通安全带来显著改善。 ... [详细]
author-avatar
鹏城飞将
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有