目标检测算法之SSD

目标检测算法,按算法结构可以分为one-stage和two-stage两类。two-stage经典算法主要是R-CNN族,以准确度见长,速度稍慢,一般不如one-stage。one-stage算法主要包括YOLO、SSD、CornerNet等,以速度快见长,准确度一般不如two-stage。按照是否使用anchor,可分为anchor-based、anchor-free、两者融合类。anchor-based类算法代表是fasterRCNN、SSD、YoloV2/V3等。anchor-free类算法代表是CornerNet、ExtremeNet、CenterNet、FCOS等。融合anchor-based和anchor-free分支的方法:FSAF、SFace、GA-RPN等。

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAY2h1ZGVqaW4=,size_20,color_FFFFFF,t_70,g_se,x_16

整个网络由三大部分组成:VGG Backbone、Extra Layers、Multi-box Layers

 watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAY2h1ZGVqaW4=,size_20,color_FFFFFF,t_70,g_se,x_16

 Backbone网络可以使用VGG、ResNet50、mobilenet等。SSD的核心思想是使用多个特征图进行目标位置的回归和类别的分类。Extra layer负责提取6个尺寸和深度的特征图,大小分别为 (38,38),(19,19),(10,10),(5,5),(3,3),(1,1),每个特征图上设置的先验框数量不同,prior_box_num = [4,6,6,6,4,4],共8732个anchor。

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAY2h1ZGVqaW4=,size_20,color_FFFFFF,t_70,g_se,x_16

 先验框的设置,包括尺度(或者说大小)和长宽比两个方面。对于先验框的尺度,其遵守一个线性递增规则:随着特征图大小降低,先验框尺度线性增加: 

 watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAY2h1ZGVqaW4=,size_20,color_FFFFFF,t_70,g_se,x_16

 watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAY2h1ZGVqaW4=,size_20,color_FFFFFF,t_70,g_se,x_16

 watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAY2h1ZGVqaW4=,size_20,color_FFFFFF,t_70,g_se,x_16

 编码过程,使用gt_box和bounding_box的归一化后的中心点表示的offset作为基准,与模型的输出做loss。

解码过程:模型的输出为bounding_box与真实值的offset。推理阶段,用offset与bounding_box,即可得到最终目标框

绿框为真实框:gt_box;蓝框为与gt_box匹配的先验框prior_box,称为bounding_box,它是整个回归过程的核心;红框为预测框,pred_box;在训练过程中,首先需要确定训练图片中的 gt_box与哪一个prior_box来进行匹配,匹配原则: 1、对于图片中的每个gt_box,找到与其IOU最大的prior_box,该先验框与其匹配,这样可以保证每个gt_box一定与某个prior_box匹配。 2、 对于剩余未匹配的prior_box,若与某个gt_box的IOU大于某个阈值(一般0.5),那么该prior_box与这个gt_box匹配。 3、难例挖掘(Hard negative mining,选取负样本):选取完正样本后,实际上剩下来的都是负样本,但由于负样本数目过多,因此需要挑选出Confidence_Loss排在前面的一批负样本,以保证负/正样本数为3:1

SSD的损失函数包括两部分的加权:位置损失函数和置信度损失函数 整个损失函数为:       N 是先验框的正样本数量;c 为类别置信度预测值; l 为先验框的所对应bounding box的位置预测值; g 为ground truth的位置参数;

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAY2h1ZGVqaW4=,size_20,color_FFFFFF,t_70,g_se,x_16

位置损失函数如下:

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAY2h1ZGVqaW4=,size_20,color_FFFFFF,t_70,g_se,x_16 

 置信度损失函数:

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAY2h1ZGVqaW4=,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAY2h1ZGVqaW4=,size_20,color_FFFFFF,t_70,g_se,x_16 训练阶段

 watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAY2h1ZGVqaW4=,size_20,color_FFFFFF,t_70,g_se,x_16

测试阶段,NMS应该在解码之后

 watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAY2h1ZGVqaW4=,size_20,color_FFFFFF,t_70,g_se,x_16

 镜像

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAY2h1ZGVqaW4=,size_20,color_FFFFFF,t_70,g_se,x_16

随机裁剪

 watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAY2h1ZGVqaW4=,size_18,color_FFFFFF,t_70,g_se,x_16

 色彩转换

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAY2h1ZGVqaW4=,size_19,color_FFFFFF,t_70,g_se,x_16

 watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAY2h1ZGVqaW4=,size_20,color_FFFFFF,t_70,g_se,x_16

模型特点:

SSD提取了不同尺度的特征图来做检测,大尺度特征图可以用来检测小物体,而小特征图用来检测大物体; SSD采用了不同尺度和长宽比的先验框 SSD每一张训练图片由如下方法随机产生:原图片;截取一部分图片,保证截取框与物体框的最小IoU是0.1,03,0.5,0.7,或者0.9;随机截取一部分图片;随机截取图片的大小是[0.1,1]原图片大小,aspect ratio是0.5~2

2.  优点:     运行速度可以和YOLO媲美,检测精度可以和Faster RCNN媲美

3.  缺点: 需要人工设置prior box的min_size,max_size和aspect_ratio值。 网络中prior box的基础大小和形状不能直接通过学习获得,而是需要手工设置。而网络中每一层feature使用的prior box大小和形状恰好都不一样,导致调试过程非常依赖经验; 虽然采用了pyramdial feature hierarchy的思路,但是对小目标的recall依然一般,并没有达到碾压Faster RCNN的级别 

 

 

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值