matlab基于ssd的角点匹配_基于关键点的目标检测
0 1
前言:基于锚点的目标检测方法
在基于关键点(key points)的目标检测方法出现之前,主流目标检测方法一般先设置一些预先定义好的 锚点 (anchor boxes)。 作为预测物体框的参考,神经网络只需要预测实际的物体框相对于这些锚点的偏移。 这样模型就能在一个位置预测多个不同尺寸的物体框,并且预测相对偏移比预测绝对值要容易一些。
最初,这些锚点的大小是人工设置的,如Faster R-CNN [1]和SSD [2]中使用的锚点。 由于模型预测的是相对偏移,一般来说比较接近锚点的物体框预测要更为准确一些,因此YOLOv2[3]中使用了k-means聚类的方法来选择与训练集样本最为匹配的锚点。
基于锚点的目标检测方法 缺点 在于需要生成大量的锚点以更好的覆盖整个图片中的物体,并且需要人工设计一些参数,比如锚点的数量、大小等。
图2 SSD中使用的锚点
0 2
基于关键点的目标检测方法
1. CornerNet [4]
CornerNet发表在2018年ECCV,是使用关键点方法进行目标检测的开山之作。CornerNet通过预测物体框左上角和右下角两个角点,来组成最终的物体框,避免了锚点的使用。
物体的特征一般集中在物体内部,比如一个人的身体、头部,其左上角和右下角两个点的特征并不明显,而且不容易确定位置。
为了解决这个问题,文章引入了 Corner pooling 的结构。
在输出层之前的特征图上,针对左上角点,取其右边和下边的最大值之和,针对右下角点,取其左边和上边的最大值之和。
直观上理解,就是我们在左上角处往右下方向看,在右下角处往左上方向看,这样就能看到整个物体。
如果不使用Corner pooling,相当于看的是角点周围,这样对于比较大的物体就很难获得整个物体的特征,会导致大物体的检测效果差。
网络针对左上角和右下角分别输出 三个结果 :
a. Heatmaps,表示某位置是角点的概率;
b. Offsets,表示实际角点相对于该位置的偏移;
c. Embeddings, 嵌入向量,用于将左上角和右下角进行配对。
生成最终物体框时,取概率最高的k个角点,加上Offsets得到实际位置,再使用Embeddings对左上角和右下角进行配对,取嵌入向量距离超过一定阈值的两个点来组成最终物体框。
损失函数的选择上Heatmaps使用分类损失函数focal loss的变种,Offsets使用回归损失函数smooth L1 loss,Embeddings使用衡量相似度的"pull" loss和"push" loss,损失函数细节可查阅原文。
图3 CornerNet结构示意图
图4 Corner pooling
CornerNet一个 明显的缺点 是使用Embeddings进行角点匹配的效果并不太好,可能导致某个物体的左上角匹配到另一个物体的右下角。后续的ExtremeNet、CenterNet等论文都设法修复或避免这一问题。
图5 CornerNet角点配对错误的例子
2. CornerNet-Lite[5]
针对CornerNet速度较慢的问题,CornerNet的研究团队对网络结构进行了优化。
主要从 两方面 入手,分别提出了一个方案。
一:减少处理的像素数量。也就是先用一个轻量的网络确定物体的大概位置,然后再从这个大概的裁切区域上检测物体的具体位置,该网络被称为CornerNet-Saccade。
二:减少每个像素的处理次数。参考了SqueezeNet和MobileNets,使用深度可分离卷积等方法对网络主干进行轻量化,该网络被命名为CornerNet-Squeeze。
CornerNet-Saccade相比CornerNet 速度 上有较大提升而准确率相当;CornerNet-Squeeze则达到与YOLOv3相当的 速度 和 准确率 ;
CornerNet-Lite依然受限于CornerNet角点匹配 错误较多 的缺点。比如CornerNet-Squeeze虽然从文章中给出的结果上看与YOLOv3相当,但是实际使用中容易出现角点匹配错误情况,效果不佳。
图6 CornerNet-Lite作者给出的优化效果
3. CenterNet [6]
CenterNet在CornerNet基础上加入了一个关键点—— 中心点 ,通过检查CornerNet预测框的中心区域是否存在中心关键点,来决定是否保留这个预测框。
中心关键点在pooling阶段使用了Center pooling,同时取上下左右四个方向的最大值。
此外,还对原有的Corner pooling进行了 优化 。 确定中心区域时,对于较大的物体取5*5分割的中间区域,较小物体取3*3分割的中心区域。中心区域的选择过于依赖人工设计的参数,也是该方法的一个缺点。
图7 CenterNet结 构示意图
4. Objects as Points [7]
这篇文章和上一篇CenterNet一样是19年4月份放到网上的,而且也把自己的网络起名为CenterNet...不同于上一篇CenterNet对CornerNet进行修补。 该方法直接抛弃了右上角和右上角两个关键点,只预测一个中心关键点,再加上物体的宽高,构成最终的物体框。
该文章提出的方法 简洁明了 ,在 速度 和 精度 的权衡上也做的比较好,因此比较被看好。 缺点 在于如果两个物体的中心重合只能预测一个,不过这种情况概率很低。
图8 Objects as Points效果示意图
0 3
小结
基于关键点的目标检测方法或多或少都还存在一些缺点,在实际应用中相比基于锚点的方法也 没有绝对优势 。但是作为近两年目标检测方法的新趋势,我们期待在不远的将来这类方案能有进一步的 突破 。
matlab基于ssd的角点匹配_基于关键点的目标检测相关推荐
- sklearn逻辑回归 极大似然 损失_收藏!攻克目标检测难点秘籍二,非极大值抑制与回归损失优化之路...
点击上方"AI算法修炼营",选择加星标或"置顶" 标题以下,全是干货 前面的话 在前面的秘籍一中,我们主要关注了模型加速之轻量化网络,对目标检测模型的实时性难点 ...
- 后 R-CNN时代, Faster R-CNN、SSD、YOLO 各类变体统治下的目标检测综述:Faster R-CNN系列胜了吗?,(知乎ChenJoya大佬,讲的挺好的,记录一下)
我们检测到你可能使用了 AdBlock 或 Adblock Plus,它的部分策略可能会影响到正常功能的使用(如关注). 你可以设定特殊规则或将知乎加入白名单,以便我们更好地提供服务. (为什么?) ...
- 基于语义分割Ground Truth(GT)转换yolov5目标检测标签(路面积水检测例子)
基于语义分割Ground Truth(GT)转换yolov5目标检测标签(路面积水检测例子) 概述 许多目标检测的数据是通过直接标注或者公开平台获得,如果存在语义分割Ground Truth的标签文件 ...
- 弱小目标检测跟踪算法研究(5) 基于顶帽变换(Top_hat)算法的红外弱小目标检测之背景抑制
基于顶帽变换(Top_hat)算法的红外弱小目标检测之背景抑制 1. 前言 2. 顶帽变换(Top_hat)算法 3. Matlab仿真 4. 小结 1. 前言 红外图像中的弱小目标,目标属性包涵&q ...
- 弱小目标检测跟踪算法研究(5) 基于顶帽变换(Top_hat)算法的红外弱小目标检测之背景抑制Opencv
基于顶帽变换(Top_hat)算法的红外弱小目标检测之背景抑制Opencv 1. 前言 2. 顶帽变换(Top_hat)算法 3. Opencv实例 4. 小结 1. 前言 红外图像中的弱小目标,目标 ...
- 三维匹配_基于三维模型的目标识别和分割在杂乱的场景中的应用
作者:仲夏夜之星 来源:3D视觉工坊公众号 链接: 基于三维模型的目标识别和分割在杂乱的场景中的应用 在杂波和遮挡情况下,对自由形式物体的识别及分割是一项具有挑战性的任务.本文提出了一种新的基于三维模 ...
- 基于用户兴趣偏好的画像方法_基于客户偏好和产品评论的推荐系统
基于用户兴趣偏好的画像方法 Consumers face a huge challenge today in choosing from numerous alternatives available ...
- 基于栅格地图的粒子群算法_基于GMapping的栅格地图的构建
上篇文章讲解了如何在ROS中发布栅格地图,以及如何向栅格地图赋值. 这篇文章来讲讲如何将激光雷达的数据构建成栅格地图. 雷达的数据点所在位置表示为占用,从雷达开始到这点之间的区域表示为空闲. 1 GM ...
- 基于cnn的短文本分类_基于时频分布和CNN的信号调制识别分类方法
文章来源:IET Radar, Sonar & Navigation, 2018, Vol. 12, Iss. 2, pp. 244-249. 作者:Juan Zhang1, Yong Li2 ...
最新文章
- 三大运营商集体为电费发愁,宣布“智能化关闭5G基站”,5G建设能省则省!
- 初步了解OpenSSL命令
- [javaweb] servlet的生命周期 (二)
- Python 第三方模块之 pdfkit
- 微软官方上线 Python 教程
- 树莓派c语言实现modbus主机_特斯拉+树莓派实现车牌识别检测系统
- 某大型银行某系统性能调优过程跟踪记录
- 实对称矩阵的特征值求法_机器学习和线性代数 - 特征值和特征向量
- 关于登录tomcat8一直登录不进去问题
- 中国各省名称+ 经纬度
- axure 调整中继器列宽_Axure中继器:实现“万能”数据表模板的方法
- 大连理工大学电路计算机,大连理工大学电路计算机辅助分析实验报告.pdf
- 挠场的科学丨四、穿梭阴阳的挠场——道家风水、八卦、布阵的解密
- 为程序员爆肝整理的防治脱发大集锦
- hbase snappy 安装_hbase自带snappy压缩测试出错
- 微信公众平台测试号推送思路
- NCRE-嵌入式系统开发工程师-计算机组成与接口知识整理
- 人像图片Relight
- HTML点击图片实现跳转的两种方法
- 1.无线通信:传播和衰落
热门文章
- 用C#编写Linux守护进程
- 处理ASP.NET Core中的HTML5客户端路由回退
- .NET Framework 4.7正式发布
- .NET Core中的认证管理解析
- 过多提交(Over Posting)
- .NET Core 1.0 RC2 历险之旅
- 微软Visual Studio 2019版本16.3 正式发布,支持 .NET Core 3.0
- 【专升本计算机】甘肃省普通高等学校专升本考试计算机全真模拟试卷(一)
- 【Microstation】不能从对话框中装载/创建类型为 ‘HTML‘,id =41510001 的对话框条目,该对话框为: “文本编辑器 - 字处理器“,GCSDIALOG 已装载。
- ArcGIS怎样获取重分类后各类所占的像元个数