专栏首页贾志刚-OpenCV学堂性能达到SOTA的CSP对象检测网络

性能达到SOTA的CSP对象检测网络

关注可学习更多的OpenCV教程。 问题或建议,请留言; 如果你觉得文章对你有帮助,欢迎转发支持

前言与概述

早期传统的对象检测方法都是基于滑动窗口的特征分类,自从深度学习来了之后就产生很多基于深度神经网络效果特别好的对象检测网络模型,比如SSD、YOLO、Faster-RCNN等,但是这些模型都有个缺陷就是依赖anchor设置,总的来说anchor设置对模型最终精度有比较明显的影响。本文中作者通过深度神经网络提取高级抽象语义描述把对象检测中图像上各个对象抽象为BLOB对象检测的中心特征点,同时通过卷积神经网络预测每个中心特征点尺度范围,这样就实现了anchor-free的对象检测网络构建,在几个benchmark对象检测数据集上都取得跟anchor-base网络相同甚至更好的效果。而且针对交叉数据集验证表明该方法有杰出的泛化能力。

特征检测是计算机视觉基本任务之一,应用范围很广,包括了图像表示、对象检测、图像匹配、三维场景重建等,典型的图像特征包括边缘、角点检测、BLOB检测。特征检测。简单说特征可以被定义为图像中感兴趣区域(ROI)的描述,是对图像信息的抽象描述与表示,卷积神经网络有能力很好的提取与表示图像从低级到高级的特征,作者通过卷积神经网络CNN实现了高阶图像特征提取检测中心特征点与尺度预测,实现了CSP对象检测(Center and Scale Prediction base Detection)。模型工作流程:

作者受到CornerNet与TLL等anchor-free对象检测网络模型使用FCN(全卷积网络)启发,在关键点检测的基础上进一步拓展,基于FCN网络实现了中心与尺度预测的对象检测。作者总结CSP检测网络有如下几点贡献

1.通过卷积神经网络实现了中心与尺度预测,简单的网络训练就可以实现对象检测,摆脱了anchor的限制与基于Key-Point类anchor-free网络post-stage的复杂处理。 2.CSP检测网络在行人检测(CityPersons)与人脸检测(WiderFace)两个benchmark数据集上达到了SOTA 3.CSP检测网络在交叉数据集上表现出了良好的泛化能力。

网络架构详解

基于anchor-box的对象检测网络一个关键组成是预先定义的各种比例与尺度的anchor-boxes,检测通过对这些anchor-boxes分类或者回归达成。Faster-RCNN是已知的两阶段对象检测网络,通过RPN实现区域推荐,然后进一步分类与精炼回归在一个架构框架下实现对象检测,而SSD通过预定义anchor比率与尺度,没有proposal阶段,实现一阶段预测。

Anchor-free的网络则完全放弃了anchor-box的proposal与预定义配置,DenseBox通过对每个对象定义中心区域,要求四个参数来描述它,相比之下CSP网络每个对象只要求一个中心点,两个参数来描述对象的Scale,就可以计算得到最终的Box,CornerNet通过预测对象坐上角与右下角,然后通过组相关性,使用一个新角池化层进行提升,达到了非常好的效果。CSP网络只需要一个全卷积网络(FCN)就实现了中心点与尺度预测,最终只需要一个NMS作为后续处理。CSP网络模型如下:

其中backbone网络可以基于ResNet-50与MobileNet实现,以ResNet-50网络为例,卷积层被分为五个阶段,输出的特征feature maps下采样倍数分别为2、4、8、16、32,在stage-5中采用空洞卷积,保持输出分辨率与输入分辨率不变,对stage-2~stage-5的feature maps进行合并输出,在合并之前,针对不尺度的feature maps进行反卷积处理,得到相同的尺度,假设最初输入图像大小为HxW,最终合并之后feature maps的大小为H/r x W/r其中r是下采样因子,作者实验发现r=4的时候效果最好。作者的解释是r太大,会导致细节信息大量丢失,r太小,导致计算量上升。

对得到合并feature maps通过Detection Head部分来实现最终结果解析,首先通过3x3的卷积降维得到256个feature maps输出,然后同两个滑动的1x1卷积输出预测中心位置与尺度信息,图示如下:

训练与实验结果

Ground Truth

主要是针对box ground生成中心点标记为正,其它为负,Scale的高度与宽度标记针对每个对象log(Hk)表示第K个对象的,为了减少模糊,周围2个单位内标记为负数,其它标记为零。相似就可以标记宽度,针对不同的比率。在训练阶段因为很难真正的确定中心点位置,作者引入高斯mask进行辅助,最终的损失有中心位置损失,尺度损失,与offset三个部分组成,表示如下:

实验结果

不同下采样情况下

不同尺度特征组合情况下

基于行人检测CityPersons数据集不同网络模型对比,CSP效果达到SOTA

论文地址
https://arxiv.org/pdf/1904.02948.pdf
源码地址
https://github.com/liuwei16/CSP

本文分享自微信公众号 - OpenCV学堂(CVSCHOOL),作者:gloomyfish

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

原始发表时间:2019-08-08

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 详解OpenVINO 模型库中的人脸检测模型

    OpenVINO的模型库中有多个人脸检测模型,这些模型分别支持不同场景与不同分辨率的人脸检测,同时检测精度与速度也不同。下面以OpenVINO2020 R04版...

    OpenCV学堂
  • 秒杀DeepLabv3+与UNet的表面缺陷检测网络

    表面缺陷检测是工业视觉的热点应用之一,自动的表面缺陷检测技术越来越受到重视,其中以深度学习相关技术应用为代表,它通过大量图像对检测系统进行训练学习得到一个自动的...

    OpenCV学堂
  • 汇总 | OpenCV4中的非典型深度学习模型

    前面给大家分别汇总了OpenCV中支持的图像分类与对象检测模型,视觉视觉任务除了分类与检测还有很多其他任务,这里我们就来OpenCV中支持的非分类与检测的视觉模...

    OpenCV学堂
  • 设计模式大集合

    绿巨人
  • 设计模式大集合

    绿巨人
  • 目标检测入门最终篇:拾遗及总结

    文章结构 本篇为读者展现检测领域多样性的一个视角,跟其他任务联合,有YOLO9000、Mask R-CNN;改进损失函数,有Focal Loss;利用GAN提...

    朱晓霞
  • Tkinter messagebox弹窗

    module 'tkinter' has no attribute 'messagebox'

    DrawSky
  • 组合模式(Composition)

    组合模式(Composition) 组合模式(Composition) 意图:将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的...

    Florian
  • 闹心的Broken pipe

    小尘哥
  • GOF设计模式快速学习

    这段时间,学习状态比较一般,空闲时基本都在打游戏,和研究如何打好游戏,终于通过戏命师烬制霸LOL,玩笑了。为了和"学习"之间的友谊小船不翻,决定对以往学习过的G...

    用户1216676

扫码关注云+社区

领取腾讯云代金券