目标检测领域最近有个较新的方向:基于关键点进行目标物体检测。该策略的代表算法为:CornerNet和CenterNet。由于本人工作特性,对网络的实时性要求比较高,因此多用YoLov3及其变体。而就在今天下午得知,基于CornerNet改进的CornerNet-Squeeze网络居然在实时性和精度上都超越了YoLov3,我还是蛮激动的,故趁此机会学习下该类检测算法的原理。
cornerNer论文链接:https://arxiv.org/pdf/1808.01244.pdf
github:https://github.com/umich-vl/CornerNet
CenterNet论文链接:https://arxiv.org/abs/1904.08189
github:https://github.com/Duankaiwen/CenterNet
CornerNe-Lite论文链接: https://arxiv.org/abs/1904.08900
github: https://github.com/princeton-vl/CornerNet-Lite
所谓基于关键点进行目标检测,其实就是使用one-stage网络将目标边界框检测为一对关键点(即边界框的左上角和右下角)。通过将目标检测为成对关键点,就可消除现有的one-stage检测网络中对一组anchors的需要,这个最近火热的anchor-free也是不谋而合。接下来,先简单介绍下CornetNet和CenterNet这两个基于特征点的目标检测网络。最后对CornerNet-Squeeze做个简单介绍!
1.CornerNet 【ECCV2018】
CornerNet网络的整体思路是,首先通过Hourglass Network网络进行特征提取,紧接着将网络得到的特征输入到两个模块:Top-left Corner pooling
和Bottom-right Corner pooling
提取关键点的特征,对于每个Corner Pooling模块都会进行目标框的左上角关键点和右下角关键点的类别分类(Heatmaps
),并找到每个目标的一对关键点(Embeddings
),以及减少基于坐标回算目标目标位置时的偏置(offsets
)。网络的整体结构图如下:
很显然,CornerNet的核心是四个部分:
-
两个Corne