CSP:Object as Point同会议论文,相似思想用于人脸和行人检测 | CVPR 2019
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的更多相关文章
- [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物体位姿 ...
- Arbitrary-Oriented Object Detection with Circular Smooth Label(ECCV2020,旋转目标检测)
论文链接:https://arxiv.org/abs/2003.05597 code:https://github.com/Thinklab-SJTU/CSL_RetinaNet_Tensorflow ...
- 【TensorFlow】Win7下使用Object Detection API 训练自己的数据集,并视频实时检测
说明: 图片:自己开的摄像头,截取的图片.选择了200张图片.下面会有截取的脚本. 使用labelImg工具进行图片进行标注.产生PascalVOC格式的XML文件.[labelImg工具的安装和使用 ...
- 行人检测(Pedestrian Detection)资源
一.论文 综述类的文章 [1]P.Dollar, C. Wojek,B. Schiele, et al. Pedestrian detection: an evaluation of the stat ...
- 目标检测之行人检测(Pedestrian Detection)---行人检测之简介0
一.论文 综述类的文章 [1]P.Dollar, C. Wojek,B. Schiele, et al. Pedestrian detection: an evaluation of the stat ...
- SIGAI深度学习第四集 深度学习简介
讲授机器学习面临的挑战.人工特征的局限性.为什么选择神经网络.深度学习的诞生和发展.典型的网络结构.深度学习在机器视觉.语音识别.自然语言处理.推荐系统中的应用 大纲: 机器学习面临的挑战 特征工程的 ...
- 【计算机视觉】行人检测(Pedestrian Detection)资源
一.论文 综述类的文章 [1]P.Dollar, C. Wojek,B. Schiele, et al. Pedestrian detection: an evaluation of the stat ...
- 使用面向对象思想处理cookie
实例:使用面向对象思想处理cookie如果读者对cookie 不熟悉,可以在第七章学习它的使用方法,虽然在那里创建了几个通用函数用于cookie 的处理,但这些函数彼此分离,没有体现出是一个整体.联想 ...
- Object类型知识总结,你掌握了多少?
Object类型 ECMAScript中的对象其实就是一组数据和功能的集合.对象可以通过执行new操作符后跟要创建的对象类型的名称来创建.而创建Object类型的实例并为其添加属性和(或)方 ...
- 论文阅读笔记五十三: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 摘要 相比模型的结构 ...
随机推荐
- Hi3516开发笔记(十一):通过HiTools使用网口将uboot、kernel、roofts烧写进eMMC
前言 前面烧写一直时烧写进入flush,是按照分区烧写.定制的板子挂的是eMMC,前面的烧写步骤一致,但是在烧写目标则时烧写eMMC了. 重新走一遍从无到有通过网口刷定制板卡的uboot.ker ...
- socket及黏包现象及解决黏包---day28
1.四次挥手(补充) 客户端向服务端发送一个请求消息,断开连接(代表客户端没有数据传输了) 服务端接收请求,发出响应 等到服务端所有数据收发完毕之后 服务端向客户端发送断开连接的请求 客户端接收请求后 ...
- 正则函数及面向对象开发初识---day19
1.正则函数 # ### 正则函数 import re #search 通过正则匹配出第一个对象返回,通过group取出对象中的值 strvar = "1+2 3*4" obj = ...
- 通过paramiko模块操作服务器
用于帮助开发者通过代码远程连接服务器,并对服务器进行操作. 如果下面运行错误了,可以看我另外一篇文章有解决办法解决paramiko连接远程服务器错误 pip3 install paramiko imp ...
- 【Azure App Service】Local Git App Service的仓库代码遇见卡住不Clone代码的问题
问题描述 启用App Service Local Git 部署,在Clone 代码库到本地时候,卡在Clone 'xxxxxx' ... ... 一动不动的问题? 问题解答 因为Git Clone没有 ...
- 【Azure Developer】使用Key Vault的过程中遇见的AAD 认证错误
在使用应用程序访问Key Vault获取密钥信息时,现后遇见了多种认证错误.使用的代码为: String keyVaultUrl = "https://test-xxx.vault.azur ...
- Java //在150之内 是三的倍数 输出Zzz 是5个倍数输出 Lll 是7的倍数输出zlzl
1 //在150之内 是三的倍数 输出Zzz 是5个倍数输出 Lll 是7的倍数输出zlzl 2 int i =1; 3 for(i = 1; i<=150;i++) 4 { 5 System. ...
- Failed to collect dependencies at com.oneconnect......-Intellij-IDEA-使用maven打包采坑记录
一.问题由来 由于刚开始使用Intellij-IDEA,使用不是很熟练,因此使用过程中出现各种各样的问题.最近开发过程中,准备使用IDEA打包项目发布到测试服务器,报错信息如下: Failed to ...
- 摆脱鼠标系列 - 打开微信(Alt+V) - 打开双核浏览器(Alt+S) - HotkeyP
摆脱鼠标系列 - 打开微信(Alt+V) - 打开双核浏览器(Alt+S) - HotkeyP 新定义了两个快捷键 这两个比较常用
- Linux系统设置shell开机自启
自己写一个shell脚本 chmod -x file.sh sudo cp file.sh /etc/profile.d/ 将写好的脚本(.sh文件)放到目录 /etc/profile.d/ ...