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的角点匹配_基于关键点的目标检测相关推荐

  1. sklearn逻辑回归 极大似然 损失_收藏!攻克目标检测难点秘籍二,非极大值抑制与回归损失优化之路...

    点击上方"AI算法修炼营",选择加星标或"置顶" 标题以下,全是干货 前面的话 在前面的秘籍一中,我们主要关注了模型加速之轻量化网络,对目标检测模型的实时性难点 ...

  2. 后 R-CNN时代, Faster R-CNN、SSD、YOLO 各类变体统治下的目标检测综述:Faster R-CNN系列胜了吗?,(知乎ChenJoya大佬,讲的挺好的,记录一下)

    我们检测到你可能使用了 AdBlock 或 Adblock Plus,它的部分策略可能会影响到正常功能的使用(如关注). 你可以设定特殊规则或将知乎加入白名单,以便我们更好地提供服务. (为什么?) ...

  3. 基于语义分割Ground Truth(GT)转换yolov5目标检测标签(路面积水检测例子)

    基于语义分割Ground Truth(GT)转换yolov5目标检测标签(路面积水检测例子) 概述 许多目标检测的数据是通过直接标注或者公开平台获得,如果存在语义分割Ground Truth的标签文件 ...

  4. 弱小目标检测跟踪算法研究(5) 基于顶帽变换(Top_hat)算法的红外弱小目标检测之背景抑制

    基于顶帽变换(Top_hat)算法的红外弱小目标检测之背景抑制 1. 前言 2. 顶帽变换(Top_hat)算法 3. Matlab仿真 4. 小结 1. 前言 红外图像中的弱小目标,目标属性包涵&q ...

  5. 弱小目标检测跟踪算法研究(5) 基于顶帽变换(Top_hat)算法的红外弱小目标检测之背景抑制Opencv

    基于顶帽变换(Top_hat)算法的红外弱小目标检测之背景抑制Opencv 1. 前言 2. 顶帽变换(Top_hat)算法 3. Opencv实例 4. 小结 1. 前言 红外图像中的弱小目标,目标 ...

  6. 三维匹配_基于三维模型的目标识别和分割在杂乱的场景中的应用

    作者:仲夏夜之星 来源:3D视觉工坊公众号 链接: 基于三维模型的目标识别和分割在杂乱的场景中的应用 在杂波和遮挡情况下,对自由形式物体的识别及分割是一项具有挑战性的任务.本文提出了一种新的基于三维模 ...

  7. 基于用户兴趣偏好的画像方法_基于客户偏好和产品评论的推荐系统

    基于用户兴趣偏好的画像方法 Consumers face a huge challenge today in choosing from numerous alternatives available ...

  8. 基于栅格地图的粒子群算法_基于GMapping的栅格地图的构建

    上篇文章讲解了如何在ROS中发布栅格地图,以及如何向栅格地图赋值. 这篇文章来讲讲如何将激光雷达的数据构建成栅格地图. 雷达的数据点所在位置表示为占用,从雷达开始到这点之间的区域表示为空闲. 1 GM ...

  9. 基于cnn的短文本分类_基于时频分布和CNN的信号调制识别分类方法

    文章来源:IET Radar, Sonar & Navigation, 2018, Vol. 12, Iss. 2, pp. 244-249. 作者:Juan Zhang1, Yong Li2 ...

最新文章

  1. 三大运营商集体为电费发愁,宣布“智能化关闭5G基站”,5G建设能省则省!
  2. 初步了解OpenSSL命令
  3. [javaweb] servlet的生命周期 (二)
  4. Python 第三方模块之 pdfkit
  5. 微软官方上线 Python 教程
  6. 树莓派c语言实现modbus主机_特斯拉+树莓派实现车牌识别检测系统
  7. 某大型银行某系统性能调优过程跟踪记录
  8. 实对称矩阵的特征值求法_机器学习和线性代数 - 特征值和特征向量
  9. 关于登录tomcat8一直登录不进去问题
  10. 中国各省名称+ 经纬度
  11. axure 调整中继器列宽_Axure中继器:实现“万能”数据表模板的方法
  12. 大连理工大学电路计算机,大连理工大学电路计算机辅助分析实验报告.pdf
  13. 挠场的科学丨四、穿梭阴阳的挠场——道家风水、八卦、布阵的解密
  14. 为程序员爆肝整理的防治脱发大集锦
  15. hbase snappy 安装_hbase自带snappy压缩测试出错
  16. 微信公众平台测试号推送思路
  17. NCRE-嵌入式系统开发工程师-计算机组成与接口知识整理
  18. 人像图片Relight
  19. HTML点击图片实现跳转的两种方法
  20. 1.无线通信:传播和衰落

热门文章

  1. 用C#编写Linux守护进程
  2. 处理ASP.NET Core中的HTML5客户端路由回退
  3. .NET Framework 4.7正式发布
  4. .NET Core中的认证管理解析
  5. 过多提交(Over Posting)
  6. .NET Core 1.0 RC2 历险之旅
  7. 微软Visual Studio 2019版本16.3 正式发布,支持 .NET Core 3.0
  8. 【专升本计算机】甘肃省普通高等学校专升本考试计算机全真模拟试卷(一)
  9. 【Microstation】不能从对话框中装载/创建类型为 ‘HTML‘,id =41510001 的对话框条目,该对话框为: “文本编辑器 - 字处理器“,GCSDIALOG 已装载。
  10. ArcGIS怎样获取重分类后各类所占的像元个数