本专利申请要求2020年2月13日提交的名称为“Object Detection Based OnPixel Differences”的美国临时专利申请62/929706号的优先权权益,该专利申请的公开内容据此全文并入本文。
具体实施方式
下面示出的具体实施方式旨在作为本主题技术的各种配置的描述并且不旨在表示本主题技术可被实践的唯一配置。附图被并入本文并且构成具体实施方式的一部分。具体实施方式包括具体的细节旨在提供对本主题技术的透彻理解。然而,本主题技术不限于本文阐述的具体细节,而是可以采用一个或多个其他具体实施来实践。在一个或多个具体实施中,以框图形式示出了结构和部件,以便避免使本主题技术的概念模糊。
在特定实施方案中,计算系统可利用机器学习模型来改善多媒体数据分析的效率和有效性。多媒体数据分析可包括对任何合适的多媒体数据诸如文本、图像、视频、音频等的分析。多媒体数据分析可与特定应用相关联,诸如图像/视频中的对象检测/识别、图像/视频中的对象跟踪、图像/视频中的动作检测、图像/视频中的事件检测/识别、图像/视频中的分段、自然语言处理等。在特定实施方案中,机器学习模型可以是受监督的、半监督的或无监督的。机器学习模型可基于回归学习、强化学习、决策树、随机森林、支持向量机、神经网络或任何合适的学习算法。在特定实施方案中,计算系统可使用基于神经网络的机器学习模型以进行多媒体数据分析。作为示例而非限制,基于神经网络的模型可包括卷积神经网络、长-短期存储器单元、或递归神经网络中的一者或多者,或它们的任何组合。
神经网络是彼此间交换消息的互连人工“神经元”的系统。连接具有在训练过程期间调整的数值权重,使得经适当训练的网络在面临要识别的图像或模式时将正确地响应。该网络由多层特征检测“神经元”组成。每个层具有多个神经元,这些神经元对来自先前层的输入的不同组合作出响应。网络的训练使用与其预期输出响应相关联的各种具有代表性输入模式中的输入的“标记”数据集来执行。训练使用迭代操作以迭代地确定中间和最终特征神经元的权重。就计算模型而言,每个神经元计算输入和权重的点积,加上偏差,并应用非线性触发器函数(例如,使用sigmoid响应函数)。深度神经网络(DNN)已在包括计算机视觉和语音识别在内的若干应用领域中显示出显著的改进。在计算机视觉中,被称为卷积神经网络(CNN)的特定类型的DNN可提供图像和视频分析中的最先进结果。
卷积神经网络(CNN)是上述神经网络的一个特例。CNN包含通常具有子采样层的一个或多个卷积层,之后是一个或多个全连接层,如标准神经网络中那样。卷积神经网络(CNN)可用于文本/音频/图像/视频处理的目的,并且可在现实世界应用中有用的不同任务中提供可靠结果。卷积层用于文本/音频/图像/视频处理,因为它们相对快速地从这些多媒体数据中提取特征,并且学习提取对于其训练卷积层的问题的正确特征(例如,被训练用于分类的卷积层可学习与被训练用于回归的层不同的滤波器(即权重),因为在这些场景中的每个场景中,不同的方面或特性有关系)。
根据本公开的方面,可训练一个或多个机器学习模型诸如基于神经网络的机器学习模型以基于像素差异来识别和/或分类对象和/或动作。像素差异可以是在第一时间捕获的第一图像的像素的值与在第二时间捕获的第二图像中的空间对应像素的值之间的差异值。通过向机器学习模型提供像素差异信息,机器学习模型可消耗可有助于识别对象和/或动作的时间信息而不改变模型(例如,神经网络)的结构,以便单独地接收图像信息和时间信息。在一个或多个具体实施中,第二图像可选自和/或生成自在除了第一时间之外的时间捕获的多个图像。在一个或多个具体实施中,第一图像和第二图像本身可被提供给机器学习模型,以允许模型学习时间信息在对该对象和/或动作进行分类方面的相关性。
图1示出了卷积神经网络(CNN)模型100的示例性架构。图1示出了导致输出108的产生的一个或多个卷积级102、子采样104和全连接级106。如图1所示,将输入数据(诸如图像的数字化表示)提供给一个或多个卷积级102(在图中表示为“第1级”和“第2级”)。将每个卷积级的输出作为输入提供给下一级;在一些情况下,可以执行进一步的子采样操作104。最终子采样级充当分类器,其中输出被传递到一个或多个全连接级106以产生输出108。
在CNN中,卷积层发挥特征提取器的作用,其中卷积滤波器内核-权重被确定为训练过程的一部分。卷积层能够提取局部特征,因为它们将隐藏层的接收域限制为局部的。用于特征提取的卷积层的权重以及用于分类的全连接层的权重在训练过程期间确定。
通过在CNN中堆叠多个不同的层,可以针对不同问题(例如,分类)构建复杂架构。四种类型的层是最常见的:卷积层、池化层/子采样层、非线性层和全连接层。卷积操作提取输入的不同特征。第一卷积层提取低级别的特征,诸如边缘、线条和拐角;更高级别的层提取更高级别的特征。池化层/子采样层用来降低特征的分辨率并且使得特征对噪声和畸变更稳健。存在至少两种方法来执行池化:最大池化和平均池化。一般来讲,神经网络(尤其是CNN)依靠非线性“触发”功能来发信号指示对每个隐藏层上的可能特征的不同识别。
CNN可使用多种特定功能,诸如整流线性单元(ReLU)和连续触发(非线性)功能,以有效地实现该非线性触发功能。全连接层通常用作CNN的最终层。这些层以数学方式对前一层特征的权重求和,以指示用于确定特定的目标输出结果的因素的精确混合。对于全连接层,前一层的所有特征的所有元素用于计算每个输出特征的每个元素。最终层对网络输出进行解码并且由任务确定。作为示例而非限制,对于图像分类,使用分类器来输出概率集合,其中argmax是输入图像的最可能标签。在对象检测中,在输出中可包括类概率、边界框坐标以及其大小。
在特定实施方案中,计算系统可使用压缩CNN模型,该压缩CNN模型可适用于具有低功率和低存储器的计算平台。作为示例而非限制,计算平台可包括现场可编程门阵列(FPGA)。压缩CNN模型可适用于较小设备,诸如蜂窝/智能电话、平板计算设备、嵌入式电子设备、虚拟现实和增强现实中的智能可穿戴设备等。在特定实施方案中,计算系统可在训练压缩CNN模型时集成融合和量化。在特定实施方案中,计算系统可对CNN模型的卷积层和批归一化层两者执行量化。
对于卷积层,计算系统可将该层的浮点输入和相关权重/参数量化为低位(例如,8位或更少)定点数。对于批归一化层,计算系统可基于与特定参数绑定的特定均值和方差来归一化输入数据,并且随后将归一化数据类似地量化为低位定点数。此外,计算系统可将量化卷积与和批归一化相关联的缩放因子融合。计算系统可进一步量化融合结果以完成压缩CNN模型。
在特定实施方案中,计算系统可使用二值化CNN模型,该二值化CNN模型对于实现卷积操作而言可以是计算有效的。计算系统可以在二值化输入和二值化权重之间执行一个或多个二进制卷积以生成对应于特定任务的输出。在二进制卷积中,向权重和输入激活空间两者赋予二进制(例如,二进制值诸如+1或-1)。为了加速训练时间并改善训练准确度,批归一化可将输入批归一化为具有零均值和单位方差。在训练时间期间,可学习乘法和偏倚的若干常数。然后,在推断时间,这些常数可被折叠成更简单的代数表达式,从而得到融合乘加每输入值。
在特定实施方案中,二值化CNN模型可基于二值化。二值化可提取实值输入的符号并将其打包成位阵列。例如,大于0的值可表示为“0b1”,否则该值可表示为“0b0”。作为示例而非限制,输入可包括多个值。因此,对输入进行二值化可以包括针对多个值中的每个值提取与该值相关联的符号,以及针对多个值中的每个值将所提取的符号打包成位阵列。
图2示出了二值化CNN模型中的卷积层的示例性可视化200。作为示例而非限制,图2示出了大小为28×28×128的卷积层,其具有512个输出滤波器并且滤波器大小为3。如图2所示,兆字节(MiB)是用于计算机数据存储的测量单位。前缀mebi来自基于二的幂的数据测量的二进制系统。兆字节等于220或1,048,576个字节。存储器节省的大部分可发生在二值化步骤处,其中输入和权重两者中的通道尺寸以32的因子收缩。二进制卷积可使用显著更少的存储器,同时改善性能。在该示例中,数据类型大小为32位,并且所有矩形平行六面体以2:2:1的x:y:z比率彼此成比例地进行绘制。
在特定实施方案中,计算系统可将机器学习模型存储在二进制推断引擎中。计算系统还可将二进制推断引擎及其相关联的模型数据组合在单个模块中,使得整个引擎/模型自包含在单个模块中。在特定实施方案中,单个模块可被存储为包括动态链接库(dll)文件或扩展二进制(xb)文件中的一者或多者的特定文件。dll/xb文件可用于保持多个代码和规程。作为示例而非限制,用户可使用在客户端设备或附接到摄像机和扬声器的计算机上运行的应用程序。应用程序可动态链接到xb文件。在一个示例中,用户可使用应用程序对场景与其中的人进行分类。例如,应用程序可与包括用于检测人的代码和/或规程的文件(诸如名为“人检测器.xb”的文件)相关联,该文件可在运行时被动态加载。在一个示例中,如果在输入到应用程序的一个或多个图像中检测到人,则应用程序可通过扬声器输出说出“人”的波文件。
用户还可使用该应用程序对所检测的人的情绪状态进行分类。在不重新编译应用程序的情况下,计算系统可通过包括用于检测情绪的代码和/或规程的文件(诸如磁盘上名为“情绪检测器.xb”的文件)交换出“人类检测器.xb”文件。在该示例中,用户可重新启动应用程序,并且扬声器可响应于在一个或多个图像中检测到快乐情绪或难过情绪而说出“快乐”或“难过”。在特定实施方案中,计算系统可使用链接器将二进制推断引擎和模型数据组合。因此,在运行时,计算系统可具有自提取(例如,至存储器或临时存储装置)适当模型(例如,参数等)的能力。计算系统还可基于存储器中或特定文件(例如,xb文件)的数据部分中的声明数据来构造机器学习架构。在特定实施方案中,单个特定文件可具有多个二进制推断引擎。因此,计算系统可经由一个或多个应用程序编程接口(API)来列举多个二进制推断引擎。在特定实施方案中,计算系统可通过集成机器学习模型及其相关的模型数据来辅助用户有效且高效地解决多个任务。
在特定实施方案中,计算系统可通过合并与由静态相机捕获的图像/视频相关联的时间信息来训练对象和/或动作检测模型。所得的对象检测模型可具有优于常规对象检测模型的改善的性能。在特定实施方案中,计算系统可粗略估计图像/视频帧的前景并将前景作为额外输入传递到模型中。计算系统还可粗略估计图像/视频帧的背景以从当前图像/视频帧中减去该背景,从而检索前景掩模(例如,包括感兴趣的对象的图像数据)。作为示例而非限制,减法可基于当前图像/视频帧与先前图像/视频帧之间的像素差异。
像素差异可为将在第一时间捕获的场景的第一图像的像素的像素值从在第二时间捕获的场景的第二图像的对应像素的对应像素值中减去而得到的差异值。在一个或多个具体实施中,可通过从第一图像减去第二图像来获得整个图像的像素差异,或反之亦然。
在特定实施方案中,图像流或视频可与时间信息相关联。每个图像/视频帧可以是例如标准RGB图像。利用当前图像/视频帧与先前图像/视频帧之间的像素减法,计算系统可基于此类差异来识别对象的移动。在特定实施方案中,像素减法可以是从前景进行的背景减法的基础。计算系统可粗略估计图像流或视频的背景。在特定实施方案中,计算系统可取当前图像/视频帧之前的多个图像/视频帧(例如,100个)的平均值作为背景的估计。计算系统还从当前图像/视频帧中减去估计,并且将减法结果提供到对象检测模型的训练过程和/或推断过程中。
在特定实施方案中,计算系统可使用不同的技术来训练多个对象检测模型。计算系统可将经训练的对象检测模型应用于由例如静态(例如,静止或固定)相机捕获的图像/视频。将经训练的对象检测模型应用于来自静态相机的图像/视频的结果可用于测试静态相机对于对象检测的功效。作为示例而非限制,本文所公开的实施方案已使用由特定静态相机收集的数据集作为实验来测试本文所公开的不同对象检测模型。数据集可包括多个视频剪辑。每个视频剪辑可以是例如12秒长。每个视频剪辑可以包括以例如每秒一帧(fps)采样的多个帧。
在一个或多个实施方案中,计算系统可如下训练对象检测模型。计算系统可首先通过以下方式来粗略估计图像/视频帧的流中的前景或运动:进行当前图像/视频帧与先前图像/视频帧之间的像素减法,以及取所得量的绝对值。将ti表示为当前图像/视频帧中的像素,并且将ti-1表示为先前图像/视频帧中的像素,前景计算的运算可被公式化为|ti-ti-1|,其中||是计算绝对值的操作。计算系统可在当前图像/视频帧的一些或所有像素与先前图像/视频帧的那些像素(例如,对应像素)之间执行上述运算。
图3示出了当前图像300(例如,在第一时间捕获的场景的第一图像)、先前图像302(例如,在第二时间捕获的场景的第二图像),以及基于当前图像300与先前图像302之间的像素差异而生成的图像304(例如,差异图像)之间的示例性比较。可以看出,可基于当前图像300和先前图像302之间的像素减法将人306识别为前景对象。
图4示出了当前图像400、先前图像402,以及基于当前图像400与先前图像402之间的像素差异而生成的图像404(例如,差异图像)之间的另一个示例性比较。可以看出,可基于当前图像400和先前图像402之间的像素减法将卡车406识别为前景对象。图像或视频帧可具有对应于基色的一个或多个通道。例如,图像或视频帧可具有红色通道、绿色通道和蓝色通道,即RGB图像。在特定实施方案中,计算系统可计算图像/视频帧的每个通道的像素减法。然后可将来自每个通道的减法结果级联为三个额外通道(例如,对于RGB图像/视频帧)。
在特定实施方案中,计算系统可通过使用ImageNet(即,公用数据集)或任何其他训练图像集来基于神经网络训练对象检测模型。对于此类训练,计算系统可首先对训练图像/视频帧执行图像预处理,诸如均值和方差归一化。在预处理之后,可对所有三个通道执行前述像素减法和级联。例如,神经网络的输入通道的数量可从3翻倍至6。实验结果的准确度可通过例如平均精度均值(mAP)来量化,以测量各种对象检测模型的性能。例如,本文所述的对象检测模型的mAP可用于将对象检测模型的性能与例如没有差异信息的常规对象检测模型的基线性能进行比较。在一个或多个示例中,可以使用mAP@N来执行比较,其中“@”之后的数字N反映候选边界框与被认为是成功匹配的基准真值的最小交并比(IoU)。实验结果(例如,在如图3和图4所示的人和/或车辆检测的示例性使用案例中)示出了该对象检测模型(例如,被训练为基于包括与三个图像通道级联的三个差异通道的输入来检测对象的模型,差异通道基于当前图像和先前图像之间的像素减法)的mAP@0.5比使用没有差异信息的常规对象检测模型的基线高约30%。
在一个或多个实施方案中,计算系统可如下训练另一个对象检测模型。计算系统可首先通过以下方式来粗略估计图像/视频帧的流中的前景或运动:进行当前图像/视频帧与先前图像/视频帧之间的原始像素减法而不是像素差异的绝对值。将ti表示为当前图像/视频帧中的像素,并且将ti-1表示为先前图像/视频帧中的像素,前景计算的运算可被公式化为ti-ti-1。计算系统可在当前图像/视频帧的一些或所有像素与先前图像/视频帧的那些像素(例如,对应像素)之间执行上述运算。通过这样做,计算系统可获得额外信息,因为原始像素差异也包括符号。额外信息可改善对象检测模型的训练。类似地,计算系统可计算图像/视频帧的每个通道的原始像素减法。然后可将来自每个通道的减法结果级联为三个额外通道(例如,对于RGB图像/视频帧)。
计算系统还可通过使用ImageNet(即,公用数据集)和/或任何其他训练图像集来基于神经网络训练对象检测模型。对于此类训练,计算系统可首先对训练图像/视频帧执行图像预处理,诸如均值和方差归一化。在预处理之后,可对所有三个通道执行前述像素减法和级联。实验结果表明,该对象检测模型的mAP@0.5比基线高约32%。
在一个实施方案中,计算系统可如下训练另一个对象检测模型。计算系统可将先前图像/视频帧与当前图像/视频帧级联,而不考虑它们之间的像素差异。通过这样做,计算系统可避免强制执行人类先验知识,即训练对象检测模型需要基于像素差异的额外通道,并且额外通道是有用信息。相反,如果实际上有用,则训练过程可以能够学习计算像素差异。在特定实施方案中,计算系统还可通过使用ImageNet(即,公用数据集)或任何其他训练图像集来基于神经网络训练对象检测模型。对于此类训练,计算系统可首先对训练图像/视频帧执行均值和方差归一化。此后,执行先前图像/视频帧和当前图像/视频帧之间的前述级联。实验结果表明,该对象检测模型的mAP@0.5比使用没有时间信息的常规对象检测模型的基线高约26%。
在一个或多个实施方案中,计算系统可如下训练另一个对象检测模型。当训练对象检测模型时,计算系统可应用噪声减小技术。当图像流或视频包含显示从图像/帧到图像/帧的微小移动的对象(例如,除了针对其期望检测的对象之外的对象)时,此类技术可以是有用的。作为示例而非限制,风吹的树木的移动可导致将噪声引入像素减法中。计算系统可首先通过以下方式来粗略估计图像/视频帧的流中的前景或运动:进行当前图像/视频帧与先前图像/视频帧之间的原始或绝对值像素减法。将ti表示为当前图像/视频帧中的像素,并且将ti-1表示为先前图像/视频帧中的像素,前景计算的运算可被公式化为ti-ti-1或其绝对值。
计算系统可在当前图像/视频帧的一些或所有像素与先前图像/视频帧的那些像素(例如,对应像素)之间执行上述运算。然后,计算系统可将低通滤波器添加到先前图像/视频帧与当前图像/视频帧之间的减法结果(例如,基于所有像素)以减小由减法引起的噪声。作为示例而非限制,低通滤波器可以是简单的高斯模糊。高斯模糊在顶部可为3×3高斯模糊,其中sigma值为2。计算系统还可通过使用ImageNet(即,公用数据集)或任何其他训练图像集来基于神经网络训练对象检测模型。对于此类训练,计算系统可首先对训练图像/视频帧执行图像预处理,诸如均值和方差归一化。在预处理之后,可执行前述像素减法和噪声减小(例如,高斯模糊),这导致神经网络的输入。实验结果表明,该对象检测模型的mAP@0.5比使用没有差异信息的常规对象检测模型的基线高约32%。
在一个或多个实施方案中,计算系统可如下训练另一个对象检测模型。在一些情况下,纯像素减法可能无法准确地对图像或视频帧的实际背景进行建模,这可能导致“重像”而不是仅提供前景信息。“重像”是其中对象在先前图像/视频帧中但不在当前图像/视频帧中的那些图像。纯像素减法可提供关于对象在先前帧中的位置的某种信号,但也可在训练期间混淆对象检测模型。
计算系统可以(例如,为了解决重像问题)对两个、三个或多于三个(例如,许多)先前图像/视频帧取平均值,这可提供更好的背景近似值以用于从当前图像/视频中减去。这可能是因为,对于任何给定像素,在大部分时间,该像素中的内容可以是背景,因此通过对若干先前图像/视频帧取平均值,计算系统可随着时间推移尽可能接近真实(例如,背景)值地粗略估计像素。在特定实施方案中,计算系统可首先计算多个先前图像/视频帧的均值作为背景的近似值。作为示例而非限制,计算系统可对先前3、5或7个图像/视频帧取平均值。然后,计算系统可在当前图像/视频帧和粗略估计背景(例如,取平均的3、5或7个先前图像/帧)之间进行原始(或绝对值)像素减法。将ti表示为当前图像/视频帧中的像素,并且将ti-1表示为粗略估计(例如,平均)背景中的像素,前景计算的运算可被公式化为ti-ti-1或其绝对值。
计算系统可在当前图像/视频帧的一些或所有像素和粗略估计背景的那些像素(例如,对应像素)之间执行上述运算。类似地,计算系统可计算图像/视频帧的每个通道的原始像素减法。然后可将来自每个通道的减法结果级联为三个额外通道(例如,对于RGB图像/视频帧)。计算系统还可通过使用ImageNet(即,公用数据集)或任何其他训练图像集来基于神经网络训练对象检测模型。对于此类训练,计算系统可首先对训练图像/视频帧执行预处理操作,诸如均值和方差归一化。在预处理之后,对所有三个通道执行前述像素减法和级联。实验结果表明,当通过对先前3个图像/视频帧取平均值来粗略估计背景时,该对象检测模型的mAP@0.5比基线高约31.5%;当通过对先前5个图像/视频帧取平均值来粗略估计背景时,该对象检测模型的mAP@0.5比基线高约32%;并且当通过对先前7个图像/视频帧取平均值来粗略估计背景时,该对象检测模型的mAP@0.5比基线高约29%。
在一个或多个实施方案中,计算系统可如下训练另一个对象检测模型。如上所述,纯像素减法可能无法准确地对图像或视频帧的实际背景进行建模。在一个或多个具体实施中,计算系统可以取一个、两个、三个或多于三个(例如,许多)先前图像/视频帧之间的中值作为背景的近似值。使用中值的原因在于中值为对异常值更稳健的统计量,因此在一些情况下,若干先前图像的中值可比若干先前图像的均值更好地粗略估计背景。作为示例而非限制,计算系统可以取先前3、5或7个图像/视频帧之间的中值。然后,计算系统可在当前图像/视频帧和由先前图像/帧的中值得到的粗略估计背景之间进行原始(或绝对值)像素减法。将ti表示为当前图像/视频帧中的像素,并且将ti-1表示为根据先前图像/帧的中值生成的粗略估计(例如,中值)背景中的像素,前景计算的运算可被公式化为ti-ti-1或其绝对值。
计算系统可在当前图像/视频帧的一些或所有像素和粗略估计背景的那些像素(例如,对应像素)之间执行上述运算。类似地,计算系统可计算图像/视频帧的每个通道的原始(或绝对值)像素减法。然后可将来自每个通道的减法结果级联为三个额外通道(例如,对于RGB图像/视频帧)。计算系统还可通过使用ImageNet(即,公用数据集)或任何其他训练图像集来基于神经网络训练对象检测模型。对于此类训练,计算系统可首先对训练图像/视频帧执行图像预处理操作,诸如均值和方差归一化。在预处理之后,可对所有三个通道执行前述像素减法和级联。在特定实施方案中,计算系统可应用启发式运行接近作为在推断期间实现这种中值背景估计的方式。实验结果表明,当通过取先前3个图像/视频帧的中值来粗略估计背景时,该对象检测模型的mAP@0.5比基线高约30%;当通过取先前5个图像/视频帧的中值来粗略估计背景时,该对象检测模型的mAP@0.5比基线高约33%;并且当通过取先前7个图像/视频帧的中值来粗略估计背景时,该对象检测模型的mAP@0.5比基线高约28%。
图5示出了示例性实验结果。在图5中,顶部曲线对应于对象检测模型在通过取先前5个图像/视频帧的中值来粗略估计背景时获得的结果。第二顶部曲线对应于对象检测模型在通过取先前3个图像/视频帧的中值来粗略估计背景时获得的结果。底部曲线对应于由基线模型获得的结果。
在一个或多个实施方案中,计算系统可如下训练另一个对象检测模型。计算系统可以使用数据增强来改变哪个图像/视频帧将用于像素差异计算,而不是使用紧接在当前图像/视频帧之前的图像/视频帧。当训练数据集的采样率限于特定值(例如,1fps)时,该方法可合理使用,因为人/对象移动的实际速度可变化(例如,相对于固定采样率)。在特定实施方案中,使用数据增强可基于特定参数。数据增强的示例性参数可被表示为“跳过窗口”。该参数可被视为从其考虑采样的窗口。作为示例而非限制,如果“跳过窗口”=n,则计算系统可考虑n个图像/视频帧的窗口。例如,n可为3或4。
计算系统可对当前图像/视频帧进行采样,从而留下n-1个图像/视频帧以供考虑从当前图像/视频帧中减去。计算系统可(例如,随机地)对先前图像/视频帧进行采样以用于从那些n-1个剩余图像/视频帧的像素减法(诸如以均匀概率)。因此,在用于减法的当前帧和先前帧之间经过的时间量可变化。在特定实施方案中,可能不需要标记的先前图像/视频帧,因为计算系统仅计算当前图像/视频帧的丢失。因此,本文所公开的实施方案可具有针对(例如,可公开获得的)训练数据集的更多数据提高采样率的技术优点,即使此类数据集具有受约束采样率(例如,1fps)。作为示例而非限制,计算系统可以首先确定窗口大小(例如,3个或4个)。
然后,计算系统可对当前图像/视频帧进行采样。然后,计算系统可取3个或4个先前的图像/视频帧作为候选池。然后,计算系统可能以均匀概率从这3个或4个候选池图像/视频帧中随机选择一个图像/视频帧。然后,计算系统可在当前图像/视频帧与所选择的图像/视频帧之间进行原始(或绝对值)像素减法。计算系统可在当前图像/视频帧的一些或所有像素与所选择的图像/视频帧的那些像素(例如,对应像素)之间执行上述运算。类似地,计算系统可计算图像/视频帧的每个通道的原始(或绝对值)像素减法。然后可将来自每个通道的减法结果级联为三个额外通道(例如,对于RGB图像/视频帧)。
计算系统还可通过使用ImageNet(即,公用数据集)或任何其他训练图像集来基于神经网络训练对象检测模型。对于此类训练,计算系统可首先对训练图像/视频帧执行图像预处理,诸如均值和方差归一化。在预处理之后,对所有三个通道执行前述像素减法和级联。在推断时间期间,计算系统可随机对样本窗口内的图像或视频帧进行采样。在另选的实施方案中,计算系统可以使用更复杂的方法以在推断时间期间对图像/视频帧进行采样。作为示例而非限制,计算系统可对来自当前图像/视频帧的不同延迟取平均值以对先前图像/视频帧进行采样。实验结果表明,当窗口大小为3时,该对象检测模型的mAP@0.5比基线高约31.5%,并且当窗口大小为4时,该对象检测模型的mAP@0.5比基线高约29%。
在特定实施方案中,针对上述不同实施方案,计算系统可使用不同类型的神经网络来训练对象检测模型而不是使用像素差异。作为示例而非限制,计算系统可将绝对/原始像素差异合并到双流卷积网络中。双流神经网络采用时间输入和空间输入两者。双流神经网络的直观是模型可利用不同的滤波器来表示来自运动的特征,而不是利用特征来从静态图像导出背景。例如,时间输入可包括光流并且空间输入可包括RGB图像。因此,在网络中存在用于单独输入(例如,RGB图像和光流)的两个路径,并且通常存在横向连接以在路径之间共享信息。在特定实施方案中,当使用双流卷积网络时,计算系统可将单独路径应用于本文所公开的绝对/原始像素差异,而不是原始RGB图像。作为另一个示例而非限制,计算系统可将绝对/原始像素差异合并到集成区域提议和特征提取的深度卷积神经网络中。
作为另一个示例而非限制,计算系统可将绝对/原始像素差异合并到区域提议网络(R-CNN)中。R-CNN使用选择性搜索来确定区域提议,通过分类网络推送这些区域提议,并且然后使用支持向量机(SVM)来对不同区域进行分类。作为又另一个示例而非限制,计算系统可将绝对/原始像素差异合并到递归神经网络(RNN)中。RNN是一类人工神经网络,其中节点之间的连接沿着时间序列形成有向图。这允许网络表现出时间动态行为。
图6示出了向量空间600的示例性视图。在特定实施方案中,对象或n-gram可在d维向量空间中表示,其中d表示任何合适数量的维度。尽管向量空间600被示为三维空间,但这仅是为了进行示意性的说明,因为向量空间600可具有任何合适的维度。在特定实施方案中,n-gram可以在向量空间600中表示为被称为术语嵌入的向量。每个向量可包括对应于向量空间600中的特定点(即,向量的端点)的坐标。作为示例而非限制,向量610、620和630可以表示为向量空间600中的点,如图6所示。n-gram可被映射到相应的向量表示。作为示例而非限制,可通过应用由字典定义的函数
来将n-gram t
1和t
2分别映射到向量空间600中的向量
和
使得
和
作为另一个示例而非限制,可利用被训练以将文本映射到向量表示的词典,或者这种词典可经由训练来自生成。作为另一个示例而非限制,字嵌入模型可用于将n-gram映射到向量空间600中的向量表示。在特定实施方案中,可通过使用机器学习模型(例如,神经网络)将n-gram映射到向量空间600中的向量表示。可能已经使用训练数据的序列(例如,各自包括n-gram的对象的语料库)来训练机器学习模型。
在特定实施方案中,对象可在向量空间600中表示为被称为特征向量或对象嵌入的向量。作为示例而非限制,可通过应用函数
来将对象e
l和e
2分别映射到向量空间600中的向量
和
使得
和
在特定实施方案中,可基于对象的一个或多个特性、属性或特征,对象与其他对象的关系,或与对象相关联的任何其他合适信息来将对象映射到向量。作为示例而非限制,函数
可通过特征提取将对象映射到向量,该特征提取可从测量数据的初始集合开始并构建导出值(例如,特征)。作为示例而非限制,可通过使用算法来检测或隔离对象的各种期望部分或形状而将包括视频或图像的对象映射到向量。用于计算向量的特征可基于从边缘检测、拐角检测、斑点检测、棱线检测、缩放不变特征转换、边缘方向、变化强度、自相关、运动检测、光流、阈值分割、斑点提取、模板匹配、霍夫变换(例如,线、圆、椭圆、任意形状)获得的信息,或任何其他合适的信息。作为另一个示例而非限制,可基于特征诸如频谱斜率、音调系数、音频频谱质心、音频频谱包络、媒体频率倒谱系、或任何其他合适的信息将包括音频数据的对象映射到向量。
在特定实施方案中,当对象具有太大而无法有效处理的数据或包括冗余数据时,函数
可使用转换的缩减特征集合(例如,特征选择)来将对象映射到向量。在特定实施方案中,函数
可基于与对象e相关联的一个或多个n-gram将对象e映射到向量
虽然本公开以特定方式描述了在向量空间中表示n-gram或对象,但本公开设想了以任何合适的方式在向量空间中表示n-gram或对象。
在特定实施方案中,计算系统可计算向量空间600中的向量的相似性度量。相似性度量可以是余弦相似性、闵可夫斯基距离(Minkowski distance)、马氏距离(Mahalanobisdistance)、杰卡德相似性系数(Jaccard similarity coefficient)、或任何合适的相似性度量。作为示例而非限制,
和
的相似性度量可以是余弦相似性
作为另一个示例而非限制,
和
的相似性度量可以是欧几里得距离
两个向量的相似性度量可表示分别对应于两个向量的两个对象或n-gram彼此的相似度,如通过向量空间600中的两个向量之间的距离测量的。作为示例而非限制,基于相应向量之间的距离,向量610和向量620可与比对应于向量610和向量630的对象彼此更类似的对象对应。虽然本公开描述了以特定方式计算向量之间的相似性度量,但本公开设想了以任何合适的方式计算向量之间的相似性度量。
图7示出了示例性人工神经网络(“ANN”)700。在特定实施方案中,ANN可指包括一个或多个节点的计算模型。示例性ANN 700可包括输入层710,隐藏层720、730、740和输出层750。ANN 700的每个层可包括一个或多个节点,诸如节点705或节点715。在特定实施方案中,ANN的每个节点可连接到ANN的另一个节点。作为示例而非限制,输入层710的每个节点可连接到隐藏层720的一个或多个节点。在特定实施方案中,一个或多个节点可以是偏置节点(例如,层中未连接到先前层中的任何节点并且未从先前层中的任何节点接收输入的节点)。在特定实施方案中,每个层中的每个节点可连接到先前层或后续层的一个或多个节点。尽管图7描绘了具有特定层数、特定节点数和节点之间的特定连接的特定ANN,但本公开设想了具有任何合适层数、任何合适节点数和节点之间的任何合适连接的任何合适ANN。作为示例而非作为限制,尽管图7描绘了输入层710的每个节点和隐藏层720的每个节点之间的连接,但输入层710的一个或多个节点可不连接到隐藏层720的一个或多个节点。
在特定实施方案中,ANN可以是前馈ANN(例如,没有周期或循环的ANN,其中节点之间的通信在一个方向上流动,从输入层开始并前进到连续层)。作为示例而非限制,对隐藏层720的每个节点的输入可包括输入层710的一个或多个节点的输出。作为另一个示例而非限制,对输出层750的每个节点的输入可包括隐藏层740的一个或多个节点的输出。在特定实施方案中,ANN可为深度神经网络(例如,包括至少两个隐藏层的神经网络)。在特定实施方案中,ANN可以是深度残余网络。深度残余网络可以是包括被组织成残余块的隐藏层的前馈ANN。进入第一残余块之后的每个残余块的输入可以是先前残余块的输出和先前残余块的输入的函数。作为示例而非限制,进入残余块N的输入可以是F(x)+x,其中F(x)可以是残余块N—1的输出,x可以是进入残余块N—1的输入。尽管本公开描述了特定ANN,但本公开还设想了任何适当的ANN。
在特定实施方案中,激活函数可对应于ANN的每个节点。节点的激活函数可定义节点针对给定输入的输出。在特定实施方案中,节点的输入可包括输入集合。作为示例而非限制,激活函数可以是标识函数、二进制阶跃函数、逻辑函数或任何其他合适的函数。作为另一个示例而非限制,节点k的激活函数可为S形函数
双曲线正切函数
整流器F
k(s
k)=max(0,s
k)或任何其他合适的函数F
k(s
k),其中s
k可为节点k的有效输入。在特定实施方案中,可针对对应于节点的激活函数的输入进行加权。每个节点可使用对应的激活函数基于加权输入来生成输出。
在特定实施方案中,节点之间的每个连接可与权重相关联。作为示例而非限制,节点705与节点715之间的连接725可具有0.4的加权系数,该加权系数可指示0.4乘以节点705的输出用作节点715的输入。作为另一个示例而非限制,节点k的输出yk可以是yk=Fk(sk),其中Fk可以是对应于节点k的激活函数,sk=∑j(wjkxj)可以是节点k的有效输入,并且xj可以是连接到节点k的节点j的输出,并且wik可以是节点j和节点k之间的加权系数。在特定实施方案中,对输入层的节点的输入可基于表示对象的向量。尽管本公开描述了节点的特定输入和节点的输出,但本公开设想了节点的任何合适输入和节点的输出。此外,尽管本公开可描述节点之间的特定连接和权重,但本公开设想了节点之间的任何合适连接和权重。
在特定实施方案中,可使用训练数据来训练ANN。作为示例而非限制,训练数据可包括对ANN 700的输入和预期输出。作为另一个示例而非限制,训练数据可包括各自表示训练对象和每个训练对象的预期标签的向量。在特定实施方案中,训练ANN可包括通过优化目标函数来修改与ANN的节点之间的连接相关联的权重。作为示例而非限制,可使用训练方法(例如,共轭梯度法、梯度下降法、随机梯度下降)来反向传播被测量为表示训练对象的每个向量之间的距离的平方和误差(例如,使用使平方和误差最小化的代价函数)。在特定实施方案中,可使用dropout技术来训练ANN。作为示例而不是以限制的方式,在训练期间可以暂时省略一个或多个节点(例如,不接收输入并且不生成输出)。对于每个训练对象,ANN的一个或多个节点可具有被省略的一定概率。为特定训练对象省略的节点可不同于为其他训练对象省略的节点(例如,可在逐个对象的基础上临时省略节点)。虽然本公开描述了以特定方式训练ANN,但本公开设想以任何合适的方式训练ANN。
图8是示出根据本主题公开的各个方面的用于对象检测的经训练机器学习模型的执行的示意图。在各种具体实施中,电子设备或其他处理或计算系统(诸如图12的计算系统1200)可包括如本文所述的经训练机器学习(ML)模型,诸如经训练的机器学习模型800。如图8所示,可将一个或多个图像(例如,在对应的第一时间和第二时间捕获的第一图像和第二图像和/或一系列图像帧或视频帧)作为输入提供给经训练的ML模型800。经训练的ML模型800可响应于接收到图像输入而输出检测的对象和/或检测的动作。在各种具体实施中,经训练的ML模型800可以被训练以输出是否检测到对象或动作,或者输出检测的对象或检测的动作的分类。可由经训练的ML模型800检测和/或分类的对象的示例包括人、面部、表情、车辆、或其他有生命或无生命的对象。可由经训练的ML模型800检测和/或分类的动作的示例包括用户姿势诸如手部姿势、面部表情的改变,人进入人行横道或建筑物或越过阈值,车辆以直线行进、加速、减速或转弯。
如图所示,可将一个或多个图像直接提供给经训练的ML模型800,或者可在将图像和/或其他图像数据提供给经训练的ML模型800之前处理图像。例如,可将一个或多个图像提供给图像处理引擎802。图像处理引擎可能以硬件或软件实现,并且可以在与经训练的ML模型相同的设备或系统处实现,或者可以与经训练的ML模型800分开实现(例如,在不同的设备或系统处)。
图像处理引擎802可对所接收的图像执行图像预处理操作,诸如均值和/或方差归一化操作。图像处理引擎802可执行其他图像处理操作,诸如像素减法操作(例如,将第一图像的像素从第二图像的对应像素中减去,反之亦然,诸如通过从第二图像减去第一图像,反之亦然)。像素减法操作可生成原始像素减法和/或原始像素减法的绝对值。图像处理操作还可包括组合多个图像,诸如通过对多个图像取平均值或计算多个图像的中值(例如,在执行减法操作之前)。图像处理操作可包括数据增强操作,诸如(例如,随机)从窗口内的先前帧的采样池中选择先前图像帧以用于从当前图像帧中减去。图像处理操作可包括噪声减小操作,诸如差异图像的低通滤波(例如,高斯模糊)。在一个或多个具体实施中,可将经处理的图像和/或差异图像(例如,包含各自对应于两个图像的像素之间的差异的像素值的图像)从图像处理引擎输出到经训练的ML模型800。经训练的ML模型800可响应于接收差异图像和/或图像而生成输出的检测对象和/或动作。
如图8所示,还可以提供级联器804。级联器804可级联图像和/或级联差异图像与图像(例如,与用于生成差异图像的图像)。例如,级联器804可通过将每个图像的一个或多个通道附加到另一个图像的一个或多个通道来级联图像。例如,级联器804可通过将每个差异图像的一个或多个通道附加到用于生成差异图像的图像的一个或多个通道来级联差异图像和图像。
图9示出了根据一个或多个具体实施的用于训练ML模型以进行对象和/或动作检测和/或识别的训练操作。如图9所示,经历训练的ML模型800T可被设置有(例如,经处理或未经处理的)训练图像和/或由图像处理引擎802基于训练图像生成的训练差异图像。如图所示,级联器804可使用上文结合图8所述的操作来级联一个或多个训练图像和/或一个或多个训练差异图像。
如图9的示例所示,在训练期间,ML模型800T可输出检测的对象和/或动作,并且可以将输出与已知对象和/或动作(例如,以预期标签的形式)进行比较(例如,使用代价函数900或其他比较机制),该已知对象和/或动作已知在提供给ML模型800的一个或多个图像中进行描绘。如图所示,基于比较,可将基于比较的反馈提供给ML模型800T,以用于如本文所述调整模型的权重和/或其他参数。
如图9所示,在一个或多个具体实施中,训练差异图像可作为训练输入提供给机器学习模型,该训练差异图像通过在第一时间捕获的第一训练图像和在第二时间捕获的第二训练图像的相减而生成,第一训练图像或第二训练图像中的至少一者包括已知训练对象的图像。可操作机器学习模型以使用机器学习模型的权重集合并且响应于提供训练差异图像,生成训练输出作为机器学习模型的训练输出。可将来自机器学习模型的训练输出与对应于已知训练对象的标签进行比较,并且可基于该比较来调整机器学习模型的一个或多个权重。
图10示出了根据一个或多个具体实施的用于使用像素差异进行对象和/或动作检测的示例性过程1000的流程图。出于解释的目的,本文主要参照经训练的ML模型800和/或图12的计算机系统1200来描述过程1000。然而,过程1000不限于经训练的ML模型800和/或图12的计算机系统1200,并且过程1000的一个或多个框(或操作)可以由一个或多个其他部件和/或其他合适的设备执行。进一步出于解释的目的,过程1000的框在本文中被描述为顺序地或线性地发生。然而,过程1000的多个框可并行地发生。此外,过程1000的框不必按所示顺序执行,并且/或者过程1000的一个或多个框不必执行和/或可由其他操作替代。
在框1002处,可获得场景的第一图像。获得第一图像可包括使用相机来捕获第一图像(例如,在第一时间),或者可包括获得先前捕获和/或存储的第一图像。
在一个或多个具体实施中,获得第一图像可包括通过被实现为位置固定以捕获固定场景的图像的静态或静止相机的相机来获得第一图像(例如,使得在不同时间捕获的图像中的相同像素位置处的像素对应于场景中的相同位置)。在其他具体实施中,相机可为具有位置跟踪和/或取向跟踪的可移动或移动相机,使得可通过使用位置和/或取向跟踪确定第二图像中的哪个像素对应于第一图像中的哪个像素来减去在不同时间捕获的部分重叠图像的重叠部分。
在框1004处,可获得场景的至少一部分的第二图像。第二图像可包括在不同于第一时间的第二时间捕获的图像信息。在一个或多个具体实施中,获得第一图像可包括在第一时间捕获第一图像,并且获得第二图像可包括在第二时间捕获第二图像,第二时间在第一时间之前。在一个或多个具体实施中,获得第一图像可包括在第一时间捕获第一图像,并且获得第二图像可包括通过组合各自在第一时间之前的对应时间捕获的多个附加图像来生成第二图像(例如,通过计算多个附加图像的平均值或中值)。
在一个或多个具体实施中,获得第一图像可包括在第一时间捕获第一图像,并且获得第二图像可包括从各自在第一时间之前的对应时间捕获的多个候选池图像中选择第二图像。从多个候选池图像中选择第二图像可包括从多个候选池图像中随机选择第二图像,或者基于待检测的特定类型的对象的预先确定的选择标准来选择第二图像。在一个或多个具体实施中,可通过处理在第一图像之前由相机捕获的多个图像来获得第二图像。处理多个图像帧可包括计算图像帧的平均值,计算图像帧的中值,对图像帧进行滤波(例如,低通滤波),和/或从图像帧的候选池中选择一个或多个图像帧。
在框1006处,可获得第一图像的一个或多个像素与第二图像的一个或多个对应像素之间的差异。例如,所获得的差异可包括差异图像,该差异图像包括第一图像的每个像素与第二图像的每个对应像素之间的差异。在一个或多个具体实施中,可平滑或以其他方式处理所获得的差异值以减小差异中的噪声(例如,通过将低通滤波器应用于所获得的差异)。在一个或多个具体实施中,所获得的差异(例如,差异图像)可与第一图像和/或第二图像级联。
在一个或多个具体实施中,获得第一图像可包括使用静止相机来捕获第一图像,获得第二图像可包括利用静止相机来捕获第二图像,并且使用静止相机的相同物理像素来捕获第一图像的每个像素和第二图像的每个对应像素。
在其他具体实施中,在获得第一图像的一个或多个像素与第二图像的一个或多个对应像素之间的差异之前,可对准第一图像和第二图像以识别对应于第一图像的一个或多个像素的第二图像的一个或多个对应像素。例如,如果第二图像相对于第一图像偏移和/或旋转,则第一图像和第二图像的内容(例如,存在于第一图像和第二图像两者中的特征、对象和/或边缘)和/或相机的已知(例如,被跟踪)的运动可用于空间对准第一图像和第二图像,从而识别第二图像中的与第一图像中的像素空间对应的像素。
在一个或多个具体实施中,第一图像和第二图像各自为多通道图像(例如,各自包括多个颜色通道的图像诸如RGB图像)。获得差异可包括获得多通道图像的每个通道的差异图像(例如,获得红色差异图像、绿色差异图像和蓝色差异图像)。在一个或多个具体实施中,将所获得的差异与第一图像级联可包括添加每个通道的差异图像(例如,红色差异图像、绿色差异图像和蓝色差异图像)作为第一图像的附加通道。在一个或多个具体实施中,可在获得差异之前对第一图像和/或第二图像执行预处理操作。预处理操作可包括第一图像和/或第二图像的均值和/或方差归一化。
在各种具体实施中,获得第一图像的一个或多个像素与第二图像的一个或多个对应像素之间的差异可包括获得第一图像的一个或多个像素与第二图像的一个或多个对应像素之间的原始差异或原始差异的绝对值。
在框1008处,可将所获得的差异作为输入提供给机器学习模型。在一个或多个具体实施中,也可将第一图像和/或第二图像作为附加输入提供给机器学习模型。例如,将所获得的差异以及第一图像和/或第二图像提供给机器学习模型可包括级联所获得的差异与第一图像,以及将级联的结果作为单个输入提供给机器学习模型。在一个或多个具体实施中,在将所获得的差异值作为输入提供给机器学习模型之前,可将滤波器(例如,低通滤波器,诸如减小噪声的高斯滤波器)应用于所获得的差异值。
在框1010处,响应于提供输入,可获得对第一图像或第二图像中的至少一者中描绘的对象或动作的识别作为来自机器学习模型的输出。输出可包括使用输入来识别的对象和/或动作的标签。
在本文所述的各种示例中,对象和/或动作检测由机器学习模型基于输入到机器学习模型的像素差异来执行。然而,对于各种对象和/或动作,像素差异对于检测的重要性可变化。在一个或多个具体实施中,允许机器学习引擎学习时间上分离的图像之间的差异是否与对象检测相关(和/或与对象相关的程度)可能是有利的。例如,在一个或多个具体实施中,不是向机器学习模型提供像素差异以用于训练,而是可在训练期间向机器学习模型提供在两个不同时间捕获的至少部分重叠场景的至少两个图像的集合。在推断(例如,执行)时间时,可向机器学习模型提供在时间上分离的至少两个图像,其中向模型提供或不提供像素差异信息。
图11示出了根据一个或多个具体实施的用于使用在时间上分离的两个或更多个图像进行对象检测的示例性过程1100的流程图。出于解释的目的,本文主要参照经训练的ML模型800和图12的计算机系统1200来描述过程1100。然而,过程1100不限于经训练的ML模型800和/或图12的计算机系统1200,并且过程1100的一个或多个框(或操作)可以由一个或多个其他部件和其他合适的设备执行。进一步出于解释的目的,过程1100的框在本文中被描述为顺序地或线性地发生。然而,过程1100的多个框可并行地发生。此外,过程1100的框不必按所示顺序执行,并且/或者过程1100的一个或多个框不必执行和/或可由其他操作替代。
在框1102处,可获得在第一时间捕获的场景的第一图像。获得第一图像可包括使用相机(例如,固定相机)来捕获第一图像或获得先前已捕获和/或存储的图像。
在框1104处,可获得包含在第一时间之前的第二时间捕获的场景的至少一部分的图像信息的第二图像。在一个或多个具体实施中,第二图像包括在第一时间之前捕获的多个图像的组合(例如,平均值或中值)。在一个或多个具体实施中,第一图像和/或第二图像可被预处理(例如,通过执行均值和/或方差归一化)。在一个或多个具体实施中,可通过处理在第一图像之前由相机捕获的多个图像来获得第二图像。处理多个图像帧可包括计算图像帧的平均值,计算图像帧的中值,对图像帧进行滤波(例如,低通滤波),和/或从图像帧的候选池中选择一个或多个图像帧。
在框1106处,可将第一图像和第二图像作为输入提供给机器学习模型。在一个或多个具体实施中,将第一图像和第二图像作为输入提供给机器学习模式可包括级联第二图像和第一图像以形成输入到机器学习模型的单个多通道图像。级联第一图像和第二图像可包括级联第一和第二多通道(例如,RGB)图像。在一个或多个具体实施中,机器学习模型可能已经被训练以至少部分地基于对象在第一图像和第二图像之间的位置变化来识别对象或动作。
在框1108处,响应于提供输入,可获得对第一图像或第二图像中的至少一者中描绘的对象或动作的识别作为来自机器学习模型的输出。
如上所述,本技术的一个方面是收集和使用特定和合法来源的数据以用于训练和/或操作机器学习模型。本公开设想,在一些实例中,该所采集的数据可包括唯一地识别或可用于识别具体人员的个人信息数据。此类个人信息数据可包括图像、音频数据、人口统计数据、基于位置的数据、在线标识符、电话号码、电子邮件地址、家庭地址、与用户的健康或健身级别相关的生物计量数据或记录(例如,生命特征测量、药物信息、锻炼信息)、或任何其他个人信息。
本公开认识到在本发明技术中使用此类个人信息数据可用于使用户受益。例如,个人信息数据可用于训练机器学习模型和/或执行用于基于图像的对象和/或动作识别的机器学习模型。
本公开设想负责收集、分析、公开、传输、存储或其他使用此类个人信息数据的实体将遵守既定的隐私政策和/或隐私实践。具体地,将期望此类实体实现和一贯地应用一般公认为满足或超过维护用户隐私的行业或政府所要求的隐私实践。关于使用个人数据的此类信息应当被突出地并能够被用户方便地访问,并应当随数据的收集和/或使用变化而被更新。用户的个人信息应被收集仅用于合法使用。另外,此类收集/共享应仅发生在接收到用户同意或在适用法律中所规定的其他合法根据之后。此外,此类实体应考虑采取任何必要步骤,保卫和保障对此类个人信息数据的访问,并确保有权访问个人信息数据的其他人遵守其隐私政策和流程。另外,这种实体可使其本身经受第三方评估以证明其遵守广泛接受的隐私政策和实践。此外,应针对被收集和/或访问的特定类型的个人信息数据调整政策和实践,并使其适用于适用法律和标准,包括可用于施加较高标准的辖区专有的具体考虑因素。例如,在美国,对某些健康数据的收集或访问可能受联邦和/或州法律的管辖,诸如健康保险流通和责任法案(HIPAA);而其他国家的健康数据可能受到其他法规和政策的约束并应相应处理。
不管前述情况如何,本公开还预期用户选择性地阻止使用或访问个人信息数据的实施方案。即本公开预期可提供硬件元件和/或软件元件,以防止或阻止对此类个人信息数据的访问。例如,就基于图像的对象和/或动作检测和/或识别而言,本技术可被配置为在注册服务期间或之后任何时候允许用户选择“选择加入”或“选择退出”参与对个人信息数据的收集和/或共享。除了提供“选择加入”和“选择退出”选项外,本公开设想提供与访问或使用个人信息相关的通知。例如,可在下载应用时向用户通知其个人信息数据将被访问,然后就在个人信息数据被应用访问之前再次提醒用户。
此外,本公开的目的是应管理和处理个人信息数据以最小化无意或未经授权访问或使用的风险。一旦不再需要数据,通过限制数据收集和删除数据可最小化风险。此外,并且当适用时,包括在某些健康相关应用程序中,数据去标识可用于保护用户的隐私。可在适当时通过移除标识符、控制所存储数据的量或特异性(例如,在城市级别而不是在地址级别或在对于面部识别而言不充分的级别收集位置数据)、控制数据如何被存储(例如,在用户间汇集数据)和/或其他方法诸如差异化隐私来促进去标识。
因此,虽然本公开广泛地覆盖了使用个人信息数据来实现一个或多个各种所公开的实施方案,但本公开还预期各种实施方案也可在无需访问此类个人信息数据的情况下被实现。即,本发明技术的各种实施方案不会由于缺少此类个人信息数据的全部或一部分而无法正常进行。
图12示出了示例性计算机系统1200。在特定实施方案中,一个或多个计算机系统1200执行本文所述或所示的一种或多种方法的一个或多个步骤。在特定实施方案中,一个或多个计算机系统1200提供本文所述或所示的功能。在特定实施方案中,在一个或多个计算机系统1200上运行的软件执行本文所述或所示的一种或多种方法的一个或多个步骤或提供本文所述或所示的功能。特定实施方案包括一个或多个计算机系统1200的一个或多个部分。在本文中,在适当的情况下,提及计算机系统可包括计算设备,反之亦然。此外,在适当的情况下,提及计算机系统可包括一个或多个计算机系统。
本公开设想了任何合适数量的计算机系统1200。本公开设想了采用任何合适物理形式的计算机系统1200。例如但不限于,计算机系统1200可以是嵌入式计算机系统、片上系统(SOC)、单板计算机系统(SBC)(例如,模块上计算机(COM)或模块上系统(SOM))、台式计算机系统、膝上型或笔记本计算机系统、交互式自助服务机、主机、计算机系统网、移动电话、个人数字助理(PDA)、服务器、平板计算机系统或这些中的两者或更多者的组合。在适当的情况下,计算机系统1200可包括一个或多个计算机系统1200;可为统一的或分布式的;可跨越多个位置;可跨越多个机器;可跨越多个数据中心;或位于云端中,该云端可包括一个或多个网络中的一个或多个云组件。在适当的情况下,一个或多个计算机系统1200可在没有实质性的空间或时间限制的情况下执行本文所述或所示的一种或多种方法的一个或多个步骤。以举例而非限制的方式,一个或多个计算机系统1200可实时地或以批处理模式执行本文所述或所示的一种或多种方法的一个或多个步骤。在适当的情况下,一个或多个计算机系统1200可在不同时间或在不同位置执行本文所述或所示的一种或多种方法的一个或多个步骤。在特定实施方案中,计算机系统1200包括处理器1202、存储器1204、存储装置1206、输入/输出(I/O)接口1208、通信接口1210、总线1212和(任选地)相机1214。尽管本公开描述并示出了以特定布置方式具有特定数量的特定部件的特定计算机系统,但本公开还设想以任何适当布置方式具有任何适当数量的任何适当部件的任何适当计算机系统。在一个或多个具体实施中,相机1214可与计算机系统1200分开实现(例如,被配置为经由通信接口1210与计算机系统1200通信)。相机1214可以是固定相机或可移动相机(例如,具有位置和/或取向跟踪能力)。
在特定实施方案中,处理器1202包括用于执行指令(诸如编写计算机程序的指令)的硬件。以举例而非限制的方式,为了执行指令,处理器1202可从内部寄存器、内部高速缓存器、存储器1204或存储装置1206检索(或获取)指令;解码并执行它们;然后将一个或多个结果写入内部寄存器、内部高速缓存器、存储器1204或存储装置1206。在特定实施方案中,处理器1202可包括用于数据、指令或地址的一个或多个内部高速缓存器。在适当的情况下,本公开设想了包括任何适当数量的任何适当内部高速缓存器的处理器1202。以举例而非限制的方式,处理器1202可包括一个或多个指令高速缓存器、一个或多个数据高速缓存器,以及一个或多个转换后备缓冲器(TLB)。指令高速缓存器中的指令可为存储器1204或存储装置1206中的指令的副本,并且指令高速缓存器可加速处理器1202对那些指令的检索。数据高速缓存器中的数据可为存储器1204或存储装置1206中的数据的副本,用以在处理器1202处执行的指令在其上操作;在处理器1202处执行的先前指令的结果,用以在处理器1202处执行的后续指令访问或用以写入存储器1204或存储装置1206;或其他适当数据。数据高速缓存器可加速处理器1202的读或写操作。TLB可加速处理器1202的虚拟地址转换。在特定实施方案中,处理器1202可包括用于数据、指令或地址的一个或多个内部寄存器。在适当的情况下,本公开设想了包括任何适当数量的任何适当内部寄存器的处理器1202。在适当的情况下,处理器1202可包括一个或多个算术逻辑单元(ALU);可为多核处理器;或可包括一个或多个处理器1202。尽管本公开描述并示出了特定处理器,但本公开还设想了任何适当的处理器。
在特定实施方案中,存储器1204包括主存储器,该主存储器用于存储供处理器1202执行的指令或供处理器1202操作的数据。以举例而非限制的方式,计算机系统1200可将指令从存储装置1206或另一来源(例如,另一计算机系统1200)加载至存储器1204。然后处理器1202可将指令从存储器1204加载到内部寄存器或内部高速缓存器。为了执行指令,处理器1202可从内部寄存器或内部高速缓存器中检索指令并对其解码。在执行指令期间或之后,处理器1202可将一个或多个结果(其可为中间结果或最终结果)写入内部寄存器或内部高速缓存器。然后处理器1202可将这些结果中的一者或多者写入存储器1204。在特定实施方案中,处理器1202仅执行一个或多个内部寄存器或内部高速缓存器中或存储器1204中(而不是存储装置1206或其他位置)的指令,并且仅对一个或多个内部寄存器或内部高速缓存器中或存储器1204中(而不是存储装置1206或其他位置)的数据进行操作。一个或多个存储器总线(其可各自包括地址总线和数据总线)可将处理器1202耦接至存储器1204。总线1212可包括一个或多个存储器总线,如下所述。在特定实施方案中,一个或多个存储器管理单元(MMU)位于处理器1202和存储器1204之间并且便于访问处理器1202所请求的存储器1204。在特定实施方案中,存储器1204包括随机存取存储器(RAM)。在适当的情况下,该RAM可以是易失性存储器。在适当的情况下,该RAM可以是动态RAM(DRAM)或静态RAM(SRAM)。此外,在适当的情况下,该RAM可为单端口或多端口RAM。本公开设想任何合适的RAM。在适当的情况下,存储器1204可包括一个或多个存储器1204。尽管本公开描述并示出了特定存储器,但本公开还设想了任何适当的存储器。
在特定实施方案中,存储装置1206包括用于数据或指令的海量存储装置。以举例而非限制的方式,存储装置1206可包括硬盘驱动器(HDD)、软盘驱动器、闪存存储器、光盘、磁光盘、磁带、通用串行总线(USB)驱动器,或这些中的两者或更多者的组合。在适当的情况下,存储装置1206可包括可移除的或不可移除的(或固定的)介质。在适当的情况下,存储装置1206可在计算机系统1200的内部或外部。在特定实施方案中,存储装置1206为非易失性固态存储器。在特定实施方案中,存储装置1206包括只读存储器(ROM)。在适当的情况下,该ROM可为掩模编程ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)、闪存存储器,或这些中的两者或更多者的组合。本公开设想了采用任何合适物理形式的海量存储装置1206。在适当的情况下,存储装置1206可包括促成处理器1202和存储装置1206之间的通信的一个或多个存储控制单元。在适当的情况下,存储装置1206可包括一个或多个存储装置1206。尽管本公开描述并示出了特定存储装置,但本公开还设想了任何适当的存储装置。
在特定实施方案中,I/O接口1208包括硬件、软件或两者,从而提供用于计算机系统1200与一个或多个I/O设备之间的通信的一个或多个接口。在适当的情况下,计算机系统1200可包括这些I/O设备中的一者或多者。这些I/O设备中的一者或多者可允许个人与计算机系统1200之间的通信。以举例而非限制的方式,I/O设备可包括键盘、小键盘、麦克风、监视器、鼠标、打印机、扫描仪、扬声器、静态相机、触笔、平板电脑、触摸屏、轨迹球、摄像机、另一适当I/O设备或这些中的两者或更多者的组合。I/O设备可包括一个或多个传感器。本公开设想任何合适的I/O设备以及用于它们的任何合适的I/O接口1208。在适当的情况下,I/O接口1208可包括使处理器1202能够驱动这些I/O设备中的一者或多者的一个或多个设备或软件驱动程序。在适当的情况下,I/O接口1208可包括一个或多个I/O接口1208。尽管本公开描述并示出了特定I/O接口,但本公开还设想了任何合适的I/O接口。
在特定实施方案中,通信接口1210包括提供用于在计算机系统1200与一个或多个其他计算机系统1200或一个或多个网络之间进行通信(例如,基于分组的通信)的一个或多个接口的硬件、软件或两者。以举例而非限制的方式,通信接口1210可包括用于与以太网或其他基于有线的网络进行通信的网络接口控制器(NIC)或网络适配器,或用于与无线网络诸如WI-FI网络进行通信的无线NIC(WNIC)或无线适配器。本公开设想了任何合适的网络以及用于其的任何合适的通信接口1210。以举例而非限制的方式,计算机系统1200可与自组织网络、个人局域网(PAN)、局域网(LAN)、广域网(WAN)、城域网络(MAN)、互联网的一个或多个部分,或这些中的两者或更多者的组合进行通信。这些网络中的一者或多者的一个或多个部分可为有线的或无线的。例如,计算机系统1200可与无线PAN(WPAN)(例如,BLUETOOTHWPAN)、WI-FI网络、WI-MAX网络、蜂窝电话网络(例如,全球移动通信系统(GSM)网络)、其他合适的无线网络或这些中的两者或更多者的组合进行通信。在适当的情况下,计算机系统1200可包括用于这些网络中的任一网络的任何合适的通信接口1210。在适当的情况下,通信接口1210可包括一个或多个通信接口1210。尽管本公开描述并示出了特定通信接口,但本公开还设想了任何合适的通信接口。
在特定实施方案中,总线1212包括将计算机系统1200的部件彼此耦接的硬件、软件或两者。以举例而非限制的方式,总线1212可包括加速图形端口(AGP)或其他图形总线、增强型工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连件、工业标准架构(ISA)总线、无限带宽互连件、少针脚型接口(LPC)总线、存储器总线、微通道架构(MCA)总线、外围部件互连(PCI)总线、PCI-Express(PCIe)总线、串行高级技术附件(SATA)总线、视频电子标准协会局域(VLB)总线、其他适当总线,或这些中的两者或更多者的组合。在适当的情况下,总线1212可包括一个或多个总线1212。尽管本公开描述并示出了特定总线,但本公开还设想了任何合适的总线或互连件。
在本文中,在适当的情况下,计算机可读非暂态存储介质可包括一个或多个基于半导体或其他集成电路(IC)(例如,现场可编程门阵列(FPGA)或专用IC(ASIC))、硬盘驱动器(HDD)、混合硬盘驱动器(HHD)、光盘、光盘驱动器(ODD)、磁光盘、磁光驱动器、软式磁盘片、软盘驱动器(FDD)、磁带、固态驱动器(SSD)、RAM驱动器、安全数字卡或驱动器、任何其他适当计算机可读非暂态存储介质,或这些中的两者或更多者的任何适当组合。在适当的情况下,计算机可读非暂态存储介质可为易失性的、非易失性的,或易失性的和非易失性的组合。
根据本公开的方面,提供了一种方法,该方法包括:获得场景的第一图像;获得所述场景的至少一部分的第二图像;获得所述第一图像的一个或多个像素与所述第二图像的一个或多个对应像素之间的差异;将所获得的差异作为输入提供给机器学习模型;以及响应于提供所述输入,获得对所述第一图像或所述第二图像中的至少一者中描绘的对象或动作的识别作为来自所述机器学习模型的输出。
根据本公开的其他方面,提供了一种方法,该方法包括:获得在第一时间捕获的场景的第一图像;获得包含在所述第一时间之前的第二时间捕获的所述场景的至少一部分的图像信息的第二图像;将所述第一图像和所述第二图像作为输入提供给机器学习模型;以及响应于提供所述输入,获得对所述第一图像或所述第二图像中的至少一者中描绘的对象或动作的识别作为来自所述机器学习模型的输出。
根据本公开的其他方面,提供了一种系统,该系统包括:相机,所述相机被配置为捕获场景的第一图像;以及一个或多个处理器,所述一个或多个处理器被配置为:获得所述场景的所述第一图像;获得所述场景的至少一部分的第二图像;获得所述第一图像的一个或多个像素与所述第二图像的一个或多个对应像素之间的差异;将所获得的差异作为输入提供给机器学习模型;以及响应于提供所述输入,获得对所述第一图像或所述第二图像中的至少一者中描绘的对象或动作的识别作为来自所述机器学习模型的输出。
在本文中,除非另外明确指明或通过上下文另外指明,否则“或”是包含性的而非排他性的。因此,在本文中,除非另外明确指明或通过上下文另外指明,“A或B”是指“A、B或二者”。此外,除非另外明确指明或通过上下文另外指明,“和”既是共同的也是分别的。因此,在本文中,除非另外明确指明或通过上下文另外指明,“A和B”是指“以共同或分别形式的A和B”。
如本文所用,术语自动可包括由计算机或机器的执行而无需用户干预;例如,通过响应于计算机或机器或其他启动机构的谓词动作的指令。字词“示例”在本文用于意指“用作示例或者例示”。本文作为“示例”所述的任何方面或者设计不一定被理解为比其他方面或者设计优选或者有利。
短语诸如“方面”不意味此方面对本主题技术是必需的或者此方面应用于本主题技术的所有配置。与一个方面相关的公开可应用于所有配置,或者一个或多个配置。一个方面可提供一个或多个示例。短语诸如方面可指一个或多个方面,反之亦然。短语诸如“实施方案”不意味此实施方案对本主题技术是必需的或者此实施方案应用于本主题技术的所有配置。与一个实施方案相关的公开可应用于所有实施方案,或者一个或多个实施方案。一个实施方案可提供一个或多个示例。短语诸如“实施方案”可指一个或多个实施方案,反之亦然。短语诸如“配置”不意味此配置是本主题技术必需的或者此配置应用于本主题技术的所有配置。与配置相关的公开可应用于所有配置或者一个或多个配置。配置可提供一个或多个示例。短语诸如“配置”可指一个或多个配置,反之亦然。
本公开的范围涵盖本领域的普通技术人员将理解的本文所述或所示的示例性实施方案的所有变化、替换、变型、更改和修改。本公开的范围不限于本文所述或所示的示例性实施方案。此外,尽管本公开描述并示出本文的相应实施方案包括特定部件、元件、特征、功能、操作或步骤,但这些实施方案中的任一者可包括本领域的普通技术人员将理解的本文任何位置所述或所示的任何部件、元件、特征、功能、操作或步骤的任何组合或排列。此外,在所附权利要求书中提及装置或系统或装置或系统的部件被适配为、被布置成、能够、被配置为、被允许、可操作为或能够操作为执行特定功能涵盖:该装置、系统、部件,无论其本身或该特定功能是否被激活、打开或解锁,只要该装置、系统或部件是被这样适配、布置、赋予能力、配置、授予能力、操作、或运作即可。另外,尽管本公开描述或示出了提供特定优点的特定实施方案,但具体实施方案可提供这些优点中的一部分或全部或不提供这些优点。
本领域的技术人员将会认识到,本文所述的各种例示性的框、模块、元件、部件、方法和算法可被实现为电子硬件、计算机软件或两者的组合。为了说明硬件和软件的这种可互换性,上文已经一般性地按照功能性对各种例示性的框、模块、元件、部件、方法和算法进行了描述。此类功能性是被实现为硬件还是软件取决于具体应用以及对整个系统施加的设计约束。所述功能可针对每个特定应用以不同方式实现。各种部件和框可被不同地布置(例如,以不同的顺序排列,或以不同的方式划分),而不脱离本主题技术的范围。
应当理解,本发明所公开的过程中的步骤的特定顺序或分级结构为示例性方法的例示。基于设计优选要求,应当理解,过程中的步骤的特定顺序或者分级结构可被重新布置。该步骤中的一些步骤可被同时执行。所附方法权利要求呈现样本次序中的各种步骤的元素,并且不意味着限于所呈现的特定顺序或分级结构。
本领域的普通技术人员已知或稍后悉知的贯穿本公开描述的各个方面的元素的所有结构和功能等同物通过引用明确地并入本文,并且旨在被权利要求书所涵盖。此外,本文所公开的任何内容并非旨在提供给公众,而与该公开是否明确地被陈述在权利要求中无关。不应根据35U.S.C.§112(f)的规定解释任何权利要求要素,除非使用短语“用于……的装置”明确陈述了该要素,或者就方法权利要求而言,使用短语“用于……的步骤”陈述了该要素。
先前的描述被提供以使得本领域的技术人员能够实践本文所述的各个方面。先前描述提供了本主题技术的各种示例,并且本主题技术不限于这些示例。这些方面的各种修改对本领域的技术人员而言是显而易见的,并且本文所限定的通用原则可应用于其他方面。因此,本权利要求书并非旨在受限于本文所示的各个方面,而是旨在使得全部范围与语言权利要求书一致,其中提及单数形式的要素并非旨在意味着“仅仅一个”,而是指“一个或多个”,除非被具体指出。除非另外特别说明,否则术语“一些”是指一个或多个。男性的代名词(例如,他的)包括女性和中性(例如,她的和它的),并且反之亦然。标题和副标题(如果有的话)仅用于方便,并不限制本文所述的本发明。