本文简要介绍了CornerNet,ExtremeNet,CenterNet三种POINT_BASED的二维目标检测方法的差异和发展
1 CornerNet
paper,code
利用卷积网络,对所有的左上角点生成一幅热力图,对所有右下角点生成一幅热力图,并且对所有检测到的角点生成一个嵌入式向量。训练网络将属于同一目标的角点预测成相同的嵌入式向量。
该网络通过串联多个hourglass module组成,每个hourglass module都是先通过一系列的降采样操作缩小输入的大小,然后通过上采样恢复到输入图像大小。
两个输出分支模块分别表示左上角点预测分支和右下角点预测分支,每个分支模块包含一个corner pooling层和3个输出:heatmaps、embeddings和offsets。
heatmaps是输出预测角点信息,可以用维度为CHW的特征图表示,其中C表示目标的类别,每个点的预测值为0到1,表示该点是角点的分数;embeddings用来找到属于同一个目标的左上角角点和右下角角点,通过判断两个embedding vector的相似性确定同一物体,距离小于某一阈值则划为同一目标;offsets用来对预测框做微调,表示ground true与anchor的偏移。
2 ExtremeNet
paper,code
提出检测物体的“最左”、“最右”、“最上”和“最下”四个点,这四个点在图像特征上,更有意义,网络更好学。
通过关键点检测网络检测出四个极值点和1个中心点,通过几何关系对提取到的关键点进行分组,一组5个极值点对应一个检测结果。
2.1 关键点检测
使用fully convolutional encoder-decoder network预测一个多通道heatmap,每个通道都对应一个类别的关键点。使用HourglassNetwork作为backbone,对每张heatmap进行加权逐点逻辑回归,加权目的是减少ground truth周围的虚警惩罚。
2.2 关键点分组
- 提取极值点。提取heatmap中所有的极值点,极值点定义为在3x3滑动窗口中的极大值。
- 暴力枚举。对于每一种极值点组合计算它们的中心点,如果center map对应位置上的响应超过预设阈值,则将这一组5个点作为一个备选,该备选组合的分数为5个对应点的分数平均值。
3 CenterNet
paper,code
用一组角点及中心点表示每个目标物,在CornerNet的基础上增加了一个用于预测中心关键点的heatmap,同时,预测中心关键点的偏移,然后基于CornerNet提出的方法选择前k个候选框。
为了更好的检测中心的关键点即角点,提出了两个方法:
- center pooling:用于预测中心关键点的分支,有利于获得更多目标物的中心区域,进而更易感知proposal的中心区域。通过取中心位置横向与纵向响应值的和的最大值实现此方法。
- cascade corner pooling:增加原始的corner pooling感知内部信息的功能。结合了feature map中目标物内部及边界方向的响应值和的最大值来预测角点。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:【学习笔记】三种POINT_BASED的二维目标检测方法的差异和发展 - Python技术站