使用解码神经网络的图像真实性验证的制作方法

文档序号:31402844发布日期:2022-09-03 05:06阅读:133来源:国知局
使用解码神经网络的图像真实性验证的制作方法
使用解码神经网络的图像真实性验证


背景技术:

1.利用人工神经网络和计算过程,图像可以被欺骗性地改变,以包含最初创建图像时不存在的信息,从而创建被操纵的或“伪”图像。例如,可以通过使用人工神经网络来创建深度学习伪造(“深度伪造(deepfake)”),其中,对作出第一个陈述的人的视频进行修改,以显示该人作出了第二个不同的陈述。在另一示例中,“面部交换”应用可用于在静止图像上交换第一人的面部与第二人的面部。
2.已经创建了各种检测伪图像的方法。例如,算法可用于检测图像中指示篡改的细微不一致(例如,照明模式)。虽然已经创建了这些方法,但对伪图像的可靠检测已被证明是一个具有挑战性和困难的问题。需要新的框架来验证图像的真实性,以解决现有技术的局限性。


技术实现要素:

3.描述了用于验证图像真实性的技术和装置。具体地,所述技术和装置可以包括或以其他方式利用一个或多个机器学习模型来验证接收图像的真实性以检测对图像的操纵。验证基于将检测到的图像特征与恢复的图像特征进行比较,以确定图像是伪造的还是被操纵的。检测到的特征和恢复的特征的比较可用于识别指示人类观察者可能检测不到的不真实图像的特征。
4.在一些实施方式中,特征提取过程用于从输入图像提取确定的特征,并且消息嵌入过程用于将包括确定的特征的签名嵌入到输入图像中以生成输出图像。特征提取过程用于从接收图像中提取包含特征的嵌入签名,并从签名中恢复的特征。然后,例如,通过比较确定的特征和恢复的特征,利用真实性过程来验证图像的真实性。
5.下面描述的方面包括由包括编码器系统和解码器系统的系统执行的方法。在该方法中,系统(例如,解码器系统)接收要验证的图像。系统对接收图像执行特征识别以确定接收图像的多个确定的特征。系统生成第一输出,该第一输出定义表示接收图像的确定的特征的值。该系统包括消息解码神经网络,其解码接收图像以提取嵌入在接收图像中的签名。嵌入的签名表示接收图像的恢复的特征。系统生成第二输出,其定义表示已恢复的特征的值。该系统向操纵检测神经网络提供第一输出和第二输出。操纵检测神经网络至少利用第一输出和第二输出生成对接收图像的真实性的估计。
6.下面描述的方面还包括具有处理器的计算设备和计算机可读存储介质,计算机可读存储介质上存储指令,该指令响应于处理器执行,使得处理器执行用于验证图像真实性的过程。以下描述的方面包括生成图像的方法和验证图像真实性的方法。一个方面的可选特征(诸如上述方法)可以与其他方面组合。
附图说明
7.参考以下附图描述用于利用机器学习模型验证图像真实性的技术和装置。在整个附图中使用相同的数字来指代类似的特征和组件:
8.图1示出了可以实现利用机器学习模型来验证图像真实性的技术和装置的环境;
9.图2示出了可以实现利用机器学习模型来验证图像真实性的技术和装置的另一种环境;
10.图3描绘了根据本公开的一些实施例的示例用户计算系统、示例服务器计算系统和示例训练计算系统的框图;
11.图4示出了用于训练特征提取神经网络以从图像中提取特征的示例系统;
12.图5示出了用于训练消息编解码神经网络来编码/解码图像的示例系统;
13.图6示出了生成要验证图像的方法;
14.图7示出了验证图像真实性的方法;以及
15.图8示出了根据本公开的示例实施例的示例机器学习模型的框图。
具体实施方式
16.概述
17.如上所述,本公开涉及用于验证图像真实性的技术和装置。具体地,本公开的系统和方法可以包括或利用一个或多个机器学习模型来验证图像的真实性。
18.如此处所使用的,短语“图像”包括但不限于静止图像、运动图像(例如,视频)、与音频相关联的运动图像、与文本相关联的运动图像等等。如这里所使用的,短语“视频”是指一系列或时间序列的运动图像,其可以也可以不与其他类型的信息相关联,诸如音频或文本。例如,视频可以包括包含音频信息流的运动图像的时间序列。如这里所使用的,短语“伪图像”是指作为原始图像呈现的图像,但是原始图像的经操纵的副本,或者是原始图像的伪副本。如这里所使用的,短语“图像特征”包括但不限于整个图像的与图像无关的测量矩阵、面部表情、界标、图像中人的面部界标、界标、关键点、用户提供的特征、边缘、角、博客、脊、运动、光流、图像的原始像素等。
19.如这里所使用的,涉及一系列项目中的“至少一个”的短语是指那些项目的任何组合,包括单个成员。例如,“a、b或c中的至少一个”旨在涵盖a、b、c、a-b、a-c、b-c和a-b-c,以及具有多个相同元素的任何组合(例如,a-a、a-a-a、a-a-b、a-a-c、a-b-b、a-c-c、b-b、b-b-b、b-b-b、b-b-c、c-c和c-c-c-c或a、b和c的任何其他顺序)。
20.图1示出了示例系统100,其使用被配置为从输入图像102提取图像特征的特征识别引擎120(例如,特征提取神经网络122)和被配置为从输入图像102生成输出图像150的消息编码器140(例如,消息编码神经网络142)。
21.图2示出了示例系统200,其使用被配置为从接收图像210中提取特征238的特征识别引擎230(例如,特征提取神经网络232)、被配置为从接收图像210中提取包括特征258的签名254(隐藏消息)的消息解码器250和/或被配置为基于对接收图像210的处理验证接收图像210的真实性的真实性引擎270(例如,操纵检测神经网络272)。在各方面,该系统可以包括被配置为生成输出图像的图1的编码器系统110和被配置为解码接收图像并确定接收图像的真实性的图2的解码器系统220中的一个或两个。系统100、系统100的组件、系统200或系统200的组件中的至少一个可以在用户计算设备、嵌入式计算设备、服务器计算设备、模型处理设备、训练设备、虚拟计算设备、其他计算设备或计算基础设施或它们的组合中的一个或多个上实现,例如下面参考图3描述的。
22.如图1所示,在系统100中,编码器系统110接收输入图像102作为用于处理的输入。例如,用户可以向系统100提交图像(例如,照片)作为输入图像102。在另一示例中,用户可以在成像设备(例如,数码相机、计算设备的相机)上捕获输入图像102,并且编码器系统110在成像设备的图像流水线中实现。在另一个示例中,输入图像102可以存储在图像库104中,并被提供给编码器系统110。图像库104可以被包括在系统100中(例如,通过一个或多个本地有线或无线连接),或者可以远离系统100,并且通过一个或多个有线或无线连接(例如,局域网(lan)或广域网(wan)连接)与系统100通信。图像库104可以是例如本地存储在系统100上的数据库、位于远离系统100的服务器处的数据库、或者在计算设备上实现的存储器设备。
23.系统100(例如,编码器系统110)接收输入图像102,选择输入图像102的一个或多个特征128,基于所选择的特征128生成一个或多个签名144,并将签名144嵌入输入图像102中以创建输出图像150。在一些方面,输出图像150可以存储在存储器设备上。
24.系统100(例如,编码器系统110)包括特征识别引擎120。特征识别引擎120被配置为对输入图像102执行特征提取过程,以确定输入图像102的多个确定的特征128。例如,特征识别引擎120可以被配置为从输入图像102中选择多个特征,并且处理所选择的图像特征128以生成输出126(例如,数据),该输出126定义了表示输入图像的确定的特征的值。在一些方面,特征识别引擎120从输入图像102中选择多个特征,并处理所选图像特征128以生成输出126,每个输出126表示输入图像102的选择的特征128。例如,输入图像102的特征128可以包括与图像无关的测量矩阵、面部表情、图像中人的面部标志、标志、关键点、用户提供的特征、边缘、拐角、博客、脊、运动、光流、图像的原始像素等。
25.特征识别引擎120可以包括特征提取神经网络122。特征提取神经网络122可被配置为接收输入图像102并处理输入图像102以生成输出126,输出126定义了表示输入图像102的选择的特征128的值。在一些方面,这些值各自表示输入图像102的选择的特征128。例如,特征提取神经网络122可以接收输入图像102并处理输入图像102或其一部分,以生成输出126,该输出126定义了表示对应于面部表情、界标、关键点、边缘、角、博客、脊等的一个或多个图像特征的值。在一些方面,输出126定义值,每个值表示对应于面部表情、地标、关键点、边缘、拐角、博客、脊等的一个或多个图像特征。在其他实施例中,特征识别引擎120可以通过使用不依赖于神经网络的其他特征提取技术和算法来生成图像特征,诸如主成分分析、边缘检测、霍夫变换或其他算法。
26.特征识别引擎120可以接收由被配置为从用户接收输入(所选图像特征)的一个或多个用户输入组件提供的一个或多个用户提供的特征124。用户提供的特征124可以包括面部表情、图像中人的面部标志、图像的原始像素等。特征识别引擎120可以包括特征提取神经网络122和用户提供的特征124。
27.系统100(例如,编码器系统110)还对输入图像102执行消息嵌入过程。系统100向消息编码器140发送指定从输入图像102导出的图像特征128的输出126。消息编码器140可以包括消息编码神经网络142。消息编码神经网络142可以被配置为用于编码和解码消息的消息编解码神经网络(例如,消息编码/解码神经网络)。图1的消息编码神经网络142和图2的消息解码神经网络252是消息编码/解码神经网络。
28.消息编码器140(例如,消息编码神经网络142)接收指定从来自系统100的输入图
像102导出的图像特征128的输出126,并生成表示输入图像102的图像特征128的签名144(例如,包括输出126)。消息编码器140(例如,消息编码神经网络142)通过将签名144(消息)作为数字消息(例如,隐写信号)嵌入到输入图像102中来处理输入图像102,以生成输出图像150。在一些方面,签名144是感知不可见的水印。
29.权重可以在图1所示的特征识别引擎120(例如,第一特征提取神经网络122、用户提供的特征124)和图2所示的第二特征识别引擎230(例如,第二特征提取神经网络232、用户提供的特征234)之间共享。
30.图2示出了包括解码器系统220的系统200,解码器系统220被配置为解码接收图像210并验证接收图像210的真实性。接收图像210是要验证的图像。在一些方面,接收图像210是输出图像150的副本。在一些方面,接收图像210是输入图像102或输出图像150的伪副本。在一些方面,接收图像210是输入图像102或输出图像150的经操纵的副本。解码器系统220确定接收图像210的真实性,例如,接收图像210是否是输出图像150,或者接收图像210是否是输入图像102的伪版本。
31.系统100可以将编码器系统110生成的输出图像150作为接收图像210发送给解码器系统220。在一些实施方式中,接收图像210被提供给系统200的解码器系统220;例如,用户可以将照片作为接收图像210提交给系统200。
32.在另一个示例中,接收图像210可以由图像库(诸如图1的图像库104)提供给解码器系统220。
33.在一个示例中,用户利用系统100和/或系统200来验证图像的真实性。在另一个示例中,在线服务提供商利用系统100和/或系统200来验证图像的真实性。在另一个示例中,第三方利用系统100和/或系统200来验证图像的真实性。
34.系统200将接收图像210作为输入提供给解码器系统220,并且解码器系统220确定接收图像210是否是可靠的副本(例如,真实副本、未更改副本)或者接收图像210是否是不可靠的副本,例如,输出图像150或输入图像102的伪图像或更改副本。如图2所示,系统200(例如,解码器系统220)包括特征识别引擎230、消息解码器250和真实性引擎270。
35.系统200可以将接收图像210作为输入提供给特征识别引擎230。特征识别引擎230被配置为对接收图像210执行特征提取过程(特征识别),以确定接收图像210的多个确定的特征238。例如,接收图像210的确定的特征238可以包括与图像无关的测量矩阵、面部表情、地标、关键点、用户提供的特征、边缘、拐角、博客、脊、运动、光流、像素等。
36.特征识别引擎230从接收图像210中选择多个确定的特征238,并处理确定的特征238以生成输出236(数据),该输出236定义了表示接收图像210的确定的特征的值。在各方面,特征识别引擎230从接收图像210中选择多个确定的特征238,并处理确定的特征238以生成输出236(数据),该输出236定义了表示接收图像的确定的特征的值,每个确定的特征表示接收图像210的所选特征。系统200将确定的特征238的输出236发送给真实性引擎270。
37.特征识别引擎230可以包括第二特征提取神经网络232。特征提取神经网络232对接收图像210执行特征提取过程。特征提取神经网络232可以被配置为接收接收图像210并处理接收图像210以生成输出236(数据),该输出236定义了表示接收图像210的确定的特征238的值。例如,特征提取神经网络232可被配置为接收接收图像210并处理接收图像210以生成输出236,输出236定义了各自代表接收图像210的确定的特征238的值。在一些实施方
式中,特征提取神经网络232是与图1的特征提取神经网络122相同的神经网络。在一些实施方式中,特征提取神经网络232是与图1的特征提取神经网络122不同的特征提取神经网络。
38.特征识别引擎230可以接收包括由被配置为从用户接收输入(所选图像特征)的一个或多个用户输入组件(例如,图3的用户输入组件322)提供的一个或多个用户提供的特征234的输入。用户提供的特征234可以包括例如面部表情、图像中人的面部标志、图像的原始像素等。在一些实施方式中,特征识别引擎230可以包括第二特征提取神经网络232和用户提供的特征234。
39.接收图像210可以作为输入被提供给解码器系统220的消息解码器250。消息解码器250(例如,消息解码神经网络252)对接收图像210进行解码。例如,消息解码器250通过对接收图像210执行消息提取处理来解码接收图像210。在消息提取过程中,消息解码器250处理接收图像210,以提取嵌入在接收图像210中的签名254。签名254表示由消息编码器(例如,图1的消息编码器140)嵌入到接收图像210中的恢复的特征258。在一些方面,系统200检测签名是否存在于接收图像210中。
40.消息提取过程包括第二输出256(数据)的生成,第二输出256定义了表示接收图像210的恢复的特征258的值。在各方面,消息提取过程包括生成第二输出256,该第二输出256定义了各自表示从签名254恢复的接收图像210的恢复的特征258的值。系统200将恢复的特征258的输出256发送给真实性引擎270。
41.来自特征识别引擎230的输出236(第一输出)和消息解码器250的输出256(第二输出)被提供给真实性引擎270,并被真实性引擎270用来生成接收图像210的真实性的预测(例如,估计)。例如,解码器系统220的真实性引擎270确定接收图像210是否是可靠的副本(例如,真实副本、未更改副本),或者接收图像210是否是不可靠的副本,例如,伪图像或更改副本。
42.真实性引擎270可以包括接收输出(例如,输出236、输出256)的操纵检测神经网络272。例如,通过比较输出236和输出256,操纵检测神经网络272至少使用输出236和输出256来生成接收图像210的真实性的估计(预测)。基于由真实性引擎270生成的估计,系统100确定接收图像210是否是可靠的副本(例如,真实副本、未更改副本),或者接收图像210是否是不可靠的副本,例如,伪图像或更改副本。
43.示例实施例
44.本公开的系统和方法可以由一个或多个计算系统实现或在其上执行。计算系统300中的示例计算系统包括一个或多个用户计算设备(例如,膝上型电脑、台式电脑、诸如平板电脑、智能手机、可穿戴计算设备、相机等的移动计算设备。);嵌入式计算设备(例如,嵌入在车辆、相机、图像传感器、工业机器、卫星、游戏控制台或控制器,或者诸如冰箱、恒温器、电表、家庭能源管理器、智能家庭助理等家用电器内的设备);服务器计算设备(例如,数据库服务器、参数服务器、文件服务器、邮件服务器、打印服务器、网络服务器、游戏服务器、应用服务器等);专用的、专门的模型处理或训练设备;虚拟计算设备;其他计算设备或计算基础设施;或者它们的组合。
45.例如,图3描绘了根据本公开的示例实施例的可以验证图像真实性的示例计算系统300的框图。计算系统300包括通过网络380通信耦合的一个或多个用户计算系统302、服务器计算系统330或训练计算系统350。
46.服务器计算系统330可以包括一个或多个服务器计算设备,或者可以由一个或多个服务器计算设备来实现。在服务器计算系统330包括多个服务器计算设备的情况下,这样的服务器计算设备可以根据顺序计算架构、并行计算架构或其某种组合来操作。在一些实施例中,训练计算系统350包括一个或多个服务器计算设备,或者由一个或多个服务器计算设备来实现。
47.用户计算系统302包括一个或多个处理器312和一个或多个存储器设备314。服务器计算系统330包括一个或多个处理器332和存储器设备334。训练计算系统350包括一个或多个处理器352和存储器设备354。处理器312、332、352可以是任何合适的处理设备(例如,中央处理单元(cpu);视觉处理单元(vpu);图形处理单元(gpu);张量处理单元(tpu);神经处理单元(npu);神经处理引擎;cpu、vpu、gpu、tpu、npu或其他处理设备的核心;专用集成电路(asic);现场可编程门阵列(fpga);协处理器;控制器;或者上述处理设备的组合),并且可以是一个处理器或者可操作地连接的多个处理器。处理器312、332、352可以嵌入其他硬件组件中,诸如例如图像传感器、加速度计等。
48.存储器设备314、334、354可以包括一个或多个非暂时性计算机可读存储介质,诸如ram、rom、eeprom、eprom、闪存设备、磁盘等及其组合。存储器设备314可以存储数据316和指令318,其由处理器312执行以使用户计算系统302执行操作。存储器设备334可以存储数据336和指令338,其由处理器332执行以使服务器计算系统330执行操作。存储器设备354可以存储数据356和指令358,其由处理器352执行以使得训练计算系统350执行操作。
49.用户计算系统302、服务器计算系统330或训练计算系统350中的一个或多个可以包括编码器系统(例如,图1的编码器系统110)。示例编码器系统可以包括特征识别引擎(例如,图1的特征识别引擎120)和消息编码器(例如,图1的消息编码器140)。在一些实施方式中,用户计算系统302、服务器计算系统330或训练计算系统350中的一个或多个可以包括解码器系统(例如,图2的解码器系统220)。示例解码器系统可以包括特征识别引擎(例如,图2的特征识别引擎230)、消息解码器(例如,图2的消息解码器250)或真实性引擎(例如,图2的真实性引擎270)中的至少一个。
50.用户计算系统302可以存储或包括一个或多个机器学习模型320。例如,机器学习模型320可以是或者可以以其他方式包括各种机器学习模型,诸如神经网络(例如,深度神经网络)或者其他类型的机器学习模型,包括非线性模型和/或线性模型。神经网络可以包括前馈神经网络、递归神经网络(例如,长短期记忆递归神经网络)、卷积神经网络或其他形式的神经网络。更具体地,机器学习模型320可以包括一个或多个特征提取网络(诸如图1的特征提取神经网络122和/或图2的第二特征提取神经网络232)、消息编码神经网络(诸如图1的消息编码神经网络142)、消息解码神经网络(诸如图2的消息解码神经网络252)、或操纵检测神经网络(诸如图2的操纵检测神经网络272)。
51.附加地或替代地,一个或多个机器学习模型340可以被包括在根据客户端-服务器关系与用户计算系统302通信的服务器计算系统330中,或者由服务器计算系统330存储和实现。例如,机器学习模型340可以由服务器计算系统340实现为web服务(例如,极端多类或多标签分类服务、语言建模服务、度量学习服务)的一部分。因此,一个或多个模型320可以在用户计算系统302处存储和实现,和/或一个或多个模型340可以在服务器计算系统330处存储和实现。在实施方式中,机器学习模型340可以包括一个或多个特征提取网络(诸如图1
的特征提取神经网络122和/或图2的特征提取神经网络232)、消息编码神经网络(诸如图1的消息编码神经网络142)、消息解码神经网络(诸如图2的消息解码神经网络252)、或操纵检测神经网络(诸如图2的操纵检测神经网络272)。
52.用户计算系统302还可以包括接收用户输入的一个或多个用户输入组件322。例如,用户输入组件322可以是对用户输入对象(例如,手指、触笔)的触摸敏感的触敏组件(例如,触敏显示屏、触摸板)。触敏组件可以用来实现虚拟键盘。其他示例用户输入组件包括麦克风、传统键盘或用户可以用来提供用户输入的其他部件。
53.如上所述,服务器计算系统330可以存储或以其他方式包括一个或多个机器学习模型340。例如,模型340可以是或者可以包括各种机器学习模型。示例机器学习模型包括神经网络或其他多层非线性模型。神经网络的示例包括前馈神经网络、深度神经网络、递归神经网络和卷积神经网络。
54.计算系统300可以包括图像库104。例如,图像库104可以通过一个或多个本地有线或无线连接被包括在系统300中,或者可以远离系统300,并且通过一个或多个有线或无线连接(例如局域网(lan)或广域网(wan)连接)与系统300通信。例如,图像库104可以是本地存储在用户计算系统302上的数据库,或者是位于远离系统300(例如,服务器计算系统330、训练计算系统350)的服务器上的数据库。
55.用户计算系统302和/或服务器计算系统330可以经由与通过网络380通信耦合的训练计算系统350的交互来训练模型320和/或340。训练计算系统350可以与服务器计算系统330分离,或者可以是服务器计算系统330的一部分。
56.训练计算系统350可以包括模型训练器360,其使用各种训练或学习技术来训练存储在用户计算系统302和/或服务器计算系统330处的机器学习模型320和/或340,诸如例如基于将确定的特征和恢复的特征与机器学习模型320和/或340以及误差的反向传播进行比较来验证图像的真实性。在一些实施方式中,执行误差的反向传播可以包括随时间执行截断的反向传播。模型训练器360可以执行多种泛化技术(例如,权重衰减、退出)来改善被训练模型的泛化能力。
57.模型训练器360可以基于一组训练数据362来训练机器学习模型320和/或340。训练数据362可以包括例如已经被分配了对应于输出数据的标签的输入数据的示例。
58.如果用户已经提供同意,则训练示例可以由用户计算系统302提供。因此,在这样的实现中,提供给用户计算系统302的模型320可以由训练计算系统350根据从用户计算系统302接收的用户特定数据来训练。在某些情况下,这个过程可以被称为个性化模型。
59.模型训练器360包括用于提供所需功能的计算机逻辑。模型训练器360可以用控制通用处理器的硬件、固件和/或软件来实现。例如,在一些实施方式中,模型训练器360包括存储在存储器设备上、加载到存储器中并由一个或多个处理器执行的程序文件。在其他实施方式中,模型训练器360包括一组或多组计算机可执行指令,这些指令存储在有形的计算机可读存储介质中,诸如ram硬盘或光学或磁性介质。
60.网络380可以是任何类型的通信网络,诸如局域网(例如,内联网)、广域网(例如,互联网)或其某种组合,并且可以包括任何数量的有线或无线链路。一般而言,网络380上的通信可以使用各种通信协议(例如,tcp/ip、http、smtp、ftp)、编码或格式(例如,html、xml)和/或保护方案(例如,vpn、安全http、ssl),经由任何类型的有线和/或无线连接来承载。
61.图3示出了可用于实现本公开的计算系统300的一个示例。也可以使用其他计算系统。例如,在一些实施例中,用户计算系统302可以包括模型训练器360和训练数据362。在这样的实现中,模型320可以在用户计算系统302本地训练和使用。在一些这样的实现中,用户计算系统302可以实现模型训练器360来基于用户特定的数据个性化模型320。
62.训练
63.这里描述的框架可以以多种方式训练,例如,取决于如何训练特征提取神经网络、消息编解码神经网络(例如,消息编码神经网络、消息解码神经网络、消息编码/解码神经网络)、和/或操纵检测神经网络。在一些实施方式中,可以单独训练一个或多个神经网络。在一些实施方式中,一个或多个神经网络被共同训练。在其他实施例中,所有的神经网络被一起训练。
64.图4描绘了示例系统400,其被配置为训练第一特征提取神经网络422(诸如图1的第一特征提取神经网络122和/或图2的第二特征提取神经网络232)以从图像(例如,输入图像416)中以改善的准确度提取特征。在一些方面,特征提取神经网络422被用在被配置为验证图像真实性的系统中(例如,图1的系统100、图2的系统200)。
65.特征提取神经网络422可以与一个或多个消息编码神经网络、消息解码神经网络或操纵检测神经网络分开训练。例如,在操作412处,输入图像416被提供给包括特征识别引擎420的编码器系统410用于处理。例如,用户可以向系统400提交图像(例如,照片)作为输入图像416。在另一个示例中,特征识别引擎420是特征提取神经网络422,并且图像库104(如关于图2所描述的)向特征识别引擎420提供输入图像416。在实施方式中,特征识别引擎462可以通过使用不依赖于神经网络的其他特征提取技术和算法来生成确定的特征418,诸如主成分分析、边缘检测、霍夫变换或其他算法。
66.特征识别引擎420(例如,特征提取神经网络422)被配置为估计(确定)输入图像416的特征,并生成确定的特征418(诸如图1的特征128)的输出。在一些方面,特征提取神经网络422估计确定的特征418,确定的特征418具有可以通过图像识别被识别为学习的特征的特性。学习的特征应该对伪图像的检测敏感;例如,如果图像被操纵或者是伪的,则学习的特征将非常不同。
67.可选地或附加地,可以通过使用用户输入,诸如用户提供的特征424(例如,本文描述的用户提供的特征124),从输入图像416中提取确定的特征418。在实施方式中,第二特征识别引擎462可以通过使用不依赖于神经网络的其他特征提取技术和算法(诸如主成分分析、边缘检测、霍夫变换或其他算法),来生成恢复的特征466。
68.在估计了确定的特征418之后,特征识别引擎420将确定的特征418的输出430发送到鉴别特征损失计算引擎470。确定的特征418被提供给鉴别特征损失计算引擎470,以使鉴别特征损失计算引擎470能够计算用于训练特征提取神经网络422的特征损失472。可以重复该过程,直到计算的损失等于或低于预定阈值,或者直到满足其他收敛标准。
69.特征识别引擎420还可以将具有确定的特征418的输出426发送到消息编码器440(包括消息编码神经网络442(例如,图1的消息编码神经网络142))以生成输出图像450。在一些方面,基于确定的特征428生成一个或多个签名,并且将该签名作为数字消息(例如,隐写信号(steganographic signal))嵌入到输入图像416中,以生成输出图像450。在实施方式中,特征识别引擎420可以通过使用不依赖于神经网络的其他特征提取技术和算法来生
成确定的特征418,诸如主成分分析、边缘检测、霍夫变换或其他算法。
70.由特征识别引擎(例如由第一特征识别引擎420(例如,第一特征提取神经网络422(诸如图1的第一特征提取神经网络122))和/或由第二特征识别引擎462(例如,第二特征提取神经网络464(诸如图2的特征提取神经网络232)))对图像(例如,输入图像416、接收图像452)执行特征提取过程。例如,如图4所示,解码器系统460包括第二特征识别引擎462(例如,特征提取神经网络464)。第二特征识别引擎462解码接收图像452,以从接收图像452中提取签名(例如,如上文参考图2所述)。该签名表示接收图像452的恢复的特征466。
71.特征识别引擎(例如,第二特征识别引擎462)将具有恢复的特征466的输出468发送到鉴别特征损失计算引擎470。恢复的特征466被提供以使鉴别特征损失计算引擎470能够计算特征损失472,该特征损失472可用于训练特征提取神经网络422。
72.该系统可以执行消息编解码神经网络训练程序,其中鉴别特征损失计算引擎470将鉴别特征损失函数应用于恢复的特征466和确定的特征418,以确定由特征提取神经网络422执行的估计引起的图像特征损失472。鉴别特征损失函数将输入图像416的确定的特征418(诸如图1的输入图像102的选择的特征128)与接收图像452的恢复的特征466(诸如图2的接收图像210的恢复的特征258)进行比较。如果测试图像(例如,图2的接收图像210)是真的(例如,不是输出图像450的伪副本,不是输出图像450的经操纵的副本),那么鉴别特征损失函数应该很小。然而,如果测试图像(例如,接收图像452)不是真的(例如,是输出图像450的伪副本,是输出图像450的经操纵的副本),那么鉴别特征损失函数应该很大。
73.鉴别特征损失计算引擎470将特征损失472作为输出发送到特征识别引擎420,用于训练特征提取神经网络422。损失函数确定由特征识别引擎420估计的确定的特征418和由第二特征识别引擎462生成的恢复的特征466之间的偏差。在一些实施方式中,损失函数可以将偏差表示为由于接收图像452是伪图像而导致的接收图像452中的恢复的特征466的准确度的损失。
74.在计算损失之后,特征损失472用于进一步优化特征提取神经网络422。例如,特征损失472可以用于对特征提取神经网络422的层进行参数优化。
75.可以对来自图像库104的多个图像重复这样的训练循环,以迭代地优化特征提取神经网络422。参数优化使得特征提取神经网络422能够更准确地估计图像中描绘的特征。随着时间的推移,通过训练循环的迭代进行足够的训练,特征提取神经网络422可以改进以最小化损失函数,使得由第二特征识别引擎462提供给鉴别特征损失计算引擎470的恢复的特征466收敛到由第一特征识别引擎420提供给鉴别特征损失计算引擎470的确定的特征418。可以重复图4所示的过程,直到特征损失等于或低于预定阈值,或者直到满足其他收敛标准。
76.图5描绘了被配置为训练消息编解码神经网络(例如,消息编码/解码神经网络)的示例系统500。例如,消息编码器540的消息编码神经网络(例如,图5的消息编码神经网络542、图1的消息编码神经网络142)和/或解码器系统560的消息解码器561的消息解码神经网络(例如,图5的消息解码神经网络562、图2的消息解码神经网络252)以改善的准确度编码输出图像和/或解码接收图像。在一些方面,消息编码神经网络或消息解码神经网络中的至少一个与特征提取神经网络和/或操纵检测神经网络分开训练。在一些方面,消息编解码神经提取神经网络与一个或多个特征提取神经网络或操纵检测神经网络共同训练。
77.在操作504处,输入图像502被提供给特征识别引擎520进行处理。例如,如上参考图4所述,用户可以向系统500提交图像(例如,照片)作为输入图像502。在实施方式中,输入图像502被修改,以便训练至少一个消息编码神经网络542对这种类型的失真具有鲁棒性。例如,输入图像502可以被修改(例如,编辑、调整大小、裁剪)或者可以是伪图像。
78.在另一个示例中,特征识别引擎520包括编码器系统510的第一特征提取神经网络522。图像库104(例如,如关于图4的图像库104所描述的)向特征识别引擎520提供输入图像502,如关于图4所描述的。在操作506处,输入图像502还被提供给图像损失计算引擎580进行处理。
79.特征识别引擎520(例如,特征提取神经网络522)估计(确定)输入图像502的特征,并生成确定的特征528的输出。在一些方面,特征提取神经网络522估计确定的特征528,确定的特征528具有可以通过图像识别被识别为学习的特征的特性。学习的特征应该对伪图像的检测敏感;例如,如果图像被操纵或者是伪的,则学习的特征将非常不同。在一些方面,用户提供的特征(诸如图1的用户提供的特征124和/或图2的用户提供的特征234)可以由用户提供,以包含确定的特征528。
80.可选地或附加地,可以通过使用用户提供的特征从输入图像502中提取确定的特征528,如上文参考图4所述。在实施方式中,特征识别引擎520可以通过使用不依赖于神经网络的其他特征提取技术和算法来生成确定的特征528,诸如主成分分析、边缘检测、霍夫变换或其他算法。
81.在估计确定的特征528之后,特征识别引擎520将确定的特征528的输出530(第三输出)发送到特征损失计算引擎570。确定的特征528被提供给特征损失计算引擎570,以使特征损失计算引擎570能够计算特征损失572,该特征损失572被作为输入提供给总损失计算引擎590。
82.特征识别引擎520还向消息编码器540的消息编码神经网络542(例如,图1的消息编码神经网络142)发送具有确定的特征528的输出526,以生成输出图像550。在一些方面,基于确定的特征生成一个或多个签名528,并且将签名作为数字消息(例如,隐写信号)嵌入到输出图像550中,以生成输出图像550。
83.在操作554处,接收图像552被发送到图像损失计算引擎580进行处理。在操作556处,接收图像552被发送到解码器系统560。在一些方面,解码器系统560包括消息解码器561。在一些方面,消息解码器561包括消息解码神经网络562。消息解码神经网络562(诸如图2的消息解码神经网络252)解码接收图像552以从接收图像552中提取签名。该签名表示接收图像552的恢复的特征564。在实施方式中,消息解码神经网络252是被配置为编码和解码图像的消息编码/解码神经网络。
84.消息解码神经网络562被配置为向特征损失计算引擎570发送包括恢复的特征564的输出563(第二输出)。恢复的特征564被提供给特征损失计算引擎570,以使特征损失计算引擎570能够计算作为输入提供给总损失计算引擎590的特征损失572。
85.系统500确定特征损失572。在实施方式中,系统500包括应用损失函数来确定特征损失572的特征损失计算引擎570。损失函数确定由特征识别引擎520相对于输入图像502中的特征估计的确定的特征528和由消息解码神经网络562提取的相对于接收图像552中的特征的恢复的特征564之间的偏差。在一些实施方式中,损失函数可以将偏差表示为由于接收
图像552是伪图像而导致的接收图像552中的恢复的特征564的准确度的损失。在损失被计算之后,特征损失572作为输出(第一损失)被发送到总损失计算引擎590。特征损失572被提供给总损失计算引擎590,以进一步优化特征提取神经网络522、消息编码神经网络542、消息解码神经网络562或消息编解码神经网络(例如,消息编码/解码神经网络)中的一个或多个。
86.系统500确定图像损失582。在实施方式中,系统500包括图像损失计算引擎580,其接收输入图像502和接收图像552,并应用损失函数来确定图像损失582。损失函数确定输入图像502和接收图像552之间的偏差。在一些实施方式中,损失函数可以表示接收图像552中的偏差,其是伪图像或被操纵的图像的结果。在计算图像损失582之后,图像损失582被发送到总损失计算引擎590,并且可以用于进一步优化特征提取神经网络522、消息编码神经网络542或消息解码神经网络562中的一个或多个。
87.系统500基于图像损失582和特征损失572确定总损失592。在一些方面,系统500包括总损失计算引擎590,其将损失函数应用于特征损失572和图像损失582,以确定总损失592。总损失592可能由第一特征提取神经网络522或消息解码神经网络562中的至少一个执行的估计引起。损失函数确定由特征损失计算引擎570计算的特征损失572和由图像损失计算引擎580计算的图像损失582之间的偏差。
88.要优化的总损失函数可由以下等式表示:
89.l=l
il
(ii,io)+l
fl
(f,f
ii
)
ꢀꢀꢀ
(1)
90.其中总损失等于图像损失函数(输入图像,输出图像)加上特征损失函数(特征、从输入图像恢复的特征)。在等式中,总损失是l,图像损失函数是l
il
,特征损失函数是l
fl
,输入图像是ii,输出图像是io,特征是f,从输入图像恢复的特征是f
ii

91.在计算总损失之后,计算的总损失592用于进一步优化特征提取神经网络522、消息解码神经网络562或消息编解码神经网络(例如,消息编码/解码神经网络)中的至少一个。例如,计算的总损失592可用于对一个或多个特征提取神经网络522或消息解码神经网络562的层进行参数优化。可以重复图5所示的过程,直到计算的总损失等于或低于预定阈值,或者直到满足其他收敛标准。可以对来自图像库104的多个图像重复这样的训练循环,以迭代地优化特征提取神经网络522、消息编码神经网络542或消息解码神经网络562中的一个或多个。在实施方式中,参数优化使得特征提取神经网络522能够更准确地估计图像中描绘的特征。随着时间的推移,通过训练循环的迭代进行足够的训练,特征提取神经网络522可以改进,使得由消息解码神经网络562提供给特征损失计算引擎570的恢复的特征536收敛到由特征提取神经网络522提供给特征损失计算引擎570的确定的特征528。
92.在实施方式中,操纵检测神经网络(例如,图2所示的操纵检测神经网络272)与一个或多个消息编码神经网络(例如,图1的消息编码神经网络142)、消息解码神经网络(例如,图2的消息解码神经网络252、图5的消息解码神经网络562)或特征提取神经网络(例如,图1的特征提取神经网络122,图2的特征提取神经网络232、图4的特征提取神经网络422、图4的第二特征提取神经网络464、图5的第一特征提取神经网络522)分开训练。
93.为了训练操纵检测神经网络,特征提取神经网络、消息编码神经网络、特征提取神经网络或消息解码神经网络中的至少一个的值是固定的,并且生成训练图像。训练图像可以包括至少一个图像操纵。在一些方面,输入图像可以是训练图像。在一些方面,接收图像
可以是训练图像。
94.系统将训练图像发送到操纵检测神经网络。操纵检测神经网络确定应用于训练图像的图像操纵。利用应用于训练图像的图像操纵,处理检测神经网络基于正常损失函数计算正常损失。在实施方式中,正常损失是交叉熵损失。操纵检测神经网络至少基于计算的正常损失来训练。在一些方面,所应用的损失函数是用于分类的正常损失函数。
95.特征提取神经网络可以与消息编解码神经网络(例如,消息编码/解码神经网络、一个或多个消息编码神经网络或消息编码/解码神经网络)共同训练,以从图像中提取特征和/或以改善的准确度编码/解码图像中的消息。例如,通过上述单独的特征提取神经网络训练与上述单独的消息编码/解码神经网络训练的组合。要优化的总损失函数可由以下等式表示:
96.l=l
il
(ii,io)+l
fl
(f,f
ii
)+l
dfl
(f,f
ri
)
ꢀꢀꢀ
(2)
97.其中总损失等于图像损失函数(输入图像,输出图像)加上特征损失函数(特征、从输入图像恢复的特征)加上鉴别特征损失函数(特征、从接收图像恢复的特征)。在该等式中,总损失是l,图像损失函数是l
il
,特征损失函数是l
fl
,输入图像是ii,输出图像是io,特征是f,从输入图像恢复的特征是f
ii
,鉴别特征损失函数是l
dfl
,并且来自接收图像的特征是f
ri

98.输入图像在感知上可能与输出图像相同,并且从输入图像恢复的特征尽可能接近从输入图像提取(恢复)的特征,即使存在一些图像操纵(或伪造)。在这种情况下,学习的特征可能是消息编码神经网络更容易隐藏和提取的特征。此外,学习的特征可能对图像操纵(或伪造)敏感,因此,如果图像被改变(例如,被操纵、伪造),所提取的特征将与从输入图像中提取的特征完全不同。在这样的方面,如上所述,操纵检测神经网络可以被单独训练。
99.特征提取神经网络可以与操纵检测神经网络共同训练,以从图像中提取特征和/或以改善的准确度确定接收图像是否是输入图像的伪造或操纵版本。在这样的方面,可以首先训练消息编解码神经网络(例如,图1的消息编码神经网络142和图2的消息解码神经网络252)。为了训练消息编解码神经网络,可以对具有随机特征的随机输入图像应用期望检测的图像操纵(或伪造)。
100.要优化的总损失函数可以由以下等式表示:
101.l=l
il
(ii,io)+l
fl
(f
ra
,f
rr
)
ꢀꢀꢀ
(3)
102.其中总损失等于图像损失函数(输入图像,输出图像)加上特征损失函数(随机特征,恢复的随机特征)。方程中,总损失为l,图像损失函数为l
il
,特征损失函数为l
fl
,随机特征为f
ra
,恢复的随机特征为f
rr

103.输入图像可以在感知上与输出图像相同,并且从输入图像中恢复随机特征。然后固定消息编解码神经网络中的权重,并且共同训练特征提取网络和操纵检测神经网络。然后,可以随机应用或不应用想要检测的图像操纵或伪造。
104.要优化的总损失函数可由以下等式表示:
105.l=l
dfl
(f,f
ri
)+l
ce
ꢀꢀꢀ
(4)
106.其中总损失等于鉴别特征损失函数(特征,来自接收图像的特征)加上交叉熵损失(伪的或真的)。在等式中,总损失是l,鉴别特征损失函数是l
dfl
,来自接收图像的特征是f
ri
,交叉熵损失(伪的或真的)是l
ce
。通过这样的训练程序,特征提取神经网络将学习用于检测
伪造或真实图像的最佳特征。
107.消息编解码神经网络(例如,图1的消息编码神经网络142和图2的消息解码神经网络252)可以与操纵检测神经网络共同训练,以编码/解码图像中的消息和/或以改善的准确度确定接收图像是否是输入图像的伪造或操纵版本。在这一方面,如上所述,特征提取神经网络被单独训练。在特征提取神经网络被训练之后,权重被固定。为了共同训练消息编解码神经网络和操纵检测神经网络,随机应用或不应用希望检测的图像操纵或伪造。要优化的总损失函数可由以下等式表示:
108.l=l
il
(ii,io)+l
fl
(f,f
ii
)+l
ce
ꢀꢀꢀ
(5)
109.其中总损失等于图像损失函数(输入图像,输出图像)加上特征损失函数(特征,从输入图像恢复的特征)加上交叉熵损失(伪的或真的)。在等式中,总损失是l,图像损失函数是l
il
,特征损失函数是l
fl
,输入图像是ii,输出图像是io,特征是f,从输入图像恢复的特征是f
ii
,交叉熵损失(伪的或真的)是l
ce
。在各方面,输入图像在感知上可以与输出图像相同,并且从输入图像恢复的特征尽可能接近从输入图像提取(恢复)的特征,即使存在一些图像操纵(或伪造)。
110.特征提取神经网络可以与消息编解码神经网络(例如,消息编码/解码神经网络、消息编码神经网络和消息解码神经网络)以及操纵检测神经网络共同训练,以从图像中以改善的准确度提取特征,对图像中的消息进行编码/解码,和/或以改善的准确度确定接收图像是否是输入图像的伪造或操纵版本。
111.可以随机应用或不应用期望被检测的操纵或伪造。要优化的总损失函数可由以下等式表示:
112.l=l
il
(ii,io)+l
fl
(f,f
ii
)+l
dfl
(f,f
ri
)+l
ce
ꢀꢀꢀ
(6)
113.其中总损失等于图像损失函数(输入图像,输出图像)加上特征损失函数(随机特征、恢复的随机特征)加上鉴别特征损失函数(特征,来自接收图像的特征)加上交叉熵损失(伪的或真的)。在等式中,总损失是l,图像损失函数是l
il
,特征损失函数是l
fl
,随机特征是f
ra
,恢复的随机特征是f
rr
,鉴别特征损失函数是l
dfl
,来自接收图像的特征是f
ri
,交叉熵损失(伪的或真的)是l
ce

114.在接收图像是伪图像的情况下,鉴别特征损失函数将惩罚(penalize)情况特征,并且来自接收图像的特征是接近的。在接收图像是真的情况下,鉴别特征损失函数将惩罚情况特征,并且来自接收图像的特征是远的。希望输入图像在感觉上与输出图像相同。希望消息编解码神经网络对图像操纵或伪造具有鲁棒性。希望提取的特征对图像操纵或伪造敏感。
115.虽然所描述的用于验证图像真实性的技术和装置的特征和概念可以在任何数量的不同环境、系统、设备和/或各种配置中实现,但是验证图像真实性的各方面是在以下示例设备、系统和配置的上下文中描述的。
116.对于这里讨论的技术和/或装置可以收集关于用户的个人信息或者可以利用个人信息的情况,可以向用户提供机会来控制程序或特征是否收集个人信息,例如关于用户的社交网络、社交动作或活动、职业、偏好或当前位置的信息,或者控制系统和/或方法是否和/或如何可以执行与用户更相关的操作。此外,在存储或使用某些数据之前,可能会以一种或多种方式对其进行匿名处理,从而删除个人身份信息。例如,用户的身份可能被匿名
化,从而无法确定用户的个人可识别信息,或者用户的地理位置可能被概括为获得位置信息的位置,诸如城市、邮政编码或州级,从而无法确定用户的特定位置。因此,用户可以控制如何收集和使用关于他们的信息。
117.方法
118.图6示出了生成要验证图像的示例方法600。方法600可以由如上参考图1所述的系统100利用参考图1所述的一个或多个组件来执行。在602处,编码器系统接收输入图像。在604处,编码器系统对输入图像执行特征识别,以确定输入图像的多个确定的特征。在606处,编码器系统生成定义表示输入图像的确定的特征的值的第三输出。在608处,编码器系统向消息编码神经网络提供第三输出。在610处,消息编码神经网络从第三输出生成签名,该第三输出定义表示输入图像的确定的特征的值。在612处,编码器系统将第二签名嵌入输入图像中以生成输出图像。在一些方面,方法600包括验证图像的真实性。方法600可以被执行,包括比所示出的操作更多或更少的操作,或者以不同的顺序执行。
119.在方法600的示例用例中,用户计算设备的用户利用用户计算设备的相机模块来拍摄输入图像(照片)。在用户计算设备上实现的编码器系统接收输入图像。编码器系统对输入图像执行特征识别,以确定输入图像的多个确定的特征。编码器系统生成定义代表输入图像的确定的特征的值的输出。编码器系统将输出提供给在用户计算设备的存储器设备上实现的消息编码神经网络。消息编码神经网络从定义表示输入图像的确定的特征的值的输出生成签名。编码器系统将签名嵌入输入图像中,以生成存储在用户计算设备的存储器设备上的输出图像。
120.在方法600的另一示例用例中,图像存储在图像库中。在服务器计算设备上实现的编码器系统从图像库接收输入图像。例如,服务器计算设备的操作者可以利用图像库来存储由操作者提供的服务的用户上传的图像。编码器系统对输入图像执行特征识别,以确定输入图像的多个确定的特征。编码器系统生成定义代表输入图像的确定的特征的值的输出。编码器系统向在服务器计算设备的存储器设备上实现的消息编码神经网络提供输出。消息编码神经网络从定义表示输入图像的确定的特征的值的输出生成签名。编码器系统将签名嵌入输入图像中,以生成存储在服务器计算设备的存储器设备上的输出图像。嵌入的签名可以在以后用于验证图像。
121.图7示出了验证图像真实性的示例方法700。方法700可以由如上参考图2所述的系统200利用参考图2所述的一个或多个组件来执行。在702处,解码器系统接收要验证的图像。在704处,解码器系统对接收图像执行特征识别,以确定接收图像的多个确定的特征。在706处,解码器系统生成第一输出,该第一输出定义了表示接收图像的确定的特征的值。在708处,解码器系统利用消息解码神经网络来解码接收图像,以提取嵌入在接收图像中的签名。嵌入的签名代表接收图像的恢复的特征。在710处,解码器系统生成第二输出,该第二输出定义了表示接收图像的恢复的特征的值。在712处,解码器系统向操纵检测神经网络提供第一输出和第二输出。在714处,操纵检测神经网络至少利用第一输出和第二输出生成对接收图像的真实性的估计。在一些方面,方法700包括验证图像的真实性。方法700可以被执行,包括比所示出的操作更多或更少的操作,或者以不同的顺序执行。
122.在方法700的示例用例中,在用户计算设备上实现的解码器系统从在用户计算设备上实现的存储器设备接收要验证的图像。解码器系统对接收图像执行特征识别,以确定
接收图像的多个确定的特征。解码器系统生成第一输出,该第一输出定义了表示接收图像的确定的特征的值。解码器系统利用在用户计算设备上实现的消息解码神经网络来解码接收图像,以提取嵌入在接收图像中的签名。嵌入的签名代表接收图像的恢复的特征。解码器系统生成第二输出,该第二输出定义了表示接收图像的恢复的特征的值。解码器系统将第一输出和第二输出提供给在用户计算设备上实现的操纵检测神经网络。操纵检测神经网络至少利用第一输出和第二输出生成接收图像的真实性的估计。
123.在方法700的另一示例用例中,在服务器计算设备上实现的解码器系统从图像库接收要验证的图像。例如,服务器计算设备的操作者可以利用图像库来存储由操作者提供的服务的用户上传的图像。解码器系统对接收图像执行特征识别,以确定接收图像的多个确定的特征。解码器系统生成第一输出,该第一输出定义了表示接收图像的确定的特征的值。解码器系统利用在服务器计算设备上实现的消息解码神经网络来解码接收图像,以提取嵌入在接收图像中的签名。嵌入的签名代表接收图像的恢复的特征。解码器系统生成第二输出,该第二输出定义了表示接收图像的恢复的特征的值。解码器系统将第一输出和第二输出提供给在服务器计算设备上实现的操纵检测神经网络。操纵检测神经网络至少利用第一输出和第二输出生成接收图像的真实性的估计。
124.机器学习模型
125.图8描绘了根据本公开的示例实施例的示例机器学习模型800的框图。如图8所示,机器学习模型800被训练成接收一种或多种类型的输入数据,并且作为响应,提供一种或多种类型的输出数据。因此,图8示出了执行推断的机器学习模型800。
126.输入数据可以包括与实例或示例相关联的一个或多个特征。在一些实施方式中,与实例或示例相关联的一个或多个特征可以被组织成特征向量。在一些实施方式中,输出数据可以包括一个或多个预测。预测也可以称为推断。因此,给定与特定实例相关联的特征,机器学习模型可以基于这些特征输出对这种实例的预测。
127.机器学习模型可以是或包括各种不同类型的机器学习模型中的一个或多个。特别地,在一些实施方式中,机器学习模型可以执行分类、回归、聚类、关联、异常检测、推荐生成和/或其他任务。
128.机器学习模型可以基于输入数据执行各种类型的分类。例如,机器学习模型可以执行二元分类或多类分类。在二元分类中,输出数据可以包括输入数据到两个不同类别之一的分类。在多类分类中,输出数据可以包括输入数据在两个以上类别中的一个(或多个)类别。分类可以是单标签或多标签。
129.机器学习模型可以执行离散分类,其中输入数据被简单地分类到一个或多个类别或种类中。
130.机器学习模型可以执行分类,其中机器学习模型为一个或多个类别中的每一个提供数值,该数值描述认为输入数据应该被分类到相应类别的程度。在一些情况下,由机器学习模型提供的数值可以被称为“置信度得分”,其指示与输入到相应类别的分类相关联的相应置信度。在一些实施方式中,可以将置信度得分与一个或多个阈值进行比较,以提供离散的分类预测。在一些实施方式中,只有一定数量的具有相对最大置信度得分的类别(例如,一个)可以被选择来呈现离散分类预测。
131.机器学习模型可以提供概率分类。例如,给定样本输入,机器学习模型能够预测一
组类别的概率分布。因此,机器学习模型可以为每个类别输出样本输入属于该类别的概率,而不是仅输出样本输入应该属于的最可能的类别。在一些实施方式中,所有可能类别的概率分布总和可以是1。在一些实施方式中,softmax函数或层可用于将分别与可能的类别相关联的一组实数值挤压成总和为1的范围(0,1)中的一组实数值。
132.由概率分布提供的概率可以与一个或多个阈值进行比较,以提供离散的分类预测。在一些实施方式中,只有一定数量的具有相对最大预测概率的类别(例如,一个)可以被选择来呈现离散分类预测。
133.在机器学习模型执行分类的实现中,可以使用监督学习技术来训练机器学习模型。例如,机器学习模型可以在包括被标记为属于(或不属于)一个或多个类的训练示例的训练数据集上被训练。下面提供了关于监督训练技术的进一步细节。
134.机器学习模型可以执行回归,以连续数值的形式提供输出数据。连续数值可以对应于任何数量的不同度量或数值表示,包括例如货币值、得分或其他数值表示。例如,机器学习模型可以执行线性回归、多项式回归或非线性回归。例如,机器学习模型可以执行简单回归或多重回归。如上所述,在一些实施方式中,softmax函数或层可用于将分别与两个或更多个可能的类别相关联的一组实数值挤压成总和为1的范围(0,1)中的一组实数值。
135.机器学习模型可以执行各种类型的聚类。例如,机器学习模型可以识别输入数据最可能对应的一个或多个先前定义的聚类。作为另一个示例,机器学习模型可以识别输入数据中的一个或多个聚类。也就是说,在输入数据包括多个对象、文档或其他实体的情况下,机器学习模型可以将输入数据中包括的多个实体分类成多个聚类。在机器学习模型执行聚类的一些实施例中,可以使用无监督学习技术来训练机器学习模型。
136.机器学习模型可以执行异常检测或异常值检测。例如,机器学习模型可以识别不符合预期模式或其他特征的输入数据(例如,如先前从先前输入数据观察到的)。例如,异常检测可用于欺诈检测或系统故障检测。
137.机器学习模型可以以一个或多个建议的形式提供输出数据。例如,机器学习模型可以被包括在推荐系统或引擎中。作为示例,给定描述某些实体的先前结果的输入数据(例如,指示成功或享受程度的得分、排名或评级),机器学习模型可以输出一个或多个附加实体的建议或推荐,基于先前的结果,这些实体被期望具有期望的结果(例如,引出指示成功或享受的得分、排名或评级)。作为一个示例,给定描述用户购买或高度评价的产品数量的输入数据,推荐系统可以输出用户可能喜欢或希望购买的附加产品的建议或推荐。
138.机器学习模型可以充当环境中的代理。例如,可以使用强化学习来训练机器学习模型,这将在下面进一步详细讨论。
139.机器学习模型可以是参数模型,而在其他实施例中,机器学习模型可以是非参数模型。在一些实施方式中,机器学习模型可以是线性模型,而在其他实施方式中,机器学习模型可以是非线性模型。
140.如上所述,机器学习模型可以是或包括各种不同类型的机器学习模型中的一个或多个。这种不同类型的机器学习模型的示例在下面提供用于说明。下面描述的一个或多个示例模型可以用于(例如,组合)响应于输入数据提供输出数据。除了下面提供的示例模型之外,还可以使用其他模型。
141.机器学习模型可以是或包括一个或多个分类器模型,诸如例如线性分类模型、二
次分类模型等。
142.机器学习模型可以是或包括一个或多个回归模型,诸如例如简单线性回归模型、多元线性回归模型、逻辑回归模型、逐步回归模型、多元自适应回归样条;局部估计的散点图平滑模型;等等。
143.机器学习模型可以是或包括一个或多个基于决策树的模型,诸如例如分类和/或回归树;id3(迭代二分法3)决策树;c4.5决策树;卡方自动交互检测决策树;决策障碍;条件决策树;等等。
144.机器学习模型可以是或包括一个或多个核心机器。在一些实施方式中,机器学习模型可以是或包括一个或多个支持向量机。
145.机器学习模型可以是或包括一个或多个基于实例的学习模型,诸如例如学习矢量量化模型、自组织映射模型、局部加权学习模型等。
146.机器学习模型可以是或包括一个或多个最近邻模型,诸如例如k最近邻分类模型;k近邻回归模型;等等。
147.机器学习模型可以是或包括一个或多个贝叶斯模型,诸如例如朴素贝叶斯模型、高斯朴素贝叶斯模型、多项式朴素贝叶斯模型;平均单相依估计量;贝叶斯网络;贝叶斯信念网络;隐马尔可夫模型;等等。
148.机器学习模型可以是或包括一个或多个人工神经网络(也简称为神经网络)。神经网络可以包括一组连接的节点,也可以称为神经元或感知器。神经网络可以组织成一层或多层。包括多层的神经网络可以被称为“深度”网络。深层网络可以包括输入层、输出层以及位于输入层和输出层之间的一个或多个隐藏层。神经网络的节点可以是连接的或非完全连接的。
149.机器学习模型可以是或包括一个或多个前馈神经网络。在前馈网络中,节点之间的连接不形成循环。例如,每个连接可以将较早层的节点连接到较晚层的节点。
150.机器学习模型可以是或包括一个或多个递归神经网络。在一些情况下,递归神经网络的至少一些节点可以形成循环。递归神经网络对于处理本质上连续的输入数据特别有用。特别地,在一些情况下,递归神经网络可以通过使用递归或有向循环节点连接,将来自输入数据序列的前一部分的信息传递或保留到输入数据序列的后一部分。
151.作为一个示例,顺序输入数据可以包括时间序列数据(例如,传感器数据对时间或者在不同时间捕获的图像)。例如,递归神经网络可以分析传感器数据与时间的关系,以检测或预测挥击方向,执行手写识别等。作为另一个示例,顺序输入数据可以包括句子中的单词(例如,用于自然语言处理、语音检测或处理等);音乐作品中的音符;用户采取的顺序动作(例如,检测或预测顺序应用使用);顺序对象状态;等等。
152.示例递归神经网络包括长短期(lstm)递归神经网络;门控循环单元;双向递归神经网络;连续时间递归神经网络;神经历史压缩器;回声状态网络;elman网络;jordan网络;递归神经网络;hopfield网络;完全循环网络;序列间配置;等等。
153.机器学习模型可以是或包括一个或多个卷积神经网络。在一些情况下,卷积神经网络可以包括一个或多个卷积层,其使用学习滤波器对输入数据执行卷积。过滤器也可以被称为内核。卷积神经网络对于视觉问题特别有用,例如当输入数据包括静止图像或视频等图像时。然而,卷积神经网络也可以应用于自然语言处理。
154.机器学习模型可以是或包括一个或多个生成网络,诸如例如生成对抗网络。生成网络可用于生成新数据,诸如新图像或其他内容。
155.机器学习模型可以是或包括自动编码器。在一些情况下,自动编码器的目的是学习一组数据的表示(例如,低维编码),通常是为了降维的目的。例如,在某些情况下,自动编码器可以试图对输入数据进行编码,然后提供从编码中重构输入数据的输出数据。最近,自动编码器概念已经更广泛地用于学习数据的生成模型。在某些情况下,除了重构输入数据之外,自动编码器还会包括额外的损失。
156.机器学习模型可以是或包括一种或多种其他形式的人工神经网络,诸如例如深度波尔兹曼机器、深度信念网络、堆叠自动编码器等。本文所述的任何神经网络可以被组合(例如,堆叠)以形成更复杂的网络。
157.可以使用一个或多个神经网络来提供基于输入数据的嵌入。例如,嵌入可以是从输入数据抽象到一个或多个学习维度中的知识的表示。在某些情况下,嵌入可能是识别相关实体的有用来源。在一些情况下,可以从网络的输出中提取嵌入,而在其他情况下,可以从网络的任何隐藏节点或层(例如,接近最终层但不是网络的最终层)中提取嵌入。嵌入可用于执行自动建议下一个视频、产品建议、实体或对象识别等。在某些情况下,嵌入是下游模型的有用输入。例如,嵌入可用于为下游模型或处理系统概括输入数据(例如,搜索查询)。
158.机器学习模型可以包括一个或多个聚类模型,诸如例如k均值聚类模型、k中值聚类模型、期望最大化模型、分层聚类模型;等等。
159.机器学习模型可以执行一种或多种维度缩减技术,诸如例如主成分分析;核心主成分分析;基于图的核心主成分分析;主成分回归;偏最小二乘回归;sammon映射;多维标度;投影寻踪;线性鉴别分析;混合鉴别分析;二次鉴别分析;广义鉴别分析;灵活的鉴别分析;自动编码;等等。
160.机器学习模型可以执行或服从一种或多种强化学习技术诸如,例如马尔可夫决策过程、动态编程;q函数或q学习;价值函数方法;深度q-网络;可微分神经计算机;异步优势行动者-批评家;确定性政策梯度;等等。
161.机器学习模型可以是自回归模型。在某些情况下,自回归模型可以指定输出数据线性依赖于它自己以前的值和随机项。在某些情况下,自回归模型可以采用随机差分方程的形式。一个示例自回归模型是wavenet,它是原始音频的生成模型。
162.机器学习模型可以包括或形成多模型集合的一部分。作为一个示例,可以执行自举聚合,这也可以称为“打包”在自举聚集中,训练数据集被分成多个子集(例如,通过带有替换的随机采样),并且多个模型分别在多个子集上被训练。在推断时,多个模型的相应输出可以被组合(例如,通过平均、投票或其他技术)并用作集成的输出。
163.一个示例模型集成是随机森林,其也可以被称为随机决策森林。随机森林是一种用于分类、回归和其他任务的集成学习方法。通过在训练时生成多个决策树来生成随机森林。在某些情况下,在推断时,作为各个树的类(分类)或平均预测(回归)的模式的类可以用作森林的输出。随机决策树可以纠正决策树过度适应训练集的倾向。
164.另一个示例集成技术是堆叠,在某些情况下,它可以被称为堆叠概括。堆叠包括训练组合器模型来混合或以其他方式组合若干其他机器学习模型的预测。因此,可以基于训
练数据来训练多个机器学习模型(例如,相同或不同类型的)。此外,组合器模型可以被训练以将来自其他机器学习模型的预测作为输入,并且作为响应,生成最终的推断或预测。在某些情况下,单层逻辑回归模型可以用作组合模型。
165.另一个示例集成技术是boosting。boosting可以包括通过迭代地训练弱模型并随后添加到最终的强模型来递增地构建集成。例如,在一些情况下,每个新模型可以被训练以强调先前模型曲解(例如,错误分类)的训练示例。例如,可以增加与每个这种被误解的示例相关联的权重。boosting的一种常见实现是adaboost,它也可以称为自适应boosting。其他示例boosting技术包括线性编程boosting(lpboost);totalboost;brownboost;xgboost;madaboost,logitboost,梯度boosting;等等。
166.此外,上面描述的任何模型(例如,回归模型和人工神经网络)可以被组合以形成集合。例如,集成可以包括顶级机器学习模型或启发式函数,以组合和/或加权形成集成的模型的输出。
167.多个机器学习模型(例如,形成集成的模型)可以被链接并共同训练(例如,通过模型集成中顺序的误差反向传播)。然而,在一些实施方式中,只有共同训练的模型的子集(例如,一个)用于推断。
168.机器学习模型可用于预处理输入数据,以便随后输入到另一个模型中。例如,机器学习模型可以执行降维技术和嵌入(例如,矩阵分解、主成分分析、奇异值分解、word2vec/glove和/或相关方法);聚类;甚至对下游消费进行分类回归。这些技术中的许多已经在上面讨论过,并将在下面进一步讨论。
169.再次参考图8,并且如上所述,机器学习模型可以被训练或以其他方式被配置为接收输入数据,并且作为响应,提供输出数据。输入数据可以包括不同类型、形式或变化的输入数据。作为示例,在各种实施方式中,输入数据可以包括确定的图像特征和/或用户提供的图像特征。
170.机器学习模型可以接收和使用原始形式的输入数据。在一些实施例中,原始输入数据可以被预处理。因此,作为原始输入数据的补充或替代,机器学习模型可以接收和使用预处理的输入数据。
171.预处理输入数据可以包括从原始输入数据中提取一个或多个附加特征。例如,可以将特征提取技术应用于输入数据,以生成一个或多个新的附加特征。示例特征提取技术包括边缘检测;角点检测;斑点检测;脊线检测;尺度不变特征变换;运动检测;光流;霍夫变换;等等。
172.提取的特征可以包括输入数据到其他域和/或维度的变换,或者从输入数据到其他域和/或维度的变换中导出。例如,所提取的特征可以包括输入数据到频域的变换,或者从输入数据到频域的变换中导出。例如,可以对输入数据执行小波变换和/或快速傅立叶变换,以生成附加特征。
173.提取的特征可以包括从输入数据或输入数据的某些部分或维度计算的统计。示例统计包括输入数据或其部分的模式、平均值、最大值、最小值或其他度量。
174.如上所述,输入数据本质上可以是顺序的。在某些情况下,顺序输入数据可以通过对输入数据流进行采样或分割来生成。作为一个示例,可以从视频中提取帧。在一些实施方式中,通过汇总可以使顺序数据变得不顺序。
175.作为预处理技术的另一个示例,部分输入数据可以被估算。例如,可以通过内插和/或外插来生成附加的合成输入数据。
176.作为另一示例预处理技术,一些或所有输入数据可以被缩放、标准化、规范化、一般化和/或规则化。示例正则化技术包括岭回归;最小绝对收缩和选择算子(lasso);弹性网;最小角度回归;交叉验证;l1正则化;l2正规化;等等。作为一个示例,通过从每个单独的特征值中减去给定维度的特征值的平均值,然后除以标准偏差或另一个度量,可以归一化一些或所有输入数据。
177.作为另一示例预处理技术,一些或所有输入数据可以被量化或离散化。作为又一个示例,输入数据中包括的定性特征或变量可以被转换成定量特征或变量。例如,可以执行一次热编码。
178.在输入到机器学习模型之前,可以对输入数据应用降维技术。上面提供了几个降维技术的示例,包括,例如,主成分分析;核心主成分分析;基于图的核心主成分分析;主成分回归;偏最小二乘回归;sammon映射;多维标度;投影寻踪;线性鉴别分析;混合鉴别分析;二次鉴别分析;广义鉴别分析;灵活的鉴别分析;自动编码;等等。
179.在训练期间,可以有意地以多种方式对输入数据进行变形,以提高模型的鲁棒性、泛化能力或其他质量。使输入数据变形的示例技术包括添加噪声;改变颜色、阴影或色调;放大倍数;分段;放大;等等。
180.再次参考图8,响应于输入数据的接收,机器学习模型800可以提供输出数据。输出数据可以包括不同类型、形式或变化的输出数据。作为示例,在各种实现中,输出数据可以包括表示图像(例如,输入图像、输出图像、接收图像)的特征的值、表示嵌入在接收图像中的图像特征的值和/或图像真实性的预测(例如,估计)。
181.如上所述,输出数据可以包括各种类型的分类数据(例如,二元分类、多类分类、单标签、多标签、离散分类、回归分类、概率分类等)或者可以包括各种类型的回归数据(例如,线性回归、多项式回归、非线性回归、简单回归、多元回归等)。在其他情况下,输出数据可以包括聚类数据、异常检测数据、推荐数据或上述任何其他形式的输出数据。
182.输出数据会影响下游流程或决策。作为一个示例,在一些实施方式中,输出数据可以由基于规则的调节器解释和/或作用。
183.在各方面,当机器学习模型存储在计算系统(例如,用户计算系统302)上时,软件加密规则(例如,安全散列算法)可用于保护模型的完整性并防止第三方篡改模型(例如,用另一模型替换机器学习模型的一部分)。在一些方面,可以响应于检测到试图篡改而生成警报信号。
184.因此,本公开提供了包括或以其他方式利用一个或多个机器学习模型的系统和方法,以基于嵌入在图像中的确定的特征和/或恢复的图像特征来生成图像真实性的预测(例如,估计)。上述任何不同类型或形式的输入数据可以与上述任何不同类型或形式的机器学习模型相结合,以提供上述任何不同类型或形式的输出数据。
185.机器学习模型800可以存储在计算系统(例如,图3的计算系统300)中和/或由计算系统本地实现。例如,机器学习模型800可以存储在用户计算设备或嵌入式计算设备上和/或由用户计算设备或嵌入式计算设备本地实现。通过在计算系统处本地实现机器学习模型而获得的输出数据可用于改善计算系统(例如,由计算系统实现的应用)的性能。作为一个
示例,图3示出了本地存储和实现机器学习模型320的用户计算系统302(例如,移动计算设备)的框图。
186.机器学习模型可以存储在服务器计算设备(诸如图3的服务器计算系统330)上和/或由服务器计算设备实现。在一些情况下,通过在服务器计算设备处实现机器学习模型而获得的输出数据可以用于改进其他服务器任务,或者可以由其他非用户设备用于改进由这种其他非用户设备执行的或为这种其他非用户设备执行的服务。例如,输出数据可以改进由服务器计算设备为用户计算设备或嵌入式计算设备执行的其他下游过程。在其他情况下,通过在服务器计算设备处实现机器学习模型而获得的输出数据可以被发送给用户计算设备、嵌入式计算设备或某个其他客户端设备并由其使用。例如,可以说服务器计算设备将机器学习作为服务来执行。作为一个示例,图3示出了可以通过网络380与包括机器学习模型340的示例服务器计算系统330通信的示例用户计算系统302的框图。
187.机器学习模型的不同的相应部分可以存储在用户计算设备、嵌入式计算设备、服务器计算设备等的某种组合中和/或由它们实现。
188.计算设备可以使用一个或多个机器学习平台、框架和/或库来执行图形处理技术或其他机器学习技术,诸如例如tensorflow、caffe/caffe2、theano、torch/pytorch、mxnet、认知工具包(cntk)等。
189.计算设备可以分布在不同的物理位置,并经由一个或多个网络连接。分布式计算设备可以根据顺序计算架构、并行计算架构或其组合来操作。在一个示例中,可以通过使用参数服务器来控制或引导分布式计算设备。
190.机器学习模型的多个实例可以并行化,以提供增加的处理吞吐量。例如,机器学习模型的多个实例可以在单个处理设备或计算设备上并行化,或者跨多个处理设备或计算设备并行化。
191.如上所述,这里描述的机器学习模型可以在训练计算系统处被训练,然后被提供用于在一个或多个计算设备处存储和/或实现。例如,模型训练器360可以位于训练计算系统350处,如图3所示。训练计算系统350可以被包括在实现机器学习模型的一个或多个计算设备中或者与其分离。作为一个示例,图3示出了与包括模型训练器360的示例训练计算系统350通信的示例用户计算系统302的框图。
192.可以以离线方式或在线方式训练机器学习模型。在离线训练(也称为批量学习)中,模型是在一组静态训练数据的整体上训练的。在在线学习中,随着新的训练数据变得可用(例如,当模型用于执行推断时),模型被连续训练(或重新训练)。
193.模型训练器可以执行机器学习模型的集中训练(例如,基于集中存储的数据集)。在其他实施例中,诸如分布式训练、联合学习等的分散式训练技术可用于训练、更新或个性化机器学习模型。
194.这里描述的机器学习模型可以根据各种不同训练类型或技术中的一种或多种来训练。例如,在一些实施方式中,可以使用监督学习来训练机器学习模型,其中在包括具有标签的实例或示例的训练数据集上训练机器学习模型。标签可以由专家手动应用,通过众包生成,或通过其他技术提供(例如,通过基于物理的或复杂的数学模型)。在一些实施例中,如果用户已经提供了同意,则训练示例可以由用户计算设备提供。在一些实施例中,这个过程可以被称为个性化模型。
195.机器学习模型可以通过优化目标函数来训练。例如,在一些实施方式中,目标函数可以是或包括损失函数,该损失函数比较由模型从训练数据生成的输出数据和与训练数据相关联的标签(例如,基本事实标签)(例如,确定它们之间的差异)。例如,损失函数可以计算输出数据和标注之间的平方差的和或均值。作为另一个示例,目标函数可以是或包括成本函数,该成本函数描述了特定结果或输出数据的成本。其他目标函数可以包括基于余量的技术,例如三元组损失或最大余量训练。
196.可以执行各种优化技术中的一种或多种来优化目标函数。例如,优化技术可以最小化或最大化目标函数。示例优化技术包括基于hessian的技术和基于梯度的技术,诸如例如坐标下降、梯度下降(例如随机梯度下降)、次梯度方法等。其他优化技术包括黑盒优化技术和试探法。
197.误差的反向传播可以与优化技术(例如,基于梯度的技术)结合使用来训练模型(例如,诸如人工神经网络的多层模型)。例如,可以执行传播和模型参数(例如,权重)更新的迭代循环来训练模型。示例反向传播技术包括时间截断反向传播、levenberg-marquardt反向传播等。
198.这里描述的机器学习模型可以使用无监督学习技术来训练。无监督学习可以包括从未标记的数据中推断出描述隐藏结构的函数。例如,分类或归类可能不包括在数据中。无监督学习技术可用于生成能够执行聚类、异常检测、学习潜在变量模型或其他任务的机器学习模型。
199.这里描述的机器学习模型可以使用结合了监督学习和非监督学习的半监督技术来训练。
200.这里描述的机器学习模型可以通过进化技术或遗传算法来训练或生成。
201.这里描述的机器学习模型可以使用强化学习来训练。在强化学习中,代理(例如,模型)可以在环境中采取行动,并学习最大化奖励和/或最小化这些行动导致的惩罚。强化学习与监督学习问题的不同之处在于,既没有出现正确的输入/输出对,也没有明确纠正次优动作。
202.可以在训练期间执行一种或多种泛化技术来改善机器学习模型的泛化。泛化技术可以帮助减少机器学习模型对训练数据的过度拟合。示例概括技术包括丢弃技术、权重衰减技术、批量标准化、提前停止、子集选择、逐步选择等。
203.这里描述的机器学习模型可以包括多个超参数或者受多个超参数影响,诸如例如学习速率、层数、每层中的节点数、树中的叶子数、聚类数;等等。超参数会影响模型性能。超参数可以手动选择或者可以通过应用诸如网格搜索的技术自动选择;黑盒优化技术(例如,贝叶斯优化、随机搜索等);基于梯度的优化;等等。用于执行自动超参数优化的示例技术和/或工具包括hyperopt;auto-weka;留兰香;度量优化引擎(moe);等等。
204.当训练模型时,可以使用各种技术来优化和/或调整学习速率。用于执行学习率优化或自适应的示例技术和/或工具包括adagrad、自适应矩估计(adam)、adadelta、rmsprop等。
205.迁移学习技术可以用于提供初始模型,从该初始模型开始训练这里描述的机器学习模型。
206.这里描述的机器学习模型可以被包括在计算设备上的计算机可读代码的不同部
分中。在一个示例中,机器学习模型可以被包括在特定的应用或程序中,并且由这样的特定应用或程序使用(例如,排他地)。因此,在一个示例中,计算设备可以包括多个应用,并且一个或多个这样的应用可以包含其自己相应的机器学习库和机器学习模型。
207.这里描述的机器学习模型可以被包括在计算设备的操作系统中(例如,在操作系统的中央智能层中),并且可以被与操作系统交互的一个或多个应用调用或以其他方式使用。在一些实施方式中,每个应用可以使用应用编程接口(api)(例如,跨所有应用的公共api)与中央智能层(以及存储在其中的模型)通信。
208.中央智能层可以与中央设备数据层通信。中央设备数据层可以是计算设备的集中式数据仓库。中央设备数据层可以与计算设备的多个其他组件通信,诸如例如一个或多个传感器、上下文管理器、设备状态组件和/或附加组件。在一些实施例中,中央设备数据层可以使用api(例如,私有api)与每个设备组件通信。
209.这里讨论的技术指的是服务器、数据库、软件应用和其他基于计算机的系统,以及所采取的行动和发送到这些系统和从这些系统接收的信息。基于计算机的系统的固有灵活性允许在组件之间对任务和功能进行多种可能的配置、组合和划分。例如,这里讨论的过程可以使用单个设备或组件或者组合工作的多个设备或组件来实现。数据库和应用程序可以在单个系统上实现,也可以分布在多个系统上。分布式组件可以顺序或并行操作。
210.此外,本文描述的机器学习技术易于互换和组合。尽管已经描述了某些示例技术,但是存在许多其他技术,并且可以结合本公开的方面使用。
211.因此,尽管已经针对各种具体示例实施例详细描述了本主题,但是每个示例都是通过解释的方式提供的,而不是对本公开的限制。本领域的普通技术人员可以容易地对这种实施方式进行改变、变化和等效。因此,本主题公开不排除包括对本主题的这种修改、变化和/或添加,这对于本领域普通技术人员来说是显而易见的。例如,作为一个实施方式的一部分示出或描述的特征可以与另一个实施方式一起使用,以生成更进一步的实施方式。
212.示例
213.在下一节中,描述了一些示例:
214.示例1:一种方法,包括:由解码器系统(220)接收要验证的图像(210);对接收图像(210)执行特征识别,以确定接收图像(210)的多个确定的特征(238);生成定义表示接收图像(210)的确定的特征(238)的值的第一输出(236);通过解码器系统(220)的消息解码神经网络(252)解码接收图像(210),以提取嵌入在接收图像(210)中的签名(254),签名(254)表示接收图像(210)的恢复的特征(258);生成第二输出(256),该第二输出(256)定义表示接收图像(210)的恢复的特征(258)的值;向解码器系统(220)的操纵检测神经网络(272)提供第一输出(236)和第二输出(256);以及由操纵检测神经网络(272)至少利用第一输出(236)和第二输出(256)生成接收图像(210)的真实性的估计。
215.示例2:示例1的方法,其中对接收图像执行特征识别还包括以下至少一个:使用第一特征提取神经网络处理接收图像,以选择接收图像的多个特征;或者接收第一用户输入以选择接收图像的多个特征。
216.示例3:示例1或示例2的方法,还包括:由编码器系统接收输入图像;对输入图像执行特征识别,以确定输入图像的多个确定的特征;以及生成定义表示输入图像的确定的特征的值的第三输出。
217.示例4:示例3的方法,其中在接收图像上执行特征识别包括使用第一特征提取神经网络处理接收图像以选择接收图像的多个特征;其中对输入图像执行特征识别包括使用第二特征提取神经网络处理输入图像以选择输入图像的多个特征;该方法还包括:向鉴别特征损失计算引擎提供第二输出和第三输出;由鉴别特征损失计算引擎至少基于第二输出和第三输出,基于第一损失函数计算第一损失;至少基于输入图像和接收图像,基于第二损失函数计算第二损失;至少基于第一损失和第二损失,基于总损失函数计算总损失;以及至少基于计算的总损失,将第一特征提取神经网络或第二特征提取神经网络中的至少一个与消息解码神经网络共同训练。
218.示例5:示例3或示例4的方法,还包括:向消息编码神经网络提供第三输出;从第三输出生成第二签名;以及将第二签名嵌入到输入图像中以生成输出图像。
219.示例6:示例3的方法,其中对输入图像执行特征识别还包括以下至少一个:使用第二特征提取神经网络处理输入图像以选择输入图像的多个特征;或者接收第二用户输入以选择输入图像的多个特征。
220.示例7:示例4-6中任一个的方法,还包括:执行特征提取神经网络训练程序,包括:至少基于第二输出和第三输出,计算基于第三损失函数的第三损失;以及至少基于计算的第三损失来训练第一特征提取神经网络或第二特征提取神经网络中的至少一个。
221.示例8:示例3-7中任一个的方法,其中接收输入图像包括以下中的至少一个:从图像库接收输入图像;或者响应于用户选择接收输入图像;并且其中接收要验证的接收图像包括以下中的至少一个:从图像库接收接收图像;或者响应于用户选择接收接收图像。
222.示例9:示例3、示例5或示例8中任一个的方法,其中对接收图像执行特征识别包括使用第一特征提取神经网络处理接收图像以选择接收图像的多个特征;其中对输入图像执行特征识别包括使用第二特征提取神经网络处理输入图像以选择输入图像的多个特征;该方法还包括:固定第一特征提取神经网络、第二特征提取神经网络、消息编码神经网络或消息解码神经网络中的至少一个的值;生成包括至少一个图像操纵的训练图像;将训练图像发送到操纵检测神经网络;确定应用于训练图像的图像操纵;利用应用于训练图像的图像操纵,基于正常损失函数计算正常损失;以及至少基于计算的正常损失来训练操纵检测神经网络。
223.示例10:示例3、示例5或示例8中任一个的方法,其中对接收图像执行特征识别包括使用第一特征提取神经网络处理接收图像以选择接收图像的多个特征;其中对输入图像执行特征识别包括使用第二特征提取神经网络处理输入图像以选择输入图像的多个特征;该方法还包括:基于输入图像,基于图像损失函数计算图像损失;基于输入图像,基于特征损失函数计算特征损失;基于图像损失和特征损失计算总损失;以及至少基于计算的总损失来训练消息编码神经网络或消息解码神经网络中的至少一个。
224.示例11:示例3-8或10中任一个的方法,还包括:对输入图像应用至少一个图像操纵。
225.示例12:示例10的方法,还包括:固定第一特征提取神经网络、第二特征提取神经网络、消息编码神经网络或消息解码神经网络中的至少一个的值;生成包括至少一个图像操纵的训练图像;将训练图像发送到操纵检测神经网络;确定应用于训练图像的图像操纵;利用应用于训练图像的图像操纵,基于正常损失函数计算正常损失;以及至少基于计算的
正常损失来训练操纵检测神经网络。
226.示例13:示例5或示例8的方法,还包括:执行特征提取神经网络训练程序,包括:至少基于第二输出和第三输出,计算基于第三损失函数的第三损失;至少基于计算的第三损失来训练第一特征提取神经网络或第二特征提取神经网络中的至少一个;以及执行操纵检测神经网络训练程序,包括:固定第一特征提取神经网络、第二特征提取神经网络、消息编码神经网络或消息解码神经网络中的至少一个的值;生成包括至少一个图像操纵的训练图像;将训练图像发送到操纵检测神经网络;确定应用于训练图像的图像操纵;利用应用于训练图像的图像操纵,基于正常损失函数计算正常损失;至少基于计算的正常损失来训练操纵检测神经网络;以及共同训练特征提取神经网络和操纵检测神经网络。
227.示例14:示例3或示例8的方法,其中对接收图像执行特征识别包括使用第一特征提取神经网络处理接收图像;其中对输入图像执行特征识别包括使用第二特征提取神经网络处理输入图像;该方法还包括:向消息编码神经网络提供第三输出;从第三输出生成第二签名;将第二签名嵌入到输入图像中以生成输出图像;将所述第二输出和所述第三输出提供给鉴别特征损失计算引擎;执行消息编解码神经网络训练程序,包括:由鉴别特征损失计算引擎至少基于第二输出和第三输出,基于第一损失函数计算第一损失;至少基于输入图像和接收图像,基于第二损失函数计算第二损失;至少基于第一损失和第二损失,基于总损失函数计算总损失;至少基于计算的总损失,训练第一特征提取神经网络、第二特征提取神经网络或消息解码神经网络中的至少一个;执行操纵检测神经网络训练程序,包括:固定第一特征提取神经网络、第二特征提取神经网络、消息编码神经网络或消息解码神经网络中的至少一个的值;生成包括至少一个图像操纵的训练图像;将训练图像发送到操纵检测神经网络;基于正常损失函数计算应用于训练图像的图像操纵的正常损失,其中正常损失是交叉熵损失;以及至少基于计算的正常损失来训练操纵检测神经网络;以及共同训练消息编码神经网络和操纵检测神经网络。
228.示例15:示例3或示例8的方法,其中对接收图像执行特征识别包括使用第一特征提取神经网络处理接收图像;其中对输入图像执行特征识别包括使用第二特征提取神经网络处理输入图像;该方法还包括:向消息编码神经网络提供第三输出;从第三输出生成第二签名;将第二签名嵌入到输入图像中以生成输出图像;将所述第二输出和所述第三输出提供给鉴别特征损失计算引擎;执行消息编解码神经网络训练程序,包括:由鉴别特征损失计算引擎至少基于第二输出和第三输出,基于第一损失函数计算第一损失;至少基于输入图像和接收图像,基于第二损失函数计算第二损失;至少基于第一损失和第二损失,基于总损失函数计算总损失;以及至少基于计算的总损失来训练第一特征提取神经网络、第二特征提取神经网络或消息解码神经网络中的至少一个;执行特征提取神经网络训练程序,包括:至少基于第二输出和第三输出,计算基于第三损失函数的第三损失;至少基于计算的第三损失来训练第一特征提取神经网络或第二特征提取神经网络中的至少一个;以及执行操纵检测神经网络训练程序,包括:固定第一特征提取神经网络、第二特征提取神经网络、消息编码神经网络或消息解码神经网络中的至少一个的值;生成包括至少一个图像操纵的训练图像;将训练图像发送到操纵检测神经网络;确定应用于训练图像的图像操纵;利用应用于训练图像的图像操纵,基于正常损失函数计算正常损失;并且至少基于计算的正常损失来训练操纵检测神经网络;以及共同训练特征提取神经网络、消息编码神经网络和操纵检测
神经网络。
229.示例16:示例4-15中任一个的方法,其中第一特征提取神经网络和第二特征提取神经网络是相同的特征提取神经网络。
230.实施例17:实施例9、12或13-15中任一项的方法,其中正常损失是交叉熵损失。
231.示例18:一种计算设备,包括:处理器;以及其上存储有指令的计算机可读存储介质,所述指令响应于处理器的执行,使得处理器执行示例1至17中任一个的方法。
232.示例19:一种系统,包括一个或多个计算机和存储指令的一个或多个存储器设备,当所述指令被一个或多个计算机执行时,使得一个或多个计算机执行包括示例1至17中任一项的方法的操作。
233.示例20:一种存储指令的一个或多个非暂时性计算机存储介质,当所述指令被一个或多个计算机执行时,使得所述一个或多个计算机执行包括示例1至19中任一项的方法的操作。
234.结论
235.尽管已经用特征和/或方法专用的语言描述了用于验证图像真实性的技术和装置,但是应当理解,所附权利要求的主题不必限于所描述的具体特征或方法。相反,这些具体特征和方法是作为用于验证图像真实性的技术和装置的示例实施例来公开的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1