目标检测—SSD系列算法原理介绍
一、SSD系列算法原理介绍
1.1 SSD算法介绍:
➢Single Shot MultiBox Detector (one-stage方法)
●Wei Liu在ECCV 201 6提出
●直接回归目标类别和位置
●不同尺度的特征图上进行预测
●口端到端的训练
●图像的分辨率比较低,也能保证检测的精度
1.2 SSD系列算法原理介绍
●主干网络: VGGNet
●多尺度Feature Map预测
●Default bounding boxes的类别分数、偏移量
➢主干网络介绍:
●VGG、 ResNet、 MobileNets等 ,各种卷积神经网
●将VGG最后两个FC改成卷积,并增加4个卷积层.
➢多尺度FeatureMap预测:
●不同层的feature map
●Prior box :类别概率和坐标(x,y,w,h)
1.3 算法细节介绍
●Prior Box Layer:
➢m*n个cell
➢每个cell. 上生成固定scale和aspect ratio的box
●假设- 个feature Map有mxn个cell,每个cell对应k 个default box,每个default box预测c个类别score和4个offset
●(C+4) *k * m*n个输出
●Prior Box Layer 步骤:
●Prior Box Layer特点:
➢shape数量越多,效果越好
➢Anchor
➢38*38*4 + 19*19*6 + 10*10*6 + 5*5*6 + 3*3*4+1*1*4= 8732个prior box
●Prior Box Layer实现 :
➢每一个feature map cell 不是k个default box都取
➢prior box与GT box做匹配, IOU>阈值为正样本
➢训练:确保prior box的分类准确且尽可能回归到GT box
●样本构造:
➢正样本
从GT box出发给找到最匹配的prior box放入候选正样本集
从prior box集出发,寻找与GT box;满足lOU> 0.5的最大prior,box放入候选正样本集
➢负样本
难例挖掘
正负样本比: 1:3
●难例挖掘流程
●数据增强:
➢随机采样多个path,与物体之间最小的jaccard overlap为: 0.1,0.3, 0.5, 0.7与0.9
➢采样的patch比例是[0.3, 1.0], aspect ratio在0.5或2
➢GT box中心在采样patch中且面积大于0
➢Resize到固定大小
➢以0.5 的概率随机的水平翻转
●损失函数:
➢分类loss +回归loss
➢分类loss: Softmax Loss
➢回归loss: Smooth L1 Loss
SSD系列网络结构
SSD系列算法损失函数计算
基本思路:
让每一个prior box回归到GT box,这个过程的调控我们需要损失层的帮助,它会计算真实值和预测值之间的误差,从而指导学习的走向
●使用细节:
➢数据增强时,Crop采样大小
➢多任务网络的权重
➢正负样本比例
➢难例挖掘方式默认只取64个最高predictions loss来从中寻找负样本
SSD系列算法性能比较分析
在PASCAL VOC2007 数据集对比结果:
Table 1: PASCAL VOC2007 test detection results. Both Fast and Faster R-CNN
use input images whose minimum dimension is 600. The two SSD models have exactly the same settings except that they have different input sizes (300 X 300 vs.500 X 500).It is obvious that larger input size leads to better results.
在PASCAL VOC2012数据集上的对比结果:
在MS COCO数据集上的对比结果:
对SSD算法而言其整体的FPS 相对YOLO来说,有所降低,速度有所损失;相比与Fast R-CNN而言SSD算法有了一个性能上的提升,mAP值也有所提升。
●数据增强对于结果的提升非常明显
●使用更多的feature maps对结果提升更大
●使用更多的default boxes,结果也越好
●Atrous 使得SSD又好又快
如果输入图像的尺寸越大对应SSD算法性能也会有一个比较大的提升,而输入图像的尺寸增大也意味着处理速度地下降。
SSD系列算法效果
二、SSD系列算法优化及扩展
2.1 优化算法一——DSSD
●DSSD:
➢201 7年的CVPR,WeiLiu
➢SSD算法对小 目标不够鲁棒的最主要的原因是浅层feature map的表征能力不够强。
加入上下文信息
更好的基础网络(ResNet) 和Deconvolution层, skip连接来给浅层feature map更好的表征能力
DSSD改进点:
➢主干网络:ResNet
➢Deconv
使用RestNet作为主干网络,针对后续的prior box的输入会分别使用反卷积来获取更多的特征表示,再进行回归后会得到更加鲁棒的特征。
DSSD VS SSD:
●DSOD总结:
➢2017年的ICCV201 7
➢DSOD可以从0开始训练数据, 不需要预训练模型,而且效果可以和fine-tune的模型媲美
➢SSD+ DenseNet= DSOD
可以从零开始训练得到一个好的目标检测网络吗?
如果可以,设计这样的网络有没有什么原则可以遵守?
预训练模型优点:
开源模型多,可以直接将他们用于目标检测
可以快速得到最终的模型,需要的训练数据也相对较少
预训练模型缺点:
预训练模型大,参数太多,模型结构灵活性差,难以改变网络结构,计算量也大,限制其应用场合
分类和检测任务的损失函数和类别分布是不一-样的,优化空间存在差异
尽管微调可以减少不同目标类别分布的差异性,但是差异太大时,微调效果依然不理想
●DSOD设计原则:
➢基于候选区域提取的方法无法从零开始训练,不收敛,只有proposal-free方法可以从零开始训练并收敛(ROI Pooling)
➢DenseNet中更多的skip connections实现supervised signals传递.
➢增加dense blocks数量区别原先的固定数量
➢Stem Block优化(3个3x 3卷积层和1个2x2最大池化层)
➢6个尺度特征图进行目标检测,再融合(如何利用特征图)
DSOD网络结构:
2.2 优化算法二——FSSD
●FSSD设计原则:
➢借鉴了FPN的思想,重构了- -组pyramid feature map,使得算法的精度有了明显的提升,速度也没有太降
把网络中某些feature调整为同一-szie再contact,得到一-个像素层,以此层为base layer来生成pyramid feature map
Feature Fusion Module
FSSD网络结构:
SSD:
FSDD:
FSSD实验结果对比:
2.3 优化算法三——RSSD
●RSSD设计原则:
➢rainbow concatenation方式(pooling加deconvolution) 融合不同层的特征,在增加不同层之间feature map关系的同时也增加了不同层的feature map个数。
➢这种融合方式不仅解决了传统SSD算法存在的重复框问题,同时一定程度上解决了'small object的检测问题。
RSSD网络结构:
RSSD实验效果: Pooling、deconvolution
SSD系列算法应用场景
●人脸检测与识别任务
●ADAS场景目标检测与识别(车、行人、非机动车)
●通用物体检测与识别
●自然场景下文本检测与识别等等
目标检测—SSD系列算法原理介绍相关推荐
- SSD系列算法原理讲解----(1)SSD系列算法介绍(主干网络、多尺度Feature Map预测)(笔记)
SSD系列算法原理介绍 SSD算法介绍: Single Shot MultiBox Detector(One-stage方法) - Wei Liu在ECCV 2016提出 - 直接回归目标类别和位置 ...
- 目标检测 YOLO系列算法
文章目录 1. YOLO算法 1.1 Yolo算法思想 1.2 Yolo的网络结构 1.2.1 网络输入 1.2.2 网络输出 1.7X7网格 2x30维向量 1.3 Yolo模型的训练 1.3.1训 ...
- 目标检测——YOLO系列算法(YOLOv4、YOLOv5)的学习笔记
目录 1 前言 2 致谢 3 YOLO模型列表 4 模型结构 2.1 Backbone Focus--网格下采样 CSPDarknet53 2.3 Neck -- SPP & PAN SPP: ...
- YOLO系列算法原理介绍
1. Yolo介绍: 1.1 YOLO: You Only Look Once,是一种基于深度神经网络的对象识别和定位算法,其最大的特点是运行速度很快,可以用于实时系统. Joseph Redmon和 ...
- 目标检测YOLO系列算法的进化史
本文中将简单总结YOLO的发展历史,YOLO是计算机视觉领域中著名的模型之一,与其他的分类方法,例如R-CNN不同,R-CNN将检测结果分为两部分求解:物体类别(分类问题),物体位置即bounding ...
- 目标检测:RFCN算法原理一
@改进1:RFCN 论文:R-FCN: Object Detection via Region-based Fully Convolutional Networks [点击下载] MXNet代码 ...
- 计算机视觉目标检测算法总结4——其他SSD系列算法
RSSD算法 rainbow concatenation方式(pooling加deconvolution)融合不同层的特征,在增加不同层之间feature map关系的同时也增加了不同层的featur ...
- 目标检测方法系列:R-CNN, SPP, Fast R-CNN, Faster R-CNN, YOLO, SSD
本文转载自: http://www.cnblogs.com/lillylin/p/6207119.html 目标检测方法系列--R-CNN, SPP, Fast R-CNN, Faster R-CNN ...
- 目标检测与识别算法综述:从传统算法到深度学习(二)
作 者:XJTU_Ironboy 时 间:2018年11月 联系方式:tzj19970116@163.com 本文结构: 摘要 介绍 2.1 大致框架 2.2 测试评价指标 2.3 相关比赛介 ...
最新文章
- 向DataTable中添加自定义的行
- 汇编语言——16位寄存器实现32位二进制数左移4位。
- 管理学中的知名定律之阿尔巴德定理
- 关于JUnit5 你必须知道的(一) JUnit5架构和环境搭建
- 【Python】WindowsError的错误代码详解
- mysql配置文件注解
- php如何转类型,PHP数据类型转换
- 解决ubuntu首次安装Mysql之后,首次登录出现ERROR 1698 (28000): Access denied for user 'root'@'localhost'的方法
- 第10篇:Flowable-BPMN操作流程部署、启动
- 笔记本CPU和显卡的选择标准
- arping命令解析
- gyp ERR! stack Error: EACCES: permission denied,解决
- 呼叫中心来电弹屏功能怎么样
- 【游戏开发进阶】Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)
- 项目管理心得:一个项目经理的个人体会、经验总结
- Scratch课程设计(五)
- 闲聊javaweb之servlet
- Java单精度与双精度区别_java单精度和双精度的区别
- 雨听 | 英语学习笔记(十)~作文范文:怎样提高学生体能?
- MySQL——10038错误