专栏首页我爱计算机视觉CVPR 2019 行人检测新思路:高级语义特征检测取得精度新突破

CVPR 2019 行人检测新思路:高级语义特征检测取得精度新突破

今天跟大家分享一篇昨天新出的CVPR 2019论文《High-level Semantic Feature Detection:A New Perspective for Pedestrian Detection》,作者将行人检测问题转化为高级语义特征检测的问题,刷新了行人检测精度的新高度!而且作者称代码将开源。

论文作者信息:

作者分别来自国防科技大学、中科院自动化所、阿联酋起源人工智能研究院和地平线机器人公司。

算法思想

特征检测是计算机视觉中常用算法,比如我们所熟知的边缘检测、Blob检测,简单点说就是检测图像中的感兴趣部分。在传统的计算机视觉视觉中,这往往被认为是low-level的操作。

随着深度学习技术的发展,一般认为深度学习提取的特征具有高级语义特性。

作者认为行人检测中行人的中心点(x,y坐标)和尺度(宽高)是一种高级语义特征,行人检测完全可以转化为这些语义特征的检测。

如下图所示:

输入图像经过卷积网络,然后分成Center Heatmap计算和Scale Map 计算,得到的中心点坐标和宽高大小,即检测出了行人。

看起来很简单,但却是很有效!

下图是更详细的网络架构图:

该算法最主要的两部分为特征提取模块和Detection Head模块。

特征提取模块对4个Stage的特征图进行了串联,以增强特征的多尺度表达能力。

Detection Head模块,由256个3*3卷积和分支开来的两个1*1卷积组成,然后分别成为最终的Center heatmap 和Scale Map。

将现有标注好的行人检测数据集转化为中心点和尺度标注的方法是显而易见的,如下图(图中作者使用log(高度)作为行人尺度):

在Point Prediction 这一端,作者实际上尝试了中心点、顶部顶点、底部顶点等三种方式,实验结果如下图上半部分,发现使用中心点效果最好,而且是远好于另外两者。

同样在Scale Prediction这一端,作者尝试了预测高度、宽度和二者都预测。发现只预测高度的效果最好(此时设置固定宽高比0.41)。

实验结果

下面三张图是在Caltech数据集上的实验结果,该文提出的算法CSP均取得了最高的精度。

下图为在CityPersons数据集上的实验结果,CSP同样取得了最好的结果。

另外,值得一提的是,该算法不仅仅适用于行人检测!在作者的Github工程主页上放出了使用该文算法在人脸检测数据集WiderFace上的实验结果,在验证集和测试集上均取得了最高精度或者媲美最高精度的结果。

如下图所示:(请点击大图查看)

读完此文,CV君在想,人脸和行人的宽高比相对变化较小,该文提出的算法取得了很不错的结果。那么对于通用目标检测,宽高比变化比较大,该算法结果会如何呢?希望有进一步实验结果出来。

希望该文对你有帮助!

论文地址:

https://arxiv.org/abs/1904.02948v1

代码地址:

https://github.com/liuwei16/CSP

本文分享自微信公众号 - 我爱计算机视觉(aicvml),作者:CV君

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-04-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 日本东北大学改进单阶段人脸检测—兼具速度与精度优势

    近日来自日本东北大学与Laboro.AI公司的研究人员公开一篇改进的单阶段人脸检测算法论文,其不仅保持了速度的优势而且在主流的人脸数据集上达到与双阶段人脸检测算...

    CV君
  • RefineDetLite:腾讯提出轻量级高精度目标检测网络

    前几天腾讯公布了一篇论文RefineDetLite: A Lightweight One-stage Object Detection Framework fo...

    CV君
  • 首个实时单目3D目标检测算法:RTM3D,代码将开源

    基于单目图像的3D目标检测是在输入RGB图像的情况下估计目标的3D包围框,在自动驾驶领域非常有用。

    CV君
  • 你真的理解反向传播 BP 算法吗?

    我们经常会听到深度网络会出现梯度消失或者梯度爆炸问题,但是使用某些策略又可以缓解这个问题,那么你知道为什么会出现这些问题,这些策略为什么又可以缓解了,深度网络里...

    用户1737318
  • 在HashMap中将可变对象用作Key,需要注意什么?

    本文中我们将会讨论在Java HashMap中将可变对象用作Key。所有的Java程序员可能都在自己的编程经历中多次用过HashMap。那什么是HashMap呢...

    九州暮云
  • wm_concat()和group_concat()合并同列变成一行的用法以及和concat()合并不同列的区别

    原标题:oracle的wm_concat()和mysql的group_concat()合并同列变成一行的用法以及和concat()合并不同列的区别

    小小鱼儿小小林
  • SpringCloud系列之客户端负载均衡Netflix Ribbon

    负载均衡是一种基础的网络服务,它的核心原理是按照指定的负载均衡算法,将请求分配到后端服务集群上,从而为系统提供并行处理和高可用的能力。提到负载均衡,你可能想到n...

    SmileNicky
  • Confluence 6 数据导入和导出 原

    Confluence 管理员和用户可以从各种方法向  Confluence 中导入数据。针对不同的导入方式,有关权限的要求也是不相同的。请参考页面 Import...

    HoneyMoose
  • java中的万能实体类

    低调小熊猫
  • 聊聊flink的RestartStrategies

    flink-core-1.7.1-sources.jar!/org/apache/flink/api/common/restartstrategy/Restar...

    codecraft

扫码关注云+社区

领取腾讯云代金券