CN117836817A - 通过生成词元的序列来检测图像中的对象 - Google Patents

通过生成词元的序列来检测图像中的对象 Download PDF

Info

Publication number
CN117836817A
CN117836817A CN202280056796.5A CN202280056796A CN117836817A CN 117836817 A CN117836817 A CN 117836817A CN 202280056796 A CN202280056796 A CN 202280056796A CN 117836817 A CN117836817 A CN 117836817A
Authority
CN
China
Prior art keywords
tokens
bounding box
image
output sequence
neural network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202280056796.5A
Other languages
English (en)
Inventor
陈挺
绍拉布·萨克塞纳
李�一
杰弗里·E·欣顿
戴维·詹姆斯·弗利特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN117836817A publication Critical patent/CN117836817A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/09Supervised learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/28Quantising the image, e.g. histogram thresholding for discrimination between background and foreground patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks

Abstract

用于使用神经网络进行对象检测的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。在一个方面,所述方法之一包括:获得输入图像;使用对象检测神经网络处理输入图像以生成输出序列,输出序列包括在多个时间步长中的每个时间步长处的相应词元,其中每个词元选自词元词汇表,词元词汇表包括(i)第一词元集合,第一词元集合各自表示来自离散数集合的相应离散数;和(ii)第二词元集合,第二词元集合各自表示来自对象类别集合的相应对象类别;以及从输出序列中的所述词元生成针对输入图像的对象检测输出。

Description

通过生成词元的序列来检测图像中的对象
本申请要求2021年9月17日提交的美国临时申请号63/245,783的权益。在前申请的公开内容被认为是本申请的公开内容的一部分并且通过引用并入本申请的公开内容中。
技术领域
本说明书涉及使用神经网络处理输入。
背景技术
神经网络是采用一个或多个非线性单元层来预测接收到的输入的输出的机器学习模型。一些神经网络除了输出层之外还包括一个或多个隐藏层。每个隐藏层的输出用作网络中的下一层——即,另一隐藏层或输出层——的输入。网络的每个层根据相应参数集的当前值从接收到的输入生成输出。
发明内容
本说明书描述了一种被实现为一个或多个位置中的一个或多个计算机上的计算机程序的系统,该系统通过使用神经网络处理图像以生成词元的输出序列来检测输入图像中的对象。
本说明书中描述的主题可以在特定实施例中实现,以便实现以下优点中的一个或多个。
现有的对象检测方法需要高度定制并且具有复杂的架构,使得难以将它们集成到更大的系统中。另一方面,所描述的技术使用对象检测神经网络,该对象检测神经网络产生对应于对象描述的离散词元序列。对象检测神经网络具有简单的架构,并且因此可以容易地并入感知系统或扩展到不同的域或应用。此外,尽管架构简单,因为所描述的技术产生对应于对象描述(边界框和类标签)的离散词元序列,所以对象检测神经网络可以实现匹配或超过已经针对特定对象检测任务大量设计的更复杂的系统的性能的性能。
在附图和下面的描述中阐述了本说明书的主题的一个或多个实施例的细节。
根据说明书、附图和权利要求,主题的其他特征、方面和优点将变得显而易见。
附图说明
图1是示例对象检测系统的图。
图2是用于检测输入图像中的对象的示例过程的流程图。
图3是示出使用对象检测神经网络生成的对象检测输出的示例的图。
图4是用于训练对象检测神经网络的示例过程的流程图。
图5是示出在训练示例上训练对象检测神经网络的图。
各个附图中相同的附图编号和标记指示相同的元件。
具体实施方式
图1是示例对象检测系统100的图。对象检测系统100是被实现为一个或多个位置中的一个或多个计算机上的计算机程序的系统的示例,其中可以实现下面描述的系统、组件和技术。
对象检测系统100是接收输入图像102并通过使用对象检测神经网络110处理图像102以生成输入图像102的对象检测输出150来检测输入图像102中的对象的系统。
对象检测输出150标识输入图像102中的一个或多个边界框,每个边界框对应于检测到的对象,即,被预测为包含检测到的对象的描绘,并且针对边界框中的每个,标识边界框中的检测到的对象所属的对象类别集合中的对象类别。
更具体地,系统100获得输入图像102。
系统100使用对象检测神经网络110处理输入图像102,即,处理输入图像102的像素的强度值,以生成包括多个词元的输出序列112。
序列中的每个词元选自词元词汇表,该词元词汇表包括(i)第一词元集合,每个词元表示离散数集合中的相应离散数,以及(ii)第二词元集合,每个词元表示对象类别集合中的相应对象类别。词汇表中的词元可以以任何适当的方式表示,例如,表示为彼此可区分的整数或其他字母数字符号。
更具体地,系统将用于表示输入图像102中的任何给定点的坐标的数离散化为多个区间(bin),其中区间中的每个对应于第一词元集合中的词元中的相应一个。作为特定示例,系统可以将零与以像素为单位的图像的高度或宽度之间的值范围离散化为固定数量的均匀间隔的区间,使得每个区间对应于可以用于表示图像内的点(以像素为单位)的坐标的像素索引的不同子集。因此,如果输入图像是600像素x600像素并且存在600个区间,则每个区间将对应于从1到600的不同像素索引。如果输入图像是600x600并且存在300个区间,则每个区间将对应于从1到600的两个像素索引的不同集合。
因此,第一词元集合中的每个词元表示图像中的像素的可能坐标值的离散化中的不同区间,并且可以被映射到不同的量化坐标值,例如,由词元表示的区间的代表值。例如,代表值可以是区间的端点的平均值或区间的两个端点之一。坐标的这种量化方案允许系统使用相对小的词汇表来表示可能的像素坐标,同时保持高精度。
对于第二词元集合,系统可以向集合中的每个对象类别分配不同的唯一词元。
因此,作为特定示例,当量化方案中有600个区间并且100个对象类别和词元被表示为整数时,词汇表可以包括表示600个可能的量化坐标的词元1-600和表示100个对象类别的词元601-700。
可选地,如将更详细描述的,除了上述词元之外,词汇表还可以包括一个或多个附加词元。
通常,对象检测神经网络110被配置为跨多个时间步长生成输出序列。
在每个时间步长处,神经网络110被配置为以(i)输入图像和(ii)输出序列中的任何较早时间步长处的词元为条件针对每个时间步长在词汇表中的词元上生成分数分布。
因此,在生成输出序列112期间的每个时间步长处,系统100使用由对象检测神经网络110针对该时间步长生成的相应分数分布来选择输出序列112中的时间步长处的相应词元。
作为一个示例,系统100可以贪婪地选择最高分数的词元。
作为另一示例,系统100可以通过根据分数分布对词元进行采样来选择相应词元。作为特定示例,系统可以使用核心采样(nucleus sampling)根据分数分布对词元进行采样。
作为特定示例,对象检测神经网络110可以包括编码器神经网络120和解码器神经网络130。
编码器神经网络120可以被配置为处理输入图像102以生成输入图像102的编码表示122。编码表示122是包括共同表示输入图像102的多个编码向量的序列。
编码器神经网络120可以是接收图像102的像素的强度值并将它们编码为隐藏表示的任何适当的图像编码器神经网络。这样的编码器的示例包括卷积神经网络、Transformer神经网络或包括卷积层和自注意力层两者的神经网络。在Kaiming He、Xiangyu Zhang、Shaoqing Ren和Jian Sun在2016年的Computer Vision and PatternRecognition(计算机视觉和模式识别)的IEEE会议的过程,770-778页,Deep residuallearning for image recognition(用于图像识别的深度残差学习)中描述了可以用作编码器的卷积神经网络的示例。在Alexey Dosovitskiy、Lucas Beyer、AlexanderKolesnikov、Dirk Weissenborn、Xiaohua Zhai、Thomas Unterthiner、Mostafa Dehghani、Matthias Minderer、Georg Heigold、Sylvain Gelly等人在2020年的InternationalConference on Learning Representations的An image is worth 16x16 words:Transformers for image recognition at scale(图像相当于16x16个单词:用于大规模图像识别的Transformer)中描述了可以用作编码器的Transformer神经网络的示例。在Nicolas Carion、Francisco Massa、Gabriel Synnaeve、Nicolas Usunier、AlexanderKirillov和Sergey Zagoruyko在Springer,2020的European Conference on ComputerVision,213-229页,End-to-end object detection with transformers(具有transformer的端到端对象检测)中描述了包括可以用作编码器的卷积层和自注意力层的神经网络的示例。
当编码器120的最后一层是生成特征图的卷积层时,系统100可以通过将特征图平坦化为向量序列来生成编码表示122。当编码器120的最后一层是注意力层时,系统100可以直接使用注意力层的输出作为编码表示122。
解码器神经网络130被配置为处理输入图像102的编码表示122以生成输出序列112。
具体地,解码器130可以是自回归解码器神经网络,其在每个时间步长处处理输出序列112中的任何较早时间步长处的词元,同时以输入图像102的编码表示122为条件,以生成时间步长的相应分数分布。分数分布包括词汇表中的每个词元的相应分数,例如概率或logit。
作为特定示例,解码器130可以是将因果自注意力应用于已经生成的词元和交叉注意力到编码表示122中的Transformer解码器。也就是说,解码器130可以包括在已经生成的词元的表示上应用因果自注意力的自注意力层和交叉注意力到编码表示122中的交叉注意力层。
在Colin Raffel、Noam Shazeer、Adam Roberts、Katherine Lee、Sharan Narang、Michael Matena、Yanqi Zhou、Wei Li和Peter J Liu在2019年arXiv preprint arXiv:1910.10683的Exploring the limits of transfer learning with a unified text-to-text transformer(用统一的文本到文本transformer来探索迁移学习的限制)中和AlecRadford,Karthik Narasimhan,Tim Salimans和Ilya Sutskever的2018年的Improvinglanguage understanding by generative pre-training(通过生成预训练来改进语言理解)中描述了可以用作解码器130的这样的Transformer解码器的示例。
然后,系统100从输出序列112中的词元生成对象检测输出150。也就是说,系统100将输出序列112中的词元映射到标识输入图像中的一个或多个边界框的数据,并且针对每个边界框,映射到来自边界框内描绘的对象所属的对象类别集合的相应对象类别。
针对每个边界框,标识边界框的数据指定边界框在图像内的位置。作为一个示例,标识边界框的数据可以指定边界框的角的两个或更多个的坐标。作为另一示例,标识边界框的数据可以指定边界框的中心的坐标以及边界框的高度和宽度。
下面参考图2和图3更详细地描述从输出序列112生成对象检测输出150。
因此,对象检测神经网络110生成可以直接映射到由系统100输出的对象检测的离散词元的输出序列112。通过以这种方式生成对象检测输出,系统100不需要高度定制或使用具有复杂架构的神经网络,并且可以容易地集成到更大的系统中。
作为特定示例,系统100可以是嵌入在智能体(agent)(例如,机器人或自主车辆)内的感知系统的一部分,该感知系统处理图像以及可选地由智能体的传感器收集的其他传感器数据,并且对象检测输出可以由感知系统或智能体机载的其他软件使用,以在智能体导航通过环境时控制智能体。
作为另一特定示例,系统100可以是嵌入在处理传感器数据的不同类型的设备——例如,相机监测系统、移动电话等——内或与其通信的感知系统的一部分。由系统100生成的对象检测输出可以在向用户显示图像之前用作预处理阶段的一部分,或者可以用于自动触发其他动作。
作为又一特定示例,客户端设备可以通过应用编程推断(API)(例如,基于web的API)与系统100交互。具体地,客户端设备可以提交包括或标识要分析的图像的API调用,并且系统100可以作为响应提供标识对象检测输出的数据。例如,系统100可以以指定格式(例如,作为JavaScript对象表示法(JSON)文件或作为另一类型的数据交换格式的文件)格式化对象检测输出,并且响应于API调用提供文件。
在使用神经网络110检测对象之前,系统100或另一训练系统在包括多个训练示例的训练数据上训练神经网络110。
每个训练示例包括输入训练图像和标识图像内的地面真实边界框和每个边界框的相应地面真实对象类别的地面真实对象检测输出。
下面将参考图4和图5更详细地描述训练神经网络110。
图2是用于生成输入图像的对象检测输出的示例过程200的流程图。为了方便起见,过程200将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当编程的对象检测系统——例如,图1中描绘的对象检测系统100——可以执行过程200。
系统获得输入图像(步骤202)。
系统使用对象检测神经网络处理输入图像以生成输出序列(步骤204)。
如上所述,输出序列包括在多个时间步长中的每个时间步长处的相应词元。从词元词汇表中选择每个词元,该词元词汇表包括(i)第一词元集合,每个词元表示来自离散数集合的相应离散数,以及(ii)第二词元集合,每个词元表示来自对象类别集合的相应对象类别。
词汇表还可以可选地包括附加词元。
例如,词汇表可以包括序列结束(EOS)词元。
作为另一示例,词汇表可以包括表示不包括在对象类别集合中的噪声对象类别(并且因此不表示可以在输入图像中描绘的任何实际对象)的“噪声”词元。可以在训练神经网络之前将“噪声”词元添加到词汇表,以便提高训练的有效性,如下面将更详细描述的。
通常,对象检测神经网络被配置为跨多个时间步长生成输出序列。
在每个时间步长处,神经网络被配置为针对以(i)输入图像和(ii)输出序列中的任何较早时间步长处的词元为条件的每个时间步长在词汇表中的词元上生成分数分布。
因此,在生成输出序列期间的每个时间步长处,系统使用由对象检测神经网络针对该时间步长生成的相应分数分布来选择输出序列中的时间步长处的相应词元。
作为一个示例,系统可以贪婪地选择最高分数的词元。
作为另一示例,系统可以通过根据分数分布对词元进行采样来选择相应词元。作为特定示例,系统可以使用核心采样根据分数分布对词元进行采样。
作为又一示例,当词汇表包括噪声词元时,系统可以确定是否在任何给定时间步长选择了噪声词元,并且如果是,则用来自第二词元集合的最高分数的词元替换噪声词元。也就是说,响应于确定选择了噪声词元,系统仅从第二词元集合中的词元中选择具有分数最高的词元来替换噪声词元。
在一些实施方式中,系统继续向输出序列添加词元,直到选择序列结束(EOS)词元。在一些其他实施方式中,系统继续向输出序列添加词元,直到输出序列具有固定长度,即,具有最大词元数量。在其他实施方式中,系统继续向输出序列添加词元,直到已经选择了EOS词元或者直到输出序列具有固定长度,无论哪一个首先发生。
系统从输出序列中的词元生成对象检测输出,即,标识输入图像中的一个或多个边界框的数据,并且针对每个边界框,生成来自边界框中描绘的对象所属的对象类别集合的相应对象类别(步骤206)。
具体地,由于训练神经网络的方式,输出序列包括输入图像中的一个或多个边界框中的每个边界框的相应子序列。
给定边界框的子序列包括来自第一词元集合的词元和来自第二词元集合的词元。例如,子序列可以包括总共五个词元:来自第一集合的四个词元和来自第二集合的一个词元。作为特定示例,子序列可以包括来自第一集合的四个词元,随后是来自第二集合的一个词元。
在一些情况下,由来自第一集合的四个词元表示的四个离散数指定边界框的两个角的输入图像中的坐标,例如左上角和右下角或右下角和左上角的(x,y)坐标。
在一些其他情况下,由来自第一集合的四个词元表示的四个离散数指定边界框的中心的输入图像中的坐标以及边界框的高度和宽度。
因此,为了生成对象检测输出,系统可以针对输出序列中的每个子序列并且根据子序列中属于第一词元集合的词元来标识输入图像中的边界框的坐标,然后将由对应子序列中属于第二词元集合的词元表示的对象类别标识为边界框中描绘的对象所属的相应对象类别。
换句话说,针对子序列中的每个第一词元,系统可以将第一词元映射到由词元表示的量化坐标值以生成定义边界框的坐标,并且针对每个第二词元,系统可以将词元映射到标识由第二词元表示的对象类别的标签或其他数据。
在一些实施方式中,系统还将分配给表示在对应时间步长处的分数分布中的边界框的相应对象类别的词元的相应分数与边界框相关联,以表示相应对象类别是对象的正确类别的置信度。
在一些实施方式中,例如,如果对应对象类别的置信度分数低于阈值,则系统可以避免在对象检测输出中包括一个或多个边界框。
然后,系统可以输出标识对象检测输出的数据,即边界框、对象类别以及可选地相关联的置信度分数。
作为特定示例,当系统是嵌入在智能体(例如,机器人或自主车辆)内的感知系统的一部分时,该感知系统处理由智能体的传感器收集的图像和可选的其他传感器数据,系统可以将标识对象检测输出的数据提供给感知系统或智能体机载的其他软件,以在智能体导航通过环境时控制智能体。
作为另一特定示例,当系统是嵌入在处理传感器数据的不同类型的设备——例如,相机监测系统、移动电话等——内或与其通信的感知系统的一部分时,系统可以将数据输出到设备的另一软件组件,以用于在向用户显示图像之前预处理图像或用于自动触发动作,例如,警报。
作为又一特定示例,当客户端设备可以通过应用编程推断(API)(例如,基于web的API)与系统交互时,系统可以响应于API调用而提供标识对象检测输出的数据。例如,系统可以以指定格式(例如,作为JavaScript对象表示法(JSON)文件或作为另一类型的数据交换格式的文件)格式化对象检测输出,并且响应于API调用提供文件。
图3示出了从由对象检测神经网络生成的输出序列中提取的示例对象检测输出。
具体地,图3示出了三个示例输入图像310、320和330的示例对象检测输出的部分。每个部分包括指定图像中的边界框之一的信息。
从图3可以看出,系统使用神经网络110处理输入图像310、320和330中的每一个以生成相应的输出序列,并且然后从输入图像的输出序列中提取对应的对象检测输出部分312、314和316。
例如,对象检测输出部分312指定边界框在y_min=9和x_min=7处(在像素坐标中)具有右下角,在y_max=67和x_max=98处具有右上角,并且是属于“火车(the train)”类别的对象的图像。例如,当词元表示为整数,图像为100x100,并且每个第一词元对应于图像的一个像素时,系统可以从子序列[9,7,67,98,115]中提取对象检测输出部分,其中“115”是表示“火车”类别的词元。即,虽然部分312被示为包括每个元素的标识信息,但底层输出序列仅是来自词汇表的离散词元序列。
图4是用于训练对象检测神经网络的示例过程400的流程图。为了方便起见,过程400将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当编程的训练系统——例如,图1中描绘的对象检测系统100或一个或多个位置中的一个或多个计算机的不同系统——可以执行过程400。
系统可以对不同批次的训练示例重复执行过程400的迭代以训练神经网络,即,重复调整神经网络的参数的值。也就是说,在过程400的每次迭代中,系统例如通过从较大的训练数据集合采样批次来获得一批一个或多个训练示例,并且然后执行过程400的迭代以更新迭代的网络参数的当前值。
例如,系统可以继续执行过程400的迭代,直到已经满足终止标准,例如,直到已经执行了阈值数量的训练迭代,直到经过了指定的时间量,或者直到已经确定参数收敛。
系统获得一批训练示例(步骤402)。每个训练示例包括训练图像和目标输出,该目标输出标识训练图像中的一个或多个地面真实边界框以及每个边界框的相应地面真实对象类别。地面真实对象类别是来自对象类别集合的对象类别,地面真实边界框内描绘的对象已经被分类为属于该对象类别。
在一些实施方式中,系统应用一种或多种增强技术以从训练示例的初始批次生成批次。
作为一个示例,系统可以通过将一个或多个图像增强策略应用于对应的初始训练图像来生成批次中的一个或多个训练图像。然后,系统可以将每个生成的训练图像与对应的初始训练图像的目标输出相关联。应用图像增强策略可以提高经训练的神经网络对可能不能在训练数据中很好地表示的各种图像扰动的鲁棒性。
例如,图像增强策略可以指定如何将随机扩缩、裁剪或其他图像增强技术应用于初始训练图像以生成一批训练示例。
作为一个示例,系统可以利用初始训练图像上的随机裁剪来执行扩缩抖动(scalejittering)。在Golnaz Ghiasi、Yin Cui、Aravind Srinivas、Rui Qian、Tsung-Yi Lin、Ekin D Cubuk、Quoc V Le和Barret Zoph在IEEE/CVF会议关于计算机视觉和模式识别的过程,2918-2928页,2021年的Simple copy-paste is a strong data augmentation methodfor instance segmentation(简单的复制-粘贴是用于实例分割的强数据增强方法)中描述了这种技术的示例。
作为另一示例,系统可以通过调整(具有固定的纵横比的)图像的大小来执行图像扩缩,使得较长侧具有固定数量的像素。
作为另一示例,系统可以将颜色失真应用于初始训练图像中的像素的强度值。在Andrew G Howard的arXiv preprint arXiv:1312.5402,2013年的Some improvements ondeep convolutional neural network based image classification(基于深度卷积神经网络的图像分类的一些改进)中描述了这种技术的示例。
代替图像增强或除了图像增强之外,系统还可以将增强应用于训练示例中的目标输出,以该井经训练的模型对噪声预测或错误标记的训练数据的鲁棒性。
例如,系统可以选择初始训练示例中的特定初始训练示例中的特定初始训练图像中的初始地面真实边界框中的一个或多个,然后,针对每个选择的初始地面真实边界框,通过向特定训练图像中的初始地面真实边界框应用噪声来生成对应训练示例中的对应地面真实边界框。例如,系统可以将随机扩缩应用于初始地面真实边界框,可以将随机移位应用于初始地面真实边界框,或两者。
针对每个训练图像,系统生成目标输出序列,该目标输出序列针对每个地面真实边界框,包括相应子序列,该相应子序列包括(i)定义边界框在图像中的位置的第一词元集合和(ii)表示边界框的地面真实对象类别的第二词元(步骤404)。也就是说,目标输出序列由一个或多个子序列组成,每个子序列对应于不同的地面真实边界框。可选地,目标输出序列中的最后一个子序列之后可以是序列结束词元,序列结束词元是目标输出序列中的最后一个词元。
因为在推断时间,边界框被布置在由神经网络生成的输出序列中的顺序无关紧要,即,在序列中比边界框B更早标识边界框A的输出应当被认为与在序列中更早放置边界框B的输出相同,所以系统可以生成目标输出序列以反映这一点。具体地,系统可以在目标输出序列内以随机顺序对相应子序列进行排序。
在一些实施方式中,系统还可以对任何给定训练图像的目标输出序列进行一个或多个修改,以改进训练之后神经网络的性能。如上所述,当使用“教师强制(teacherforcing)”训练神经网络时,系统还修改在训练期间提供给解码器神经网络的对应输入序列。修改目标输出序列(以及可选地,对应的输入序列)被称为“序列增强”。
例如,如上所述,在一些实施方式中,词元的词汇表可以包括表示不在对象类别集合中的“噪声”对象类别的词元。在这些示例中,系统可以在训练图像中生成一个或多个随机边界框,并且针对每个随机边界框,在目标输出序列中包括对应的“噪声”子序列,该“噪声”子序列包括(i)定义训练图像中的随机边界框的位置的第一词元集合和(ii)表示不在对象类别集合中的噪声对象类别的第二词元。
作为特定示例,系统可以在对应于任何真实边界框的最后子序列之后添加噪声子序列。
在一些实施方式中,系统可以将固定数量的噪声子序列添加到每个目标输出序列。在一些其他实施方式中,系统可以添加噪声子序列,使得每个目标输出序列包括相同、固定数量的子序列(即,相同数量的地面真实+噪声子序列)。
将这些随机(或“噪声”)边界框添加到目标序列中可以以各种方式改进经训练的神经网络的性能。例如,这些噪声对象中的一些可以与一些真实对象相同或重叠,从而模拟噪声和重复的预测,即,从而训练神经网络以对训练数据中的这些类型的预测更稳健。作为另一示例,将有噪声的边界框引入到目标输出序列中可以在推断时防止神经网络在不标识图像中的所有对象的情况下完成,而不将有噪声的和重复的预测引入到作为推断生成的输出中(如在使用一些其他技术(如人为降低分配给EOS词元的分数)时可能发生的)。
然后,系统训练对象检测神经网络,以针对每个训练图像和针对训练图像的目标输出序列中的词元的至少子集中的每个词元,最大化以目标输出序列和训练图像中的任何先前词元为条件的词元的对数似然(log likelihood)(步骤406)。
当目标输出序列不包括有噪声的边界框时,上述“至少一个子集”可以包括目标输出序列中的所有词元。当目标输出序列确实包括有噪声的边界框时,神经网络不被训练为最大化随机边界框的第一词元集合中的词元的对数似然(但是被训练为最大化表示噪声类别的第二词元的对数似然)。也就是说,上述“至少一个子集”包括除了用于随机边界框的第一词元集合之外的所有词元。这允许神经网络学习标识噪声边界框而不是模仿它们。
为了训练神经网络以最大化对数似然,系统通过反向传播来计算目标函数的梯度,该目标函数测量词元的至少子集相对于编码器神经网络和解码器神经网络的参数的对数似然,然后使用所确定的梯度来更新参数。例如,系统可以将适当的优化器——例如,Adam优化器、rmsProp优化器、Adafactor优化器或不同的机器学习优化器——应用于梯度和参数以更新参数。例如,针对每个训练示例,损失函数可以是训练示例中的训练输出序列的对数似然的组合——例如,和(sum)或加权和(weighted sum)——的平均值。当目标输出序列确实包括有噪声的边界框时,随机边界框的第一词元集合不被包括在组合中。
图5示出了针对给定目标输出序列训练神经网络的示例。
具体地,图5示出了在没有序列增强的情况下训练神经网络的第一示例510和在具有序列增强的情况下训练神经网络的第二示例512。更具体地,第一示例510示出了目标输出序列520和对应的输入序列530。在训练期间,训练系统使用“教师强制”,使得神经网络处理输入序列530以针对目标输出序列520中的每个位置生成相应的分数分布,该分数分布用于训练神经网络,如上所述。由于解码器采用的“因果关系(causality)”,对应的输入序列530相对于目标输出序列520移位一个词元,使得目标输出序列520中的每个给定位置的相应分数分布取决于目标输出序列520中的给定位置之前的位置处的词元(以及初始“开始”词元,该初始“开始”词元总是在推断时的自回归生成期间在第一时间步长被提供为第一输入)。该依赖性在示例510和512中由箭头示出,其中目标输出序列内的每个词元取决于通过箭头连接到词元的对应输入序列——即,由自回归解码器在每个生成时间步长处理的对应输入序列——内的每个词元。
具体地,在第一示例510中,目标输出序列520包括十个词元y1-y10,随后是EOS词元(“end”),而没有任何附加词元。
第二示例512还包括目标输出序列540和对应的输入序列550。然而,在目标输出序列540中,词元y10之后是用于两个“噪声”边界框的词元。具体地,目标输出序列540包括表示噪声边界框的坐标的两个第一词元集合,每个第一词元集合之后是指示边界框是最初不存在于对应输入图像中的有噪声边界框的“噪声”词元。类似地,对应的输入序列550还包括在词元y10之后的附加词元。用于有噪声的边界框的第一词元集合在图5中被标记为“n/a”,因为在训练神经网络时不考虑它们的对数似然,例如,它们的损失被设置为零。
本说明书结合系统和计算机程序组件使用术语“配置”。对于要被配置为执行特定操作或动作的一个或多个计算机的系统,意味着系统已经在其上安装了软件、固件、硬件或它们的组合,其在操作中使系统执行操作或动作。对于要被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括指令,该指令在由数据处理装置执行时使装置执行操作或动作。
在本说明书中描述的主题和功能操作的实施例可以在数字电子电路中、在有形地体现的计算机软件或固件中、在计算机硬件中(包括在本说明书中公开的结构及其结构等同物)或在它们中的一个或多个的组合中实现。本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,例如,编码在有形非暂时性存储介质上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行访问存储器设备或它们中的一个或多个的组合。替代地或附加地,程序指令可以被编码在人工生成的传播信号(例如,机器生成的电信号、光信号或电磁信号)上,该传播信号被生成以编码用于传输到合适的接收器装置以供数据处理装置执行的信息。
术语“数据处理装置”是指数据处理硬件,并且涵盖用于处理数据的所有种类的装置、设备和机器,通过示例包括可编程处理器、计算机或多个处理器或计算机。该装置还可以是或进一步包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置可以可选地包括创建用于计算机程序的执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
也可以被称为或描述为程序、软件、软件应用、app、模块、软件模块、脚本或代码的计算机程序可以以任何形式的编程语言编写,任何形式的编程语言包括编译或解释语言、或声明或过程语言;并且它可以以任何形式部署,包括作为独立程序或作为适合于在计算环境中使用的模块、组件、子例程或其他单元。程序可以但不必对应于文件系统中的文件。程序可以被存储在保存其他程序或数据的文件的一部分中,例如存储在标记语言文档中的一个或多个脚本,存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件,例如存储一个或多个模块、子程序或代码部分的文件中。可以部署计算机程序以在位于一个站点或分布在多个站点上并通过数据通信网络互连的一个计算机或多个计算机上执行。
在本说明书中,术语“数据库”广泛地用于指代任何数据合集:数据不需要以任何特定方式结构化或根本结构化,并且其可以被存储在一个或多个位置中的存储设备上。因此,例如,索引数据库可以包括多个数据合集,数据合集中的每个可以被不同地组织和访问。
类似地,在本说明书中,术语“引擎”广泛地用于指代被编程为执行一个或多个特定功能的基于软件的系统、子系统或过程。通常,引擎将被实现为安装在一个或多个位置中的一个或多个计算机上的一个或多个软件模块或组件。在一些情况下,一个或多个计算机将专用于特定引擎;在其他情况下,可以在同一计算机或多个计算机上安装和运行多个引擎。
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路(例如,FPGA或ASIC)或由专用逻辑电路和一个或多个编程计算机的组合来执行。
适于执行计算机程序的计算机可以基于通用或专用微处理器或两者,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行或进行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。通常,计算机还将包括或可操作地耦合以从用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘)接收数据或向其传送数据或两者。然而,计算机不需要具有这样的设备。此外,计算机可以嵌入于另一设备中,另一设备例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备,例如通用串行总线(USB)快闪驱动器,仅举几例。
适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,通过示例包括半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及CD ROM和DVD-ROM盘。
为了提供与用户的交互,本说明书中描述的主题的实施例可以在计算机上实现,该计算机具有用于向用户显示信息的显示设备,例如CRT(阴极射线管)或LCD(液晶显示器)监视器,以及用户可以通过其向计算机提供输入的键盘和定点设备,例如鼠标或轨迹球。其他种类的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;以及可以以包括声学、语音或触觉输入的任何形式接收来自用户的输入。另外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从用户的设备上的web浏览器接收到的请求而向web浏览器发送网页。此外,计算机可以通过向个人设备(例如,正在运行消息传送应用的智能电话)发送文本消息或其他形式的消息并且继而从用户接收响应消息来与用户交互。
用于实现机器学习模型的数据处理装置还可以包括例如专用硬件加速器单元,其用于处理机器学习训练或生产的公共和计算密集型部分,例如推断、工作负载。
可以使用机器学习框架(例如,TensorFlow框架)来实现和部署机器学习模型。
本说明书中描述的主题的实施例可以在计算系统中实现,该计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有图形用户界面、web浏览器或用户可以通过其与本说明书中描述的主题的实现进行交互的app的客户端计算机),或者一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如因特网。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系通过在相应计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器将数据(例如,HTML页面)传输到用户设备,例如,用于向充当客户端的设备交互的用户显示数据和从其接收用户输入。可以在服务器处从设备接收在用户设备处生成的数据,例如用户交互的结果。
虽然本说明书包含许多具体实现细节,但是这些不应当被解释为对任何发明的范围或对可以要求保护的范围的限制,而是作为可以特定于特定发明的特定实施例的特征的描述。在本说明书中在单独实施例的场境中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的场境中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,尽管上面可以将特征描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下,来自要求保护的组合的一个或多个特征可以从组合中去除,并且要求保护的组合可以涉及子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘并且在权利要求中叙述了操作,但是这不应当被理解为要求以所示的特定顺序或顺序执行这样的操作,或者执行所有所示的操作以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或被封装到多个软件产品中。
已经描述了主题的特定实施例。其它实施例在所附权利要求书的范围内。例如,权利要求中记载的动作可以以不同的顺序执行,并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定需要所示的特定顺序或顺序来实现期望的结果。在一些情况下,多任务和并行处理可能是有利的。

Claims (21)

1.一种由一个或多个计算机执行的方法,所述方法包括:
获得输入图像;
使用对象检测神经网络处理所述输入图像以生成输出序列,所述输出序列包括在多个时间步长中的每个时间步长处的相应词元,其中每个词元选自词元词汇表,所述词元词汇表包括:(i)第一词元集合,所述第一词元集合各自表示来自离散化数集合的相应离散数;以及(ii)第二词元集合,所述第二词元集合各自表示来自对象类别集合的相应对象类别;以及
从所述输出序列中的所述词元生成标识所述输入图像中的一个或多个边界框的数据,并且针对每个边界框,标识来自所述对象类别集合的所述边界框中描绘的对象所属的相应对象类别。
2.根据任一前述权利要求所述的方法,其中,所述输出序列包括与所述一个或多个边界框中的每个边界框对应的相应子序列,并且其中,生成标识所述一个或多个边界框的所述数据包括:针对每个边界框,
从属于所述第一词元集合的对应子序列中的词元中标识所述边界框在所述输入图像中的坐标;以及
将由属于所述第二词元集合的对应子序列中的词元表示的所述对象类别标识为所述边界框中描绘的所述对象所属的所述相应对象类别。
3.根据权利要求2所述的方法,其中,所述相应子序列包括来自所述第一词元集合的四个词元,并且其中,由所述四个词元表示的四个离散数指定所述边界框的两个角在所述输入图像中的坐标。
4.根据权利要求2所述的方法,其中,所述相应子序列包括来自所述第一词元集合的四个词元,并且其中,由所述四个词元表示的四个离散数指定所述边界框的中心在所述输入图像中的坐标以及所述边界框的高度和宽度。
5.根据任一前述权利要求所述的方法,其中,使用所述对象检测神经网络处理所述输入图像包括:
使用编码器神经网络处理所述输入图像以生成所述输入图像的编码表示;以及
使用解码器神经网络处理所述输入图像的所述编码表示以生成所述输出序列。
6.根据任一前述权利要求所述的方法,其中,所述对象检测神经网络被配置为:针对每个时间步长,以(i)所述输入图像和(ii)所述输出序列中的任何较早时间步长处的所述词元为条件,在所述词汇表中对所述词元生成相应分数分布,并且其中使用所述对象检测神经网络处理所述输入图像以生成输出序列包括,针对每个时间步长:
使用由所述对象检测神经网络针对所述时间步长所生成的所述相应分数分布来选择所述输出序列中的所述时间步长处的所述相应词元。
7.根据权利要求6所述的方法,其中,选择所述相应词元包括选择所述相应分数分布中具有最高分数的所述词元。
8.根据权利要求6所述的方法,其中,选择所述相应词元包括根据所述分数分布对词元进行采样。
9.根据权利要求8所述的方法,其中,选择所述相应词元包括使用核心采样根据所述分数分布对词元进行采样。
10.根据权利要求6至9中的任一项所述的方法,其中,所述词汇表包括表示不在所述对象类别集合中的噪声类别的噪声词元,并且其中使用所述对象检测神经网络处理所述输入图像以生成输出序列包括,针对所述时间步长中的特定时间步长:
确定针对所述特定时间步长具有所述最高分数的所述词元是所述噪声词元;以及
作为响应,仅从所述第二词元集合中的所述词元中选择具有所述最高分数的所述词元。
11.根据权利要求6至10中的任一项所述的方法,当引用权利要求5时,其中,所述解码器神经网络被配置为,针对每个时间步长:
在以所述输入图像的所述编码表示为条件的同时,处理所述输出序列中的任何较早时间步长处的所述词元,以生成所述时间步长的所述相应分数分布。
12.根据权利要求6至11中的任一项所述的方法,还包括:
针对所述一个或多个边界框中的每个边界框,将分配给表示在对应时间步长处的所述分数分布中的所述边界框的所述相应对象类别的词元的相应分数相关联,以表示所述相应对象类别是所述对象的正确类别的置信度。
13.根据任一前述权利要求所述的方法,还包括:
输出标识所述输入图像中的所述一个或多个边界框的所述数据,并且针对每个边界框,输出来自所述对象类别集合的所述边界框中描绘的所述对象所属的所述相应对象类别。
14.一种训练任何前述权利要求所述的对象检测神经网络的方法,所述方法包括:
获得一批训练图像,并且针对每个训练图像,获得目标输出,所述目标输出标识所述图像中的一个或多个地面真实边界框和每个边界框的相应地面真实对象类别;
针对每个训练图像,生成目标输出序列,所述目标输出序列包括针对每个地面真实边界框的相应子序列,所述相应子序列包括(i)定义所述边界框在所述图像中的位置的第一词元集合和(ii)表示所述边界框的所述地面真实对象类别的第二词元;以及
训练所述对象检测神经网络,以针对每个训练图像和针对所述训练图像的所述目标输出序列中的所述词元的至少子集中的每个词元,最大化以所述目标输出序列和所述训练图像中的任何先前词元为条件的所述词元的对数似然。
15.根据权利要求14所述的方法,其中,获得一批训练图像,并且针对每个训练图像,获得目标输出,所述目标输出标识所述图像中的一个或多个地面真实边界框和每个边界框的相应地面真实对象类别包括:
通过将一个或多个图像增强策略应用于对应的初始训练图像来生成所述批次中的所述训练图像中的一个或多个训练图像。
16.根据权利要求14或15所述的方法,其中,获得一批训练图像,并且针对每个训练图像,获得目标输出,所述目标输出标识所述图像中的一个或多个地面真实边界框和每个边界框的相应地面真实对象类别包括:
对于特定训练图像中的特定边界框,通过将噪声应用于所述特定训练图像中的初始地面真实边界框来生成所述边界框。
17.根据权利要求14至16中的任一项所述的方法,其中,针对每个训练图像,生成目标输出序列包括:
生成在所述训练图像中的一个或多个随机边界框;以及
针对每个随机边界框,在所述目标输出序列中包括(i)定义所述随机边界框在所述训练图像中的位置的第一词元集合和(ii)表示不在所述对象类别集合中的噪声对象类别的第二词元。
18.根据权利要求17所述的方法,其中,所述对象检测神经网络未被训练以最大化所述随机边界框的所述第一词元集合中的所述词元的所述对数似然。
19.根据权利要求14至18中的任一项所述的方法,其中,针对每个训练图像,生成目标输出序列包括:
在所述目标输出序列内以随机顺序对相应子序列进行排序。
20.一种系统,包括:
一个或多个计算机;以及
一个或多个存储设备,所述一个或多个存储设备存储指令,所述指令在由所述一个或多个计算机执行时使所述一个或多个计算机执行根据权利要求1至19中任一项的相应操作。
21.一个或多个存储指令的计算机可读存储介质,所述指令在由一个或多个计算机执行时使所述一个或多个计算机执行根据权利要求1至19中任一项所述的方法的相应操作。
CN202280056796.5A 2021-09-17 2022-09-19 通过生成词元的序列来检测图像中的对象 Pending CN117836817A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163245783P 2021-09-17 2021-09-17
US63/245,783 2021-09-17
PCT/US2022/044031 WO2023044131A1 (en) 2021-09-17 2022-09-19 Detecting objects in images by generating sequences of tokens

Publications (1)

Publication Number Publication Date
CN117836817A true CN117836817A (zh) 2024-04-05

Family

ID=83689771

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280056796.5A Pending CN117836817A (zh) 2021-09-17 2022-09-19 通过生成词元的序列来检测图像中的对象

Country Status (2)

Country Link
CN (1) CN117836817A (zh)
WO (1) WO2023044131A1 (zh)

Also Published As

Publication number Publication date
WO2023044131A1 (en) 2023-03-23
WO2023044131A9 (en) 2024-03-28

Similar Documents

Publication Publication Date Title
EP3602409B1 (en) Selecting actions using multi-modal inputs
CN111279362B (zh) 胶囊神经网络
US10242289B2 (en) Method for analysing media content
EP3819790A2 (en) Method and apparatus for visual question answering, computer device and medium
US20180189950A1 (en) Generating structured output predictions using neural networks
US20210374453A1 (en) Segmenting objects by refining shape priors
EP3859560A2 (en) Method and apparatus for visual question answering, computer device and medium
CN113039555B (zh) 在视频剪辑中进行动作分类的方法、系统及存储介质
US11636347B2 (en) Action selection using interaction history graphs
CN110770759A (zh) 神经网络系统
US11163989B2 (en) Action localization in images and videos using relational features
CN111582175A (zh) 一种共享多尺度对抗特征的高分遥感影像语义分割方法
CN113344206A (zh) 融合通道与关系特征学习的知识蒸馏方法、装置及设备
CN111368634B (zh) 基于神经网络的人头检测方法、系统及存储介质
CN110490058B (zh) 行人检测模型的训练方法、装置、系统和计算机可读介质
CN114330588A (zh) 一种图片分类方法、图片分类模型训练方法及相关装置
CN109919214B (zh) 一种神经网络模型的训练方法及训练装置
US20220215580A1 (en) Unsupervised learning of object keypoint locations in images through temporal transport or spatio-temporal transport
CN114792097B (zh) 预训练模型提示向量的确定方法、装置及电子设备
WO2023158881A1 (en) Computationally efficient distillation using generative neural networks
EP3959652B1 (en) Object discovery in images through categorizing object parts
CN117836817A (zh) 通过生成词元的序列来检测图像中的对象
WO2023225335A1 (en) Performing computer vision tasks by generating sequences of tokens
CN116030347B (zh) 一种基于注意力网络的高分辨率遥感影像建筑物提取方法
CN114241411B (zh) 基于目标检测的计数模型处理方法、装置及计算机设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination