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

目录

1、faster rcnn:

2、SSD:

3、YOLOv1:

小结:

拓展:anchor-based和anchor-free

anchor


1、faster rcnn:

FasterRcnn 算法原理讲解笔记(非常详细)icon-default.png?t=L892https://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是多尺度的。

preview

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255859.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

真静态和伪静态的区别

首先肯定的是纯静态和伪静态都是SEO的产物,但纯静态和伪静态还是有很大区别的。 纯静态是生成真实的HTML页面保存到服务器端,用户访问时直接访问这 个HTML页面即可,从而大大的减轻了服务器压力(如dedecms就是采用的纯静态&#xf…

非常有趣的Console

console觉醒之路,打印个动画如何? 原文地址: http://www.helloweba.com/view-blog-383.html 批量去掉或替换文本中的换行符(notepad、sublime text2) 原文地址:http://m.blog.csdn.net/article/details?id43228729 有…

假期实践

第一天 地点:杭州颐高数码城 第一天,我来到了自己家附近的颐高数码城。文三路这边有一个卖数码产品的一条街,这里也是最贴近我专业实践的地方,所以第一天的实践我选择了这里。 2001年开业的颐高数码广场座落于“电子一条街”文三路、学院路口…

3.AngularJS-过滤器

转自:https://www.cnblogs.com/best/p/6225621.html 二、过滤器 使用过滤器格式化数据,变换数据格式,在模板中使用一个插值变量。语法格式如下: {{ express | filter:parameter1:p2:p3… | … | …}} 过滤器分了内置过滤器与自定义…

【深度学习】——训练过程

包含哪些层 训练过程 其实就是yf(x)的求参过程,先给参数一个初始值,然后根据初始函数计算得到预测值,根据预测值和真值计算损失,然后又根据损失函数进行反向传播更新参数,更新参数后,再次计算预测值&#…

thinkphp自定义模板标签(一)

thinkphp内置的foreach和include等模板标签使用是非常方便的;但是内置的那些标签只能满足常用功能,个性化的功能就需要我们自己编写自定义模板标签了;下面就是要讲解如何实现; 示例环境:thinkphp3.2.3 thinkphp的模板标…

【深度学习】——激活函数(sigmoid、tanh、relu、softmax)

目录 激活函数 1、作用 2、常用激活函数 3、衡量激活函数好坏的标准: 4、不同的激活函数 1)sigmoid 2)tanh函数 3)RULE函数和leak-relu函数 4)softmax函数 激活函数 1、作用 如果只是线性卷积的话&#xff0c…

【深度学习】——分类损失函数、回归损失函数、交叉熵损失函数、均方差损失函数、损失函数曲线、

目录 代码 回归问题的损失函数 分类问题的损失函数 1、 0-1损失 (zero-one loss) 2、Logistic loss 3、Hinge loss 4、指数损失(Exponential loss) 机器学习的损失函数 Cross Entropy Loss Function(交叉熵损失函数) 交叉熵优点 Mean Squared E…

【转】应用架构一团糟?如何将单体应用改造为微服务

概述 将单体应用改造为微服务实际上是应用现代化的过程,这是开发者们在过去十年来一直在做的事情,所以已经有一些可以复用的经验。 全部重写是绝对不能用的策略,除非你要集中精力从头构建一个基于微服务的应用。虽然听起来很有吸引力&#xf…

Linux 解决ssh连接慢的问题

备份文件 cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak 编辑文件 vi /etc/ssh/sshd_config 输入/ 查找GSSAPIAuthentication 设置如下 GSSAPIAuthentication no # 是否允许使用基于 GSSAPI 的用户认证。默认值为"no"。仅用于SSH-2 详细解释 输入/ 查找UseDNS …

【Hibernate】Hibernate系列6之HQL查询

HQL查询 6.1、概述 6.2、分页查询 6.3、命名查询 6.4、投影查询-部分字段查询 6.5、报表查询 6.6、迫切左外连接、左外连接 6.7、迫切内连接、内连接 6.8、QBC查询、本地查询 转载于:https://www.cnblogs.com/junneyang/p/5254641.html

【深度学习】——梯度下降优化算法(批量梯度下降、随机梯度下降、小批量梯度下降、Momentum、Adam)

目录 梯度 梯度下降 常用的梯度下降算法(BGD,SGD,MBGD) 梯度下降的详细算法 算法过程 批量梯度下降法(Batch Gradient Descent) 随机梯度下降法(Stochastic Gradient Descent&#xff09…

双工位机器人 焊接夹具注意事项 o(╯□╰)o

焊接夹具设计注意事项 一套完美的夹具,需要机械设计人员正确的设计思想,良好的配件质量,钳工负责认真的装配质量,卡具在使用中不断的修磨和改进,才会达到好的效果。 本人非机械设计,只是在使用焊接卡具过程中遇到了很多卡具设计上…

【机器学习】——《机器学习实战》面试复习

目录 一、机器学习概念 二、机器学习步骤 三、有监督学习 1、k-近邻算法 核心思想 实例:手写数字的识别 优缺点: 2、决策树 相关概念 核心思想 一些小技巧 优缺点 3、神经网络 4、SVM——支持向量机 核心思想 SVM和SVR的区别 ​ 优缺点…

ubuntu安装LDAP

参考文献: https://help.ubuntu.com/12.04/serverguide/openldap-server.html(最主要的) http://www.linuxidc.com/Linux/2011-08/40020.htm http://blog.chinaunix.net/uid-24276740-id-3360306.html 前言 在网上搜索ldap的安装配置&#xf…

ABB机器人之LOADDATA

ABB机器人之LOADDATA loaddata是用来描述连接到机器人机械接口的负载(机器人的安装法兰)。loaddata数据通常定义有效载荷或负荷(通过指令gripload设置机器人抓手负载 或mechunitload指令设置变位机负载。loaddata通常也作为tooldata的一部分&…

【深度学习】——性能指标(ROC、MAP、AUC等)

目录 一、分类任务性能指标 1、混淆矩阵 2、精确度ACCURACY 正确数/总数 3、查全率(RECALL)——真正正样本中预测正确的比例 4、查准率(precision)——预测为正样本中的预测正确的比例 5、F-score——对查准率和查全率进行结…

【深度学习】——过拟合的处理方法

目录 一、什么是过拟合?(overfitting) 二、过拟合的表现(判定方法) 训练集、测试集、验证集区别 测试集与验证集的区别 三、产生过拟合的原因 1、样本方面 2、模型方面 四、避免过拟合的方法 1、样本方面 1&…

ASP.NET页面的字符编码设置

在用ASP.NET写网上支付的接口程序时&#xff0c;遇到一个奇怪问题&#xff0c;通过表单提交过去的中文全是乱码&#xff0c;英文正常。而用asp程序进行测试&#xff0c;可以正常提交中文&#xff0c;asp页面中有这样的HTML代码&#xff1a; <meta http-equiv"Content-T…

【深度学习】——BN层(batch normalization)

目录 一、“Internal Covariate Shift”问题 二、BatchNorm的本质思想 两个参数r和β的意义——精髓所在 三、训练阶段如何做BatchNorm 四、BatchNorm的推理(Inference)过程 五、BatchNorm的好处 一般使用在卷积层后、激活层前 Batch Normalization作为最近一年来DL的重要…