【深度学习】——常见深度学习模型总结、anchor-free和anchor-based
目录
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相关推荐
- 常见深度学习模型集成方法
点击上方"计算机视觉工坊",选择"星标" 干货第一时间送达 历届kaggle竞赛冠军的做法,或简单或复杂,其最后一步必然是集成学习,尽管现有的模型已经很强大了, ...
- 一文看懂深度学习发展史和常见26个模型
参加 2019 Python开发者日,请扫码咨询 ↑↑↑ 来源 | AI部落联盟(ID:AI_Tribe) 作者简介:沧笙踏歌,硕士毕业于北京大学,目前计算机科学与技术博士在读,主要研究自然语言处理和 ...
- 深度学习常见损失函数总结+Pytroch实现
文章目录 一.引言 二.损失函数 1.均方差损失(Mean Squared Error Loss) 2.平均绝对误差损失(Mean Absolute Error Loss) 3.交叉熵(Cross E ...
- 机器/深度学习常见面试问题
1.训练决策树时的参数是什么? DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=2,max_features ...
- 深度学习:常见深度学习框架【Theano、TensorFlow、Keras、Caffe/Caffe2、MXNet、CNTK、PyTorch】
常见的深度学习框架有 TensorFlow .Caffe.Theano.Keras.PyTorch.MXNet等,如下图所示.这些深度学习框架被应用于计算机视觉.语音识别.自然语言处理与生物信息学等领 ...
- 预测学习:深度生成式模型、DcGAN、应用案例、相关paper
前言 图像模式处理相关任务有识别.检测.分割.追踪.而与图像Pixel级别相关的任务,则有增强.编码.压缩.复原与重构.以及与时间相关的图像预测. 自从2012年AlexNet在ImageNet分类获 ...
- [深度学习概念]·实例分割模型Mask R-CNN详解
实例分割模型Mask R-CNN详解 基础深度学习的目标检测技术演进解析 本文转载地址 Mask R-CNN是ICCV 2017的best paper,彰显了机器学习计算机视觉领域在2017年的最新成 ...
- 常见深度学习框架比较
常见的深度学习框架有 TensorFlow .Caffe.Theano.Keras.PyTorch.MXNet等,如下图所示.这些深度学习框架被应用于计算机视觉.语音识别.自然语言处理与生物信息学等领 ...
- 【深度学习】常用的模型评估指标
[深度学习]常用的模型评估指标 "没有测量,就没有科学."这是科学家门捷列夫的名言.在计算机科学中,特别是在机器学习的领域,对模型的测量和评估同样至关重要.只有选择与问题相匹配的评 ...
- 前深度学习时代CTR预估模型的演化之路:从LR到FFM\n
本文是王喆在 AI 前线 开设的原创技术专栏"深度学习 CTR 预估模型实践"的第二篇文章(以下"深度学习 CTR 预估模型实践"简称"深度 CTR ...
最新文章
- linux mysql远程链接_Linux下mysql实现远程连接
- 任务调度器leetcode621
- PageRank算法以及Python实现(简洁版)
- C++radix sort基数排序的实现算法之一(附完整源码)
- 赋能工业互联网融合发展 | 北京信息化和工业化融合服务联盟平台化设计专业委员会、中国仿真学会CAE仿真专业委员会成立
- python文件下载速度 装饰器_python使用装饰器对文件进行读写操作'及遍历文件目录...
- oracle 942出错,oracle升级后exp出现oracle942错误
- 异步读取数据库中数据
- LeetCode(682)——棒球比赛(JavaScript)
- weblogic的安装、目录结构、启动
- php文件包含漏洞的危害,php文件包含漏洞小结
- mqtt发布json数据_mqtt应用于进程间通信
- Spring的事务管理
- Linux 系统运行速度太慢的关键原因全都在这了
- 项目管理课程体系——世纪德本PMCD品牌课程
- Duplicate Finder and Remover for Mac(重复文件查找删除工具)
- python快速处理excel表格-python 处理 Excel 表格
- 字体信息 TEXTMETRIC 字体结构 GLYPHMETRICS
- BPM- Eteams体验报告
- 詹姆斯·高斯林-JAVA之父