【论文阅读】CenterNet

论文题目:Objects as Points(CVPR2019)

论文地址:https://arxiv.org/pdf/1904.07850.pdf

发布时间:2019.4.16

机构:UT Austin,UC Berkeley

代码:https://github.com/xingyizhou/CenterNet

【论文】

Intro

1、Object Detection方法大多基于box,列举所有可能的复选框,在进行后处理筛选,低消耗时。One-stage:anchor(slide/possible box)直接分类;two-stage:计算box们的图像特征饼对特征分类,然后NMS对所有可能的box设置IoU阈值去重复处理(导致无法端到端训练),虽然后处理复杂些但是效果还是不错的。

2、本文CenterNet

①present a new representation for objects: as points.对目标的新表示方式:点

②finds object centers, and regresses to their size.先找到目标中心,再回归其他属性
③The algorithm is simple, fast, accurate, and end-to-end differentiable without any NMS post-processing.特点
说明:
The bounding box size and other object properties are inferred from the keypoint feature at the center.

We simply feed the input image to a fully convolutional network that generates a heatmap. Peaks in this heatmap correspond to object centers. Image features at each peak predict the objects bounding box height and weight.通过一个FC生成热图,选取peaks作为目标物体的中心,然后根据每个peak图片特征去回归其他属性。Anchor-Free
All outputs are produced directly from the keypoint estimation without the need for IoU-based NMS or other post-processing.
3、related work (总结就是CenterNet不用grouping/post-processing/复杂操作所以简单高效)

Region Classification(区域分类):区域/特征分类:都是基于RPM

Implicit Anchors(隐式):设定foreground or not的判定阈值,对region再次分类&多分类。CenterNet与之相似但有些不同之处:①定物体只基于位置而不是overlap程度(不用设定筛选阈值了);②一个物体一个预测所以不用NMS筛选重复冗余目标物;③更大的output relution(别人输出步长16它4)。就是一次性定位物体,不用麻烦的后处理(下图)。

Keypoint Estimation(关键点估计):前人工作的CornerNet和ExtremeNet在关键点检测之后都有个grouping stage慢呐。

Monocular 3D(单目三维)目标检测

CenterNet

1、关键点估计

 输入图像I,输出位关键点热图Yˆ(1关键点0背景)

①Keypoint types include C = 17 human joints in human pose estimation, or C = 80 object categories in object detection② We use several different fully-convolutional encoder-decoder networks to predict Yˆfrom an image I: A stacked hourglass network, up convolutional residual networks (ResNet) , and deep layer aggregation (DLA)

2、Objects as Points

use a single network to predict the keypoints Yˆ , offset Oˆ, and size Sˆ.(具体实现方式与细节扒了代码再来)

两个应用的实现细节:

(1)3D检测:标量depth、3D dimension、orientation(add a separate head for each of them)

(2)人体姿态估计:

3、Implementation

(1)experiment with 4 architectures: ResNet-18, ResNet-101, DLA-34 (deformable convolution layers修改) and Hourglass-104 as it is.
Hourglass: downsamples the input by 4×, followed by two sequential hourglass modules. Each hourglass module is a symmetric 5-layer down-&up- convolutional network with skip connections.(先下采样4x然后跟2个连续沙漏模块[each对称的5层下5层上卷积with连接])
ResNet:(修改:上采用输出通道并在前加3x3deformable卷积、双线性插值)
Deep Layer Aggregation(DLA):是一种具有分层跳跃连接的图像分类网络。(修改:增加特征图分辨率、每个上采样层用3x3deformable卷积代替原来卷积)

(2)训练:input 512x512=>output 128x128、数据增强、epoch/lr/预训练模型、

         推理(三种测试增强):不增强、翻转增强、翻转和多尺

Experiments

dataset:MS COCO=118ktrain+5kval+20ktest (附录补充了PascalVOC数据集上的实验)

Metrics:FPS、AP平均精度(不同IoU筛选阈值下)、

1、目标检测

(1)使用下预训练过的模型来测试同一设备上每个模型的运行时间:
https://github.com/facebookresearch/Detectron
https://github.com/pjreddie/darknet

(2)与SOTA的比较

CenterNet behaves like a regular detector, just faster.

(3)补充实验

①a:不同物体的中心点重合:先统计出现频率再不同方法实验看效果如何(we better)

②NMS在CenterNet中不必要:作为后处理(提升太小0.5%没必要)

③训练与测试的分辨率:train-512x512,test-原图&zero-pad(原图稍好一些512也行384不行)

④c:回归损失:L1比SmoothL1好挺多

⑤b:λsize的敏感度:大AP值下降更快,并给出了解释

⑥d:训练时间:多少epoch时lr下降对训练时长vsAP

(4)附录中PascalVOC数据集上的实验(小目标检测)

Dataset:16551train+4962test(20个类别)

Metrics:mAP(IoU阈值0.5)

Model:ResNet-18, ResNet-101, DLA-34x2分辨率

2、3D检测

dataset:KITTI驾驶场景

3、姿态估计

dataset:MS COCO(用目标关键点相似性代替box方法中的IoU)

model:DLA34、Hourglass104不同时间收敛;loss权重=1其他超参和目标检测一一致

Table5定量   Fig5定性可视化

4、补充的Error Analisis

replacing each output head with its ground truth.
For the center point heatmap, we use the rendered Gaussian ground truth heatmap.
For the bounding box size, we use the nearest ground truth size for each detection.
while the center map gains are much larger.

【others翻译、论文解析】 

目标检测之CenterNet:属于Anchor-free系列的目标检测,与之前的CornerNet相比较,使用中心点表示物体,从而增强其对内部信息的感知能力

CenterNet目标检测器是一种关键点估计网络,找到目标的中心,回归出他们的尺寸。同样作为Anchor-free的方法,CenterNet则针对CornerNet对内部语义缺失的问题,提出了对中心点进行估计的方法。

Introduction:本文的方法通过中心点来呈现目标,从而将目标检测问题转换为关键点的估计问题。通过提取得到一个热图,而热图的峰值点即为中心点,利用峰值点位置来预测目标的宽高信息。这种简洁的方法也使得CenterNet能够达到很高的速度。

Related Work:本文的方法接近于anchor-based one-stage的方法,但也有一些不同点。首先,CenterNet是基于位置设置锚点,而非box overlap,且没有进行人工设置阈值做前后景分类。其次,每一个目标上仅有一个正的锚点,因此不需要NMS处理,且仅提取关键点热图的局部峰值点。第三,与传统的目标检测器相比较,使用更大分辨率的输出图像,因此不需要多重锚点。        之前也有基于关键点估计的方法,比如ECCV2018中Detecting Objects as Paired Keypoints所提出的CornerNet就首次应用了以关键点估计为导向的目标检测方法,同时还包括CVPR2019中的Bottom-up Object Detection by Grouping Extreme and Center Points中提出的ExtremeNet。然而这些方法在关键点检测之后都需要一个combinatorial grouping stage

 Implementation:作者实验了四种结构:ResNet-18,ResNet-101,DLA-34,Hourglass-104。其中,利用deformable convolution layers修改ResNet和DLA-34,对Hourglass则按照原样使用。



anchor-free之CenterNet的浅析与实现:CenterNet没有用到什么花里胡哨的东西,不过是将keypoints思想和encoder-decoder结构用在了目标检测任务中来,整篇文章看起来的最大感受就是:干净。每次有小任务的时候,我都会优先考虑用它来做,而不是YOLO,毕竟少了调anchor box的麻烦。【作者也提供了自己的项目代码,但是有改动,ResNet18/SPP/512x512】

CenterNet中的YOLO思想

(1)检测中心点:YOLO的特色就在于只考虑中心点作为positive samples,在YOLO中,只有中心点所在的网格点会被考虑,其他均视为负例,而CenterNet则没有直接抛弃掉周围的点,而是赋予了更小的权重,权重的计算就是简单的用高斯函数(确定中心点选取的方差用的就是CornerNet的代码,默认两个方差一样,画出来的高斯区域是个圆[向下取整])

从高斯函数可以看出,中心点的权重就是1,周围逐渐降低,达到了“软阈值”的目的。再补充一点,这个阈值是针对中心点的heatmap的,至于offset和wh的学习,只有中心点这一个正样本去回归offset和wh,其他被软化的样本都不会去回归offset和wh,所以,这种“软阈值”的办法只是针对中心点的位置本身的。(根据阈值定中心点,然后根据中心点去回归其他量),CenterNet是在更大分辨率的feature上做检测的。相较于YOLO那种硬阈值确定中心点的方法,在这种大尺度分辨率的feature上做预测,软化要更好。

(2)学习偏差offset:和YOLO一样,由于降采样和feature map坐标是整数,因此在feature map算出来的中心点坐标都是整数,小数点都被舍掉,从而在反解的时候,就会有很大偏差,这种偏差会随着stride的增大和增大,因此,CenterNet也要去学这个偏差,这和YOLO一样,只是YOLO当时并没有去强调这个,而CenterNet在论文里把这个事拿出来说了,还有模有样的。按照CenterNet的官方代码来看,这个offset使用线性输出+L1损失函数来学习的,遵从YOLO的方式,因为offset是在01之间的,因此自然而然地选择了sigmoid函数,也就自然而然地选择了BCE损失函数

另一方面,CenterNet本身是anchor box free的方法,即不使用任何的先验框,直接回归bounding box的wh,不使用先验框,也就意味着不能像anchor box based的方法那样,通过先验框本身的尺度信息就能自动分配到FPN的各个尺度上去。所以,如果想用FPN的话,就得需要考虑一下如何设定一个决策方式,将各个框分配到各个尺度上去,比如FCOS,FoveaBox等。   不过,CenterNet并不想这么麻烦,因为它把OD问题视为关键点的回归,因此就用了encoder-decoder的方式,在一张很大的feature map上去回归,原文中用的是stride=4的feature map,这么大的feature map其实很精细了,大部分的小目标信息都能回归出来。CenterNet是采用Deconv来做上采样的,不同尺度的特征没有进行融合。其实,这里也可以参考Hourglass的做法, 使用上采样操作+融合来得到大分辨率的feature map.

CenterNet的思想与很多主流检测器RetinaNet、FCOS和YOLO等是不同的。后者们是一种分而治之的方式,即采用多个不同尺度的feature map去检测不同尺度的物体,不同尺度相当于不同的焦距,从而聚焦于不同大小的物体上。// 而CenterNet则是合而治之的方式,我们通过这么大的feature map去回归,既能有小物体,也能有大物体,所有物体的尺度信息都在一个feature map上就OK了,这和TridentNet有异曲同工之妙,只不过TridentNet最后还是分支了。在没有一个可靠的理论解释前,实验结果有很大说服力的,从CenterNet在COCO上的表现就可以看出,这种单级检测的合而治之的方式完全不比的多级检测的分而治之的方式要差,整体的框架还更加简洁。over

在推理的时候,CenterNet也不使用NMS操作,而是用一个 3×3 的maxpooling核去在输出的map上筛选出全是峰值点的map,然后拿这个map和输出的map做对应,就只有峰值点的map了,之所以这么做,是因为筛选的时候,步长为1,那么同一个峰值点会出现在不同的地方,因此,筛选出来的是用不了的,得和原来的输出的map做一下对应才行(作者更爱用5x5的pooling核)。但是,这种方法还是会有冗余,尤其是很大的物体,仅靠这么小的maxpooling核是很容易筛选出多个峰值点的,所以,后面再加上NMS,还是有好处的,从论文中的结果也能看出来,用了NMS不亏,只是,提升可以忽略不计,因为,也就没必要加NMS了。(如果你的数据集中大物体很多,并且你没法容忍重复框,那我还是建议加上NMS)

作者代码网络图
作者采用ResNet18实现的CenterNet网络图

 实验过程:①关于两次topk的处理;②ResNet18这一版还是不够强,重复框挺严重的,所以nms抑制一下也是很有必要,时间上的开销几乎可以忽略不计;③Conv2d和DeConv2d以及SPP代码;④label制作☆以及2/2a效果比对⑤

《目标检测》-第23章-CenterNet-plus

补充内容:

1、NMS(non_max_suppression):IoU 的全称为交并比(Intersection over Union)计算的是 “预测的边框” 和 “真实的边框” 的交集和并集的比值。(通常用于测试阶段)        在预测任务中,会出现很多冗余的预测框,通过NMS操作可以有效的删除冗余检测的结果。非极大值抑制(NMS)顾名思义就是抑制不是极大值的元素,搜索局部的极大值。这个局部代表的是一个邻域,邻域有两个参数可变,一是邻域的维数,二是邻域的大小。 IoU 的阈值是一个可优化的参数,一般范围为0~0.5,可以使用交叉验证来选择最优的参数。

对于任意的检测框,设定两个框的IoU阈值作为两者是否合并的评判依据,并执行NMS操作来删除冗余的检测框。(针对单类别例如在行人检测中,滑动窗口经提取特征,经分类器分类识别后,每个窗口都会得到一个分数。但是滑动窗口会导致很多窗口与其他窗口存在包含或者大部分交叉的情况。这时就需要用到NMS来选取那些邻域里分数最高(是行人的概率最大),并且抑制那些分数低的窗口。

一个形象的演示       precision是在你认为的正样本中,有多大比例真的是正样本,recall则是在真正的正样本中,有多少被你找到了(可以反应漏检的情况)。[关于mAP说明在link中]

2、Conv2d和DeConv2d以及SPP代码

class Conv2d(nn.Module):def __init__(self, in_channels, out_channels, ksize, padding=0, stride=1, dilation=1, leakyReLU=False):super(Conv2d, self).__init__()self.convs = nn.Sequential(nn.Conv2d(in_channels, out_channels, ksize, stride=stride, padding=padding, dilation=dilation),nn.BatchNorm2d(out_channels),nn.LeakyReLU(0.1, inplace=True) if leakyReLU else nn.ReLU(inplace=True))def forward(self, x):return self.convs(x)class DeConv2d(nn.Module):def __init__(self, in_channels, out_channels, ksize, stride=2, leakyReLU=False):super(DeConv2d, self).__init__()# deconv basic configif ksize == 4:padding = 1output_padding = 0elif ksize == 3:padding = 1output_padding = 1elif ksize == 2:padding = 0output_padding = 0self.convs = nn.Sequential(nn.ConvTranspose2d(in_channels, out_channels, ksize, stride=stride, padding=padding, output_padding=output_padding),nn.BatchNorm2d(out_channels),nn.LeakyReLU(0.1, inplace=True) if leakyReLU else nn.ReLU(inplace=True))def forward(self, x):return self.convs(x)class SPP(nn.Module):"""Spatial Pyramid Pooling"""def __init__(self):super(SPP, self).__init__()def forward(self, x):x_1 = F.max_pool2d(x, 5, stride=1, padding=2)x_2 = F.max_pool2d(x, 9, stride=1, padding=4)x_3 = F.max_pool2d(x, 13, stride=1, padding=6)x = torch.cat([x, x_1, x_2, x_3], dim=1)return x

【代码】


【待阅读】


CenterNet-plus(评论区讨论)

Hourglass

第一卷-目标检测入门科普教程

Cornernet/Centernet代码里面GT heatmap里面如何应用高斯散射核

数据增强N种方法with代码、颜色抖动、数据增强

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

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

相关文章

最新最全-中文生物医学命名实体识别最新研究论文、资源、数据集、性能整理分享

本资源旨在跟踪中文生物医学自然语言处理的进展,收集整理相关的论文列表和展示现存方法性能。 内容整理自网络,源地址:https://github.com/lingluodlut/Chinese-BioNLP 中文电子病历命名实体识别 中文电子病历命名实体识别(Chines…

中科院学术专用版GPT Academic项目实现

【写在最前】要完成GPT 学术优化 (GPT Academic)这个项目需要一些值得注意的地方: chatGPT账户有余额且未过期!!!有代理工具(类似Clash) 1、代码克隆 https://github.com/binary-husky/gpt_academic 根据…

asp毕业生信息管理系统设计(源代码+论文+开题报告+外文翻译+文献综述)

选题依据(背景与意义、国内外研究现状与发展趋势)一、基于WEB的毕业生信息管理系统为高校学生带来了福音。我国许多高校已全面实行了学分制,并建立了学分管理体制下的教务管理系统。但随着高校教学改革的深入,对教务管理提出了越来越高的要求,使用中的许…

Citespace和vosviewer文献计量学可视化SCI论文高效写作方法

前言:文献计量学是指用数学和统计学的方法,定量地分析一切知识载体的交叉科学。它是集数学、统计学、文献学为一体,注重量化的综合性知识体系。特别是,信息可视化技术手段和方法的运用,可直观的展示主题的研究发展历程…

基于Citespace和vosviewer文献计量学可视化SCI论文高效写作方法

【前言】:文献计量学是指用数学和统计学的方法,定量地分析一切知识载体的交叉科学。它是集数学、统计学、文献学为一体,注重量化的综合性知识体系。特别是,信息可视化技术手段和方法的运用,可直观的展示主题的研究发展…

【华人学者风采】陈卫 亚洲微软研究院

【华人学者风采】陈卫,亚洲微软研究院首席研究员,清华大学跨学科信息科学研究所教授,中国科学院计算技术研究所的研究员,IEEE Fellow。研究兴趣包括社交和信息网络,在线学习,算法博弈论,互联网经…

NeurlPS 2019丨微软亚洲研究院精选论文解读

编者按:NeurlPS 2019 正于12月8-14日在加拿大温哥华举行。微软亚洲研究院有11篇论文入选本届 NeurlPS,内容涵盖社交网络影响力最大化、奖励分解、语音合成、机器翻译等多个前沿主题。本文将为大家介绍其中的5篇论文。 近视反馈下的自适应影响力最大化 Ad…

【原创·论文翻译】GaitSet-旨在用自己的语言表达出作者的真实意图

GaitSet: Regarding Gait as a Set for Cross-View Gait Recognition 作者:Hanqing Chao1,Yiwei He, Junping Zhang, JianFengFeng AAAI 2019,复旦大学 上海计算机学院智能信息处理重点实验室;脑启发智能科学技术研究所 摘要 …

【论文阅读】EssayGAN:基于生成对抗网络的数据增强用于自动作文评分

摘要 构建一个基于AES的深度学习系统,需要一个包含人为打分的训练数据集。本文介绍了EssayGAN,一个基于生成对抗网络的自动文章生成器。为了生成打分了的文本,EssayGAN有每个分数范围对应的生成器以及一个鉴别器。每个生成器致力于一个特定的…

WSDM2023推荐系统论文集锦

嘿,记得给“机器学习与推荐算法”添加星标 第16届国际网络检索与数据挖掘会议WSDM将在2023年2月27日到3月3日于新加坡举行。今年此次会议共收到了690份有效投稿,最终录取篇数为123篇,录取率为17.8%。该会议历年的论文投稿量以及接收率可见下图…

创业者心中排名第一的VC,投资了OpenAI

我把时间花在工程师身上,向他们学习。所有这些真正聪明的企业家,他们头脑中始终构想着伟大的技术,这些人才是我的老师。 ——Vinod Khosla *本文为原创,写作目的为学习,信息来源为公开资料,不属于任何PR向文…

deepl翻译器中文版

使用教程: 1、将下载好的压缩包解压后根据提示安装好软件 2、安装完成之后,如图所示,点击Got it进入软件 3、在软件内输入你想要翻译的内容 4、可看到软件支持多种语言进行翻译,满足用户不同使用需求 5、在这里,用户…

探索ChatGPT技术在文本生成、机器翻译领域的简单应用

自然语言处理技术——文本生成 ChatGPT的应用领域越来越广泛,关于文本生成,我们可以使用Python中的文本生成库来实现。其中,最常用的是基于深度学习的文本生成模型,如循环神经网络(RNN)和长短时记忆网络(LSTM)。 可以使用Python中…

DeepL 或许会成为你今年首选的翻译工具

在没有知道 DeepL 之前,我都会推荐使用 Google Translate(谷歌翻译)进行翻译工作。因为相较于微软翻译,或是国内的网易有道、百度翻译,Google Translate 在语义以及专业名词上都要更胜一筹。但是大部分情况&#xff0c…

10款翻译引擎全面对比,别再无脑吹DeepL了,根本不好用!

最近在给自己收藏的一些本地歌曲文件手动加歌词的时候,遇到这样一句念白: It’s been a long time. Yes,ma’am. A lot of water under the bridge. 我去百度查了这句词,一眼就觉得不对啊,别人说好久不见,你回一个「…

一款优秀的翻译软件DeepL

最近,一款在线机器翻译软件在日本大火。 这款翻译软件名叫DeepL,大火的原因正是因为它工作太负责了,翻译得太过准确,在日本引起了热议。 从日本网友的民间测评来看,不仅日语方言翻译效果杠杠的,连文言文也…

程序员的需要掌握的数学知识

程序员的需要掌握的数学知识 人工智能跟开发 APP 、后台服务器、前端相比,人工智能需要大量的数学知识。一般都需要用到哪些呢? 微积分线性代数概率论最优化 关于书籍,特别说明一下,除非你是数学知识遗忘的特别厉害了,…

全网最详细中英文ChatGPT-GPT-4示例文档-读书书单推荐从0到1快速入门——官网推荐的48种最佳应用场景(附python/node.js/curl命令源代码,小白也能学)

从0到1快速入门读书书单推荐应用场景 Introduce 简介setting 设置Prompt 提示Sample response 回复样本API request 接口请求python接口请求示例node.js接口请求示例curl命令示例json格式示例 其它资料下载 ChatGPT是目前最先进的AI聊天机器人,它能够理解图片和文字…

使用 Python 进行网页抓取

如果您知道如何做到这一点,那么对于企业和个人使用来说,网络抓取似乎是一种非常有用的节省时间的工具。我们将重点介绍为什么您应该使用 Python 进行网页抓取,并为您提供有关如何完成它的快速教程,包括使用哪些Python 开发工具。 …

GPT-4太强,OpenAI也不懂!智能到底是怎么突然「涌现」的?

来源丨新智元 编辑丨LRS 点击进入—>3D视觉工坊学习交流群 2023年至今,ChatGPT和GPT-4始终霸占在热搜榜上,一方面外行人都在惊叹于AI怎么突然如此强大,会不会革了「打工人」的命;另一方面,其实内行人也不明白&#…