旷视科技提出物体检测专用Backbone——DetNet

2023-11-20 21:59

本文主要是介绍旷视科技提出物体检测专用Backbone——DetNet,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

全球计算机视觉三大顶会之一 ECCV 2018 (European Conference on Computer Vision)即将于9月8 -14日在德国慕尼黑拉开帷幕。届时,旷视科技首席科学家、研究院院长孙剑博士将带领团队远赴盛会,助力计算机视觉技术的交流与落地。而在此之前,旷视将陆续推出 ECCV 2018 接受论文系列解读。本文是第 1 篇解读,一个专门为物体检测任务而设计的 Backbone——DetNet。

 

论文名称:DetNet: A Backbone network for Object Detection

论文链接:https://arxiv.org/abs/1804.06215

目录

  • 导语
  • 背景
  • 设计思想
  • 网络架构
    • 动机
    • 设计
  • 实验结果
    • 主要结果
    • 结果分析
    • 对比当前最优
  • 结论
  • 参考文献

 

导语

 

人工智能的爆发与深度学习的发轫来自于计算机视觉领域,是从机器之眼开始,正如五亿四千万年之前,寒武纪生物大爆发的一个主要原因是眼睛的出现。能看的机器之眼,是计算机视觉技术与应用的共同目标,只不过技术是第一步。本文创新性地提出 DetNet——一个专为物体检测而设计的骨干网络,从底层技术的维度更新了计算机视觉网络,将会进一步推动其相关应用落地,优化产品服务。DetNet 将会更快更准地检测和分割一张给定图像之中的物体,完善在智慧城市、新零售、仓储物流、消费终端等诸多领域的技术应用。

 

背景

 

物体检测是计算机视觉研究领域的三大基础课题之一,旨在检测一张给定图像中每个物体的位置和分类。传统检测器借助手工设计的物体组件描述子,比如 HOG,SIFT,Edge Box 等,以从图像提取特征。长久以来,DPM 及其变体成为了传统物体检测领域的主导方法;直到深度神经网络再次崛起,基于 CNN 的方法取得瞩目成果,掀起一股物体检测新风潮。

随着时间推移,基于 CNN 的物体检测器也开始暴漏出一些弊端,其 backbone 往往针对 ImageNet 分类任务而设计,并不适用于检测任务,不管是 one-stage(比如 YOLO,SSD,RetinaNet)还是 two-stage(比如 Faster R-CNN,RFCN,FPN)的。针对检测任务而设计的 backbone 仍是一项空白,所以才有了 DetNet,一个针对物体检测的更优的 backbone。

 

设计思想

 

设计 DetNet 的起因是图像分类与物体检测任务之间存在的落差,后者不仅要识别物体的分类,还需借助边界框定位物体。具体而言,把分类 backbone 用于物体检测存在两个问题:1)相较于 ImageNet backbone,最新的检测器比如 FPN 通常有额外的 stage;2)传统的 backbone 感受野通常较大,这有利于图像分类,却会折中空间分辨率,导致无法精确定位大物体和识别小物体。

DetNet 是一个针对上述问题而设计的全新 backbone。详细讲,DetNet 针对不同大小的物体而像 FPN 一样使用了更多的 stage。即便如此,它优于 ImageNet 预训练模型的地方在于成功保留了特征的空间分辨率,但同时也会增加神经网络的计算和内存成本。为保证 DetNet 的效率,本文引入了低复杂度的 dilated bottleneck。由此,DetNet 做到了较高分辨率和较大感受野的兼得。

 

网络架构

动机

由于分类模型的设计原则并不适用于检测任务,从而在一些标准网络比如 VGG 16 和 ResNet 中特征图的空间分辨率逐渐降低。因此一些技术如 FPN(如图 1 A 所示)和 dilation 被应用在这些网络之中以保证空间分辨率。但是依然存在如下三个问题:

  • backbone 网络和检测网络的 stage 数量不同。
  • 大物体可视性较差:过大的下采样导致大物体看不清边界地区。
  • 小物体不可见:同样过大的下采样也可能会丢失小物体的信息。

图 1:FPN 中使用的不同 backbone。

 

为解决上述问题,DetNet 具有以下特性:1)stage 的数量直接专为物体检测而设计;2)尽管相比传统分类网络,DetNet 有更多 stage(比如 6 stages 或者 7 stages),但是同时兼具空间分辨率和感受野。

相较于把传统分类网络用于物体检测而言,DetNet 有以下优势:1)DetNet stage 的数量与 FPN 相同,因此额外的 stage 比如 P6 可在 ImageNet 中完成预训练;2)受益于最后 stage 中的高分辨率特征图,DetNet 在定位大物体边界框和发现小物体方面更为强大。

设计

本节将详细展示 DetNet 结构。DetNet 基线为 ResNet-50,它被广泛用于众多物体检测器的 backbone。为了公平对比 ResNet-50,本文让 DetNet stage 1,2,3,4 与 ResNet-50 相同。

打造一个有效而高效的物体检测 backbone 面临两个挑战:一方面,保证深度神经网络的空间分辨率非常消耗时间和内存;另一方面,减少下采样等于减小有效感受野,这将会影响很多视觉任务,包括图像分类和语义分割在内。

图 2: DetNet 及基于 DetNet 的特征金字塔网络(FPN)的结构细节。

 

通过精心设计的 DetNet 可攻克这两项挑战。具体而言,DetNet stage 1,2,3,4 与 ResNet 设置相同;不同的是 stage 5,以及用于图像分类的 DetNet 的概览,如图 2 D 所示。下面探讨一下(扩展了 ResNet-50 的)DetNet-59 的细节:

  • 本文在 backbone 中引入额外的 stage,比如 P6,它稍后用于物体检测,正如在 FPN 中一样。同时,在 stage 4 之后把空间分辨率固定为 16x 下采样。
  • 由于空间尺寸在 stage 4 之后是固定的,为引入一个新 stage,本文在每个 stage 开始使用一个带有 1x1 卷积投影(图 2 B)的 dilated bottleneck。
  • 借助 dilated bottleneck 作为基础模块以加大感受野。由于 dilated conv 依然耗时,DetNet stage 5,6 与 stage 4 通道数量相同(bottleneck 有 256 个输入通道),这不同于传统的 backbone 设计,其在新的 stage 需要双倍的通道。

 

实验结果

主要结果

本文首先在 ImageNet 分类任务中训练 DetNet-59,结果如表 1 所示,在计算量为 4.8 G FLOPS 的情况下,DetNet-59 top-1 error 为 23.5,性能显著优于 ResNet-50(mAP 涨点 2+)。

表 1:FPN 中使用不同 backbone 的结果。

 

由于 DetNet-59 相比 ResNet-50 有更多参数,一个自然的假设是提升主要来自参数的增多。为验证 DetNet-59 的有效性,本文在计算量为 7.6 G FLOPS 的情况下也训练了一个 backbone 为 ResNet-101 的 FPN,结果 mAP 为 39.8。可见 DetNet 在这方面要优于 ResNet。

由于 DetNet 直接专为物体检测而设计,为进一步验证其优势,本文分别从头训练了 DetNet-59/ResNet-50-baesd FPN。结果如表 2 所示。为了从头开始,本文在训练期间使用了跨卡同步批归一化。由结果可知,DetNet-59 依然优于 ResNet-50 1.8 个点,从而进一步证明 DetNet 更适用于物体检测。

表 2:不同 backbone 的 FPN 结果,训练从头开始。

 

结果分析

本节将分析 DetNet 是如何提升物体检测性能的。

表 3:在不同 IoU 阈值和不同边界框大小的情况下,FPN AP 结果的对比。

 

表 4:在不同 IoU 阈值和不同边界框大小的情况下,FPN AR 结果的对比。

 

相较于 ResNet-50,DetNet-59 在发现小物体方面更为强大,AR_50 涨点达到 6.4(66.4 vs 60.0);DetNet 在较深的 stage 比 ResNet 保有更高的分辨率,从而可以检测更小的物体。由于在图 1 A 中使用上采样,浅层也可以获取语义线索以发现小物体。但是 AR_85 @small 涨点并不明显(18.7 vs 19.6)。这是合理的,DetNet 无益于小物体定位,因为 ResNet-based FPN 已经使用大特征图检测小物体。

DetNet 擅长大物体定位,其 AR_85 为 56.3(vs 50.2)。但是 AR_50 并没有变化太多(95.4 vs 95.0)。一般来讲,DetNet 更擅长定位大物体而不是查漏大物体。

对比当前最优

本文在 COCO test-dev 上评估 DetNet-59-based FPN,并对比表其他当前最优的方法(见表 7)。没有任何花哨的东西,DetNet 作为简单而高效的 backbone 在 COCO 物体检测上获得了新的当前最优,甚至超过强劲的对手 ResNet-101。

表 7:在 COCO test-dev 上,本文方法与其他当前最优方法在物体检测结果方面的对比。

 

为验证 DetNet 泛化能力,本文方法也用于了基于 Mask R-CNN 的 COCO 实例分割任务中。结果如表 8 所示。由于 DetNet-59 的优异性能,本文在实例分割方面同样刷新了当前最优结果。

表 8:在 COCO test-dev 上,本文方法与其他当前最优方法在实例分割结果方面的对比。

 

一些可视化结果如图 4、5 所示。本文只展示了分类分值不低于 0.5 的边界框和实例分割。

图 4:DetNet-59 based FPN 结果图示。

 

图 5:DetNet-59 based Mask R-CNN 结果图示。

 

 

结论

 

本文专门针对物体检测任务设计了一个全新的 backbone——DetNet。一般来讲,backbone 多是针对图像分类任务而设计,当迁移至物体检测任务时,两者之间往往存在一定差异。为此,本文提出 DetNet,它不仅针对分类任务做了优化,对定位也很友好,并在 COCO 上的物体检测和实例分割任务中展现了出色的结果。

 

参考文献

 

  1. Lin, T.Y., Doll´ar, P., Girshick, R., He, K., Hariharan, B., Belongie, S.: Feature pyramid networks for object detection
  2. He, K., Zhang, X., Ren, S., Sun, J.: Deep residual learning for image recognition.
  3. Girshick, R., Radosavovic, I., Gkioxari, G., Doll´ar, P., He, K.:Detectron. https: //http://github.com/facebookresearch/detectron (2018)
  4. He, K., Gkioxari, G., Doll´ar, P., Girshick, R.: Mask r-cnn.
  5. Lin, T.Y., Maire, M., Belongie, S., Hays, J., Perona, P., Ramanan, D., Doll´ar, P., Zitnick, C.L.: Microsoft coco: Common objects in context.
  6. 旷视科技目标检测概述:Beyond RetinaNet and Mask R-CNN.

这篇关于旷视科技提出物体检测专用Backbone——DetNet的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/397736

相关文章

一文解密Python进行监控进程的黑科技

《一文解密Python进行监控进程的黑科技》在计算机系统管理和应用性能优化中,监控进程的CPU、内存和IO使用率是非常重要的任务,下面我们就来讲讲如何Python写一个简单使用的监控进程的工具吧... 目录准备工作监控CPU使用率监控内存使用率监控IO使用率小工具代码整合在计算机系统管理和应用性能优化中,监

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

C++ 检测文件大小和文件传输的方法示例详解

《C++检测文件大小和文件传输的方法示例详解》文章介绍了在C/C++中获取文件大小的三种方法,推荐使用stat()函数,并详细说明了如何设计一次性发送压缩包的结构体及传输流程,包含CRC校验和自动解... 目录检测文件的大小✅ 方法一:使用 stat() 函数(推荐)✅ 用法示例:✅ 方法二:使用 fsee

OpenCV实现实时颜色检测的示例

《OpenCV实现实时颜色检测的示例》本文主要介绍了OpenCV实现实时颜色检测的示例,通过HSV色彩空间转换和色调范围判断实现红黄绿蓝颜色检测,包含视频捕捉、区域标记、颜色分析等功能,具有一定的参考... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间

Linux lvm实例之如何创建一个专用于MySQL数据存储的LVM卷组

《Linuxlvm实例之如何创建一个专用于MySQL数据存储的LVM卷组》:本文主要介绍使用Linux创建一个专用于MySQL数据存储的LVM卷组的实例,具有很好的参考价值,希望对大家有所帮助,... 目录在Centos 7上创建卷China编程组并配置mysql数据目录1. 检查现有磁盘2. 创建物理卷3. 创

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

使用C#如何创建人名或其他物体随机分组

《使用C#如何创建人名或其他物体随机分组》文章描述了一个随机分配人员到多个团队的代码示例,包括将人员列表随机化并根据组数分配到不同组,最后按组号排序显示结果... 目录C#创建人名或其他物体随机分组此示例使用以下代码将人员分配到组代码首先将lstPeople ListBox总结C#创建人名或其他物体随机分组

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖