当前位置: 首页>編程日記>正文

目标检测算法之SSD

目标检测算法之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的级别 

 

 


https://www.fengoutiyan.com/post/14662.html

相关文章:

  • ssd 检测
  • 目标检测算法速度比较
  • ssd算法原理
  • 经典目标检测算法
  • 目标检测ssd
  • ssd算法详解
  • 传统的目标检测算法
  • 目标检测算法 2019
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機