IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【2D 目标检测】CornerNet: Detecting Objects as Paired Keypoints -> 正文阅读

[人工智能]【2D 目标检测】CornerNet: Detecting Objects as Paired Keypoints

一 核心思想

本篇文章提出非常新颖的检测方法,不同于以往的anchor-based的方法,CornerNet是基于一对关键点进行物体的检测的(文中讲的为2D检测方法,因此检测的为左上角和右下角两个点。)。除此之外,本文还提出corner?pooling层,以便更好提取特征。具体算法步骤如下图所示:

?二 核心步骤

?

如上图所示,本文的创新点是提出使用一对关键点(也就是相对应的top-left?heatmap和bottom-right?heatmap)来检测出bounding?box,而不是采用anchor-based的方法,为了将两个heatmap图进行相同bounding?box的配对,给每个heatmap输出相应的embedding?vector,只有分别位于embedding?vector上的点的距离相同,才是对应的一对key?point,这对点也就是对应一个object。

当然,本文的创新点还有corner?pooling,不同的heatmap对应不同的corner?pooling。

2.1?Detecting?Corners?

?

1、Heatmaps

本部分对应的结构如上图所示,每一个heatmap的维度为,其中C表示预测的类别的个数,heatmap预测的是label?scores。

不过需要注意的是,在训练过程中,作者不同于之前惩罚negative?position,而是在positive?position的半径内减少对negative?position的惩罚。这是因为对于一对false?corners?detection,如果它们接近各自的ground?truth位置,仍然可以产生一个足以重叠ground?truth的框(如下图所示)。

?给定半径(这个半径的求法比较通用,也就不在此展开。)之后,使用Gaussian?kernel来给出半径内的得分情况(Gaussian kernel为,其中心为positive?location为给定的半径。)。

?对于heatmap的loss?function,定义为:

?上述公式也就表示在location为(i,j)的第c个类别上,表示预测出的分数,表示该位置上的类别标签,N为一幅图像上的所有object的数量。也就是本文的改进之处,减少在半径内的negative的损失。

?

2、Embeddings

图像中可能出现多个目标,因此可能检测到多个左上角和右下角。我们需要确定左上角和右下角是否有一对来自同一个边界框。于是又增加一个网络分支预测每个corner?point的嵌入向量,如果左上角和右下角属于同一个边界框,则对应的embeddings上的位置的值趋于相等(原文中说这个值为距离,也就变成了距离相等。维度为)

然后,我们可以根据左上角和右下角嵌入之间的距离对这些corner?point进行分组。Embeddings上的值并不重要。不同Embeddings上的值只是被用来分类corner?point。

对于Embeddings的loss?function,作者分为pull呵push两个部分,pull对应的是相同组的点的距离要更近,push对应的是不同组的点的距离要更远。

?

?其中,表示top-left corner of object?k,表示bottom-right?corner?of?object?k;。在反向传播时,只计算ground?truth?corner?location上的损失(也就是)。

?

3、Offsets

由于下采样的缘故,图像中的位置(x,y)被映射到heatmap中的位置,其中n是下采样因子。这种映射肯定会有损失,因此作者给出的一个分支专门预测offset。对于positive?position处,标签为,反向传播时,loss?function依然只计算positive?position处。Loss?function?为:

?

?2.2 Corner Pooling

?

?整个部分也就是上述图中的部分,具体结构见下图,也就是虚线框框起来的部分。

每一个heatmap有着不同的corner?pooling层。

对于top-left?corner?pooling?Module,首先有两个输入feature?map,其宽高分别为W和H。如下图所示,如果对红色点(坐标为(i,j))做corner?pooling的话,第一个feature?map计算(i,j)到(i,H)的最大值;第二个feature?map计算(i,j)到(i,W)的最大值,然后将二者相加得到这个红色点的初步特征。最后根据上述图进行特征的计算得到top-left?corner?pooling?Module的特征。

对于bottom-right?corner?pooling?Module,与上述相似,计算(0,j)到(i,j)的最大值和(i,0)到(i,j)的最大值,然后将二者相加得到这个红色点的初步特征。最后根据上述图进行特征的计算得到bottom-right?corner?pooling?Module的特征。

下图是上述top-left?corner?pooling?Module的一个例子。?

?

?

2.3?Hourglass?Networks

这个地方暂时没有进行研究。

三 总结

在测试过程中,首先会利用3×3的max?pooling层进行NMS操作,选择前100个top-left?corner和100个bottom-right?corner;计算top-left?corner和bottom-right?corner的embedding?vector时使用L1?distances;对于一对corner点,如果距离大于0.5或者属于不同类别的目标,则不能构成一对;使用0填充图像而不是resize;最后使用soft-nms保存前100个预测结果。

本文创新性使用corner来代替anchor-based的检测方法,提高效率并且效果更佳。

参考文献

[1] Law H , ?Deng J . CornerNet: Detecting Objects as Paired Keypoints[J]. International Journal of Computer Vision, 2020, 128(3):642-656.

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章           查看所有文章
加:2021-10-11 17:31:30  更:2021-10-11 17:34:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 10:41:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码