Metamorphic Object Insertion for Testing Object Detection Systems

文章目录

  • Metamorphic Object Insertion for Testing Object Detection Systems
    • 简介
    • 摘要
    • 初步
    • 目标检测技术背景
    • 方法概述
      • Equality Criteria
      • OD故障案例分析
      • 适用范围
    • 设计
      • 对象提取
      • 对象细化和选择
      • 对象插入
    • 实现
    • 实验
      • 评估概述
      • 对象位置调整的效率
      • 合成图像的自然度
      • 使用错误触发图像进行再培训
    • 研讨与未来工作
    • Related Work
    • 结论
    • 结论

简介

论文标题

  • Metamorphic Object Insertion for Testing Object Detection Systems
  • 用于测试目标检测系统的变形目标(Metamorphic Object 应该指的是蜕变关系的物体)插入
  • 2020

贡献

  • 我们介绍了一种新的变形测试方法来测试OD,OD是各种计算机视觉应用(例如自动驾驶汽车)中的重要部件。我们的技术将OD视为“黑匣子”。因此,它非常适用于测试真实的OD,比如云上的远程服务。
  • 为了生成不同的、看起来自然的图像集作为测试输入,我们设计并实现了MetaOD,这是一个简化的工作流,它执行对象提取、对象细化/选择和对象插入,以高效和自适应的方式合成输入图像。
  • 我们的方法在现实环境中测试OD,并描述最先进的商业OD的能力。从总共292,206张输入图像中,MetaOD在8个流行的(商业)OD中发现了38,345个错误检测结果。通过利用合成图像触发错误的OD输出进行再训练,我们表明OD模型的性能可以得到显著提高。

目前软工方向就一篇目标检测的论文

  1. 将目标检测模型作为一个黑盒模型
  2. MetaOD 在背景图像中插入额外的对象实例来合成看起来自然的图像
  3. 设计变形条件来判定原始图像和合成图像的OD结果的等价性

[8]2020. Dropbox folder of all erroneous detection results found by MetaOD.https://www.dropbox.com/sh/ivpprt96nycokd9/AAAZ_3D8TV AF25L90Z9AqpRya?dl=0.
[9] 2020. MetaOD Codebase.https://github.com/MetaOD/MetaOD.

想法很直观,就是在一个图片里面的物体周围放一些别的物体看看会不会出错,重点在于实现的细节.如放什么放在哪如何放

摘要

深度神经网络(DNNs)的最新进展导致了能够快速处理图片或视频并识别它们所包含的对象的对象检测器(OD)。尽管亚马逊(Amazon)和谷歌(Google)等工业制造商在将基于深度学习的OD商业化作为标准计算机视觉服务方面取得了令人振奋的进展,但OD-类似于传统软件-仍可能产生不正确的结果。这些错误反过来会给用户带来严重的负面后果。例如,自动驾驶系统如果未能检测到行人,可能会导致事故甚至死亡。然而,尽管它们很重要,但目前还不存在检测ODs的原则性的、系统的方法。

为了填补这一关键空白,我们介绍了MetaOD的设计和实现,这是一个专门为OD设计的变质测试系统,用于有效地发现错误的检测结果。为此,我们**(1)通过在背景图像中插入额外的对象实例来合成看起来自然的图像,以及(2)在排除对插入对象的预测结果之后,设计变形条件来判定原始图像和合成图像的OD结果的等价性**。MetaOD被设计为执行对象提取、选择和插入的简化工作流。我们开发了一套实用的技术来实现有效的工作流程,并生成多样化的、外观自然的图像用于测试。在对TensorFlow API提供的四个商业OD服务和四个预先训练的模型进行评估后,MetaOD发现了数以万计的检测失败。为了进一步展示MetaOD的实际应用,我们使用导致错误检测结果的合成图像对模型进行重新训练。我们的结果表明,模型的性能显著提高,从MAP得分9.3提高到MAP得分10.5。

初步

基于深度学习的目标检测器(OD)使用卷积神经网络识别给定图像中的目标。目前,包括谷歌、亚马逊、微软和洛克希德·马丁在内的几家主要工业制造商正在构建和改进OD,以作为各种计算机视觉任务的基础。这些模型广泛应用于实际应用中,如光学字符识别(OCR)、机器人、机器检测和自动驾驶汽车中的行人检测。它们也被用作监视和医学图像分析应用的初始步骤,

然而,尽管取得了如此惊人的进步,基于深度学习的OD-类似于传统软件-可能会产生错误的预测结果,可能会带来灾难性的后果。特别是,鉴于ODS在安全、医疗和自动驾驶领域的关键应用中的广泛采用,不正确或意想不到的边缘情况行为已经对公共安全或经济损失造成了严重威胁[11,43,73]。例如,在2016年的一个臭名昭著的案例中,特斯拉的自动驾驶模式导致了致命的撞车事故,因为自动驾驶系统在明亮的天空下未能识别出一辆白色卡车[15]。最近,优步(Uber)的一辆自动驾驶汽车撞死了一名过马路的行人,据信这是因为它未能识别出一名穿深色衣服的行人[32]。

近年来,已经设计了许多技术来测试深度学习系统,包括卷积神经网络(CNN)和递归神经网络(RNN)模型[20,57]。这些技术还被应用于测试特定领域的应用,如自动驾驶系统[11,73,84],以及测试深度学习库的基础设施[21,39,61]。然而,现有的研究还没有系统地研究检测ODs的具体原则,因此不太可能导致对ODs进行全面、系统的检测。

本文通过引入变质测试[16,17]框架MetaOD来解决这一重要问题,以具体而有效地揭露OD的错误预测。给定一幅真实图像作为背景,MetaOD将一个对象实例插入到背景中,生成合成图像,然后使用变形条件来检查合成图像和相应背景之间OD结果的一致性。MetaOD可以有效地生成触发实际预测误差的多样化和自然外观的图像,它被设计为一个三步方法,执行对象提取、对象细化/选择和对象插入。对象提取模块使用先进的实例分割技术从大量图片中提取对象实例图像[14],从而聚合按类别区分的许多对象集。然后,给定背景图像,对象细化/选择模块实现一组轻量级但有效的标准,用于从与背景密切相关的对象集中选择某些对象。为了确定插入位置,对象插入模块使用受增量调试[83]启发的域特定标准和技术来找到可能触发预测误差的位置,同时保持合成图像的真实感和多样性。

MetaOD 步骤 对象提取、对象细化/选择和对象插入

  1. 对象提取采用实例分割技术从大量图片中提取对象实例图像并聚类

    • YOLACT分割
  2. 对象细化采用一组标准从与背景密切相关的对象集中选择某些对象
  3. 对象插入采用受增量调试(delta debugging)启发的域特定标准和技术来找到可能触发预测误差的位置

建议的工作流程是有效的,在亚马逊、Google、IBM和Microsoft提供的四个商业OD[1,2,4,6]和TensorFlow
API提供的四个预先训练的OD模型[3]上进行评估时,显示了令人满意的结果。我们的测试显示,这些流行的(商业)服务有数万个错误的OD输出。此外,我们使用合成图像重新训练了一个OD模型,该模型会导致该模型输出错误的输出。评估结果表明,经过再训练后,模型的性能有了很大的提高。

目标检测技术背景

通常使用手工制作的特征和选择性区域搜索来寻址对象检测[60,77,79]。通过试探法[77]将输入图像解剖成小区域(每个区域被称为“区域建议”,并且可能包含一个对象)。然后,从每个区域方案中提取特征进行目标分类。到目前为止,存在两个主要的研究方向(这两个研究方向中提出的流行模型都在本工作中进行了测试;见第6节),它们极大地改进了具有深度学习的OD技术,下面将对这两个方面进行简要介绍。

两阶段基于区域的OD被DNN应用于图像分类的初步成功所激励[41],RCNN[30]是首批应用CNN构建OD的公司之一。该技术形成了一个两级流水线,其中从输入图像中提取的每个区域方案都作为CNN的输入进行特征提取。然后,将提取的特征分别转发给支持向量机分类器和包围盒回归器,以确定对象类别和包围盒偏移量。

从那时起,OD研究的重点是快速发展RCNN架构[18,34,67],并消除对区域建议的明确依赖以提高速度。Fast-RCNN[29]引入了一种现代化的端到端预测管道。如图1所示,整个图像被转发到CNN以生成卷积特征图,并且从特征图中提取区域建议(第一阶段),而不是"区域建议"。在完全连接层(FC)之前放置感兴趣区域(ROI)池层,以将每个提议重塑成固定大小,并且FC层的输出被馈送到SoftMax和BBox回归器层,分别用于对象分类和用于确定边界框偏移(第二阶段)。

A Region of Interest (RoI)

单阶段OD两阶段OD使用区域(显式或隐式)进行对象本地化。另一项研究旨在通过在整体环境中设计单级前馈CNN网络来提出一种不需要区域建议的经济有效的解决方案。这类网络通常通过以精度换取速度来降低计算密集度,通常更适合实时任务或在移动设备中使用。

YOLO(您只需看一次)[64-66]和SSD(单发探测器)[47]型号是具有单级架构的实际OD。图2描述了YOLO工作流,在该工作流中,首先将输入图像划分为S×S网格;然后,在每个网格中预测固定数量的边界框。对于每个边界框,网络输出类别概率和边界框偏移。当边界框的类别概率超过阈值时,该边界框被视为包含对象。整个管道通常比基于区域的技术快几个数量级。事实上,MetaOD(参见4.1节)的对象提取模块构建在YOLACT[14]之上,YOLACT[14]是一个受YOLO启发的实时实例分割模型

一般来说,给定一个良好的模型,基于区域建议的目标检测技术通常可以获得高性能;相比之下,像YOLO和SSD这样的“统一”管道通过以精度换取速度来实现高检测效率。虽然精确度可能往往是最重要的,但统一模型也被普遍采用,特别是在移动/可穿戴设备和分析视频方面,这些设备的速度非常关键

方法概述

变质测试(MT)已被广泛用于自动生成测试,以检测常规软件故障[16,17]和DNN预测错误[22,73,84]。MT的优势在于它能够通过变形关系(MRS)来缓解测试甲骨文问题。每个MR根据输入及其预期输出描述目标软件的必要属性。即使很难确定实际输出的正确性,也可以在给定输入的预期输出中构造和检查适当的MRS以检测软件检测。在本研究中,我们将变形测试应用于OD。为了提供方法概述,我们从制定相关符号开始。

通过将测试图像iii 馈送到ODddd,预测输出被表示为d[[i]]d[[i]]d[[i]],其由d[[i]]d[[i]]d[[i]]由 $N¥个三元素元组 KaTeX parse error: Can't use function '$' in math mode at position 33: …}, c_{k}\right)$̲, 组成,其中 $N$ 表示在…
i^{\prime}=\mathcal{C}(o, i), o \in \mathbb{O} \text { and } \mathcal{C} \in \mathbb{C}
$$
一个插入的图像 + 一个要插入的坐标 + 原始图像 =合成后图像

其中o被放置为使其中心位于由C指定的2-D坐标。请注意,在本研究中,我们不应用任何变换规则(旋转、模糊等)。在插入的对象上,为了尽最大努力保持真实感, C∈C\mathcal{C} \in \mathbb{C}C∈C 被故意构造成使得插入的对象o不会与“背景”图像i中先前存在的对象重叠。因此,本研究采用的MR可以形式化如下:
∀C∈C∀o∈O.E(d[[i]],d[[i′]]\{(bo,lo,co)})\forall \mathcal{C} \in \mathbb{C} \forall o \in \mathbb{O} . \mathcal{E}\left(d[[i]], d\left[\left[i^{\prime}\right]] \backslash\left\{\left(b_{o}, l_{o}, c_{o}\right)\right\}\right)\right. ∀C∈C∀o∈O.E(d[[i]],d[[i′]]\{(bo​,lo​,co​)})
这里,我们排除了o上的预测结果,E是断言OD结果相等的标准(见3.1节)。给定的MR被定义为无论如何通过在i上插入附加对象o来合成图像i’,OD结果都期望与原始图像中的结果一致。因此,通过检查MR的失败,可以发现错误的预测。

没有考虑新增加的o的预测结果

虽然给定的MR适用于任何合成图像,但一个实际挑战是,并不是所有的合成图像都代表真实世界的场景。事实上,在CV社区中存在这样的研究,即合成不真实的图像来训练图像分析模型,例如,通过将一辆汽车放在桌子上[74]。虽然合成的“非真实感”图像可以满足“模型训练”的要求,但我们的目标也是增强合成图像的真实感,以便标记出的错误行为揭示在日常使用OD时可能导致混淆的实际缺陷。此外,正如我们将在第4.3节中解释的那样,在不考虑预先存在的对象在背景中的位置的情况下随机决定插入的位置会破坏所提出的技术的有效性

因此,在本研究中,我们收集了 O′⊂O\mathbb{O}^{\prime} \subset \mathbb{O}O′⊂O , O′\mathbb{O}^{\prime}O′ 包含与背景图像iii 密切相关的对象实例图像(参见第4.2节)。我们还通过利用经验证据和增量调试启发的策略,形成了有利的插入位置 C′⊂C\mathbb{C}^{\prime} \subset \mathbb{C}C′⊂C可能会触发预测误差(见第4.3节)。因此,MR修改如下:
∀C∈C′∀o∈O′⋅E(d[[i],d[[i′]\{(bo,lo,co)})\forall \mathcal{C} \in \mathbb{C}^{\prime} \forall o \in \mathbb{O}^{\prime} \cdot \mathcal{E}\left(d \left[[i], d\left[\left[i^{\prime}\right] \backslash\left\{\left(b_{o}, l_{o}, c_{o}\right)\right\}\right)\right.\right. ∀C∈C′∀o∈O′⋅E(d[[i],d[[i′]\{(bo​,lo​,co​)})
总而言之,OD系统“故障”表明对合成图像푖i’与参考图像i的预测是错误的。与现有关于测试深层图像分类器的SE研究(例如,[22,84])一致。

Equality Criteria

断言OD输出相等(N个三元组全相等)过于严格,因为某些对象的包围盒在每一轮预测中可能会略有漂移(slightly drift)。CV社区改为使用标准度量平均精度(AP)[24]来补偿测量OD时的微小定位漂移。AP分数是通过同时考虑“精确度”和“召回值”来计算的,我们稍后将对此进行解释。

为了计算AP,使用并集交集(IOU)来测量每个目标检测边界与事实真相(ground truth)。如图4所示,IOU测量具有相同预测标签(即“大象”)的两个边界框之间的重叠,并表示预测边界与地面事实重叠的程度。在IOU大于阈值t(例如,0.5时)的情况下,预测实际上是true positive。然后,通过考虑所有预测结果来计算准确率和召回率分数,并且可以通过计算精度-召回率曲线下的面积来得出AP分数[42,69]。对于具有不同类别对象的图像,通过平均所有AP分数来进一步计算平均AP(MAP)。

我们的等价性准则是从MAP中推导出来的。在我们的设置中,“背景”图像i的预测结果包含地面事实,并与合成图像푖$i^{\prime}=\mathcal{C}(o, i)
$的检测结果进行比较。由于o不与i上的现有对象重叠,因此不会干扰相关预测,因此MAP得分预计为100%。因此,EIS定义如下:
E(d[[i],d[[i′]]−(bo,lo,co))≐mAP(d[[i],d[[i′]]−(bo,lo,co))=100%\begin{aligned} &\mathcal{E}\left(d\left[[i], d\left[\left[i^{\prime}\right]\right]-\left(b_{o}, l_{o}, c_{o}\right)\right) \doteq\right. \\ &m A P\left(d\left[[i], d\left[\left[i^{\prime}\right]\right]-\left(b_{o}, l_{o}, c_{o}\right)\right)=100 \%\right. \end{aligned} ​E(d[[i],d[[i′]]−(bo​,lo​,co​))≐mAP(d[[i],d[[i′]]−(bo​,lo​,co​))=100%​
插入前后所有的框坐标不变是太严格的,因此插入前后的map不变就行了

到目前为止,标准Map定义存在多种变体。在我们的实现中,我们采用了最流行的MAP计算方法之一,Pascal VOC度量[42]。

OD故障案例分析

3.1节中定义E启用了一种检查OD故障的统一方法-它与图像内容无关,因此可以自动执行。从整体来看,通过断言E可以发现以下类别的OD缺陷:

  • 识别失败表示将图像上不包含任何对象的任意区域视为“对象”或无法识别现有对象的错误。
  • 分类错误代表标签错误,例如将人类贴上“鸟”的标签。
  • 定位失败表示OD使用过大或过小的边界框来定位对象的失败。如图4所示,不允许对边界框进行过大的漂移(Iou<th)。

然而,在手动检查MetaOD发现的OD故障后,我们只发现了识别失败。MetaOD已经成功发现了8个热门OD的大量OD故障(参见表2)。图3报告了三种情况,其中第一行的“背景”图像来自Berkeley DeepDrive数据集[5,82]和COCO数据集[45]。第二行上的图像是通过在其相应的参考“背景”上插入一个额外的对象来生成的。

图3:MetaOD发现的OD错误。为了提高可读性,我们稍微挑选了一些图片。在[8]浏览全部结果。插入的对象由蓝色箭头指向。为了尽最大努力保持合成图像的真实感,插入的对象被调整到现有同类对象的平均大小。请参阅第4.2节中的讨论。

通过在背景中插入额外的对象(用蓝色箭头表示)并检查相等标准(第3.1节),我们能够发现许多检测缺陷。图3中的第一列说明了识别失败(由带红色的箭头指示),其中在插入新车辆之后,交通场景图像中的一个骑车人和几辆汽车无法识别。同样,第二和第三列中的合成图像揭示了检测失败,在将一个额外的对象插入到真实世界场景的图像中后,现有的对象(月亮和飞盘)无法识别。我们注意到,图3展示了我们发现的问题的多样性;MetaOD合成了不同场景的测试图像,因此可以发现大量的缺陷。相比之下,现有的相关努力[73,84]主要仅变换或合成驾驶场景的图像(见第3.3节)。此外,我们注意到,虽然合成图像合理地代表了真实的场景,但如果可能的话,使插入的对象与任意背景保持一致可能是极具挑战性的(fully consistent with arbitrary backgrounds)。参见我们在第6.3节和第7节中对这一问题的进一步评价和讨论。

适用范围

值得注意的是,我们并不是在测试极端情况来强调OD[12]。显然,我们可以合成对人类具有高度挑战性的图像,因此也可以对OD构成挑战,例如,通过调整对象及其背景的对比度[23]。因此,虽然在这项研究中,我们提出了一套选择“现实”对象进行插入的技术(参见第4.2节和第4.3节),但我们仍然定义了一个保守的测试预言,即我们排除了对新插入的对象的预测,而只检查其余预测的一致性

MetaOD被设计为一个将OD视为黑盒的通用框架。虽然目前ODS的实际实现都是基于DNN的,但MetaOD也可以用于评估基于其他技术的ODS的性能。此外,现有的测试计算机视觉模型的方法[73,84]应用预定义的“恶劣天气条件”(例如,雾和雨)来变换或直接合成整个图像。它们不是为精确定位OD故障量身定做的,在概念上与本工作中提出的对象级突变是正交的。此外,它们的变换可能不适用于在保持真实感的同时改变任意图像。例如,将恶劣天气条件应用于室内场景的图像可能是不合理的

设计

图5描述了提议的技术的整体视图。为了生成用于测试的图像i’,MetaOD被构建为一个简化的工作流,其中包括对象提取、对象选择/细化和对象插入模块。通过向MetaOD提供一组图像(例如,来自COCO数据集[45]的图像),其对象提取模块执行高级对象实例分割技术以识别和提取对象实例(第4.1节)。然后,在给定图像作为“背景”的情况下,对象选择模块使用一组标准来确定要插入到背景中的适当对象(第4.2节),以查找相似对象、排除低质量对象并调整对象大小。虽然前两步解决了“插入什么”的挑战,但对于特定的背景图像,我们需要进一步回答“插入到哪里”的问题。“。我们收集经验证据并推导出启发式方法来选择插入位置。此外,受增量调试[83]如何应用于测试传统软件的启发,我们提出了识别对象插入的更多位置从而合成更多图像的技术(第4.3节)。

对象提取

我们首先执行对象提取,以从输入图像识别和提取对象实例池。虽然对象提取通常被认为是困难的,但是基于深度学习的实例分割模型已经被证明能够很好地从图像中提取对象[14,33,44]。例如,给定图1中的“两头大象”图像,实例分割模型可以识别这两头大象,并在两个“大象”对象上设置两个掩码。

与OD类似,实例分割模型设计也有精度[33,44]和速度[14,76]两个主要关注点,这两个关注点通常不能共存。在这项工作中,我们将重点放在强调速度而不是准确性的模型上。目标提取模块的设计目的是从大量不同的图像中快速提取目标。因此,速度优先于准确性(尽管在实践中我们采用的实例分割模型也有很好的准确性)。在第4.2节中,我们通过提出排除低质量目标图像的技术来补偿提取目标的“准确性”。通过流水线组织目标提取和细化模块,以较低的成本和较高的速度输出高质量的标记目标图像集。

为此,我们重用了最近开发的实时实例分割工具YOLACT[7]来构建对象提取模块。我们的经验证据(在其论文[14]中也有报道)表明,在处理真实世界的图像时,YOLACT具有令人印象深刻的速度和相当好的准确性。YOLACT在每个识别的对象实例上输出蒙版。我们通过重用对象掩码来扩展YOLACT,以从背景图像中提取每个对象,并将每个对象保存到单独的图像中。

对象细化和选择

尽管取得了很大的进展,但实例分割仍然是一个难题,我们观察到它的一些输出质量很低。根据我们的观察,这些“低质量”物体图像的产生主要有两个原因:(1)输入图像中的一些物体太小,(2)一些物体重叠,因此提取出零散的物体图像。2我们承认输出高质量物体图像普遍存在困难。取而代之的是,我们的对象提取模块高速处理大量图像,我们进一步修剪低质量的对象,并选择与“背景”图像密切相关的合适对象。

小对象图像修剪如图5所示,对象提取的输出由多组图像组成,其中每组图像都包含具有相同标签的对象实例。在此步骤中,我们首先修剪每个对象集中的小对象图像,其中可能包括不适合使用的低分辨率或碎片图像。为了执行剪枝,我们按照图像大小对每个集合中的对象实例图像进行排序,并删除大多数对象图像(在我们的实现中,我们根据经验决定删除90%的对象图像)。

目标图像相似度分析:对于具有多个预先存在的目标的特定背景图像,我们的目标是从池中找到与背景密切相关的目标实例图像,以满足OD测试的要求,同时尽可能地保持合成图像的真实感。为此,我们使用图像散列 image hashing技术进行图像相似度分析。图像散列是像素级图像相似性分析的标准技术。该过程为相似的图像创建类似的散列。相反,当使用诸如MD5的密码散列算法时,由于雪崩效应,一个字节的差异可能导致散列值的剧烈变化[56]。

给定一个包含三只“鸟”的图像i,我们首先计算这些“鸟”对象图像的平均图像散列值。然后,我们迭代池中的所有“鸟”图像(参见图5),并识别其图像散列值与平均散列值具有最短汉明距离的“鸟”。这只“鸟”将用于插入。如果图像i包含具有N个不同标签的对象,则重复该过程N次。因此,N个不同类别的对象将被选择进行插入。这样,我们就能最大限度地保证合成图像的“真实感”。我们的观察表明,所选择的“相似”目标图像通常可以表现出与背景图像相近的纹理和分辨率。

对于实现,我们使用平均散列[40],这是图像散列的标准实现。我们的试探性测试表明,这种方法能够以较低的成本在很大程度上帮助找到相似的对象。然而,我们承认,如果可能的话,通过一种统一和经济高效的方法找到语义相似(semantically similar)的对象是困难的。事实上,图像散列使用像素级相似性,而不是反映每个对象实例的含义。我们将留待以后的工作去探索实用的技术来理解每个对象实例的语义信息,并在这一步改进对象选择。

对象图像调整:对象大小与其在图像中的“距离”之间存在关系。一个微小的物体可能“更远”,即使是肉眼也很难辨认,因此这项工作没有考虑到这一点。因此,在将所选对象插入背景图像i之前,我们调整对象大小以匹配图像i中现有对象的大小。我们将对象图像的大小调整为i中属于同一类别的对象的平均大小。此外,如第3节所述,除了调整大小外,我们不会对对象进行“变换”(旋转、模糊等)。尽最大努力保持现实主义。

对象插入

在选择合适的对象之后,我们然后在背景图像上寻找合适的位置以进行插入。正如第3.3节所讨论的,软件工程(SE)社区转换整个图像以进行测试,而计算机视觉(CV)社区主要关注插入对象的视觉外观,而不是对象所在的“背景”[23,36,74]。一些研究试图使用诸如概率语法模型之类的统计方法来推断合理的插入位置,并且仅将其应用于室内场景的图像[63]。然而,在这项研究中,如果可能的话,建立任意场景的通用模型是非常具有挑战性的,因为需要大规模的合成图像来揭示错误的OD结果。

考虑到利用重量级统计方法推断“最佳”插入位置的一般困难,我们提出了轻量级策略。在这一部分中,我们首先对插入可能引发外径缺陷的位置进行实证研究。然后,受传统软件[83]测试中使用的增量调试的激励,我们通过在背景图像上逐步重新定位插入的对象来生成更多的合成图像。

确定对象插入位置:我们的初步研究表明,在图像中插入接近现有对象的对象(在本文后面称为引导插入)可能会引发错误的预测。这一部分提供了实证结果来支持我们的观察。为了建立这项研究,我们从COCO图像集[45]中随机选择了50张图像,并试探性地插入了一张“鸟”的图像。我们测试了八个流行的OD并显示了评估结果(这些OD的描述可以在表2中找到)。

我们采用两种插入方案:随机插入和引导插入。引导式插入的工作原理是从背景中随机选择一个现有对象,然后在接近它的位置插入额外的对象。如图6所示,在随机选择背景上的一头大象(例如,较大的那头)并决定使用“鸟”对象后,我们创建对称的、以所选大象为中心的区域。我们随机选择蓝色区域内的位置作为“鸟”的质心。我们的抽样保证“鸟”不会与较大的“大象”重叠。“。此外,与任何其他对象重叠也是不允许的;无论何时在i中对现有对象上的“鸟”进行采样,我们都会丢弃合成图像并重新采样。

相反,随机插入方案实现了一种简单的策略,在该策略中,对象o被随机放置在背景上。同样,我们不允许o与现有对象重叠,并在发生重叠时重新采样。此外,对于每个具有N个现有对象的背景图像,我们执行10×N引导或随机插入。我们报告发现的错误外径输出w.r.t。这两个设置如下:

由于OD(即将在表2中介绍)从每个图像中识别不同数量的对象,我们合成了不同数量的图像进行测试。结果表明,引导设置明显优于第一设置。这与我们的直觉是一致的;通过在现有对象的局部区域附近插入图像,插入的图像可能会干扰用于对象识别的区域或网格,从而导致OD失败.因此,MetaOD配置了引导式插入策略。

对象重新定位:虽然所提出的方法提供了关于对象插入的实用指南,但“引导插入”主要集中在接近现有对象的位置,并且可能会错过在其他图像区域插入对象的机会。我们进一步提出了在尽可能保持生成图像的“真实感”的同时识别对象插入的附加位置的技术。为了实现这一点,为此,我们首先计算背景图像中物体的质心;然后,在传统软件[83]的增量调试的激励下,插入的对象逐渐朝向质心重新定位,以生成视觉上更多样化的图像,同时保留以引起预测误差。

该过程如图7所示,在图7中,我们的重新定位方案被实施以探索离质心最近的位置。从引导插入策略找到的可能触发OD故障的插入位置开始,我们将插入的“鸟”重新定位到背景上现有对象s的质心。如果新合成的图像没有引起错误,我们就跳回中间,重新检查OD。如果这一次确实发生预测错误,我们向前搜索,直到“鸟”变得太接近(1)质心,(2)距离起点最远的前一次成功插入(即,触发预测错误),或(3)起点本身。同样,对于这一步,我们不允许在插入的对象和背景上的现有对象之间有任何重叠:每当发生重叠时,我们也会向后跳转。

值得一提的是,虽然MetaOD的原型实现被配备为使用“质心”作为探索目的地,但在这一步可以配置任何位置,以合成针对用户需求的多样化和逼真的图像。

实现

MetaOD是用Python实现的,大约有3600行代码(请参阅我们发布的代码库,见[9])。MetaOD的对象提取模块是通过扩展流行的实例分割模块YOLACT[7,14]来实现的。我们使用实例遮罩对YOLACT进行了扩展,以裁剪输入图像并提取对象实例图像。YOLACT是用Pytorch(版本)建造的。1.0.1),并且包含用事实对象检测数据集COCO[45]预先训练的模型。这个数据集包含大约90个标签的对象,我们使用预先训练的模型来执行实例分割。如上所述,YOLACT的一个理想功能是快速执行实例分割-事实上,所有实例分割任务都在一个NVIDIA GeForce GTX 1070 GPU上启动,并且具有良好的处理时间(参见第6节)。

实验

表2列出了评估中使用的OD(Google[3]公开了4个TensorFlow预训练模型的Speed和Coco map,我们估算了4个商业API的Speed)。我们使用了行业巨头提供的四个商用OD API进行评估[1,2,4,6]。编写Python脚本以与这些远程服务交互并检索预测结果(JSON格式)。据我们所知,这些商业服务中使用的OD模型并未公开;单级single-stage模型由于其快速的预测速度而被假定使用(第2节)

Google还支持在Google Cloud上直接部署其TensorFlow OD API[3],并提供了选择在Coco数据集上预先训练的不同模型的灵活性[45]。我们按照官方教程在Google Cloud上设置TensorFlow OD[3],从教程中建议的总共五个预先训练的模型中,我们选择了四个模型(即表2中的“TensorFlow”模型),并排除了另一个预先训练的模型RFCN RESNET。RCNN初始ResNet模型[34]产生了最好的精确度(MAP 37),但速度最慢。我们还选择了另一个RCNN模型[80]和两个SSD模型[37,47],它们具有中等的预测速度和良好的精度。本教程报告RFCN RESNET与更快的RCNN RESNET具有非常相似的准确性,因此,我们跳过评估RFCN RESNET。如第二节所述,两种基于RCNN的模型具有基于区域的两级架构,而SSD模型具有速度更快的单级架构。

评估概述

表1总结了评价结果。为了获取这些数据,我们从COCO 2017图像集[45]中随机选择的1,000张图像中提取对象实例。然后,我们从与背景图像相同的数据集中随机选择了500张图像。从完整的1,000张图像中,MetaOD提取了总共5843个对象实例,这些对象实例聚集在79个不同的类别(人、狗等)上。如前所述(第4.2节),MetaOD的对象细化模块根据对象图像的大小对对象图像进行排序,并删除90%的小对象图像;其余10%的对象图像被保留为插入候选。

给定图像i,OD可以从i中找到不同数量的对象(表1第三列报告OD找到的对象总数)。如第4.3节所述,假设OD在i中发现M个对象,那么MetaOD将按照“引导插入”策略生成10×M合成图像来测试OD。当测试图像i’触发预测错误时,该图像用于在“增量调试”风格程序(第4.3节)之后生成额外的测试输入。表1第二栏报告了为每个OD合成的图像总数。

触发预测错误的图像数量(不是“模型中的错误数量”)在表1的第四列中报告。至少10%的合成图像引发了对评估OD的错误预测。由于我们随机决定在背景图像中插入对象的位置(参见第4.3节),因此错误触发图像不太可能完全相同。与典型的软件测试场景一样,并不是每个测试输入都会触发错误。在不同的模型上进行10%-16%的漏洞触发测试是非常有希望的,这表明MetaOD提供了一种通用、实用和一致的方法来查找OD错误。总体而言,表1显示,无论底层模型如何,OD故障都是普遍关注的问题。此外,当模型在图像中检测到更多对象时,可能触发故障的图像数量也会增加。这是意料之中的,回想一下,对于M个对象的图像,我们的“引导插入”策略生成10×M合成图像(第4.3节)。此外,虽然商业API的实现是未知的,通常被认为是“快速”的(见表2),但我们怀疑它们使用的不是类似的模型,因为它们的预测能力非常不同(参见表2)。表1中的第三栏)。

处理时间:此评估是在配备英特尔i7-8700 CPU和16 GB RAM的计算机上进行的。实例分段模块在带有CUDA 9.0的单个NVIDIA GeForce GTX 1070 GPU上运行。表1报告处理时间。商业API,特别是谷歌和微软的服务,比TensorFlow预先训练的模型需要更少的预测时间。虽然没有公开这些远程服务的实现细节,但从结果中,我们可以假设商业远程服务可能利用了高度优化的单级OD模型,该模型速度更快,但通常在图像中找到的对象较少

财务成本。在现代云计算基础设施的支持下,所有这些OD都被设计为“随用随付”模式:用户根据他们向服务发送多少查询(对于前四项服务)或他们使用了多少计算资源(对于TensorFlow服务)来收费。我们在表1中报告了这些服务向我们收取的美元金额。由于错误的行为,一些查询确实被浪费了。更重要的是,鉴于商业服务已被用于支持关键的计算机视觉应用程序(例如监控摄像头),我们设想了预测错误可能导致经济损失或致命错误的现实世界场景。

对象位置调整的效率

如第4.3节所讨论的,受增量调试的启发,我们提出了通过逐步移动插入的对象来改变合成图像的技术,该插入的对象会触发对背景图像中的对象的质心的错误预测。我们尽最大努力保持合成图像的真实感,将插入的对象放置在真实的位置,同时找到更多的插入位置,并增加合成图像的视觉多样性。

我们在表3中报告了导致OD错误的合成图像的细分。第二列报告通过将对象插入背景图像来合成的触发预测误差的图像的数量,而第三列报告触发预测错误的图像的数量,并且通过将插入的对象朝向质心重新定位来合成。由于同一对象可以插入到背景图像的不同位置,然后到达相同的质心,因此我们还在此步骤(最后一列)测量了合成图像的唯一数量。如表3所示,对象重定位步骤成功地找到了保留预测误差的大量独特图像。在导致预测误差的28,959张合成图像中,有9,386张(32.4%)的独特图像是通过对象重定位创建的。此外,我们在图8中报告了插入的对象可以重新定位的平均距离(以百分比表示);我们认为到达质心为100%,停留在起始位置为0%。请注意,图8排除了对象停留在起始位置的所有“0%”情况。如图8所示,在保持误差的情况下,平均21.9%的对象可以放置在质心上,40.2%的对象被重新定位至少40%的距离。总体结果令人振奋,说明可以生成相当数量的合成图像,保留预测失败,并使图像在视觉上更加多样化。

合成图像的自然度

虽然合成图像的“自然度”可能是主观的,但正如现有研究指出的那样,自然图像被认为具有一定的统计规律[38,51,52]。因此,遵循计算机视觉文献[52]中普遍采用的惯例,通过首先计算合成图像和其对应的背景图像的 定向梯度直方图(HOG[19]),然后计算这两个HOGs的交集,来测量合成图像的“自然度”。HOG是一种常用的度量方法,它提取梯度方向的分布(直方图)作为图像的“特征”。通过汇总梯度的大小,该度量捕获图像(对象边缘、对象角点等)中的突然强度变化,因此对于理解具有多个对象的图像的高级表示通常是有效的。相比之下,MetaOD中使用的像素级相似性度量(第4.2节)侧重于单个对象实例比较,不适用于此评估。与先前的研究[52]一致,比较输出(即,HOGs交集)(介于0和1之间的值)说明了合成图像的自然度。我们在第7节提供了关于图像自然度的讨论。

表4通过比较合成图像与插入的对象及其对应的背景图像来报告HOG交叉率(第二列),并通过比较合成图像与重新定位的对象及其对应的背景来报告HOG交叉率(第三列)。与我们的直觉一致的是,所有合成图像与其对应的背景具有高度相似的HOG规则,并且被认为是“自然的”(相反,我们报告从COCO数据集中随机选择的两幅图像的HOG交叉率低于50.0%)。此外,尽管大多数具有重新定位的对象的合成图像具有与具有插入对象的合成图像相同的HOG交叉点,但是对于具有重新定位的对象的合成图像,存在三种情况表现出略低的速率。直观地说,重新定位会产生视觉上更多样化的图像,并可能导致与其对应的背景图像相比更低的“相似性”。

使用错误触发图像进行再培训

为了充分利用导致预测失败的合成图像,我们证明了这种合成图像可以用来对模型进行再训练,并大幅提高它们的性能。我们使用流行的自动驾驶数据集Berkeley DeepDrive[5,82]进行评估。此数据集包含描述在不同天气条件和不同时间的实时驾驶体验的图像。本节中的实验(即模型再培训)在配备Intel Xeon CPU E5-2680、256 GB RAM和8个NVIDIA GeForce RTX 2080 GPU的服务器上进行

我们下载了TensorFlow预先训练的SSD MobileNet对象检测模型,并使用TensorFlow版本对该模型进行了重新训练。1.14.0)通过使用来自DeepDrive训练集的具有10个常见交通场景类别的900个图像进行注释。我们实际上模仿了OD模型是如何定制和在实践中使用的;基于迁移学习[54],通过微调新数据集上的模型参数,预先训练的模型可以适应类似的任务。在这一步,我们重用MobileNet预训练模型附带的默认配置;批大小为48,这意味着整个训练集将在19个步骤内处理一次。我们制定了三个再培训战略(配置1-3),具体如下:

  • 我们首先对MobileNet模型进行200K步长(200K是模型配置中的默认设置)的900幅图像的重新训练,并导出重新训练的模型푚m0。我们还通过从DeepDrive评估集中随机选择100个图像来形成评估集。

  • 然后,我们使用MetaOD从这900幅图像中生成新的合成图像,并收集导致m0预测失败的合成图像。此步骤生成18,707个图像(表示为L∗),以触发预测误差。

  • config1:从m0开始,我们将使用900个映像再培训10K步。

  • config2:从m0开始,我们用从L∗中随机选择的900幅图像扩展了原有的900幅训练集,并用这1,800幅图像继续进行10K步的模型再训练。为了标记每个合成图像,我们重复使用其参考输入图像的标签(见3.1节)。

  • 我们还使用MetaOD生成另一组900个图像(L)。我们不检查这些图像是否会引发预测失败。

  • config3:从m0开始,我们用从L中选择900幅图像扩展了900幅图像的训练集,并使用10K步的模型再训练。再一次,为了标记每个合成图像,其参考输入的标签被重复使用。

在总共210K步的再训练过程中,我们测量了100幅图像评估集的总loss和MAP得分。

如图9所示,对于最后10K步,与前200K步相比,Config1显示出一致的趋势。Config2的总损耗比其他两步低。此外,Config2的MAP得分明显优于其他配置。与Config1相比,Config3的总损耗下降略好,但MAP得分更低(这可能是由于过度拟合所致)。我们报告最后10K步内三种配置的平均MAP得分如下:

如表所示,通过用预测误差的合成图像进行再训练来提高模型的性能。请注意,根据OD调查(例如,[86]中的表2和[46]中的表7),map分数的增加是显著的。总体而言,我们对评估结果的解读是有希望的:本节演示的故障感知再培训揭示了MetaOD发现的模型预测错误的实际应用,并为提高模型精度提供了有希望的方向

我们承认,虽然评估是公平的,但可能并不能说明促进模型性能的最佳实践;图9表明,“甜蜜点sweet spot”可能是大约8K步的再培训(MAP分数约为10.7)。总体而言,我们认为提供最佳实践的指导方针超出了本研究的范围,但报告的结果已经说明了这一潜力。另外,图像是从现有的训练集合成的,换句话说,我们不需要新的真实图像。总体而言,“有故障意识”的再培训与标准的模型再培训技术是正交的,并且有可能被编排在一起。

使用任意的合成图像反倒使得mAP降低了

研讨与未来工作

本文介绍了一个自动测试目标检测系统错误行为的系统工作流MetaOD的设计、实现和评估。建议的技术可以用来促进目标探测器培训,并激励这一新兴的研究领域。在这一部分中,我们提出了一个讨论和几个潜在的有希望的未来研究方向。

与CV社区的工作相比,与SE社区测试深度学习系统的努力类似,CV社区通过变异真实图像来训练DNN来生成合成输入。我们从以下几个方面比较和说明了MetaOD与相关CV研究的新颖性:

Blackboxvs.Whitebox.。大多数现有的简历研究都认为是“白盒”设置(例如,[59,68])。这种努力要么需要深入理解模型结构以自适应地合成输入[68],要么需要使用DNN的隐藏层和计算出的梯度来指导输入合成[59]。如上所述,我们考虑了软件测试的黑盒设置,并引入MetaOD来有效地测试商业远程OD模型。

Training with Synthetic Inputs vs.Re-training with Bug-triggering Synthetic Inputs 。据我们所知,相关的CV研究直接使用合成输入进行模型训练。相反,MetaOD提出了一种新的故障感知模型再训练方案(Sec.6.4)来有效地提高模型的精度,这为今后继续测试“重新训练”的模型提供了参考,即整个过程将循环迭代地重新训练模型。我们预计模型的精度将进一步提高,直到达到饱和。如图9所示,用任意生成的合成图像重新训练模型可能会导致模型精度降低,而用错误触发的合成输入重新训练会显著提高精度。这一有趣的观察表明,CV和SE社区都有进一步的研究机会。

Fine-grained Modeling /Tuning on Synthetic Image for Training vs.Generic Framework to Synthesize Images for Testing.正如第8节将回顾的那样,现有的CV研究大多执行重量级、细粒度的建模来生成合成图像,例如,专门对合成图像的运动轨迹进行建模和训练监视摄像机[13]。这些工作通常集中在特定的应用领域,并利用所学知识利用统计工具对合成图像进行微调和优化。我们有一个不同的设计目标,即提出一个通用框架来有效地生成大量用于测试的高质量输入。一般来说,MetaOD与图像“语义”(图像中现有对象的标签除外)无关,因此可以更高效、更健壮。

新颖性W.r.t。SE社区的DNN测试工作。

正如第8节所讨论的,SE社区中的大多数现有测试工作聚焦于图像分类模型(例如,[58,73])TensorFlow/PyTorch的底层基础设施(例如,[21,39,61,85])。据我们所知,以前没有任何工作集中于设计通用、有效的管道来测试OD模型,OD模型是许多现实世界关键应用程序中使用的另一类基本模型。MetaOD变异并观察图像中单个对象的检测,而现有的关于测试图像分类的研究大多执行整个图像的变异(例如,添加雾和下雨的条件)。其中一些变换不适用于我们的场景(在第3.3节中讨论),并且我们的方法通常与这些整个图像方向的突变正交。

我们还论证了“失败驱动的再培训”(第6.4节)的可行性,显著提高了模型的准确性。这项评估为解决SE社区中关于“如何使用DNN测试结果”的一个典型问题迈出了有希望的一步,这一问题在以前的工作中没有得到系统的探索。

测量合成图像的“自然度”。如第6.3节所述,我们遵循CV社区的惯例[52]将合成图像与自然图像w.r.t进行比较。猪作为衡量“自然度”的一种方式。然而,正如第4.3节所讨论的,要理解对象的“语义”并使其与任意背景完全一致(即更“自然”),即使不是不可能,也是具有挑战性的。例如,如果插入的汽车的视角稍微向左转而不是进入人行道,图3中的交通图像可以更自然。据我们所知,CV社区正在探索统计工具,以便仅深入理解少数特定场景和对象(例如,室内场景中变异的人体手势[63])。相反,这项工作为任意图像引入了一条通用、高效的管道。

保持合成图像“自然度”的理由。我们注意到合成图像的“真实感/自然度”对测试没有直接影响。随机改变像素以产生“模糊”和“不真实”的图像作为测试输入,这对人眼识别物体是一种挑战,也可以用来加强OD。

然而,我们认为,在设计MetaOD的工作流程时,尽最大努力保持合成图像的“真实感”确实是有益的。首先,如第3.3节所述,我们不是在测试极端情况下对OD施加压力(不像典型的模糊测试环境)。DNN的压力测试将有所不同。第二,合成更“逼真”的图像有利于MetaOD的实际应用。如第三节所述,我们的目标是在一定程度上增强真实感,使得合成图像触发错误的预测可能意味着OD系统在现实生活中的故障,导致日常使用中的混乱。此外,我们认为使用真实的错误触发图像来重新训练OD模型(第6.4节)比使用任意突变的错误触发输入更合理。

Related Work

深度学习系统的测试。传统软件的测试技术最近已被应用于深度学习系统,包括模糊测试[53,81]、突变测试[49,78]、变形测试[22,73,84]以及符号执行[31,70,71]。现有的大部分工作集中在图像分类及其在自动驾驶系统上的应用[58,73,84,88]。NLP模型以及典型的下游应用(例如机器翻译)也已经使用各种测试方案[27、35、50、75]进行了测试。我们注意到,以前关于测试深度学习系统的工作往往采用“差异测试”方案[58,73]。然而,OD模型通常可以从图像中识别不同数量的对象(由于模型的能力),这给交叉比较带来了普遍的挑战。例如,在分析“海滩”示例图像(由TensorFlow开发人员提供的https://git.io/fjFgI))时,Amazon Rekognition API[1]定位到13个对象,而Microsoft Azure API[4]只定位到4个对象。相反,我们的工作采用变质测试作为一种有效和自适应的测试策略来发现这些商业OD中的缺陷。关于测试甲骨文选择,已经提出了神经元覆盖率[58,73]和其他细粒度覆盖率度量[39,48]。此外,除了深度学习模型之外,还对底层基础设施(例如,TensorFlow[10]和PyTorch[55])进行了测试,以发现实现错误[21,61,85]。

用于OD模型训练的数据增强与SE社区在测试DNN方面的进展相平行,数据增强是训练DNN的一项重要技术,它通过突变实数图像来生成合成输入。为了训练深度学习模型(例如,用于目标检测),增强方法从诸如水平翻转到颜色扰动的几何变换到向图像添加噪声(例如,模拟恶劣天气条件)变化[23,25,26,28,36,62,74,87]。通常可以通过将这样的合成图像包括到训练数据中来提高模型精度[28]。

大多数现有的工作在增强图像时优先考虑的是局部一致性,而不是全局一致性。例如,当将新对象插入到训练图像中时,他们更关注插入对象的真实感,而不是上下文环境。从全球的角度来看,许多合成图像是不现实的,比如把一辆车放在桌子上[74]。一些研究利用重量级统计方法来推断对象插入的“真实”位置;它们假定为“白盒”设置,并且只能处理少数特定于领域的场景[63]。我们的工作提出了一个轻量级和系统化的新焦点,通过考虑局部和全局的真实感来促进合成图像的发展。我们采用便于商业远程OD测试的“黑盒”设置。此外,我们的测试重点支持“故障感知”模型再培训(第6.4节),这有效地提高了模型的准确性。

结论

大多数现有的工作在增强图像时优先考虑的是局部一致性,而不是全局一致性。例如,当将新对象插入到训练图像中时,他们更关注插入对象的真实感,而不是上下文环境。从全球的角度来看,许多合成图像是不现实的,比如把一辆车放在桌子上[74]。一些研究利用重量级统计方法来推断对象插入的“真实”位置;它们假定为“白盒”设置,并且只能处理少数特定于领域的场景[63]。我们的工作提出了一个轻量级和系统化的新焦点,通过考虑局部和全局的真实感来促进合成图像的发展。我们采用便于商业远程OD测试的“黑盒”设置。此外,我们的测试重点支持“故障感知”模型再培训(第6.4节),这有效地提高了模型的准确性。

结论

OD系统已经普遍应用于现实世界的场景中,比如制造自动驾驶汽车。本文介绍了一种新的面向可靠OD的变质测试方法。评估结果令人振奋-MetaOD可以从商业API和OD模型中发现数千个预测错误。我们还表明,生成的图像可以用于再训练,从而大大提高OD模型的精度。

[论文解读] Metamorphic Object Insertion for Testing Object Detection Systems相关推荐

  1. 论文解读 | Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation

    论文地址:Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation GitHub地址: http ...

  2. Open-Vocabulary Object Detection Using Captions(2021 CVPR)----论文解读

    Open-Vocabulary Object Detection Using Captions[2021CVPR]----论文解读 paper code 1. Abstract Open-Vocabu ...

  3. CVPR2020论文解读:3D Object Detection三维目标检测

    CVPR2020论文解读:3D Object Detection三维目标检测 PV-RCNN:Point-Voxel Feature Se tAbstraction for 3D Object Det ...

  4. 论文解读 Receptive Field Block Net for Accurate and Fast Object Detection

    其它机器学习.深度学习算法的全面系统讲解可以阅读<机器学习-原理.算法与应用>,清华大学出版社,雷明著,由SIGAI公众号作者倾力打造. 书的购买链接 书的勘误,优化,源代码资源 PDF全 ...

  5. [论文解读] Rank Sort Loss for Object Detection and Instance Segmentation

    文章内容 问题提出 相关研究现状 1. 辅助头和连续标签 2. 基于排序的损失 3. 样本不平衡问题 本文工作 AP Loss的不足之处 RS Loss 定义 训练细节 代码解读 论文链接:Rank ...

  6. 【Deformable DETR 论文+源码解读】Deformable Transformers for End-to-End Object Detection

    目录 前言 一.背景和改进思路 二.细节原理和源码讲解 2.1.多尺度特征 2.1.1.backbone生成多尺度特征 2.1.2.多尺度位置编码 2.2.多尺度可变形注意力 2.2.1.普通多头注意 ...

  7. 论文解读:DETR 《End-to-end object detection with transformers》,ECCV 2020

    论文解读:DETR <End-to-end object detection with transformers>,ECCV 2020 0. 论文基本信息 1. 论文解决的问题 2. 论文 ...

  8. 【尺度不变性】An Analysis of Scale Invariance in Object Detection – SNIP 论文解读

    [尺度不变性]An Analysis of Scale Invariance in Object Detection – SNIP 论文解读 前言 本来想按照惯例来一个overview的,结果看到1篇 ...

  9. 目标检测论文解读1:(RCNN解读)Rich feature hierarchies for accurate object detection...

    一.番外说明 大家好,我是小P,今天和大家一起学习目标检测领域的经典文章-RCNN,希望大家支持和喜欢.此外,对"目标检测/模型压缩/语义分割"感兴趣的小伙伴,欢迎加入QQ群 81 ...

最新文章

  1. R语言ggplot2可视化抑制(部分)图例(legend)输出实战:抑制颜色图例输出、保留数据点形状图例输出
  2. 1、user权限表详解
  3. 面试官:要不讲讲 Cookie、Session、Token、JWT之间的区别?
  4. sohu读博——周忆清
  5. nlog自定义文件名
  6. 详解 MySql InnoDB 中意向锁的作用
  7. 中国队新主帅朱广沪印象
  8. Win2008首次使用关闭的安全选项
  9. Idea Java开发必备插件
  10. 走向Java架构师之路:成为架构师要掌握的8大能力
  11. Pyhton词云示例(移植-情人节专用版)
  12. 无法查看MSN聊天记录 总弹出下载.xml文件的对话框
  13. 【北交所周报】北交所再迎8只新股;康普化学、凯华材料上市首日逆势大涨;康乐卫士过会,或成北交所最大IPO;北交所推出直联机制...
  14. 人工智能学习路线(转载)
  15. 【SecureCRT】SecureCRT 绝佳配色方案, 保护你的眼睛
  16. python语法tip
  17. 网上企业订货系统平台源码价介绍|移讯云手机订单管理软件
  18. api质量等级_API分级说明
  19. APP 信息管理平台——需求概述
  20. 用旧弃的Android智能手机变为电脑WIFI摄像头

热门文章

  1. 中值滤波、低通与高通滤波
  2. 报错 java: 程序包javax.servlet.http不存在
  3. mask rcnn只能在linux里运行,maskrcnn-benchmark安装及常见错误
  4. 《JavaScript语言精粹》学习笔记(函数(2))
  5. 【论文写作】英文论文写作指南
  6. 微信小程序保姆级入门教程
  7. macos 环境变量 source 重启后失效
  8. python训练营 朋友圈_项目分享|5步教你用Python制作朋友圈个性签名
  9. html5+css3手码百度页面
  10. ubuntu 20.04 更改第一次登录紫色背景(终于有办法修改啦!!!)