缩放不可知水印提取的制作方法

未命名 07-12 阅读:75 评论:0


1.本说明书总体上涉及用于从图像中恢复水印的数据处理和技术。


背景技术:

2.在诸如互联网的联网环境中,第一方内容提供者能够提供用于在电子文档中呈现的信息,例如网页或应用界面。文档能够包括由第一方内容提供者提供的第一方内容和由第三方内容提供者(例如,不同于第一方内容提供者的内容提供者)提供的第三方内容。
3.能够使用各种技术将第三方内容添加到电子文档中。例如,一些文档包括指示呈现文档的客户端设备直接从第三方内容提供者(例如,从与提供第一方内容的服务器不同的域中的服务器)请求第三方内容项的标签。其他文档包括指示客户端设备调用与多个第三方内容提供者合作的中间服务以返回从第三方内容提供者中的一个或多个第三方内容提供者选择的第三方内容项的标签。在一些实例中,第三方内容项被动态地选择用于在电子文档中呈现,并且为给定的文档服务选择的特定第三方内容项可能不同于为同一文档的其他服务选择的第三方内容项。


技术实现要素:

4.一般而言,本说明书中描述的主题的一个创新方面能够体现在包括以下操作的方法中:由水印检测装置接收图像;对于图像当中的每个特定图像:由水印检测装置使用检测器机器学习模型来确定特定图像是否包括视觉上不可察觉的水印,其中水印检测装置在图像中的至少一个图像检测视觉上不可察觉的水印;基于确定特定图像是否包括视觉上不可察觉的水印来路由特定图像,包括:响应于水印检测装置在特定图像中检测到视觉上不可察觉的水印,将特定图像路由到水印解码器;以及响应于水印检测装置没有在特定图像中检测到视觉上不可察觉的水印,过滤特定图像不做进一步处理;由水印解码器解码在被路由到水印解码器的特定图像中检测到的视觉上不可察觉的水印;以及基于从解码的视觉上不可察觉的水印中提取的数据来验证特定图像中描绘的项目。
5.这些和其他实施方式能够各自可选地包括以下特征中的一个或多个特征。在一些方面,使用检测器机器学习模型来确定特定图像是否包括视觉上不可察觉的水印包括使用这样的检测器机器学习模型来确定特定图像是否包括视觉上不可察觉的水印——该检测器机器学习模型被训练成基于对输入图像的区域的粗略分析来确定该区域是否包括视觉上不可察觉的水印,该粗略分析不需要对该区域的逐像素分析。
6.在一些方面,确定特定图像是否包括视觉上不可察觉的水印包括:由水印检测装置确定特定图像区域中的一组编码像素;以及基于特定图像的区域中的该组编码像素对特定图像的区域进行分类,包括:响应于满足水印条件的该组编码像素,将该区域分类为带水印的区域;以及响应于该组编码像素不满足水印条件,将该区域分类为不带水印的区域。
7.在一些方面,确定特定图像是否包括视觉上不可察觉的水印包括输出该区域中所有像素的二进制1,以将该区域标记为包括视觉上不可察觉的水印;以及使用二进制1生成
图像的水印图,其中水印图指示包含视觉上不可察觉的水印的图的区域。
8.在一些方面,解码水印包括使用解码器机器学习模型来解码水印,该解码器机器学习模型被训练成解码特定图像中视觉上不可察觉的水印,而不管图像中描绘的项目的缩放级别如何。
9.在一些方面,使用一组训练图像来训练解码器机器学习模型包括多个训练图像,这些训练图像以不同的缩放级别和不同的图像失真来描绘带水印的项目。
10.在一些方面,预处理该组训练图像,以防止由于使用由rgb无符号整数表示的图像以浮点数训练解码器机器学习模型而导致的模型性能缺陷。
11.在一些方面,部署缩放不可知水印解码器模型包括由一个或多个处理器获得一组包括视觉上不可察觉的水印的训练图像;由所述一个或多个处理器使该组训练图像当中的图像失真以创建失真图像,包括改变图像中描绘的项目的缩放级别以创建缩放的图像;由所述一个或多个处理器并且使用失真图像来训练缩放不可知水印解码器模型,以跨输入图像的多个缩放级别解码输入图像中视觉上不可察觉的水印;以及部署缩放不可知水印解码器模型以在输入图像内在多个不同缩放级别解码视觉上不可察觉的水印。
12.在一些方面,使该组训练图像当中的图像失真以创建失真图像包括将图像转换成不同的图像文件格式或者修改图像的分辨率。
13.在一些方面,预处理该组训练图像当中的图像包括,对于该组训练图像当中的每个图像,对表示图像中像素颜色的浮点数进行舍入,以防止由表示像素颜色的浮点数和被用于存储图像的rgb无符号整数之间的不匹配导致的模型性能缺陷。
14.在一些方面,对表示图像中像素颜色的浮点数进行舍入包括:使用正常舍入对浮点数进行舍入;以及使用下限舍入对流动点数进行舍入。
15.在一些方面,改变图像中描绘的项目的缩放级别以创建缩放图像包括在每个缩放图像中改变被用于表示该组训练图像当中的图像中的单个像素的像素数量。
16.在一些方面,训练缩放不可知水印解码器模型包括使用从该组训练图像当中的同一图像创建的两个不同的缩放图像来训练缩放不可知水印解码器模型,其中两个不同的缩放图像中的每一个使用不同数量的像素来表示同一图像的单个像素。
17.在一些方面,部署缩放不可知水印解码器模型能够进一步包括由所述一个或多个处理器并且使用缩放图像来训练缩放不可知水印检测模型,该缩放不可知水印检测模型跨输入图像的多个缩放级别检测输入图像内视觉上不可察觉的水印的存在,其中检测独立于解码视觉上不可察觉的水印来执行。
18.能够实施本说明书中描述的主题的特定实施例,以便实现以下优点中的一个或多个。视觉上不可察觉的水印,为了简洁也简称为“水印”,能够被用于确定与第一方内容一起呈现的第三方内容的源(例如,在网站上、在流视频中、或在本地应用中)。这些水印能够以比以前更有效的方式被提取和解码。例如,在本说明书中描述的水印提取和解码技术实施了初始检测过程,该初始检测过程在尝试解码可能被包括在图像中的水印之前检测输入图像中水印的存在。这是由考虑到解码中所涉及的计算机资源所激励,该计算机资源能够通过使用(相对于解码过程)计算成本较低的检测过程来过滤掉不包括水印的图像而被减少,从而节省了通过计算成本更高的解码过程来处理这种输入图像所需的时间和计算资源两者。换句话说,检测过程不用必须完全处理图像并尝试解码每个图像中的水印,而是能够最
初确定图像是否包括水印,同时使用更少的计算资源,并且比执行解码过程所需的时间更少。以该方式,在发起解码过程之前使用检测过程通过快速过滤掉不包括水印的图像节省了计算资源,并且使能够更快地识别和分析实际上包括水印的图像,从而减少需要被处理的数据量。相比之下,仅依赖解码过程来用于带水印图像的检测和解码两者的技术,或者不使用检测过程作为过滤机制的过程,计算成本更高。
19.这里讨论的检测和解码过程是缩放不可知的,这意味着能够直接检测和/或解码水印,而不管捕获图像的缩放级别如何。更具体地,这里讨论的技术被用于检测和解码原始呈现的内容的再现中(例如,在内容的图片或截屏中)的水印,并且被捕获的原始呈现的内容的缩放级别将从一个捕获实例到另一个实例(例如,从一个图片到另一个图片)而变化。如果不存在这里所讨论的技术,对输入图像(例如,再现,诸如呈现在客户端设备上的内容的图片)中的水印的检测和/或解码将需要以多个不同的缩放级别来分析输入图像,这浪费了计算资源和时间。因此,所公开的方法的实施方式通过减少以不同的相应缩放级别重复分析图像以检测或解码水印所需的计算资源而被激励。这里讨论的技术利用了已经被训练来检测和解码输入图像内的水印而不必以多个不同的缩放级别重复分析输入图像的模型。这里讨论的技术还使能够对具有诸如由图像压缩技术(例如jpeg压缩)引起的失真的其他失真的输入图像内的水印进行准确的检测和解码。
20.通过对训练数据使用数值舍入,检测和/或解码模型性能得到改善(例如,模型更准确)。例如,捕获的图像通常被存储为无符号rgb整数,但模型训练是使用浮点数执行的。当这种不匹配基本上不会影响模型性能时,通常会忽略这种不匹配,但是当从图像中检测/解码水印时,每个像素都很重要,使得由无符号rgb整数和用于训练的浮点数之间的不匹配导致的模型性能下降能够引起不可接受的模型性能。因此,能够对浮点数应用舍入技术,以改善模型训练,以及训练的模型对输入图像中的水印进行检测和/或解码的能力。
21.本说明书中描述的主题的一个或多个实施例的细节在附图和以下描述中阐述。根据描述、附图和权利要求,本主题的其他特征、方面和优点将变得显而易见。
附图说明
22.图1是用于将带水印的图像的电子文档传输到客户端设备的计算环境的框图。
23.图2是二维二进制快速响应码(qr码)形式的示例编码图像的描述。
24.图3是图像分析和解码器模块的框图。
25.图4是预测捕获的源图像(例如,截屏)是否用一个或多个水印图像来被编码的示例过程的流程图。
26.图5是训练缩放不可知机器学习模型(解码器机器学习模型)的示例过程的流程图。
27.图6是解码包括一个或多个水印图像的捕获的源图像(例如,截屏)的示例过程的流程图。
28.图7是示例计算机系统的框图。
具体实施方式
29.本说明书描述了用于检测和解码所捕获的内容再现(例如,呈现在客户端设备上
的内容的数字照片)中的视觉上不可察觉的水印的系统、方法、设备和技术。虽然下面的描述针对视觉上不可察觉的水印描述了水印检测,但是这些技术也能够被应用于视觉上可察觉的水印。视觉上不可察觉的水印,为了简洁简称为“水印”,是半透明的,并且在正常观看条件下对于人类用户来说是视觉上不可察觉的,使得水印能够被嵌入到内容中,而不会削弱内容的视觉质量。水印能够携带信息,诸如嵌入水印的图像源的识别符。例如,在互联网的上下文中,当用户访问发布者的资产时,水印能够识别将内容放置在发布者的资产(例如,网站、视频流、视频游戏或移动应用)上的实体、服务器或服务(还有其他信息)。这样,当发布者的资产上呈现的内容的再现(例如,内容的图片或截屏)被捕获并提交用于验证时,水印能够被检测和解码以验证该内容实际上是否是由适当的实体、服务器或服务分配的。
30.如下面详细讨论的,水印的检测和解码能够由机器学习模型来执行,该机器学习模型被训练来检测和解码水印,而不管捕获图像的缩放级别如何。例如,假设相同的内容呈现在两个不同用户的两个不同客户端设备上。在该示例中,一个客户端设备的显示特性可以使得内容以在另一个客户端设备处呈现的内容(例如,2倍缩放)的两倍大小(例如,4倍缩放)来呈现。这样,即使每个用户以相同的缩放级别捕获内容的呈现(例如,使用屏幕捕获应用或数码相机),所捕获的内容的再现也将处于不同的缩放级别。当然,即使内容在每个客户端设备上以相同的尺寸呈现,(例如,使用屏幕捕获应用或数码相机)捕获的内容的呈现的缩放级别的差异也能够导致内容以不同的缩放级别再现。在任一情况下,这里讨论的模型能够从内容的捕获图像中的每个捕获图像检测和解码水印,而不管缩放级别的差异如何。
31.图1是实施水印检测装置132的联网环境100的框图。环境100包括服务器系统102、客户端设备104和用于一个或多个图像提供者106a-n的计算系统。服务器系统102、客户端设备104和图像提供者106a-n通过诸如互联网或局域网(lan)的一个或多个网络连接,。一般而言,客户端设备104被配置成生成对电子文档的请求并将其传输到服务器系统102。基于来自客户端设备104的请求,服务器系统102生成响应(例如,电子文档)以返回给客户端设备104。给定的响应能够包括被配置成将向客户端设备104的用户显示的内容,诸如源图像128a,其中源图像128a由图像提供者106a-n中的一个提供。服务器系统102能够用半透明水印图像126来增强服务给客户端设备104的响应,该半透明水印图像126被安排成在客户端设备104处的响应文档的呈现中显示在源图像128a上。出于示例的目的,以下描述将使用源图像128a-n作为提供给客户端设备104的第三方内容的示例,但是应当理解,水印图像126能够被覆盖在包括本地应用内容、流视频内容、视频游戏内容或其他可视内容的各种其他类型的可视内容上。
32.客户端设备104能够是被配置成向一个或多个人类用户呈现图像和其他内容的任何类型的计算设备。客户端设备104可以包括向服务器系统102进行请求并从服务器系统102接收响应的应用,诸如web浏览器应用。该应用可以执行来自服务器系统102的响应,诸如网页代码或其他类型的文档文件,以将该响应呈现给客户端设备104的所述一个或多个用户。在一些实施方案中,客户端设备104包括电子显示设备(例如,lcd或led屏幕、crt监视器、头戴式虚拟现实显示器、头戴式混合现实显示器),或者被耦合到向客户端设备104的所述一个或多个用户显示来自所呈现的响应的内容的电子显示设备。显示的内容能够包括源图像128a和以基本透明的方式显示在源图像128a之上的水印图像126。在一些实施方式中,
客户端设备104是笔记本计算机、智能手机、平板计算机、台式计算机、游戏控制台、个人数字助理、(例如,在语音控制下的)智能扬声器、智能手表或另一个可穿戴设备。
33.在一些实施方案中,在对客户端设备104的响应中提供的源图像128a是第三方内容项,其例如不在由响应的第一方内容提供者提供的内容当中。例如,如果响应是网页,则网页的创建者可以在网页中包括被配置成由来自不同于网页创建者的第三方内容提供者(例如,图像储存库的提供者)的图像填充的槽。在另一个示例中,第一方内容提供者可以直接链接到第三方源图像128a。客户端设备104可以直接从图像提供者106a-n中的一个的对应计算系统或者间接地经由中间服务——诸如由服务器系统102或另一服务器系统提供的服务——来请求源图像128a。服务器系统102能够被实施为位于一个或多个位置的一个或多个计算机。
34.服务器系统102能够被配置成与图像提供者106a-n的计算系统通信,例如,以获得源图像128a来服务给客户端设备104。在一些实施方式中,服务器系统102被配置成用电子文档和半透明水印图像126来响应来自客户端设备104的请求,该半透明水印图像126将在电子文档中被显示在源图像128a上。为了生成半透明水印,服务器系统102能够包括图像生成子系统110,该图像生成子系统110能够进一步包括编码输入生成器112和水印图像生成器114。
35.编码输入生成器112能够处理明文数据项以生成对明文数据项进行编码的编码图像124。例如,明文数据项可以是文本样本或字符串,其包括识别图像的提供者或图像的其他特性的信息。例如,明文数据项能够是识别图像提供者106a-n的唯一识别符。明文数据项还能够包括唯一识别客户端设备104和服务器系统102之间的网络会话的会话识别符,在该网络会话期间,响应服务给来自客户端设备104的请求。明文数据项还能够包括或引用识别服务给客户端设备104的特定源图像128a的图像数据或与源图像128a相关联的信息(例如,指示图像提供者106a-n中的哪一个提供了服务给客户端设备104的特定源图像128a的信息,以及指示何时服务或请求源图像128a的时间戳)。
36.在一些实施方式中,服务器系统102还能够包括响应记录数据库120,该响应记录数据库120存储与关于源图像128a或为特定请求服务的响应的这种信息相关的数据,以便使得详细信息可经由会话识别符或由明文数据项表示的其他信息来访问。响应记录数据库120还能够将会话识别符与图像数据相关联,从而通过使用由明文数据项表示的会话识别符来查询数据库120,使得图像数据可被访问。用户然后能够因为使用来自明文数据项的会话识别符而识别例如源图像128a-n中的哪一个在什么时间被服务给客户端设备104以及来自哪个图像提供者106a-n。
37.服务器系统102的水印图像生成器114能够被配置成处理编码图像124以生成半透明水印图像126。半透明水印图像126从编码图像124中导出,并且也编码明文数据项122。然而,水印图像126的透明度、颜色、编码像素的排列和/或其他特征可以从编码图像124的透明度、颜色、编码像素的排列和/或其他特征被改变。例如,尽管编码图像124可以是均匀不透明的并且由彼此相邻紧密组装的编码像素组成,但是水印图像126可以包括一些完全透明的像素和一些部分透明的像素。此外,水印图像126中的编码像素可以相对于彼此隔开,使得每个编码像素被非编码像素(即,“空白”像素)包围。可以执行编码图像124到水印图像126的变换,使得在水印图像126被覆盖和合并在背景源图像128a上之后,可以例如通过重
构编码图像124或水印图像126对编码信息进行解码。
38.在一些实施方案中,编码图像124是表示明文数据项122的矩阵型条形码。合适的矩阵型条形码的一个示例是快速响应码(qr码)。根据像素的行数和列数,编码图像124能够具有预定义的大小。编码图像124中的每个像素能够编码数据的二进制位,其中每个位的值由不同的颜色表示。例如,编码二进制值“1”的像素可以是黑色的,而编码二进制值“0”的像素可以是白色的。在一些实施方式中,编码图像124的最小编码单元实际上可能大于单个像素。但是为了这里描述的示例的目的,最小的编码单元被假设为单个像素。然而,应了解,本文中所描述的技术可以被扩展到最小编码单元是一组多个像素(例如,2
×
2或3
×
3组像素)的实施方式。参考图2进一步解释示例编码图像124。
39.图2描绘了能够用作编码图像——例如,出于本说明书中描述的技术的目的的编码图像124——的示例qr码200。在该示例中,qr码200具有21
×
21像素的固定大小,尽管其他预定义大小的qr码也将会是合适的。qr码200的区别特征是位于码200的左上角、右上角和左下角的三个7
×
7像素正方形202a-202c。正方形图案202a-c帮助光学读取设备定位qr码200的边界,并适当地定向qr码200的图像,使得能够确定像素的行和列,并且能够成功地读取码200。每个正方形图案由其第一和第七行中的七个连续的黑色像素(例如,编码值1)、第二和第六行中的图案黑-白-白-白-白-白-黑(例如,编码值1-0-0-0-0-0-1)、第三、第四和第五行中的图案黑-白-黑-黑-黑-白-黑(例如,编码值1-0-1-1-1-0-1)来定义。如关于图1所述,能够从qr码200形成水印图像,包括通过将高部分透明度值分配给码200中的每个黑色像素,将全透明度值应用于码200中的每个白色像素,在每个奇数行中来自qr码200的每个像素的右侧插入空白(未编码)全透明像素,以及在码200的每个偶数行中来自qr码200的每个像素的左侧插入空白全透明像素。结果是能够被覆盖在要编码的源图像上的21
×
43像素的水印图像。
40.继续进行参考图1的讨论,水印图像126可以直接从明文数据生成,而不需要作为实现水印图像126的中间操作显式生成编码图像124。在一些实施方式中,服务器系统102能够直接将水印图像126合并在源图像128a之上,以便将合并的图像服务给客户端设备104。服务器系统102可以直接在源图像128中编码水印,而不需要显式地生成编码图像124、水印图像126或两者。
41.在生成水印图像126之后,服务器系统102生成响应以返回给客户端设备104,作为对客户端对电子文档的请求的回复。该响应能够包括一个或多个内容项,包括第一方内容项和第三方内容项,它们共同形成诸如网页、应用界面、pdf、演示幻灯片或电子表格的电子文档。在一些实施方式中,响应包括指定如何排列和显示各种内容项的主文档。诸如超文本标记语言(html)页面的主文档可以指要在文档的呈现中显示的第一方内容项和第三方内容项。在一些实施方式中,服务器系统102被配置成向主文档添加计算机代码,该计算机代码在执行响应时指示客户端设备104在源图像128a上显示水印图像126的一个或多个实例,例如,向源图像128a添加人类用户基本上察觉不到的水印。因为水印图像126具有完全和部分透明的像素,所以呈现电子文档的客户端设备104处的应用能够执行混合技术,以根据水印图像126的指定透明度将水印图像126覆盖在源图像128a上。例如,服务器系统102可以添加代码,该代码指导客户端设备104将源图像128a显示为电子文档中第三方内容槽中的背景图像,并且将水印图像126的一个或多个实例显示为图像128a上的前景图像。
42.在能够有数百万图像(和其他可视内容)被分发给许多不同的客户端设备104的环境中,能够存在服务器系统102需要确定图像(或其他可视内容)的提供者或来源、图像的其他特性、或关于图像的特定印象(例如,呈现)的上下文的情况。例如,响应于对电子文档的请求,客户端设备104的用户可能从图像提供者106a-n中的一个接收不合适或不相关的图像128a。用户可以捕获编码图像130的截屏(例如,呈现在客户端设备104处的图像或其他内容的再现)并将截屏传输到服务器系统102用于分析,例如,以查询源图像128a的起源。因为截屏示出了被水印图像126覆盖的原始图像128a,所以服务器系统102能够处理截屏以恢复明文数据项的编码表示,该编码表示继而能够被解码以恢复明文数据项本身。系统102然后能够将恢复的明文数据项用于各种目的,例如,来查询响应记录数据库以查找关于图像128a及其起源的详细信息,或者关于源图像128a被服务给客户端设备104的特定客户端会话的其他信息。
43.为了从编码的源图像130中检测和解码明文数据项122的编码表示,服务器系统102能够包括图像分析和解码器模块118。编码的源图像130是由客户端设备104在源图像128a上呈现水印图像126而产生的图像。即使水印图像126与源图像128a分离,由图像分析和解码器模块118处理的编码源图像130也可以是示出了混合在源图像128a上的水印图像126的合并图像。编码的源图像130也能够被称为输入图像,因为编码的源图像130能够被输入到图像分析和解码器模块118,以检测和/或解码作为编码的源图像130的一部分的水印。被捕获并提交给图像分析和解码器模块118的编码源图像130可以是水印图像126在源图像128a上的呈现的再现(例如,截屏或其他数字捕获)。这样,原始源图像128a和原始水印图像126可以不被提交给图像分析和解码器模块118进行分析。
44.在一些情况下,包括图像分析和解码器模块118的服务器系统102可以接收对可能被编码的/带水印的图像进行分析的请求。如此处所使用的,术语“可能”指的是可归因于项目但是其对于处理该项目的处理实体(例如,服务器系统102)来说是未知的项目状况。也就是说,项目的可能状况是处理实体不知道其真实性的项目的候选状况。处理实体可以执行处理以识别项目的可能(候选)状况、以进行关于可能(候选)状况的真实性的预测、和/或以识别表现出特定状况的可能(候选)项目。例如,可能编码的源图像是可能利用水印编码的源图像,但是服务器系统102最初不知道该图像是否实际上已经被加了水印。因此,源图像128a利用水印的可能编码是源图像的候选状况,并且源图像是表现出用水印编码的状况的候选项目。可能编码的图像可以由用户捕获源图像的截屏(或另一个数字再现,诸如数字照片)并将捕获的图像提供给服务器系统102进行分析而产生,但是没有将指示关于图像是否已被编码/加水印的确认的更多信息。
45.在服务器系统102接收可能编码的(带水印的)源图像130的这些情况下,图像分析和解码器模块118能够包括水印检测装置132,该水印检测装置132能够实施一个或多个机器学习模型(称为检测器机器学习模型)用于检测可能编码的源图像是否可能包含水印。水印检测装置132能够识别可能编码的源图像的可能编码的区域,并且可以确定可能编码的源图像130的特征的值。为简洁起见,可能编码的源图像也能够被称为可能编码的图像。
46.如果水印检测装置132在编码的源图像130中检测到视觉上不可察觉的水印,则在图像分析和解码器模块118内实施的水印解码器134完成一个或多个尝试来解码可能编码的图像。如关于其他附图进一步详细解释的,水印解码器134能够实施一个或多个机器学习
模型(称为解码器机器学习模型),其被配置为处理可能编码的图像的可能编码的区域和可能编码的图像302的特征,以预测可能编码的图像的水印状态。在该示例中,水印解码器134实施解码器机器学习模型134a,参考图3至图6进一步解释该模型。图像分析和解码器模块118还能够包括缩放装置138和验证装置132,这将在下面更详细地讨论。图像分析和解码器模块118以及任何子系统能够在实施服务器系统102的一个或多个位置中的一个或多个计算机上实施。
47.图3是示例图像分析和解码器模块118的框图300,该模块从被输入到图像分析和解码器模块118的可能编码的图像302中检测并解码明文数据项122的编码表示。可能编码的图像302能够是呈现在客户端设备上的图像的屏幕捕获或数字照片的形式。例如,可能编码的图像302能够是发布者网站上呈现的图像的屏幕捕获。更具体地,可能编码的图像302可能已经被访问发布者的网站的用户捕获,并且然后由用户提交以报告该图像的呈现(例如,不适当的情况)。图像分析和解码器模块118能够包括水印检测装置132、水印解码器134、控制器136、缩放装置138和验证装置140中的一个或多个。
48.在一些实施方案中,水印检测装置132能够实施机器学习模型(称为检测器机器学习模型132a),其被配置为处理可能编码的图像302,并且生成可能编码的图像302是否包括一部分水印或者一个或多个水印的指示作为输出。检测器机器学习模型132a能够是被认为适合于特定实施方式的任何模型,诸如决策树、人工神经网络、遗传编程、逻辑编程、支持向量机、聚类、强化学习、贝叶斯推理等。机器学习模型还可以包括用于分析图像的计算机视觉和图像处理的方法、算法和技术。
49.在一些实施方式中,水印检测装置132还能够实施基于启发的方法,或者另一个适当的基于模型或基于规则的技术,其确定可能编码的图像302是否包括水印。在这样的实施方式中,可能编码的图像302是否包括水印的一部分或一个或多个水印的指示能够是诸如分数或概率的分类或数字的形式。例如,检测器机器学习模型132a能够被实施为分类模型,该分类模型能够处理可能编码的图像302以将图像分类为包括水印的图像或不包括水印的图像。在另一个示例中,检测器机器学习模型132a能够处理可能编码的图像302以生成分数,诸如指示可能编码的图像302包括水印的似然性的分数。
50.在一些实施方式中,水印检测装置132能够实施检测器机器学习模型132a来执行语义图像分割。语义图像分割是将图像的每个像素分类为一个或多个类别的过程。例如,检测器机器学习模型132能够处理可能编码的图像302,以将可能编码的图像302的每个像素分类为第一类和第二类。在该示例中,第一类对应于使用水印图像编码(或在客户端设备104上显示期间重叠)的图像302的像素,并且第二类对应于未使用水印图像编码的图像302的像素。检测器机器学习模型132a基于可能编码的图像302的像素特性对像素进行分类。例如,被分类为第一类的像素(即,使用水印图像编码的像素)即使人眼在视觉上不可察觉,但对于检测器机器学习模型132a来说是可区分的。例如,32位rgb像素包括用于每个颜色通道(例如,红色(r)、绿色(g)和蓝色(b))的8位,以及用于透明度的“阿尔法”通道。这种格式能够支持可由计算系统识别的4,294,967,296种颜色组合,即使这些组合的一部分对于人眼来说是不可区分的。
51.在一些实施方式中,检测器机器学习模型132a能够生成识别一组加水印的编码像素的分割掩模作为输出。例如,在将可能编码的图像302的像素分类为第一类和第二类之
后,检测器机器学习模型132a能够通过将标签分配给与像素被分配到的类相关的像素来生成分割掩模。例如,检测器机器学习模型132a接收维度为1000
×
1000
×
3的可能编码的图像302(例如,来自客户端设备104的截屏)作为输入,并且生成维度为1000
×
1000
×
1的分割掩模作为输出,其中分割掩模的每个值对应于分配给可能编码的图像302的相应像素的标签。例如,如果可能编码的图像302的像素被分类为第一类,则能够给它分配标签“1”,并且如果该像素被分类为第二类,则能够给它分配标签“0”。在该示例中,检测器机器学习模型132a通过处理可能编码的图像302来生成分割掩模310。如图3所示,可能编码的图像302包括在可能编码的图像302的两个不同区域中的两个水印126a和126b。分割掩模310将水印126a和126b识别为310a和310b作为可能编码的图像302中包括水印的区域。当检测到水印时,可能编码的图像302能够被分类为编码图像,并且由水印解码器134处理,如下面详细讨论的。
52.在另一个示例中,检测器机器学习模型132a能够为检测器机器学习模型132a的每个类别生成分割掩模。例如,检测器机器学习模型132a能够生成维度为1000
×
numclass的分割掩模,其中numclass=2是检测器机器学习模型132a的类的数量。在该示例中,分割掩模能够被解释为两个1000
×
1000的矩阵,其中第一矩阵能够识别属于第一类的可能编码的图像302的像素,并且第二矩阵能够识别属于第二类的可能编码的图像302的像素。在这种情况下,使用标签“0”和“1”来指示像素是否属于特定类别。例如,可能编码的图像302的对应像素被分类为第一类的第一矩阵的值具有标签“1”,而对应像素被分类为第二类的元素具有标签“0”。类似地,第二矩阵的值,可能编码的图像302的对应像素被分类为第二类的元素,具有标签“1”,而对应像素被分类为第一类的元素,具有标签“0”。
53.在一些实施方式中,检测器机器学习模型132a能够是具有unet架构的深度卷积神经网络(cnn),其被训练来执行可能编码的图像302的语义分割,以检测可能编码的图像302中包括水印的区域。具有unet架构的cnn在ronneberger o.,fischer p.,brox t.(2015)u-net:convolutional networks for biomedical image segmentation.in:navab n.,hornegger j.,wells w.,frangi a.(eds)medical image computing and computer-assisted intervention

miccai 2015.miccai 2015.lecture notes in computer science,vol 9351.springer,cham.https://doi.org/10.1007/978-3-319-24574-4_28中有更详细的描述,其全部内容通过引用整体结合于此。关于另一个示例,检测器机器学习模型132能够是基于区域的卷积神经网络(r-cnn)。
54.在一些实施方式中,检测器机器学习模型132a能够包括多个训练参数。使用训练过程在第一训练数据集上训练检测器机器学习模型132a,该训练过程能够调整多个训练参数以生成可能编码的图像302是包括水印的一部分还是一个或多个水印的指示。第一训练数据集能够包括多个训练样本,其中每个训练样本包括被加水印的训练图像和识别使用水印编码的训练图像的像素的目标。例如,训练图像能够是类似于来自客户端设备104的截屏的图像,其在训练图像的一个或多个区域中包括水印。对应于训练图像的目标能够包括识别带水印或不带水印的像素的分割掩模,并且在一些情况下识别训练图像的带水印和不带水印的像素两者。
55.为了增强检测器机器学习模型132a的泛化潜力,训练过程能够通过使用第一数据集的现有训练样本生成新的训练样本来扩充第一数据集。为了生成新的训练样本,训练过程能够使一组训练图像当中的图像失真,以创建失真图像。在一些实施方式中,失真图像能
够通过应用在真实世界视觉数据中广泛出现的视觉扰动——诸如水平和垂直翻转、平移、旋转、裁剪、缩放、颜色失真、添加随机噪声等——来生成。训练过程还能够通过使用有损压缩或变换技术将训练图像编码成不同的文件格式来生成新的训练样本。例如,训练过程能够使用jpeg压缩来在训练图像中引入小的伪影,并且在压缩之后生成的训练图像能够被用于扩充第一数据集。
56.训练过程能够生成第一数据集的同一图像的多个不同的缩放版本以创建训练集,该训练集训练检测器机器学习模型132a跨各种缩放级别检测图像中的水印。例如,给定特定的训练图像,能够通过改变图像中描绘的项目的缩放级别来创建训练图像的多个不同版本,从而创建特定训练图像的缩放版本。
57.在训练期间,训练过程能够使用诸如交叉熵损失的损失函数来调整检测器机器学习模型132a的多个参数。例如,逐像素交叉熵损失能够单独检查每个像素,以将类别预测与像素的目标类别进行比较,并相应地调整检测器机器学习模型132a的参数。训练过程本质上能够是迭代的,其中在每个迭代期间,训练过程旨在使交叉熵损失最小化,直到损失小于指定阈值或者直到训练过程已经执行了指定的迭代数。
58.交叉熵损失能够采取以下形式
59.l=-(ylog(p)+(1-y)log(1-p))
60.其中y是像素的目标标签,并且p是该像素属于第一类的预测可能性。其他损失函数的示例能够包括加权交叉熵损失、焦点损失、灵敏度-特异性损失、骰子损失、边界损失、豪斯多夫距离损失或者能够被计算为两个或更多个不同类型损失的平均的复合损失。
61.在一些实施方式中,图像分析和解码器模块118响应于由水印检测装置132检测到可能编码的图像302中存在水印,将可能编码的图像302和由水印检测装置132生成的一个或多个输出(例如,由检测器机器学习模型132a生成的分割掩模)路由到水印解码器134,用于解码和提取可能编码的图像302的水印。例如,如果水印检测装置132检测到可能编码的图像302中存在水印,则可能编码的图像302被分类为编码的图像,并且图像分析和解码器模块134能够使用水印解码器134来解码已经检测到的水印。在水印检测装置132未能检测到可能编码的图像302中存在水印的情况下,图像分析和解码器模块118忽略可能编码的图像302,并且不使用水印解码器134进一步处理它,从而节省了试图解码水印所需的计算资源。
62.在一些实施方式中,水印解码器134实施解码水印的过程,该过程通常涉及识别可能编码的图像302中的编码像素的编码值,例如,以确定每个编码像素是对应于编码源图像(例如,qr码)中的黑色像素(值1)还是编码源图像中的白色像素(值0)。一旦已经确定了编码像素的位置或坐标,就能够采用各种解码技术来辨别像素的编码值。例如,可以将该像素的颜色与其相邻像素进行比较,并且如果该像素的颜色比其相邻像素暗一定量,则可以考虑对编码图像中的黑色像素(值1)进行编码。如果像素的颜色没有比其相邻像素暗必要的量,则可以考虑对编码图像中的白色像素(值0)进行编码。此外,可以分析来自在源图像中编码的水印图像的多个实例的相同编码像素,并且对结果进行统计平均。在一些实施方式中,可以训练机器学习模型(称为解码器机器学习模型134a)来执行解码分析。
63.在一些情况下,即使水印检测装置132成功检测到可能编码的图像302上存在水印,水印解码器134也可能无法解码水印。当水印检测装置132能够检测到一个或多个被编
码的像素,然而可能编码的图像302已经被下采样,或者从其原始的自然缩放级别被放大或缩小到水印解码器134不能解码水印的程度时,这种情况可能出现。例如,作为图像处理的一部分,系统的组件可以对图像进行下采样,这能够导致较低的图像分辨率,这抑制了可能编码的图像302的解码。在另一个示例中,用户的设备可能在获得截屏时已经捕获了图像的缩放视图,使得图像具有比原始源图像和水印图像更低的分辨率。此外,由于文件压缩降低了截屏的存储和/或传输费用,截屏可能包括噪声。
64.在水印解码器134不能准确解码可能编码的图像302的情况下,或者在水印解码器134没有以至少指定的准确度级别执行的情况下,缩放技巧能够被用于改善水印解码器解码可能编码的图像的能力。缩放技巧能够由缩放装置138执行,缩放装置138被配置为接收由水印检测装置118路由的可能编码的图像302作为输入,并且输出图像特征的缩放版本。更具体地,缩放装置138生成可能编码的图像302的至少一个缩放版本,该缩放版本能够被用于解码可能编码的图像302的水印。例如,如果希望改善水印解码器134的准确度,缩放装置138能够通过增加图像特征的分辨率(例如,增加2x或一些其他适当的缩放量)来生成可能编码的图像302的缩放版本,从而增加水印特征的分辨率,这将增加水印解码器134的准确度。当然,可以生成可能编码的图像302的任何数量的缩放版本,但是实际上,可能编码的图像的单个缩放版本应该是足够的。
65.在一些实施方式中,水印检测装置118仅生成例如可能编码的图像302包括水印而不是分割掩模的确认的指示,水印解码器134能够实施水印像素提取装置来识别水印的可能区域,而不是跨可能编码的图像302进行迭代地搜索。水印像素提取装置能够实施参考检测器机器学习模型132a描述的图像分割技术。例如,水印像素提取装置能够实施诸如u-net的机器学习模型,该机器学习模型被训练来对可能编码的图像302进行语义分割,以生成与可能编码的图像302具有相同分辨率的分割掩模310。在其他实施方式中,如果检测器机器学习模型132a诸如通过生成识别被加水印的可能编码的图像302的像素的分割掩模来识别可能编码的图像302上的水印的可能区域,则图像分析和解码器模块118能够绕过水印像素提取装置,并且使用解码器机器学习模型134a来解码可能编码的图像302的水印。
66.在一些实施方式中,图像分析和解码器模块118能够基于分割掩模来确定可能编码的图像302的缩放级别。由于分割掩模识别加水印的区域,所以图像分析和解码器模块118能够确定带水印区域的特性,诸如区域中的像素数,以确定可能编码的图像302的缩放级别。例如,假设被识别为带水印区域的区域是水印已知大小的两倍。在该示例中,缩放级别将被认为是200%或2x,使得图像将被确定为以2x缩放级别被捕获。在这样的实施方式中,图像分析和解码器模块118能够使用该信息来帮助解码可能编码的图像302的水印图像,例如,通过向将解码图像的模型通知该缩放级别。
67.在一些实施方式中,图像分析和解码器模块118能够响应于水印像素提取装置(或水印检测装置132)不能检测和/或提取可能编码的图像302的被加水印的整个区域,生成可能编码的图像302的缩放版本。例如,假设分割掩模只生成一部分水印区域。在这种情况下,由于信息不完整,水印解码器134将不能解码水印。在这种情况下,图像分析和解码器模块118能够使用缩放装置138来生成可能编码的图像302的缩放版本,并且检查是否能够在解码之前识别可能编码的图像302的被加水印的整个区域。
68.在一些实施方式中,解码器机器学习模型134a被配置成处理可能编码的图像302,
并生成解码的水印图像320(也称为预测的水印图像320)作为输出。解码器机器学习模型134a能够是被认为适合于特定实施方式的任何模型,诸如决策树、人工神经网络、遗传编程、逻辑编程、支持向量机、聚类、强化学习、贝叶斯推理等。机器学习模型还可以包括用于分析图像的计算机视觉和图像处理的方法、算法和技术。在一些实施方式中,水印检测装置132还能够实施基于启发的方法,或者能够生成解码水印图像320的另一个适当的基于模型或基于规则的技术。
69.在一些实施方案中,解码器机器学习模型134a能够是具有unet架构的深度卷积神经网络(cnn),其被训练来预测可能编码的图像302的解码水印图像320。解码器机器学习模型134a能够包括多个训练参数,并且使用训练过程在第二训练数据集上训练解码器机器学习模型134a,该训练过程能够调整多个训练参数以生成水印图像126的预测(例如,解码的水印图像320)。第二训练数据集能够包括多个训练样本,其中每个训练样本包括加水印的训练图像、包括水印的训练图像的区域的识别形式(例如,识别带水印的像素和不带水印的像素的分割掩模)以及包括训练图像中的水印的水印图像的目标。
70.为了增强解码器机器学习模型134a的泛化潜力,能够通过使用第二数据集的现有训练样本生成新的训练样本来扩充第二数据集。为了生成新的训练样本,训练过程能够使该组训练图像当中的训练图像失真,以创建被用于训练模型的失真图像。在一些实施方式中,失真图像能够通过应用在真实世界视觉数据中广泛出现的视觉扰动——诸如水平和垂直翻转、平移、旋转、裁剪、颜色失真、添加随机噪声等——来生成。在一些实施方式中,训练过程能够通过使用有损压缩或变换技术将训练图像编码成不同的文件格式来生成新的训练样本。例如,训练过程能够使用jpeg压缩来在训练图像中引入小的伪影,并且在压缩之后生成的训练图像能够被用于扩充第一数据集。
71.训练过程能够生成第二数据集的同一图像的多个不同的缩放版本以创建训练集,该训练集训练解码器机器学习模型134a跨各种缩放级别解码图像中的水印。例如,给定特定的训练图像,能够通过改变图像中描绘的项目的缩放级别来创建训练图像的多个不同版本,从而创建特定训练图像的缩放版本。由于不同级别的缩放改变了被用于表示训练图像中单个像素的像素数,当使用扩充图像进行训练时,解码器机器学习模型134a变得不可知被用于表示水印的像素数。
72.在一些实施方式中,训练过程能够通过对表示训练图像的像素颜色的浮点数进行舍入来进一步扩充第二训练数据集。在这种情况下,训练图像是浮点图像,诸如arriraw、blackmagic raw、dng、dpx、exr、psd和tiff图像格式。由于浮点图像提供了最大的准确度和动态范围,解码器机器学习模型134a在扩充的浮点图像上被训练以增强泛化潜力,从而覆盖所有可能的图像格式和其他图像特性的整个范围。例如,浮点图像的浮点数能够使用正常舍入来被舍入,其中舍入值是最接近浮点数的十进制值。在另一个示例中,浮点图像的浮点数能够使用向下舍入来舍入,其中舍入的值是浮点数的小数部分。
73.在训练期间,训练过程能够使用诸如交叉熵损失的损失函数来调整解码器机器学习模型134a的多个参数。例如,逐像素交叉熵损失能够单独检查每个像素,以将解码的(预测的)水印图像320的像素预测与目标水印图像的像素进行比较,并相应地调整解码器机器学习模型134a的参数。训练过程本质上能够是迭代的,其中在每次迭代期间,训练过程旨在使l2损失最小化,直到损失小于指定阈值或者直到训练过程已经执行了指定的迭代数。
74.在一些实施方案中,在通过处理可能编码的图像302生成解码的水印图像320之后,水印解码器134能够生成解码的水印图像320作为输出,该解码的水印图像320能够被图像分析和解码器模块118用来验证可能编码的图像302的真实性(或来源)。为了验证真实性(或来源),在服务器系统102内实施的验证装置140能够使用解码的水印图像320来恢复对应的编码图像124和/或对应的明文数据项122。如果可能编码的图像302作为来自服务器系统102的响应被提供给客户端设备104,则验证装置140能够使用对应的编码图像124和/或对应的明文数据项122来验证可能编码的图像302的真实性。例如,如果服务器系统102能够从响应记录数据库120中识别对应的编码图像124和/或对应的明文数据项122,则对应的编码图像124和/或对应的明文数据项122是有效的。服务器系统102能够进一步基于对应的编码图像124和/或对应的明文数据项122来确定关于源图像128a的信息,诸如源图像128a的提供者,以及为特定请求服务的响应的细节。如果对应的编码图像124和/或对应的明文数据项122不能被识别,则服务器系统102能够确定可能编码的图像302不是由服务器系统102传输的。换句话说,如果识别可能编码的图像302的源的信息未被解码,则图像分析和解码器模块118能够确定可能编码的图像302不是由服务器系统102分发的,因为由服务器系统102分发的内容是用识别服务器系统102作为内容源的信息编码的。
75.在一些实施方式中,水印解码器134能够生成解码的水印图像320作为输出,该解码的水印图像320根据对可能编码的图像302的版本执行的缩放从其原始缩放级别进行缩放。例如,为了生成解码的水印图像320,水印解码器134能够使用缩放装置138生成可能编码的图像302的200%(2x)缩放级别缩放版本。如上所讨论,这个类型的缩放能够有助于改善水印被恰当解码的似然性。例如,如果原始的可能编码的图像302具有利用水印图像编码的相对小的部分,则解码的水印图像320可能证明不足以供解码器机器学习模型134a来生成解码的水印图像320。在这种情况下,由解码器机器学习模型134a生成的解码水印图像320能够被缩放以帮助解码过程。
76.图4是预测可能编码的图像(例如,呈现在客户端设备处的内容的截屏)是否用一个或多个水印图像编码的示例过程400的流程图。过程400的操作能够例如由包括图像分析和解码器模块118的服务器系统102来实施。过程400的操作也能够被实施为被存储在一个或多个计算机可读介质上的指令,所述计算机可读介质可以是非暂时性的,并且由一个或多个数据处理装置执行指令能够使得一个或多个数据处理装置执行过程400的操作。
77.获得可能编码的图像(410)。在一些实施方式中,可能编码的图像,也称为候选图像,是通过包括一个或多个数据处理设备和/或水印检测装置的图像分析和解码器模块118来获得模块。例如,响应于对电子文档的请求,客户端设备104的用户可能接收到不适当或不相关的内容(例如,图像或视频)。在该示例中,用户可以捕获内容的截屏(被称为可能编码的图像或候选图像),并将截屏传输到图像分析和解码器模块118进行分析,例如,以查询呈现给用户并由可能编码的图像描绘的内容的来源。虽然接收到多个图像,但是不需要同时接收它们。例如,图像能够在一段时间内获得,因为它们是由在发布者的资产上被呈现内容的用户提交的。
78.对每个可能编码的图像(候选图像)是否包括视觉上不可察觉的水印(420)进行确定。在一些实施方式中,在水印解码器对候选图像进行任何处理之前,由水印检测装置来执行关于候选图像是否包括视觉上不可察觉的水印的确定。在利用水印解码器处理图像之前
使用水印检测装置来确定候选图像是否包括水印提供了更高效的计算系统。例如,在需要执行计算强度更大的解码器处理之前,能够使用更简单(例如,计算成本更低)的检测处理来检测接收到的图像中水印的存在。这样,系统能够忽略未检测到水印的任何图像,而不会浪费执行解码器处理所需的资源。
79.水印检测装置132能够在图像分析和解码器模块118内实施,并且能够实施检测器机器学习模型132a,该检测器机器学习模型132a被配置成处理候选图像并且生成候选图像是包括水印的一部分还是一个或多个水印的指示作为输出。例如,检测器机器学习模型能够被实施为分类模型,该分类模型能够处理候选图像以将图像分类为包括水印的图像或不包括水印的图像。
80.在一些实施方式中,水印检测装置还能够实施检测器机器学习模型来执行语义图像分割。例如,检测器机器学习模型能够处理候选图像,以将候选图像的每个像素分类为第一类和第二类。在该示例中,第一类对应于使用水印图像编码(或在客户端设备上显示期间重叠)的候选图像的像素,并且第二类对应于未使用水印图像编码的候选图像的像素。在一些实施方式中,检测器机器学习模型能够生成分割掩模作为输出,该分割掩模识别一组被加水印的编码像素。例如,在将候选图像的像素分类为第一类和第二类之后,检测器机器学习模型能够通过将标签分配给与像素被分配到的类相关的像素来生成分割掩模。例如,如果候选图像的像素被分类为第一类,则能够为其分配标签“1”,并且如果该像素被分类为第二类,则能够为其分配标签“0”。
81.在一些实施方式中,使用检测器机器学习模型来执行候选图像是否包括视觉上不可察觉的水印的确定。在这些实施方式中,该确定包括使用检测器机器学习模型来确定候选图像是否包括视觉上不可察觉的水印,该检测器机器学习模型被训练成基于对输入图像的区域的粗略分析来确定该区域是否包括视觉上不可察觉的水印,该粗略分析不需要对该区域进行逐像素分析。例如,编码位或黑色位的总数能够被用作确定候选图像是否包括水印的条件。更具体地,如果对应于水印大小的区域不包括足够数量的编码位或黑色位,则该区域不可能包含水印,从而不必要对图像进行进一步处理。
82.也能够通过基于水印条件将候选图像的区域分类为带水印或不带水印来执行对候选图像是否包括视觉上不可察觉的水印的确定。水印条件能够包括例如如上所讨论的编码位的阈值数量、编码位密度阈值、编码位分布条件或者能够指示候选图像的带水印区域的其他条件。在这些实施方式中,确定候选图像的区域中的编码像素组,并且基于编码像素组是否满足水印条件来对该区域进行分类。例如,如果候选图像的特定区域的编码位密度(例如,区域中被识别为被编码的总位的一部分,诸如百分比)大于编码位密度阈值,则该区域能够被分类为带水印区域。然而,如果特定区域的编码位密度小于编码位密度阈值,则该区域能够被分类为不带水印的区域。
83.一旦候选图像的区域已经被分类,能够为该区域中的所有像素输出二进制1,以将该区域标记为包括视觉上不可察觉的水印。这些二进制1能够被用于生成图像的水印图。水印图指示地图中包含视觉上不可察觉的水印的区域。在一些情况下,每个区域能够包括相同的水印,使得无论图像的哪个部分被分析或解码,包含在水印中的信息都能够被恢复。在一些情况下,图像的不同区域能够包括不同的水印,每个水印携带不同的信息,以便增加能够被编码到单个图像中的信息量。
84.基于特定图像是否包括视觉上不可察觉的水印的确定来路由每个特定候选图像(特定图像)。例如,响应于在特定图像中检测到水印的存在,特定图像被路由到水印解码器134,用于解码和提取水印。对于未检测到水印存在的特定图像,那些特定图像然后被忽略(或丢弃)并且不被水印解码器处理。在一些实施方式中,未检测到水印的特定图像被过滤掉,不再进一步处理。
85.解码在被路由到水印解码器的特定图像中检测到的视觉上不可察觉的水印(430)。在一些实施方式中,水印解码器使用机器解码器机器学习模型来执行水印的解码。例如,解码器机器学习模型被配置成处理候选图像并生成解码的水印图像作为输出。解码器机器学习模型能够是具有unet架构的深度卷积神经网络(cnn),其被训练来预测解码的水印图像。解码器机器学习模型能够包括多个训练参数,并且使用训练过程在第二训练数据集上训练解码器机器学习模型,该训练过程能够调整多个训练参数以生成水印图像的预测(例如,解码的水印图像)。能够使用解码器机器学习模型来解码水印,该解码器机器学习模型被训练来解码特定图像中视觉上不可察觉的水印,而不考虑图像中描绘的项目的缩放级别。例如,如上所述,用于训练解码器机器学习模型的一组训练图像能够包括多个训练图像,这些训练图像以不同的缩放级别和不同的图像失真来描绘带水印的项目。为了改善模型的性能,解码器机器学习模型能够使用由rgb无符号整数表示的图像在浮点数中训练。如上所述,舍入技术能够被用于解决浮点数和无符号rgb整数之间的不匹配。
86.图像分析和解码器模块118能够确定候选图像的水印图像没有被解码器机器学习模型解码。例如,候选图像能够包括在生成解码水印图像时可能导致较低似然性(或预测置信度)的失真。在另一个示例中,作为输入提供给解码器机器学习模型的候选图像的缩放级别能够具有利用水印图像编码的相对小的部分,这可能证明不足以使解码器机器学习模型以足够的置信度生成解码的水印图像。当确定候选图像的水印图像被解码时,解码的水印图像可以被处理用于验证。当确定候选图像的水印图像未被解码时,能够生成候选图像的一个或多个缩放版本,并且能够执行使用候选图像的所述一个或多个缩放版本解码水印的额外尝试。
87.验证解码的水印图像(440)。例如,为了验证解码的水印图像的真实性,在服务器系统内实施的验证装置能够使用解码的水印图像来恢复相应的编码图像和/或相应的明文数据项。如果由候选图像描绘的内容作为来自服务器系统102的响应被提供给客户端设备104,则验证装置140能够使用相应的编码图像和/或相应的明文数据项来验证由候选图像描绘的内容的真实性。例如,如果服务器系统能够从响应记录数据库中识别对应的编码图像和/或对应的明文数据项,则对应的编码图像和/或对应的明文数据项是有效的。服务器系统能够进一步基于对应的编码图像和/或对应的明文数据项来确定关于源图像(例如,由图像提供者提供的图像内容)的信息,诸如源图像的提供者和为特定请求服务的响应的细节。如果对应的编码图像和/或对应的明文数据项不能被识别,则服务器系统能够确定可能编码的源图像不是由服务器系统传输的。
88.图5是训练缩放不可知水印模型(例如,解码器机器学习模型134b)的示例过程的流程图。过程500的操作能够例如由包括图像分析和解码器模块118的服务器系统102来实施。过程500的操作也能够被实施为存储在一个或多个计算机可读介质上的指令,所述计算机可读介质可以是非暂时性的,并且由一个或多个数据处理装置执行指令能够使得所述一
个或多个数据处理装置执行过程500的操作。
89.获得一组训练图像(510)。在一些实施方式中,该组训练图像由包括一个或多个处理器的服务器系统102获得。服务器系统102能够执行训练过程以使用该组训练图像来训练解码器机器学习模型134a。为了执行训练过程,服务器系统102获得包括多个训练样本的一组训练图像(称为第二组训练图像),其中每个训练样本包括加水印的训练图像、包括水印的训练图像的区域的识别形式(例如,识别带水印的像素和不带水印的像素的分割掩模)以及包括训练图像中的水印的水印图像的目标。
90.使该组训练图像当中的图像失真(520)。例如,为了增强解码器机器学习模型134a的泛化潜力的训练过程能够通过使用第二数据集的现有训练样本生成新的训练样本来扩充第二数据集。为了生成新的训练样本,能够对图像应用失真以创建失真的图像。在一些实施方式中,通过修改图像的分辨率或应用在真实世界视觉数据中广泛出现的视觉扰动——例如水平和垂直翻转、平移、旋转、裁剪、颜色失真、添加随机噪声等——能够使图像失真。在一些实施方式中,训练过程能够通过使用有损压缩或变换技术将训练图像编码成不同的文件格式来生成新的训练样本。例如,训练过程能够使用jpeg压缩来在训练图像中引入小的伪影,并且在压缩之后生成的训练图像能够被用于扩充第一数据集。在一些实施方式中,能够通过改变用于表示图像中单个像素的像素数量来创建失真图像。
91.在一些实施方案中,训练过程能够通过对表示训练图像的像素颜色的浮点数进行舍入来进一步扩充第二训练数据集。在这种情况下,训练图像是浮点图像,诸如arriraw、blackmagic raw、dng、dpx、exr、psd和tiff图像格式。在这种情况下,浮点图像的浮点数能够使用正常舍入来舍入,其中舍入值是最接近浮点数的十进制值。在另一个示例中,浮点图像的浮点数能够使用向下舍入来舍入,其中舍入值是浮点数的小数部分。
92.在一些实施方式中,训练过程能够通过生成训练图像的一个或多个缩放版本来进一步扩充第二训练数据集,以便以不可知可能编码的图像302的缩放级别的方式来训练解码器机器学习模型134a。例如,单个训练图像能够被放大和/或缩小以创建该图像的不同缩放版本。图像的各种缩放版本能够被包括在用于训练模型的该组训练图像中,使得模型能够检测和/或解码图像中视觉上不可察觉的水印,而不管输入到模型的候选图像的缩放级别如何。
93.训练缩放不可知水印解码器模型(530)。在一些实施方式中,缩放不可知水印解码器模型被训练来解码输入到该模型的候选图像中视觉上不可察觉的水印,并且该解码能够由该模型跨输入图像的多个不同缩放级别上执行。例如,服务器系统102能够执行训练过程,该训练过程能够使用诸如l2损失的损失函数来调整解码器机器学习模型134a的多个参数。例如,逐像素交叉熵损失能够单独检查每个像素,以将解码的(预测的)水印图像320的像素预测与目标水印图像的像素进行比较,并相应地调整解码器机器学习模型134a的参数。训练过程本质上能够是迭代的,其中在每次迭代期间,训练过程旨在使交叉熵损失最小化,直到损失小于指定阈值或者直到训练过程已经执行了指定的迭代数。
94.在一些实施方式中,使用从该组训练图像当中的同一图像创建的两个或更多个不同的缩放图像来训练缩放不可知水印解码器模型。在这些实施方式中,两个不同缩放图像中的每一个能够使用不同数量的像素来表示同一图像的单个像素。
95.使用缩放的图像,缩放不可知水印检测模型也能够被训练来跨输入图像的多个缩
放级别检测输入图像内视觉上不可察觉的水印的存在。在一些实施方式中,独立于使用解码器模型对视觉上不可察觉的水印进行解码来执行检测。
96.部署缩放不可知水印模型(540)。例如,在训练解码器机器学习模型134a之后,服务器系统102能够开始接收候选图像。如果在候选图像中检测到水印的存在,则服务器系统102能够使用解码器机器学习模型134a来生成解码的水印图像320。
97.图6是解码可能编码的图像的示例过程600的流程图。过程600的操作能够例如由包括图像分析和解码器模块118的服务器系统102来实施。过程600的操作也能够被实施为存储在一个或多个计算机可读介质上的指令,所述计算机可读介质可以是非暂时性的,并且由一个或多个数据处理装置执行指令能够使得所述一个或多个数据处理装置执行过程600的操作。
98.水印解码器134接收输入图像(610)。例如,响应于在特定图像中检测到水印的存在,特定图像被路由到水印解码器134,用于解码和提取水印,如前所述。
99.对输入图像应用解码器机器学习模型(620)。水印解码器134使用解码器机器学习模型134a来执行水印的解码。解码器机器学习模型被配置成处理输入图像(也称为候选图像)并生成解码的水印图像作为输出。解码器机器学习模型能够是具有unet架构的深度卷积神经网络(cnn),其被训练来预测解码的水印图像。解码器机器学习模型能够包括多个训练参数,并且使用训练过程在第二训练数据集上训练解码器机器学习模型,该训练过程能够调整多个训练参数以生成水印图像的预测(例如,解码的水印图像)。
100.能够使用解码器机器学习模型来解码水印,该解码器机器学习模型被训练成解码特定图像中视觉上不可察觉的水印,而不管图像中描绘的项目的缩放级别如何。例如,如上所讨论,用于训练解码器机器学习模型的第二组训练图像能够包括多个训练图像,这些训练图像以不同的缩放级别和不同的图像失真来描绘带水印的项目。为了改善模型的性能,能够使用由rgb无符号整数表示的图像、使用浮点数来训练解码器机器学习模型。如上所讨论,舍入技术能够被用于解决浮点数和无符号rgb整数之间的不匹配。
101.图像分析和解码器模块118确定解码的水印图像是否是预测的。在一些实施方式中,该确定包括确定是否通过对输入图像应用解码器机器学习模型来解码视觉上不可察觉的水印以获得解码的水印。例如,图像分析和解码器模块118能够确定候选图像的水印图像没有被解码器机器学习模型解码。在该示例中,候选图像可能包括严重的失真,这在生成解码的水印图像时可能导致较低的似然性(或预测置信度),从而导致确定水印图像没有以足够的置信度被解码。在另一个示例中,作为输入提供给解码器机器学习模型的候选图像的缩放级别可能具有利用水印图像编码的相对小的部分,这可能证明不足以使解码器机器学习模型以足够的置信度生成解码的水印图像。当确定候选图像的水印图像被解码时,解码的水印图像能够被处理用于验证。当确定候选图像的水印图像没有被解码时,能够生成候选图像的一个或多个缩放版本,并且能够执行使用候选图像的所述一个或多个缩放版本解码水印的额外尝试。
102.基于是否通过对输入图像应用解码器机器学习模型来解码视觉上不可察觉的水印来输出结果(630)。在通过处理可能编码的图像302生成解码的水印图像320之后,水印解码器134能够生成解码的水印图像320作为输出,该解码的水印图像320能够被图像分析和解码器模块118用来验证可能编码的图像302的真实性(或来源)。
103.为了验证真实性(或来源),在服务器系统102内实施的验证装置140能够使用解码的水印图像320来恢复对应的编码图像124和/或对应的明文数据项122。如果可能编码的图像302作为来自服务器系统102的响应被提供给客户端设备104,则验证装置140能够使用对应的编码图像124和/或对应的明文数据项122来验证可能编码的图像302的真实性。
104.在一些实施方式中,水印解码器134能够生成解码的水印图像320作为输出,该解码的水印图像320根据对可能编码的图像302的版本执行的缩放从其原始缩放级别进行缩放。例如,输出能够包括响应于确定视觉上不可察觉的水印是通过对输入图像应用解码器机器学习模型而被解码从而生成的缩放输出。在特定的示例中,解码的水印可以具有对应于由输入图像描绘的项目的缩放级别的缩放级别,但是为了生成解码的水印图像320,水印解码器134能够使用缩放装置138生成可能编码的图像302的200%(2x)缩放级别(或某个其他缩放级别)缩放版本。在这种情况下,由解码器机器学习模型134a生成的解码水印图像320能够被缩放以帮助解码过程。缩放输出是解码水印的版本,其中使用缩放输出中的多于一个像素来描绘解码水印的单个像素,使得水印的分辨率增加。这能够使得更容易和/或更可靠地读取水印。
105.在一些情况下,视觉上不可察觉的水印最初可能不会通过对输入图像应用解码器机器学习模型而被解码。在这些情况下,能够对输入图像的缩放版本重新应用解码器机器学习模型。例如,如上所讨论,能够使用缩放技巧来增加输入图像中水印的分辨率,这能够导致更可靠的水印解码。对输入图像的缩放版本重新应用解码器机器学习模型能够包括将输入图像缩放至少两倍的倍数以创建输入图像的缩放版本,其中输入图像的缩放版本中的至少两个像素被用于描绘输入图像中的单个像素。一旦被缩放,解码器机器学习模型能够被重新应用于输入图像的缩放版本,并且能够再次输出结果。
106.在一些实施方式中,在对输入图像应用解码器机器学习模型之前,能够执行附加操作。例如,能够使用被应用于输入图像的检测器机器学习模型来处理输入图像。在这些实施方式中,对输入图像应用检测器机器学习模型能够生成突出输入图像的带水印的区域的分割掩模,如先前详细讨论的。该分割掩模能够被用于确定输入图像包括要被解码的视觉上不可察觉的水印。分割掩模也能够被用于确定输入图像的缩放级别。例如,输入图像的缩放级别能够基于用于表示分割掩模中视觉上不可察觉的水印的像素数量相对于用于表示未缩放图像中视觉上不可察觉的水印的像素数量来确定。在特定的示例中,假设覆盖在图像(或其他可视内容)上的水印是100
×
100像素的正方形,但是分割掩模是300
×
300像素。在该示例中,能够对输入图像的缩放级别是300%(3x)进行确定,因为分割掩模的尺寸比未缩放图像中水印的已知大小的尺寸大3倍。该信息能够作为结果的一部分被输出,并被用于缩放输入图像以供进一步处理(例如,通过解码器机器学习模型)或向其他模型或处理单元通知输入图像的缩放。
107.图7是能够被用于执行上述操作的示例计算机系统700的框图。系统700包括处理器710、存储器720、存储设备730和输入/输出设备740。组件710、720、730和740中的每一个都能够例如使用系统总线750来互连。处理器710能够处理在系统700内执行的指令。在一些实施方式中,处理器710是单线程处理器。在另一个实施方式中,处理器710是多线程处理器。处理器710能够处理存储在存储器720或存储设备730中的指令。
108.存储器720存储系统700内的信息。在一个实施方式中,存储器720是计算机可读介
质。在一些实施方式中,存储器720是易失性存储单元。在另一个实施方式中,存储器720是非易失性存储单元。
109.存储设备730能够为系统700提供大容量存储。在一些实施方式中,存储设备730是计算机可读介质。在各种不同的实施方式中,存储设备730能够包括例如硬盘设备、光盘设备、由多个计算设备通过网络共享的存储设备(例如,云存储设备)、或其他某个大容量存储设备。
110.输入/输出设备740为系统700提供输入/输出操作。在一些实施方式中,输入/输出设备740能够包括网络接口设备(例如以太网卡)、串行通信设备(例如rs-232端口)和/或无线接口设备(例如802.11卡)中的一个或多个。在另一个实施方式中,输入/输出设备可以能够包括被配置成接收输入数据并将输出数据发送到外部设备760——例如,键盘、打印机和显示设备——的驱动设备。然而,也能够使用其他实施方案,诸如移动计算设备、移动通信设备、机顶盒电视客户端设备等。
111.尽管已经在图1至图6中描述了示例处理系统,但是本说明书中描述的主题和功能操作的实施方式能够在其他类型的数字电子电路中实施,或者在计算机软件、固件或硬件中实施,包括本说明书中公开的结构及其结构等同物,或者在它们中的一个或多个的组合中实施。
112.本说明书中描述的主题和操作的实施例能够在数字电子电路中实施,或者在计算机软件、固件或硬件中实施,包括本说明书中公开的结构及其结构等同物,或者在它们中的一个或多个的组合中实施。本说明书中描述的主题的实施例能够被实施为被编码在计算机存储介质(或多个介质)上的一个或多个计算机程序,即计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。替代地或附加地,程序指令能够被编码在人工生成的传播信号上,例如,机器生成的电、光或电磁信号,其被生成以编码信息,用于传输到合适的接收器装置,以由数据处理装置执行。计算机存储介质能够是或被包括在计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备、或者它们中的一个或多个的组合。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质能够是编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质也能够是或被包括在一个或多个单独的物理组件或介质(例如,多个cd、盘或其他存储设备)。
113.本说明书中描述的操作能够被实施为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他源接收的数据执行的操作。
114.术语“数据处理装置”涵盖用于处理数据的所有种类的装置、设备和机器,包括例如可编程处理器、计算机、片上系统或前述的多个或组合。该装置能够包括专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,该装置还能够包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中的一个或多个的组合的代码。该装置和执行环境能够实现各种不同的计算模型基础设施,诸如网络服务、分布式计算和网格计算基础设施。
115.计算机程序(也称为程序、软件、软件应用、脚本或代码)能够用任何形式的编程语言编写,包括编译或解释语言、声明或过程语言,并且它能够以任何形式部署,包括作为独
立程序或作为模块、组件、子例程、对象或适合在计算环境中使用的其他单元。计算机程序可以但不需要对应于文件系统中的文件。程序能够被存储在存放其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),存储在专用于所讨论的程序的单个文件中,或者存储在多个协作文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序能够被部署为在一个计算机或位于一个站点或跨多个站点分布并通过通信网络互连的多个计算机上执行。
116.本说明书中描述的过程和逻辑流程能够由执行一个或多个计算机程序的一个或多个可编程处理器来执行,以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流程也能够由专用逻辑电路来执行,并且装置也能够被实施为专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。
117.举例来说,适于执行计算机程序的处理器包括通用和专用微处理器两者。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括或可操作地耦合到一个或多个用于存储数据的大容量存储设备,例如磁盘、磁光盘或光盘,以从该大容量存储设备接收数据或向其传送数据,或两者兼有。然而,计算机不需要有这样的设备。此外,计算机能够被嵌入在另一个设备中,例如,移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器或便携式存储设备(例如,通用串行总线(usb)闪存驱动器),仅举几例。适于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储设备,包括例如半导体存储设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及cd-rom和dvd-rom盘。处理器和存储器能够由专用逻辑电路来补充或并入其中。
118.为了提供与用户的交互,本说明书中描述的主题的实施例能够在计算机上实施,该计算机具有用于向用户显示信息的显示设备,例如crt(阴极射线管)或lcd(液晶显示器)监视器,以及用户能够用来向计算机提供输入的键盘和定点设备,例如鼠标或轨迹球。也能够使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈能够是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且能够以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机能够通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从web浏览器接收的请求,向用户的客户端设备上的web浏览器发送网页。
119.本说明书中描述的主题的实施例能够在计算系统中实施,该计算系统包括后端组件,例如作为数据服务器,或者包括中间件组件,例如应用服务器,或者包括前端组件,例如具有用户能够通过其与本说明书中描述的主题的实施方式进行交互的图形用户界面或web浏览器的客户端计算机,或者一个或多个这样的后端、中间件或前端组件的任何组合。该系统的组件能够通过例如通信网络的任何形式或介质的数字数据通信来互连。通信网络的示例包括局域网(“lan”)和广域网(“wan”)、互联网络(例如,互联网)和对等网络(例如,自组织对等网络)。
120.计算系统能够包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是由于在相应计算机上运行的计算机程序而产生的,并且彼此具有客户端-服务器关系。在一些实施例中,服务器将数据(例如,html页
面)传输到客户端设备(例如,为了向与客户端设备交互的用户显示数据并从其接收用户输入)。在客户端设备处生成的数据(例如,用户交互的结果)能够在服务器处从客户端设备接收。
121.虽然本说明书包含许多具体的实施方式细节,但是这些不应该被解释为对任何发明的范围或可能要求保护的范围的限制,而是对特定发明的特定实施例所特有的特征的描述。本说明书中在独立实施例的上下文中描述的某些特征也能够在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也能够在多个实施例中单独或以任何合适的子组合来实施。此外,尽管特征可能在上面被描述为在某些组合中起作用,并且甚至最初被如此要求保护,但是来自所要求保护的组合的一个或多个特征在一些情况下能够从该组合中删除,并且所要求保护的组合可以针对子组合或子组合的变体。
122.类似地,虽然在附图中以特定的次序描述了操作,但是这不应该被理解为要求这些操作以所示的特定次序或顺序执行,或者要求所有示出的操作都被执行,以获得期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这样的分离,并且应该理解,所描述的程序组件和系统通常能够一起集成在单个软件产品中或者打包到多个软件产品中。
123.因此,已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。在一些情况下,权利要求中所述的动作能够以不同的次序执行,并且仍能获得期望的结果。此外,附图中描绘的过程不一定需要所示的特定次序或顺序来实现期望的结果。在某些实施方式中,多任务和并行处理可能是有利的。

技术特征:
1.一种计算机实施的方法,包括:由水印检测装置接收图像;对于所述图像当中的每个特定图像:由所述水印检测装置使用检测器机器学习模型来确定所述特定图像是否包括视觉上不可察觉的水印,其中所述水印检测装置在所述图像中的至少一个中检测所述视觉上不可察觉的水印;基于确定所述特定图像是否包括所述视觉上不可察觉的水印来路由所述特定图像,包括:响应于所述水印检测装置在所述特定图像中检测到所述视觉上不可察觉的水印,将所述特定图像路由到水印解码器;以及响应于所述水印检测装置在所述特定图像中没有检测到所述视觉上不可察觉的水印,过滤所述特定图像不做进一步处理;由所述水印解码器解码在被路由到所述水印解码器的所述特定图像中检测到的所述视觉上不可察觉的水印;以及基于从所解码的视觉上不可察觉的水印中提取的数据来验证所述特定图像中描绘的项目。2.根据权利要求1所述的计算机实施的方法,其中,使用检测器机器学习模型来确定所述特定图像是否包括视觉上不可察觉的水印包括:使用被训练成基于对输入图像的区域的粗略分析来确定所述区域是否包括所述视觉上不可察觉的水印的检测器机器学习模型来确定所述特定图像是否包括所述视觉上不可察觉的水印,所述粗略分析不需要对所述区域的逐像素分析。3.根据权利要求2所述的计算机实施的方法,其中,确定所述特定图像是否包括所述视觉上不可察觉的水印包括:由所述水印检测装置确定所述特定图像的所述区域中的一组编码像素;以及基于所述特定图像的所述区域中的所述一组编码像素对所述特定图像的所述区域进行分类,包括:响应于所述一组编码像素满足水印条件,将所述区域分类为带水印的区域;以及响应于所述一组编码像素不满足所述水印条件,将所述区域分类为不带水印的区域。4.根据权利要求3所述的计算机实施的方法,进一步包括:针对所述区域中的所有像素输出二进制1,以将所述区域标记为包括所述视觉上不可察觉的水印;以及使用所述二进制1生成所述图像的水印图,其中所述水印图指示所述图的包含所述视觉上不可察觉的水印的区域。5.根据权利要求1所述的计算机实施的方法,其中,解码所述水印包括使用解码器机器学习模型解码所述水印,所述解码器机器学习模型被训练成解码在所述特定图像中视觉上不可察觉的水印,而不管所述图像中描绘的项目的缩放级别如何。6.根据权利要求5所述的计算机实施的方法,进一步包括使用一组训练图像来训练所述解码器机器学习模型,所述一组训练图像包括以不同的缩放级别和不同的图像失真来描绘带水印的项目的多个训练图像。
7.根据权利要求5所述的计算机实施的方法,进一步包括预处理所述一组训练图像,以防止由于使用由rgb无符号整数表示的图像以浮点数训练所述解码器机器学习模型而导致的模型性能缺陷。8.一种系统,包括:数据存储设备;水印检测装置,包括一个或多个处理器,被配置为执行操作,所述操作包括:使用检测器机器学习模型来确定所述特定图像是否包括视觉上不可察觉的水印,其中所述水印检测装置在所述图像中的至少一个中检测所述视觉上不可察觉的水印;以及基于对所述特定图像是否包括所述视觉上不可察觉的水印的所述确定来路由所述特定图像,包括:响应于所述水印检测装置在所述特定图像中检测到所述视觉上不可察觉的水印,将所述特定图像路由到水印解码器;以及响应于所述水印检测装置在所述特定图像中没有检测到所述视觉上不可察觉的水印,过滤所述特定图像不做进一步处理;以及水印解码器,包括一个或多个处理器,被配置为执行包括由所述水印解码器对在被路由到所述水印解码器的所述特定图像中检测到的所述视觉上不可察觉的水印进行解码的操作,其中所述系统被配置为执行包括基于从所解码的视觉上不可察觉的水印中提取的数据来验证所述特定图像中描绘的项目的操作。9.根据权利要求8所述的系统,其中,使用检测器机器学习模型来确定所述特定图像是否包括视觉上不可察觉的水印包括:使用被训练成基于对输入图像的区域的粗略分析来确定所述区域是否包括所述视觉上不可察觉的水印的检测器机器学习模型来确定所述特定图像是否包括所述视觉上不可察觉的水印,所述粗略分析不需要对所述区域的逐像素分析。10.根据权利要求9所述的系统,其中,确定所述特定图像是否包括所述视觉上不可察觉的水印包括:由所述水印检测装置确定所述特定图像的所述区域中的一组编码像素;以及基于所述特定图像的所述区域中的所述一组编码像素对所述特定图像的所述区域进行分类,包括:响应于所述一组编码像素满足水印条件,将所述区域分类为带水印的区域;以及响应于所述一组编码像素不满足所述水印条件,将所述区域分类为不带水印的区域。11.根据权利要求10所述的系统,进一步包括:针对所述区域中的所有像素输出二进制1,以将所述区域标记为包括所述视觉上不可察觉的水印;以及使用所述二进制1生成所述图像的水印图,其中所述水印图指示所述图的包含所述视觉上不可察觉的水印的区域。12.根据权利要求8所述的系统,其中,解码所述水印包括使用解码器机器学习模型解码所述水印,所述解码器机器学习模型被训练成解码所述特定图像中视觉上不可察觉的水印,而不管所述图像中描绘的项目的缩放级别如何。13.根据权利要求12所述的系统,进一步包括使用一组训练图像来训练所述解码器机
器学习模型,所述一组训练图像包括以不同的缩放级别和不同的图像失真来描绘带水印的项目的多个训练图像。14.根据权利要求12所述的系统,进一步包括预处理所述一组训练图像,以防止由于使用由rgb无符号整数表示的图像以浮点数训练所述解码器机器学习模型而导致的模型性能缺陷。15.一种存储指令的非暂时性计算机可读介质,所述指令在被一个或多个数据处理装置执行时使得所述一个或多个数据处理装置执行操作,所述操作包括:由水印检测装置接收图像;对于所述图像当中的每个特定图像:由所述水印检测装置使用检测器机器学习模型来确定所述特定图像是否包括视觉上不可察觉的水印,其中所述水印检测装置在所述图像中的至少一个中检测所述视觉上不可察觉的水印;基于对所述特定图像是否包括所述视觉上不可察觉的水印的所述确定来路由所述特定图像,包括:响应于所述水印检测装置在所述特定图像中检测到所述视觉上不可察觉的水印,将所述特定图像路由到水印解码器;以及响应于所述水印检测装置在所述特定图像中没有检测到所述视觉上不可察觉的水印,过滤所述特定图像不做进一步处理;由所述水印解码器解码在被路由到所述水印解码器的所述特定图像中检测到的所述视觉上不可察觉的水印;以及基于从所解码的视觉上不可察觉的水印中提取的数据来验证所述特定图像中描绘的项目。16.根据权利要求15所述的非暂时性计算机可读介质,其中,使用检测器机器学习模型来确定所述特定图像是否包含视觉上不可察觉的水印包括:使用被训练成基于对输入图像的区域的粗略分析来确定所述区域是否包含所述视觉上不可察觉的水印的检测器机器学习模型来确定所述特定图像是否包含所述视觉上不可察觉的水印,所述粗略分析不需要所述区域的逐像素分析。17.根据权利要求16所述的非暂时性计算机可读介质,其中,确定所述特定图像是否包括所述视觉上不可察觉的水印包括:由所述水印检测装置确定所述特定图像的所述区域中的一组编码像素;以及基于所述特定图像的所述区域中的所述一组编码像素对所述特定图像的所述区域进行分类,包括:响应于所述一组编码像素满足水印条件,将所述区域分类为带水印的区域;以及响应于所述一组编码像素不满足所述水印条件,将所述区域分类为不带水印的区域。18.根据权利要求17所述的非暂时性计算机可读介质,进一步包括:针对所述区域中的所有像素输出二进制1,以将所述区域标记为包括所述视觉上不可察觉的水印;以及使用所述二进制1生成所述图像的水印图,其中所述水印图指示所述图的包含所述视觉上不可察觉的水印的区域。
19.根据权利要求15所述的非暂时性计算机可读介质,其中,解码所述水印包括使用解码器机器学习模型解码所述水印,所述解码器机器学习模型被训练成解码所述特定图像中视觉上不可察觉的水印,而不管所述图像中描绘的项目的缩放级别如何。20.根据权利要求19所述的非暂时性计算机可读介质,进一步包括使用一组训练图像来训练所述解码器机器学习模型,所述一组训练图像包含以不同缩放级别且以不同图像失真描绘带水印的项目的多个训练图像。21.根据权利要求19所述的非暂时性计算机可读介质,进一步包括预处理所述一组训练图像,以防止由于使用由rgb无符号整数表示的图像以浮点数训练所述解码器机器学习模型而导致的模型性能缺陷。22.一种计算机实施的方法,包括:由一个或多个处理器获得包括视觉上不可察觉的水印的一组训练图像;由所述一个或多个处理器使得所述一组训练图像当中的图像失真以创建失真图像,包括改变所述图像中描绘的项目的缩放级别以创建缩放图像;由所述一个或多个处理器使用所述失真图像来训练缩放不可知水印解码器模型,以跨输入图像的多个缩放级别解码所述输入图像中视觉上不可察觉的水印;以及部署所述缩放不可知水印解码器模型以在输入图像内在多个不同缩放级别上解码视觉上不可察觉的水印。23.根据权利要求22所述的计算机实施的方法,其中,使所述一组训练图像当中的图像失真以创建失真图像包括将所述图像转换成不同的图像文件格式或修改所述图像的分辨率。24.根据权利要求22所述的计算机实施的方法,进一步包括预处理所述一组训练图像当中的图像,包括针对所述一组训练图像当中的每个图像,对表示所述图像中的像素的颜色的浮点数进行舍入,以防止由表示所述像素的颜色的浮点数和用于存储所述图像的rgb无符号整数之间的不匹配导致的模型性能缺陷。25.根据权利要求22所述的计算机实施的方法,其中,对表示所述图像中的像素的颜色的浮点数进行舍入包括:使用正常舍入对所述浮点数进行舍入;以及使用向下舍入对流动点数进行舍入。26.根据权利要求22所述的计算机实施的方法,其中,改变所述图像中描绘的项目的缩放级别以创建缩放图像包括在每个缩放图像中改变用于表示所述一组训练图像当中的图像中的单个像素的像素数量。27.根据权利要求26所述的计算机实施的方法,其中,训练缩放不可知水印解码器模型包括使用从所述一组训练图像当中的同一图像创建的两个不同缩放图像来训练所述缩放不可知水印解码器模型,其中所述两个不同缩放图像中的每一个使用不同数量的像素来表示所述同一图像的单个像素。28.根据权利要求22所述的计算机实施的方法,进一步包括:由所述一个或多个处理器使用所述缩放图像来训练缩放不可知水印检测模型,所述缩放不可知水印检测模型跨所述输入图像的多个缩放级别检测所述输入图像内所述视觉上不可察觉的水印的存在,其中所述检测独立于解码所述视觉上不可察觉的水印来执行。
29.一种系统,包括:数据存储设备;一个或多个处理器,被配置为执行操作,所述操作包括:由所述一个或多个处理器获得包括视觉上不可察觉的水印的一组训练图像;由所述一个或多个处理器使所述一组训练图像当中的图像失真以创建失真图像,包括改变所述图像中描绘的项目的缩放级别以创建缩放图像;由所述一个或多个处理器使用所述失真图像来训练缩放不可知水印解码器模型,以跨输入图像的多个缩放级别解码所述输入图像中视觉上不可察觉的水印;以及部署所述缩放不可知水印解码器模型以在输入图像内在多个不同缩放级别上解码视觉上不可察觉的水印。30.根据权利要求29所述的系统,其中,使所述一组训练图像当中的图像失真以创建失真图像包括将所述图像转换成不同的图像文件格式或修改所述图像的分辨率。31.根据权利要求29所述的系统,进一步包括预处理所述一组训练图像当中的图像,包括针对所述一组训练图像当中的每个图像,对表示所述图像中的像素的颜色的浮点数进行舍入,以防止由表示所述像素的颜色的浮点数和用于存储所述图像的rgb无符号整数之间的不匹配导致的模型性能缺陷。32.根据权利要求29所述的系统,其中,对表示所述图像中的像素的颜色的浮点数进行舍入包括:使用正常舍入对所述浮点数进行舍入;以及使用向下舍入对流动点数进行舍入。33.根据权利要求29所述的系统,其中,改变所述图像中描绘的项目的缩放级别以创建缩放图像包括在每个缩放图像中改变用于表示所述一组训练图像当中的图像中的单个像素的像素数量。34.根据权利要求33所述的系统,其中,训练缩放不可知水印解码器模型包括使用从所述一组训练图像当中的同一图像创建的两个不同的缩放图像来训练所述缩放不可知水印解码器模型,其中所述两个不同的缩放图像中的每一个使用不同数量的像素来表示所述同一图像的单个像素。35.根据权利要求29所述的系统,进一步包括:由所述一个或多个处理器使用所述缩放图像来训练缩放不可知水印检测模型,所述缩放不可知水印检测模型跨所述输入图像的多个缩放级别检测所述输入图像内所述视觉上不可察觉的水印的存在,其中所述检测独立于解码所述视觉上不可察觉的水印来执行。36.一种存储指令的非暂时性计算机可读介质,所述指令在被一个或多个数据处理装置执行时使得所述一个或多个数据处理装置执行操作,所述操作包括:由一个或多个处理器获得包括视觉上不可察觉的水印的一组训练图像;由所述一个或多个处理器使所述一组训练图像当中的图像失真以创建失真图像,包括改变所述图像中描绘的项目的缩放级别以创建缩放图像;由所述一个或多个处理器使用所述失真图像来训练缩放不可知水印解码器模型,以跨输入图像的多个缩放级别解码所述输入图像中视觉上不可察觉的水印;以及部署所述缩放不可知水印解码器模型以在输入图像内在多个不同缩放级别上解码视
觉上不可察觉的水印。37.根据权利要求36所述的非暂时性计算机可读介质,其中,使所述一组训练图像当中的图像失真以创建失真图像包括将所述图像转换成不同的图像文件格式或修改所述图像的分辨率。38.根据权利要求36所述的非暂时性计算机可读介质,进一步包括预处理所述一组训练图像当中的图像,包括针对所述一组训练图像中的每个图像,对表示所述图像中的像素的颜色的浮点数进行舍入,以防止由表示所述像素的颜色的浮点数和用于存储所述图像的rgb无符号整数之间的不匹配导致的模型性能缺陷。39.根据权利要求36所述的非暂时性计算机可读介质,其中,对表示所述图像中的像素的颜色的浮点数进行舍入包括:使用正常舍入对所述浮点数进行舍入;以及使用向下舍入对流动点数进行舍入。40.根据权利要求36所述的非暂时性计算机可读介质,其中,改变所述图像中所描绘的项目的缩放级别以创建缩放图像包括在每一个缩放图像中改变用于表示所述一组训练图像当中的图像中的单个像素的像素数量。41.根据权利要求40所述的非暂时性计算机可读介质,其中,训练缩放不可知水印解码器模型包括使用从所述一组训练图像当中的同一图像创建的两个不同缩放图像来训练所述缩放不可知水印解码器模型,其中所述两个不同缩放图像中的每一个使用不同数量的像素来表示所述同一图像的单个像素。42.根据权利要求36所述的非暂时性计算机可读介质,进一步包括:由所述一个或多个处理器使用所述缩放图像来训练缩放不可知水印检测模型,所述缩放不可知水印检测模型跨所述输入图像的多个缩放级别检测所述输入图像内所述视觉上不可察觉的水印的存在,其中所述检测独立于解码所述视觉上不可察觉的水印来执行。

技术总结
用于检测和解码视觉上不可察觉或可察觉的水印的方法、系统和装置,包括被编码在计算机存储介质上的计算机程序。水印检测装置使用检测器机器学习模型来确定特定图像是否包括视觉上不可察觉或可察觉的水印。如果水印检测装置检测到水印,则将特定图像路由到水印解码器。如果水印检测装置不能检测到特定图像中的水印,则过滤该特定图像不做进一步处理。水印解码器对在特定图像中检测到的视觉上不可察觉或可察觉的水印进行解码。解码后,基于从解码的视觉上不可察觉或可察觉的水印中提取的数据,验证特定图像中描绘的项目。验证特定图像中描绘的项目。验证特定图像中描绘的项目。


技术研发人员:达克
受保护的技术使用者:谷歌有限责任公司
技术研发日:2021.06.21
技术公布日:2023/7/7
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐