CSP将目标定义为中心点和尺寸,通过网络直接预测目标的中心和寸尺,相对于传统的RCNN类型检测算法轻量化了不少。整体思想与Object as Points撞车了,真是英雄所见略同



来源:晓飞的算法工程笔记 公众号

论文: Center and Scale Prediction: A Box-free Approachfor Pedestrian and Face Detection(High-level Semantic Feature Detection: A New Perspective for Pedestrian Detection)

Introduction


  目前一些研究基于深度卷积网络进行边缘检测,获得了不错的效果。论文认为既然卷积网络能够预测边缘,那网络必然也能预测物体的中心点及其尺寸。于是论文将检测的目标定义为中心点及尺寸,提出了CSP(Center and Scale Prediction)

  CSP的网络结构大致如图1所示,在主干网络上分别预测目标中心点的位置及其对应的尺寸。这篇文章的整体思想与CenterNet(zhou. etc)基本一致,但不是抄袭,因为是同一个会议上的论文,CenterNet主要研究常规的目标检测,而这篇主要研究人脸检测和行人检测。但CSP仍然需要进行NMS的后处理,较CenterNet更逊色一些,但不妨碍我们进行简单地了解,包括学习论文的训练方法以及参数。

Overall architecture


  CSP检测算法的结构如图2所示,主干网络由ImageNet的预训练网络截断所得,主要分为特征提取部分以及预测部分。

Feature Extraction

  以ResNet-50为例,卷积层分为五个阶段,下采样比例分别为2、4、8、16和32,论文进行了以下修改与设置:

  • 将第五阶段的卷积更换为空洞卷积,使其保持下采样比例为16。
  • 为了融合浅层和高层特征,在Concatenate前将多阶段输出进行反卷积扩大至同一分辨率。
  • 由于不同阶段特征图的分辨率不同,使用L2-normalization将各阶段特征图的范数缩放为10。
  • 论文通过实验最终只选用了第3、第4和第5阶段的特征进行检测。
  • 给定大小为\(H\times W\)的输入图片,最终的concatenated特征图大小为\(H/r \times W/r\),r为4时性能最好。

Detection Head

  在获得concatenated特征图\(\Phi_{det}\)后,使用简单的detection head将特征转化为检测结果。首先采用\(3\times 3\)卷积层输出256维特征,然后分别使用\(1\times 1\)卷积层来产生偏移值预测,尺寸图和中心点热图。

Training


Ground Truth

  给定GT标注,能够自动地生成对应的GT中心点位置和尺寸。将GT标注对应特征图上的位置设定为中心点正样本,其它位置均为负样本。尺寸可定义为目标的高和宽,对于使用line annotation标注的行人数据集,其长宽比固定为0.41,仅需预测高度即可。对于GT尺寸,正样本位置\(k\)的值定义为\(log(h_k)\),在其半径范围2以内的位置也设为同样的值,其余设置为零。而若加入偏移值预测分支,该分支的GT定义为\((\frac{x_k}{r}-\lfloor \frac{x_k}{r}\rfloor, \frac{y_k}{r}-\lfloor
\frac{y_k}{r} \rfloor )\)。

Loss Function

  对于中心点预测分支,将其视为分类任务使用交叉熵损失进行训练。为了让训练更加平滑,跟CornerNet一样定义高斯核,在特征图上对GT点进行半径范围内的扩展:

  \(K\)为图片中的目标数,\((x_k, y_k, w_k, h_k)\)为中心坐标以及宽高,方差\((\sigma^k_w, \sigma^k_h)\)与目标的高和宽成比例,如果高斯区域有重叠,则取最大值。为了防止正负样本极度不平衡,加入focal loss的权值进行平衡:

  \(p_{ij}\in [0,1]\)代表网络预测该位置为目标中心的概率,\(y_{i,j}\in {0, 1}\)代表GT标签。

  对于尺寸预测,将其视为回归任务使用smooth L1损失进行训练:

  \(s_k\)和\(t_k\)分别代表网络预测结果和每个目标的GT。如果使用了偏移值分支,则同样将其视为回归任务进行训练。完整的优化目标为:

  \(\lambda_c\), \(\lambda_s\), \(\lambda_o\)分别设置为0.01,1和0.1

Inference


  在测试的时候,CSP直接进行简单的前向推理,保留中心热图中置信度大于0.01的位置及其尺寸结果,生成对应的预测框并映射到原图尺寸,对所有保留的预测结果进行NMS处理。如果使用了偏移值预测分支,则对映射后的中心点进行调整。

Conclusion


  CSP将目标定义为中心点和尺寸,通过网络直接预测目标的中心和寸尺,相对于传统的RCNN类型检测算法轻量化了不少。整体思想与Object as Points撞车了,发表于同一期会议,真是英雄所见略同了。





如果本文对你有帮助,麻烦点个赞或在看呗~

更多内容请关注 微信公众号【晓飞的算法工程笔记】

CSP:Object as Point同会议论文,相似思想用于人脸和行人检测 | CVPR 2019的更多相关文章

  1. [CVPR 2019]Normalized Object Coordinate Space for Category-Level 6D Object Pose and Size Estimation

    论文地址:https://arxiv.org/abs/1901.02970    github链接:https://github.com/hughw19/NOCS_CVPR2019 类别级6D物体位姿 ...

  2. Arbitrary-Oriented Object Detection with Circular Smooth Label(ECCV2020,旋转目标检测)

    论文链接:https://arxiv.org/abs/2003.05597 code:https://github.com/Thinklab-SJTU/CSL_RetinaNet_Tensorflow ...

  3. 【TensorFlow】Win7下使用Object Detection API 训练自己的数据集,并视频实时检测

    说明: 图片:自己开的摄像头,截取的图片.选择了200张图片.下面会有截取的脚本. 使用labelImg工具进行图片进行标注.产生PascalVOC格式的XML文件.[labelImg工具的安装和使用 ...

  4. 行人检测(Pedestrian Detection)资源

    一.论文 综述类的文章 [1]P.Dollar, C. Wojek,B. Schiele, et al. Pedestrian detection: an evaluation of the stat ...

  5. 目标检测之行人检测(Pedestrian Detection)---行人检测之简介0

    一.论文 综述类的文章 [1]P.Dollar, C. Wojek,B. Schiele, et al. Pedestrian detection: an evaluation of the stat ...

  6. SIGAI深度学习第四集 深度学习简介

    讲授机器学习面临的挑战.人工特征的局限性.为什么选择神经网络.深度学习的诞生和发展.典型的网络结构.深度学习在机器视觉.语音识别.自然语言处理.推荐系统中的应用 大纲: 机器学习面临的挑战 特征工程的 ...

  7. 【计算机视觉】行人检测(Pedestrian Detection)资源

    一.论文 综述类的文章 [1]P.Dollar, C. Wojek,B. Schiele, et al. Pedestrian detection: an evaluation of the stat ...

  8. 使用面向对象思想处理cookie

    实例:使用面向对象思想处理cookie如果读者对cookie 不熟悉,可以在第七章学习它的使用方法,虽然在那里创建了几个通用函数用于cookie 的处理,但这些函数彼此分离,没有体现出是一个整体.联想 ...

  9. Object类型知识总结,你掌握了多少?

      Object类型    ECMAScript中的对象其实就是一组数据和功能的集合.对象可以通过执行new操作符后跟要创建的对象类型的名称来创建.而创建Object类型的实例并为其添加属性和(或)方 ...

  10. 论文阅读笔记五十三:Libra R-CNN: Towards Balanced Learning for Object Detection(CVPR2019)

    论文原址:https://arxiv.org/pdf/1904.02701.pdf github:https://github.com/OceanPang/Libra_R-CNN 摘要 相比模型的结构 ...

随机推荐

  1. win32- GetMessage的使用

    BOOL bRet; while( (bRet = GetMessage( &msg, hWnd, 0, 0 )) != 0) { if (bRet == -1) { // handle th ...

  2. [BUUCTF][Web][极客大挑战 2019]LoveSQL 1

    打开靶机url,页面显示有两个输入框,框中输入123',发现两个框都有sql注入问题 爆出一下错误 You have an error in your SQL syntax; check the ma ...

  3. Docker实践之05-限制Docker容器运行资源

    Docker容器在默认情况下会使用宿主机的所有CPU和内存资源,为了明确限制每一个Docker容器的运行资源,需按如下操作进行设置. 首先,执行:sudo docker info,如果提示:" ...

  4. 使用二进制重排 & Clang插桩技术点来进行iOS冷启动进行优化

    1.冷启动 1.1 什么是冷启动? 冷启动是指内存中不包含该应用程序相关的数据,必须要从磁盘载入到内存中的启动过程. 注意:重新打开 APP, 不一定就是冷启动. 当内存不足,APP被系统自动杀死后, ...

  5. Gitlab中的打包作业完成后,更新http服务器里的版本号文件

    背景 在.gitlab-ci.yml里面,我们有4个场景 dotnet build.dotnet pack和dotnet push 单元测试 SSH到http服务器,更新对应的版本号文件里面的版本数字 ...

  6. X86模拟龙芯与编译 .NET CoreCLR

    目录 .NET 收到一台龙芯机器 编译 CoreCLR 环境要求 部署虚拟机与环境 Linux 安装 KVM 下载需要的文件 启动模拟器 下载 CoreCLR 尝试编译 CoreCLR 前段时间得知龙 ...

  7. Spring Cloud 系列之Hystrix、Ribbon、Feign 源码剖析(一)引子

    系列目录 Spring Cloud 系列之Hystrix.Ribbon.Feign 源码剖析(一)引子 Spring Cloud 系列之Hystrix.Ribbon.Feign 源码剖析(二)原理概括 ...

  8. Kubernetes-一文详解ServiceAccount与RBAC权限控制

    一.ServiceAccount 1.ServiceAccount 介绍 首先Kubernetes中账户区分为:User Accounts(用户账户) 和 Service Accounts(服务账户) ...

  9. Zabbix“专家坐诊”第183期问答汇总

    问题一 Q:老师,请问一下zabbix采集的数据怎么过滤,获取数据是nottime=20:30 notafter=3,怎么过滤出netafter=3 ?谢谢. A:过滤器设置如下图. 问题二 Q:大佬 ...

  10. 创建 nest-websocket 服务 用于mock单点登录开发

    需求 有个单点登录的任务,但是都是现场的服务 api 和 websocket 都在现在 开发本机mock服务 本地搭建环境先模拟一下 资料 NestJS WebSocket 开始使用 https:// ...