前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >对象检测新趋势anchor-free模型之CenterNe

对象检测新趋势anchor-free模型之CenterNe

作者头像
OpenCV学堂
发布2019-12-15 19:10:11
5680
发布2019-12-15 19:10:11
举报

概述

01

CornerNet作为anchor-free对象检测网络,克服了one-stage对象检测依赖anchor boxes的缺点,但是CornerNet本身在对象检测方面的精度仍然有限,本文作者认真分析了CornerNet网络的缺陷,提出了新的改进方法。CornerNet网络依赖关键点对来定位对象的bounding box然而这种方法常常会导致错误定位,CenterNet提出了基于三联关键点定位改进,通过自定义两个关键模块-级联Corner Pooling 与 Center Pooling从而提升位置信息识别能力,在MS-COCO数据集上AP达到了47%超过所有其它的one-stage对象检测模型,同时拥有更快的推理速度。

CornerNet的一个缺点是经常预测错误的点对,这个需要后期根据比率进行适当的过滤才会产生正确的bounding box,而通过中心位置点可以很快确认正确的点对信息,提升CornerNet模型的精度。图示如下

第一行蓝色框是ground truth, 红色框是预测结果。第二行为添加中心点之后的改进,当对象与预测框IOU很高时候,中心可能性也应该很高,反之亦然。CornerNet在不同尺度大小与IOU并交比时候的不同错误率如下:

网络架构

02

相比CornerNet多出一个分支输出,就是中心点信息预测,此外这里的backbone网络依然采用Hourglass网络。通过CornerNet部分生成多个bounding box,对生成的多个bounding box,选择top-k个box(根据得分),然后做如下处理:

1.选择top-k个中心关键点(根据得分)

2.根据offset把中心点重映射到输入图像上

3.定义个中心区域,检查中心点是否在中心区域内(中心点的标签与bounding box的标签必须一致)

4.如果关键点在中心区域,则该bounding box保留,box得分将有三个关键点(左上角点、右下角点、中心点)平均值取代,反之则删除该bounding box。

CenterNet模型的关键在于中心区域大小的定义选择。当对小目标选择小中心区域,召回率比较低,说明小目标比较难发现;对于大的目标选择比较大的中心区域时候,发现精度比较低,说明预测错误框比较多。想想很容易理解,小目标选择小的中心区域,中心关键点很难匹配到,而大目标选择比较大的中心区域导致过度匹配。所以作者提出一种scale-aware的自适应中心区域选择方法,对小bounding box尽量选择大的中心区域,大的bounding box选择小的中心区域 ,最终中心区域选择满足如下计算公式:

tl表示top-left即左上角点,br表示bottom right即右下角点,n为奇数。N=3与5的示例如下图

池化模块

03

Center Pooling(中心池化)

上图a表示中心池化,选择水平与垂直两个方向上的最大值,具体做法如下,对来自backbone输出的feature map,进行X与Y方向的最大值提取,然后叠加,这样做法有利于发现中心关键点。

Cascade Corner Pooling级联角池化

见上图(C)所示,首先发现bounding方向的最大值,然后再发现内部的最大值,把这两个最大值叠加在一起,这样就既获得了框信息也获得对象可视化模式信息。这两种池化模块很容易结合在一起使用,它们的结构如下:

训练与测试对比

04

损失计算公式如下:

其中前面两个是focal losses

中间两个是角点的量词嵌入损失

最后两个是位置损失基于L1计算

最终CenterNet的测试对比结果如下:

论文地址https://arxiv.org/pdf/1904.08189v3.

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 OpenCV学堂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档