目录

1、faster rcnn:

2、SSD:

3、YOLOv1:

小结:

拓展:anchor-based和anchor-free

anchor


1、faster rcnn:

FasterRcnn 算法原理讲解笔记(非常详细)https://blog.csdn.net/xjtdw/article/details/98945548

1)主要流程

将输入的图像按照短边设置为600后,等比例不失真缩放;

主干网络(VGG16、RESTNET)进行特征提取得到特征图38,38(下采样率为16);

特征图每个点生成九个anchor,共有38*38*9个anchors;

每个anchor等比例缩小16得到在特征图上的坐标,先将超出图像的anchor去掉,然后根据特征图可以得到每个anchor的得分(这个得分是二分类,前景or背景),根据得分筛选出12000个anchor,这里使用的分类网络为softmax+交叉熵损失;

NMS和得分再次筛选得到2000个anchor,这2000个就是建议框proposal;

2000个建议框再和标签框构建IOU矩阵,根据IOU来区分正负样本,然后选择3:1的正负样本数,总数256,这样就得到了256个roi;

将roi区域池化为7*7大小的区域,传输到全连接层,进行分类和回归(分类网络为softmax+交叉熵损失),回归损失使用的是smoothL1损失。

2)rpn和proposal以及roi层的区别

rpn是一个网络,主要作用是区域生成和对正样本的位置先进行调整,得到位置更加准确的建议框;proposal一般为2000个,是rpn网络的产物;roi是proposal和标签框构建iou矩阵后得到的区域;

3)为什么最后要池化为7*7

fasterrcnn原始使用的是VGG的全连接层,而全连接层是固定维度的,因此需要将维度编程适用于vgg

4)为什么小目标最后会消失

经过主干网络特征提取后,图像的下采样率为16,这样就导致了目标像素小于16的对象会被下采样过程中丢弃,同时后续使用的特征图是下采样后的,特征图中没有小目标的特征点存在,导致后续训练的网络并没有对小目标进行训练检测。

5)要注意什么?

fasterrcnn:尽量保证标签框在锚框的最大范围内,便于收敛;

是一个two stage模型,主要创新点在于RPN网络用于候选框的生成。首先利用先验知识对特征图上每一个点生成先验大小的9个ANCHOR框,然后第一阶段是训练RPN网络即生成候选区域,确定每一个框是否包含物体,这里主要是对固定的ANCHOR进行筛选和修正,将剩余的锚框作为候选区域;第二个阶段则是对候选区域进行分类和回归,确定物体的类别具体是什么,以此实现物体的检测

优点精度高

缺点:训练时间长,且anchor是在同一个特征图上得到的,不利于小目标物体的检测

注意:先验大小——指的是根据现有的目标的纵横比来进行锚框的设计,以此来使得候选区域尽可能地接近真实的物体的位置

2、SSD:

是一个one stage模型,主要创新点在于多尺度训练。SSD是从多个特征层上进行anchor的获取,然后直接将这些anchor框作为候选框进行物体类别的预测与位置的预测。这里还是采用了先验知识来指导anchor的生成,每个特征层每个点生成的anchor的个数不一样,主要为4个或者是6个,为了样本平衡,也会对样本进行筛选,使得正负样本1:3.

优点:速度快

缺点:精度不够

注意:先验大小——指的是根据现有的目标的纵横比来进行锚框的设计,以此来使得候选区域尽可能地接近真实的物体的位置

3、YOLOv1:

是一个one stage模型,主要创新点在于最后7*7*30的特征矩阵当中。YOLOV1是一个没有先验框的模型,它主要是将输入的图像分割成7*7大小的网格,然后每个网格生成2个预测框,最后每个网格含有30个信息值(2个预测框的x,y,h,w,c以及20个类别的条件概率)。

优点:速度比SSD快,是目前性能综合最高的了

小结:

以上三种模型都需要生成候选框,且训练数据都需要有标记的图像数据。不同的是前二者有先验框来指导候选框的生成,而YOLO没有;且rcnn系列是二阶段,后两者是一阶段。前两者可以看成是anchor_based,yolov1可以看成是anchor_free.

拓展:anchor-based和anchor-free

参考链接:https://www.zhihu.com/question/356551927/answer/926659692

目标检测算法一般可分为anchor-based、anchor-free、两者融合类,区别就在于有没有利用anchor提取候选目标框。

A. anchor-based类算法代表是fasterRCNN、SSD、YoloV2/V3等

B. anchor-free类算法代表是CornerNet、ExtremeNet、CenterNet、FCOS,yolov1等

anchor

(也被称为anchor box)是在训练之前,在训练集上利用k-means等方法聚类出来的一组矩形框,代表数据集中目标主要分布的长宽尺度。在推理时生成的特征图上由这些anchor滑动提取n个候选矩形框再做进一步的分类和回归(详细叙述请参考提出anchor思想的fasterRCNN一文)。也就是传统目标检测算法中,在图像金字塔上使用的那个m*n的滑窗。只不过传统方法中特征图是不同尺度的,滑窗一般是固定大小的;而类似于fasterRCNN算法中特征图是固定的,anchor是多尺度的。

【深度学习】——常见深度学习模型总结、anchor-free和anchor-based相关推荐

  1. 常见深度学习模型集成方法

    点击上方"计算机视觉工坊",选择"星标" 干货第一时间送达 历届kaggle竞赛冠军的做法,或简单或复杂,其最后一步必然是集成学习,尽管现有的模型已经很强大了, ...

  2. 一文看懂深度学习发展史和常见26个模型

    参加 2019 Python开发者日,请扫码咨询 ↑↑↑ 来源 | AI部落联盟(ID:AI_Tribe) 作者简介:沧笙踏歌,硕士毕业于北京大学,目前计算机科学与技术博士在读,主要研究自然语言处理和 ...

  3. 深度学习常见损失函数总结+Pytroch实现

    文章目录 一.引言 二.损失函数 1.均方差损失(Mean Squared Error Loss) 2.平均绝对误差损失(Mean Absolute Error Loss) 3.交叉熵(Cross E ...

  4. 机器/深度学习常见面试问题

    1.训练决策树时的参数是什么? DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=2,max_features ...

  5. 深度学习:常见深度学习框架【Theano、TensorFlow、Keras、Caffe/Caffe2、MXNet、CNTK、PyTorch】

    常见的深度学习框架有 TensorFlow .Caffe.Theano.Keras.PyTorch.MXNet等,如下图所示.这些深度学习框架被应用于计算机视觉.语音识别.自然语言处理与生物信息学等领 ...

  6. 预测学习:深度生成式模型、DcGAN、应用案例、相关paper

    前言 图像模式处理相关任务有识别.检测.分割.追踪.而与图像Pixel级别相关的任务,则有增强.编码.压缩.复原与重构.以及与时间相关的图像预测. 自从2012年AlexNet在ImageNet分类获 ...

  7. [深度学习概念]·实例分割模型Mask R-CNN详解

    实例分割模型Mask R-CNN详解 基础深度学习的目标检测技术演进解析 本文转载地址 Mask R-CNN是ICCV 2017的best paper,彰显了机器学习计算机视觉领域在2017年的最新成 ...

  8. 常见深度学习框架比较

    常见的深度学习框架有 TensorFlow .Caffe.Theano.Keras.PyTorch.MXNet等,如下图所示.这些深度学习框架被应用于计算机视觉.语音识别.自然语言处理与生物信息学等领 ...

  9. 【深度学习】常用的模型评估指标

    [深度学习]常用的模型评估指标 "没有测量,就没有科学."这是科学家门捷列夫的名言.在计算机科学中,特别是在机器学习的领域,对模型的测量和评估同样至关重要.只有选择与问题相匹配的评 ...

  10. 前深度学习时代CTR预估模型的演化之路:从LR到FFM\n

    本文是王喆在 AI 前线 开设的原创技术专栏"深度学习 CTR 预估模型实践"的第二篇文章(以下"深度学习 CTR 预估模型实践"简称"深度 CTR ...

最新文章

  1. linux mysql远程链接_Linux下mysql实现远程连接
  2. 任务调度器leetcode621
  3. PageRank算法以及Python实现(简洁版)
  4. C++radix sort基数排序的实现算法之一(附完整源码)
  5. 赋能工业互联网融合发展 | 北京信息化和工业化融合服务联盟平台化设计专业委员会、中国仿真学会CAE仿真专业委员会成立
  6. python文件下载速度 装饰器_python使用装饰器对文件进行读写操作'及遍历文件目录...
  7. oracle 942出错,oracle升级后exp出现oracle942错误
  8. 异步读取数据库中数据
  9. LeetCode(682)——棒球比赛(JavaScript)
  10. weblogic的安装、目录结构、启动
  11. php文件包含漏洞的危害,php文件包含漏洞小结
  12. mqtt发布json数据_mqtt应用于进程间通信
  13. Spring的事务管理
  14. Linux 系统运行速度太慢的关键原因全都在这了
  15. 项目管理课程体系——世纪德本PMCD品牌课程
  16. Duplicate Finder and Remover for Mac(重复文件查找删除工具)
  17. python快速处理excel表格-python 处理 Excel 表格
  18. 字体信息 TEXTMETRIC 字体结构 GLYPHMETRICS
  19. BPM- Eteams体验报告
  20. 詹姆斯·高斯林-JAVA之父

热门文章

  1. 修改Eclipse自动换行长度
  2. jquery插件封装指南
  3. python-json
  4. vue双向数据绑定的原理
  5. Javascript 获取url参数,hash值 ,cookie
  6. 寻路基本工具类定义 AIDefine.cpp
  7. Effective C++ 读书笔记(八)
  8. error: gnu/stubs-32.h: No such file or directory
  9. Activiti Explorer安装
  10. node --- 模块化连接MongoDB数据库的参数设置方案之一