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. Mobx与Redux的异同

    Mobx与Redux的异同 Mobx与Redux都是用来管理JavaScript应用的状态的解决方案,用以提供在某个地方保存状态.修改状态和更新状态,使我们的应用在状态与组件上解耦,我们可以从一个地方 ...

  2. win32 - GetMenuBarInfo的使用

    MSDN文档介绍GetMenuBarInfo是用来检索有关指定菜单栏的信息. 假如有个需求是要找到菜单下拉菜单的矩形大小,该怎么做呢? 最简单的方法就是获取菜单栏的句柄,然后将句柄作为参数传给GetM ...

  3. 【Azure 应用服务】Azure Function App在部署时候遇见 503 ServiceUnavailable

    问题描述 在VS Code中编写好 Azure Function App代码后,通过  func azure functionapp publish 部署失败,抛出 503 Service Unava ...

  4. 【Azure 应用服务】Storage Queue触发Azure Function时报错 The input is not a valid Base-64 string

    问题描述 创建一个PowerShell脚本的Azure Function,触发方式为 Storage Queue.但执行函数结果一直失败 (Failed). 错误消息为: Executed 'Func ...

  5. Java 多态 案列

    1 package com.bytezreo.duotai; 2 3 //多态性的使用 举例一 4 public class AnimalTest 5 { 6 public static void m ...

  6. Java UML类图

    在UML的静态机制中类图是一个重点,它不但是设计人员关心的核心,更是实现人员关注的核心.建模工具也主要根据类图来产生代码.类图在UML的9个图中占据了一个相当重要的地位.James Rumbaugh对 ...

  7. C++ STL函数对象 仿函数

    1 //STL函数对象 仿函数 2 #include<iostream> 3 #include<string> 4 5 using namespace std; 6 7 8 / ...

  8. kafka的数据同步原理ISR、ACK、LEO、HW

    1.数据可靠性保证,数据同步 为保证 producer 发送的数据,能可靠的发送到指定的 topic,topic 的每个 partition 收到 producer 发送的数据后,都需要向 produ ...

  9. base64实现图片多图上传功能

    function webPic_upload($savepath,$url_data){$mark=ture; $pic_url=''; if(is_array($url_data)){ foreac ...

  10. Git | Git Server 搭建,在自己的服务器上进行 git server 搭建

    系列文章目录 目录 系列文章目录 前言 操作 1. 创建 git 用户 2. 创建 .ssh 目录 3. 自定义仓库的根目录 4. 在服务器上创建个裸仓库 5. 手动配置一个公钥 6. 在本地测试一下 ...