成为VIP会员查看完整内容
VIP会员码认证
首页
主题
发现
会员
服务
注册
·
登录
0
重读 CenterNet,一个在Github有5.2K星标的目标检测算法
2021 年 2 月 5 日
新智元
新智元推荐
来源:我爱计算机视觉
作者:张凯
【新智元导读】
本文带领大家重温
Objects as Points
一文,其于2019年4月发布于arXiv,谷歌学术显示目前已有
403
次引用,Github代码仓库已有
5.2K
星标,无论在工业界和学术界均有巨大影响力。
论文作者信息:
论文:
https://arxiv.org/abs/1904.07850
动机
使用卷积神经网络做目标检测,大体可以分为单阶段(one-stage)方法和二阶段(two-stage)方法。单阶段检测器预定义很多anchor,基于这些anchor去做检测,密集的anchor有助于提高检测精度,然而在预测阶段,真正起到检测作用的只有少部分anchor,因此导致了计算资源的浪费。
无论是单阶段检测器还是二阶段检测器,在后处理阶段都需要NMS(Non-Maximum Suppression)操作去除多余框,NMS操作只在推理阶段存在,NMS的存在导致现有的检测器并不是严格的端到端训练的。
基于上述现象,作者提出了CenterNet算法,直接预测物体bounding box的中心点和尺寸。相比其他方法,该方法在预测阶段不需要NMS操作,极大的简化了网络的训练和推理过程。
CenterNet原理
CenterNet主要原理为:输入尺寸为
的3通道图像,表示为
,经过卷积神经网络运算,输出尺寸为
、通道数为数据集类别数
的heatmap,且heatmap中每个值在
区间内,表示为
。默认情况下令
,即网络输出的heatmap的长和宽分别为输入图像的
。
使用
表示heatmap中的第
个通道位置
处的值,当
时,表示heatmap的
处是一个关键点(key point),若
,表示heatmap的
处是背景。heatmap中关键点所在的位置对应原图像中目标的bounding box中心。
若输入图像的位置
处为类别
的bounding box中心,令
,那么heatmap的第
个通道的
处的值为:
上式为高斯函数,式中的
与物体尺寸有关。若输入图片中有2个或多个相邻的类别为
的目标,在求取heatmap时,某个位置处的元素可能会得到根据多个目标求到的多个值,此时取最大值作为heatmap中该位置的值。
1.1 关键点(key point)损失函数
参考focal loss,构造如下形式的损失函数:
令
,
,
是输入图片中目标的个数,也是heatmap中关键点的个数。上式中的
和
是交叉熵损失函数,
和
是focal loss项。
focal loss的存在有如下影响:
当
时,若
接近1,由于
项的存在,损失函数会急剧衰减,而当
不接近1时,损失函数轻微衰减,使得优化器更关注
不接近1的样本。
当
时,若
接近0,由于
项的存在,损失函数急剧衰减,而当
接近1时,损失函数轻微衰减,使得优化器更关注
接近1的样本。
在
的情况中,损失函数还包含
,结合下图讲述该项的作用:
上图为根据训练集的标注信息得到的heatmap,该heatmap作为网络的监督信息训练网络。关注上图中左边的目标,深绿色的点为输入图片bounding box中心位置
在heatmap上对应的位置
,heatmap中该位置的值为1。
前文谈到,根据标注信息生成heatmap时,使用了二维高斯函数确定heatmap中
处周围位置的值,即上图中浅绿色方框位置的值,它们的值不为1但是接近1。
在网络训练过程中,由于
的存在,当
很接近1时,损失函数的值被进一步压制,即使它们的值
接近1也要让优化器不特别关注这些浅绿色位置的损失函数值,因为这些位置离物体的bounding box中心很接近。
1.2 offset损失函数
为了更准确地预测出输入图像中bounding box中心点的位置,该网络除了输出
个通道的heatmap外,还会输出2个通道的offset信息,记作
。
如前文所述,输入图片bounding box中心位置
在heatmap上对应的位置为
,这个过程存在向下取整运算,导致得到网络输出的heatmap中关键点的位置后,难以精确得到输入图片中bounding box中心的位置,offset用于弥补这一精度损失。
offset表示的值为
,使用L1损失构造offset的损失函数,表示如下:
上式中
表示网络预测的offset,
可以根据训练集的标注信息得到。需要特别指出的是,offset损失只针对heatmap中的关键点,对于非关键点,不存在offset损失。
1.3 尺寸(size)损失函数
令表示目标
的bounding box左上角和右下角的坐标,则该目标的尺寸为,
可以通过训练集的标注信息的到。网络输出2个通道的信息用来预测目标的尺寸,记作
。使用L1损失构造尺寸损失函数,表示如下:
1.4 整体的损失函数
根据上文内容可得到整体的损失函数,表示如下:
实验过程中,取上式的
,
。使用这个损失函数训练网络,得到
个通道的feature map,分别表示关键点
、偏移
和尺寸
。
网络结构
作者尝试了4种网络结构,分别为ResNet-18、ResNet-101、DLA-34、Hourglass-104,如下图所示,方框内的数字用于指出特征的尺寸,当方框内数字为4时,表示此时特征的长和宽分别为输入图片的1/4。
Hourglass-104
如上图中图(a)所示,每个Hourglass模块是对称的5个下采样和5个上采样,中间使用skip connection进行短接,该网络的配置与文章《Cornernet:Detecting objects as paired keypoints》基本一致。
ResNet-18和ResNet-101
如上图中图(b)所示,作者在ResNet中做了些改动:在每个upsample操作之前加入了1个3x3的deformable convolutional layer,即在做upsample操作时,先通过deformable convolutional layer改变通道数,再进行反卷积(transposed convolution)操作。
DLA-34
上图中图(c)是原始的DLA-34结构,作者在其基础上进行改进,变成了图(d)中的结构。主要改动为:增加了一些skip connection,在upsample操作时使用deformable convolutional layer。
对于每种网络结构,backbone后面会增加3个网络head,分别预测关键点
、偏移
和尺寸
,每个head包括1个3x3的卷积、ReLU和1个1x1的卷积。网络输出结果的示意图如下图所示:
使用CenterNet做3D目标检测
2D目标检测只需要网络输出目标的位置和尺寸即可,而3D目标检测还需要网络输出目标的深度、(长、宽、高)、目标的角度这3个额外的信息。
3.1 深度
在backbone后面增加一个head用于预测深度信息,网络的输出并不是最终的深度。对于目标
,网络输出的深度信息记作
,则目标的真正深度为
,
表示sigmoid函数。
使用L1损失构造深度损失函数,表示如下:
上式中的
表示训练集中目标
的真实深度,单位为米。
3.2 长、宽、高
将目标的长、宽、高用向量表示,对于目标
,网络输出的长、宽、高记作
,使用L1损失构造损失函数,表示如下:
上式中
表示训练集中目标
的长、宽、高,单位为米。
3.3 角度
使用卷积神经网络直接回归角度比较困难,因此作者将角度信息用8个标量表示,对于目标
,网络输出角度信息记作
。
将
进行分组,其中
表示第1组,用于预测目标角度位于
范围内的角度值;
表示第2组,用于预测目标角度位于
范围内的角度值。
对于每一组,
用于使用softmax函数进行分类,从而决定目标的预测角度是由第1组的信息表示还是由第2组的信息表示;
分别用于预测“目标角度与该组内角度范围的中心角度”差值的
值和
值。使用交叉熵损失函数训练
,使用L1损失训练
,得到如下损失函数:
上式中,
表示角度区间的中间值,
由训练集中的标注信息得到,
用于指明训练集中目标的角度在哪一组的角度范围内,
和
是卷积神经网络的输出值。
推理时,若输入一张图片,根据神经网络输出的
得到角度值:
上式中
的取值为1或2,具体取值由
中的
和
决定,根据
和
选择使用第1组还是第2组的角度信息。
实验结果
4.1 2D目标检测
作者使用了ResNet-18、ResNet-101、DLA-34、Hourglass-104这4种网络进行实验,输入图片分辨率为512x512,输出图片分辨率为128x128,训练时使用了如下数据增强方法:
random flip
random scaling
cropping
color jittering
在COCO训练集上训练,使用Adam优化器,ResNet-101和DLA-34的下采样层由ImageNet预训练权重初始化,上采样层随机初始化;Hourglass-104以ExtremeNet为基础微调。
在8卡TITAN-V GPU上,ResNet-101和DLA-34训练了2.5天,Hourglass-104训练了5天。在COCO验证集上测试,结果如下图所示:
上图中,“N.A”表示测试时未使用数据增强;“F”表示测试时使用了flip方式进行数据增强,在解码bounding box之前平均2个网络的输出结果;
“MS”表示使用了5个尺度(0.5,0.75,1,1.25,1.5)进行推理,使用NMS融合5个网络的结果。“FPS”的测试是基于Intel Core i7-8086K CPU、TITAN Xp GPU、Pytorch 0.4.1、CUDA9.0和CUDNN7.1环境。
下图为使用DLA-34和Hourglass-104这2种结构在COCO测试集上的测试结果:
包含“/”的项表示“单尺度/多尺度”结果。可以看到使用Hourglass-104结构精度可以达到45.1% AP,超越了其他单阶段检测器。
4.2 3D目标检测
在KITTI数据集上训练3D目标检测算法,训练时没有使用数据增强技术。在训练和测试时,输入图片分辨率为1280x384,使用DLA-34网络结构。对于包含深度、(长、宽、高)和方向的损失函数,训练时权重均设置为1。
在测试时,recall的值设置为从0到1步长为0.1的11个值,IOU阈值为0.5,计算2D bounding box的AP、度量角度准确性的AOS、鸟瞰图bounding box的BEV AP。针对该数据集训练5个模型,测试结果取5个模型平均值,并给出标准差。
测试结果如下:
上图中分别与Deep3DBox和Mono3D进行比较,并且按照要比较的算法划分测试集。在AP和AOS两个指标下,CenterNet略差于Deep3DBox和Mono3D方法,在BEV AP指标下明显优于这2个方法。
总结
这篇文章有如下亮点:
提出了CenterNet框架用于目标检测,该方法预测目标的关键点和尺寸,简单、速度快、精度高,不需要预定义anchor,也不需要NMS,完全实现端到端训练;
在CenterNet框架下,可以通过增加网络的head预测目标的其他属性,比如3D目标检测中的目标深度、角度等信息,可扩展性强。
源码:
https://github.com/xingyizhou/CenterNet
登录查看更多
点赞并收藏
0
暂时没有读者
0
权益说明
本文档仅做收录索引使用,若发现您的权益受到侵害,请立即联系客服(微信: zhuanzhi02,邮箱:bd@zhuanzhi.ai),我们会尽快为您处理
相关内容
CenterNet
关注
6
CenterNet由中科院,牛津大学以及华为诺亚方舟实验室联合提出,截至目前,CenterNet应该是one-stage目标检测方法中性能最好的方法。
浙大最新「深度学习弱目标检测定位」综述论文,13页pdf概述WSOD最新进展
专知会员服务
45+阅读 · 2021年5月30日
多尺度目标检测的深度学习研究综述
专知会员服务
59+阅读 · 2021年5月11日
【百度】 PP-YOLOv2使用目标检测器
专知会员服务
17+阅读 · 2021年4月24日
基于深度学习的视觉多目标跟踪算法综述
专知会员服务
47+阅读 · 2021年4月15日
光学遥感图像目标检测算法综述
专知会员服务
70+阅读 · 2021年3月23日
【AAAI2021】协同挖掘:用于稀疏注释目标检测的自监督学习
专知会员服务
25+阅读 · 2020年12月6日
【经典书】深度学习技术型概述,106页pdf
专知会员服务
46+阅读 · 2020年12月2日
深度学习目标检测方法综述
专知会员服务
274+阅读 · 2020年8月1日
【文献综述】深度学习目标检测方法及其主流框架综述
专知会员服务
118+阅读 · 2020年6月26日
【西安交大】深度学习目标检测方法综述
专知会员服务
161+阅读 · 2020年4月21日
进化历程详解:YOLOv1到YOLOv3
极市平台
31+阅读 · 2019年8月27日
【目标检测最新论文】Matrix Nets:用于目标检测的新型深度架构
专知
9+阅读 · 2019年8月16日
CenterNet:目标即点(代码已开源)
极市平台
25+阅读 · 2019年5月24日
最新Anchor-Free目标检测模型—FoveaBox
PaperWeekly
6+阅读 · 2019年4月29日
中科院牛津华为诺亚提出:CenterNet,One-stage目标检测最强算法!可达47mAP,已开源!
极市平台
19+阅读 · 2019年4月18日
综述 | 近5年基于深度学习的目标检测算法
计算机视觉life
38+阅读 · 2019年4月18日
FCOS: 最新的one-stage逐像素目标检测算法
极市平台
15+阅读 · 2019年4月14日
【目标检测】【深度学习】基于深度学习的目标检测算法近5年发展历史(综述)
产业智能官
35+阅读 · 2019年4月11日
ECCV2018目标检测(object detection)算法总览(部分含代码)
极市平台
30+阅读 · 2018年12月29日
从YOLOv1到YOLOv3,目标检测的进化之路
AI100
9+阅读 · 2018年6月4日
De Re Updates
Arxiv
0+阅读 · 2021年6月22日
EfficientDet: Scalable and Efficient Object Detection
Arxiv
6+阅读 · 2019年11月20日
Vision-based Robotic Grasping from Object Localization, Pose Estimation, Grasp Detection to Motion Planning: A Review
Arxiv
6+阅读 · 2019年5月16日
CornerNet-Lite: Efficient Keypoint Based Object Detection
Arxiv
3+阅读 · 2019年4月18日
FoveaBox: Beyond Anchor-based Object Detector
Arxiv
5+阅读 · 2019年4月8日
YOLOv3: An Incremental Improvement
Arxiv
8+阅读 · 2018年4月8日
Complex-YOLO: Real-time 3D Object Detection on Point Clouds
Arxiv
3+阅读 · 2018年3月16日
Rotation-Sensitive Regression for Oriented Scene Text Detection
Arxiv
12+阅读 · 2018年3月14日
Mask R-CNN
Arxiv
7+阅读 · 2018年1月24日
SSD: Single Shot MultiBox Detector
Arxiv
4+阅读 · 2016年12月29日
VIP会员
自助开通(推荐)
客服开通
详情
相关主题
CenterNet
损失函数
NMS
anchor
检测器
损失
相关VIP内容
浙大最新「深度学习弱目标检测定位」综述论文,13页pdf概述WSOD最新进展
专知会员服务
45+阅读 · 2021年5月30日
多尺度目标检测的深度学习研究综述
专知会员服务
59+阅读 · 2021年5月11日
【百度】 PP-YOLOv2使用目标检测器
专知会员服务
17+阅读 · 2021年4月24日
基于深度学习的视觉多目标跟踪算法综述
专知会员服务
47+阅读 · 2021年4月15日
光学遥感图像目标检测算法综述
专知会员服务
70+阅读 · 2021年3月23日
【AAAI2021】协同挖掘:用于稀疏注释目标检测的自监督学习
专知会员服务
25+阅读 · 2020年12月6日
【经典书】深度学习技术型概述,106页pdf
专知会员服务
46+阅读 · 2020年12月2日
深度学习目标检测方法综述
专知会员服务
274+阅读 · 2020年8月1日
【文献综述】深度学习目标检测方法及其主流框架综述
专知会员服务
118+阅读 · 2020年6月26日
【西安交大】深度学习目标检测方法综述
专知会员服务
161+阅读 · 2020年4月21日
热门VIP内容
开通专知VIP会员 享更多权益服务
OpenAI十二天总结与Agent新范式
【伯克利博士论文】高效深度学习推理的全栈方法
【AAAI2025】多层次最优传输用于语言模型中的通用跨标记器知识蒸馏
大规模语言模型增强推荐系统:分类、趋势、应用与未来
相关资讯
进化历程详解:YOLOv1到YOLOv3
极市平台
31+阅读 · 2019年8月27日
【目标检测最新论文】Matrix Nets:用于目标检测的新型深度架构
专知
9+阅读 · 2019年8月16日
CenterNet:目标即点(代码已开源)
极市平台
25+阅读 · 2019年5月24日
最新Anchor-Free目标检测模型—FoveaBox
PaperWeekly
6+阅读 · 2019年4月29日
中科院牛津华为诺亚提出:CenterNet,One-stage目标检测最强算法!可达47mAP,已开源!
极市平台
19+阅读 · 2019年4月18日
综述 | 近5年基于深度学习的目标检测算法
计算机视觉life
38+阅读 · 2019年4月18日
FCOS: 最新的one-stage逐像素目标检测算法
极市平台
15+阅读 · 2019年4月14日
【目标检测】【深度学习】基于深度学习的目标检测算法近5年发展历史(综述)
产业智能官
35+阅读 · 2019年4月11日
ECCV2018目标检测(object detection)算法总览(部分含代码)
极市平台
30+阅读 · 2018年12月29日
从YOLOv1到YOLOv3,目标检测的进化之路
AI100
9+阅读 · 2018年6月4日
相关论文
De Re Updates
Arxiv
0+阅读 · 2021年6月22日
EfficientDet: Scalable and Efficient Object Detection
Arxiv
6+阅读 · 2019年11月20日
Vision-based Robotic Grasping from Object Localization, Pose Estimation, Grasp Detection to Motion Planning: A Review
Arxiv
6+阅读 · 2019年5月16日
CornerNet-Lite: Efficient Keypoint Based Object Detection
Arxiv
3+阅读 · 2019年4月18日
FoveaBox: Beyond Anchor-based Object Detector
Arxiv
5+阅读 · 2019年4月8日
YOLOv3: An Incremental Improvement
Arxiv
8+阅读 · 2018年4月8日
Complex-YOLO: Real-time 3D Object Detection on Point Clouds
Arxiv
3+阅读 · 2018年3月16日
Rotation-Sensitive Regression for Oriented Scene Text Detection
Arxiv
12+阅读 · 2018年3月14日
Mask R-CNN
Arxiv
7+阅读 · 2018年1月24日
SSD: Single Shot MultiBox Detector
Arxiv
4+阅读 · 2016年12月29日
大家都在搜
palantir
洛克菲勒
大规模语言模型
CMU博士论文
无人机系统
自主可控
无人艇
机器狗
evolution
GANLab 将GA
Top
提示
微信扫码
咨询专知VIP会员与技术项目合作
(加微信请备注: "专知")
微信扫码咨询专知VIP会员
Top