水印识别方法和装置以及计算机可读存储介质与流程

文档序号:27825735发布日期:2021-12-07 20:31阅读:99来源:国知局
水印识别方法和装置以及计算机可读存储介质与流程

1.本公开涉及计算机技术领域,特别涉及一种水印识别方法和装置以及计算机可读存储介质。


背景技术:

2.数字水印技术作为版权保护的有效方式,被广泛地应用于海量的图片中。众多图片内容创作者和相关公司机构(以下统一简称“图片提供平台”)利用数字水印技术来防止图片内容遭到非法复制和盗用,通常将包含其名称或logo(即公司或机构的标识)的半透明水印图片植入原始图片中,其视觉显著性很低,具有面积小、颜色浅、透明度高等特点。
3.为了避免误用受到版权保护的图片,防止侵权行为的发生,在使用图片提供平台所提供的图片前,需要识别图片内容是否包含被禁止使用的平台的水印(拍摄设备、微博、美颜相机自带水印除外)。由于互联网技术的传播范围广、传播迅速的特点,图片提供平台每天都会产生海量的图片,其数量和规模已经远远超过人工手动识别的限度。


技术实现要素:

4.发明人发现,在相关技术中,审核图片内容是否含有水印,利用人工手动识别的方式费时费力,而且审核效率非常低,甚至无法满足审核的时效需求。
5.为此,本公开提供一种能够自动且快速地识别带水印图片的水印识别方法。
6.在本公开的实施例中,分别提取与每个预设平台相关联的带水印图片,根据与每个平台相关联的带水印图片,确定相应的水印梯度;然后,根据利用每个平台当前的水印梯度计算的倒角距离图,更新所述水印梯度;根据每张待识别图片在所有平台的当前的倒角距离图中的倒角距离的最小值,确定所述待识别图片是否含有水印。重复执行利用每个平台当前的水印梯度计算的倒角距离图,更新所述水印梯度的步骤,直到满足预设的终止条件为止。根据每张待识别图片在所有平台的当前的倒角距离图中的倒角距离的最小值,确定所述待识别图片是否含有水印。该实施例的方法能够自动且快速地识别带水印图片的水印,识别效率得到了明显提高。另外,在识别时将待识别图片与相应的图片提供平台相关联,不仅可以识别出以一致的方式添加到原始图片的水印(即来自同一平台的水印),而且,可以识别出以不同的方式添加到原始图片的水印(即来自多个平台的水印),即能够适用于多平台的水印的识别。
7.根据本公开的一些实施例,提供一种水印识别方法,包括:
8.分别提取与每个预设平台相关联的带水印图片,根据与每个平台相关联的带水印图片,确定相应的水印梯度;
9.根据利用每个平台当前的水印梯度计算的倒角距离图,更新所述水印梯度;
10.重复执行根据利用每个平台当前的水印梯度计算的倒角距离图,更新所述水印梯度的步骤,直到满足预设的终止条件为止;
11.根据每个待识别图片在所有平台的当前的倒角距离图中的倒角距离的最小值,确
定所述待识别图片是否含有水印;
12.其中,根据利用每个平台当前的水印梯度计算的倒角距离图,更新所述水印梯度包括:
13.针对待识别图片集合中的每个待识别图片,分别利用每个平台当前的水印梯度计算对应的倒角距离图;
14.在与每个待识别图片相关联的倒角距离图中,将当前具有最小倒角距离的倒角距离图所对应的平台作为待识别图片的关联平台;
15.在每个平台中,分别计算相关联的各待识别图片的水印梯度,并将各待识别图片的水印梯度的中值作为对应平台更新后的水印梯度。
16.在一些实施例中,所述根据每个待识别图片在所有平台的当前的倒角距离图中的倒角距离的最小值,确定所述待识别图片是否含有水印包括:
17.依次确定每个待识别图片在所有平台的当前的倒角距离图中的倒角距离的最小值;
18.如果相应的待识别图片的倒角距离的最小值大于预设阈值,则确定所述待识别图片不含有水印;
19.如果相应的待识别图片的倒角距离的最小值不大于所述预设阈值,则确定所述待识别图片含有水印。
20.在一些实施例中,还包括:如果所述待识别图片含有水印,则将所述待识别图片的倒角距离图中的倒角距离小于预设阈值所对应的所有像素点确定为所述待识别图片的水印位置。
21.在一些实施例中,针对待识别图片集合中的每个待识别图片,分别利用每个平台当前的水印梯度计算对应的倒角距离图包括:
22.对待识别图片集合中的每个待识别图片的边缘图进行欧氏距离变换,以得到第一变换结果;
23.分别利用每个平台的水印梯度作为卷积核,与所述第一变换结果进行卷积操作,以得到第二变换结果;
24.计算所述第二变换结果的每个像素点的倒角距离,得到所述待识别图片在相应平台的倒角距离图。
25.在一些实施例中,所述计算所述第二变换结果的每个像素点的倒角距离,得到所述待识别图片在相应平台的倒角距离图包括:
26.将边缘图中的每个像素点划分为特征点和非特征点,其中,特征点的第二变换结果的变换值小于预设值,非特征点的第二变换结果的变换值不小于预设值;
27.计算每个非特征点到最近的特征点的倒角距离,得到所述待识别图片在相应平台的倒角距离图。
28.在一些实施例中,还包括:根据确定的水印梯度,重构水印估计图像。
29.在一些实施例中,还包括:如果所述待识别图片含有水印,通过联合求解多个带水印图片的目标函数,确定所述水印的估计值。
30.根据本公开的又一些实施例,提供一种水印识别装置,其中,包括:
31.确定模块,被配置为分别提取与每个预设平台相关联的带水印图片,根据与每个
平台相关联的带水印图片,确定相应的水印梯度;
32.更新模块,被配置为根据利用每个平台当前的水印梯度计算的倒角距离图,更新所述水印梯度,重复执行根据利用每个平台当前的水印梯度计算的倒角距离图,更新所述水印梯度的步骤,直到满足预设的终止条件为止,其中,根据利用每个平台当前的水印梯度计算的倒角距离图,更新所述水印梯度包括:针对待识别图片集合中的每个待识别图片,分别利用每个平台当前的水印梯度计算对应的倒角距离图;在与每个待识别图片相关联的倒角距离图中,将当前具有最小倒角距离的倒角距离图所对应的平台作为待识别图片的关联平台;在每个平台中,分别计算相关联的各待识别图片的水印梯度,并将各待识别图片的水印梯度的中值作为对应平台更新后的水印梯度;
33.识别模块,被配置为根据每个待识别图片在所有平台的当前的倒角距离图中的倒角距离的最小值,确定所述待识别图片是否含有水印。
34.在一些实施例中,所述识别模块被配置为:依次确定每个待识别图片在所有平台的当前的倒角距离图中的倒角距离的最小值;如果相应的待识别图片的倒角距离的最小值大于预设阈值,则确定所述待识别图片不含有水印;如果相应的待识别图片的倒角距离的最小值不大于所述预设阈值,则确定所述待识别图片含有水印。
35.在一些实施例中,所述识别模块还被配置为:如果所述待识别图片含有水印,则将所述待识别图片的倒角距离图中的倒角距离小于预设阈值所对应的所有像素点确定为所述待识别图片的水印位置。
36.在一些实施例中,所述更新模块被配置为:对待识别图片集合中的每个待识别图片的边缘图进行欧氏距离变换,以得到第一变换结果;分别利用每个平台的水印梯度作为卷积核,与所述第一变换结果进行卷积操作,以得到第二变换结果;计算所述第二变换结果的每个像素点的倒角距离,得到所述待识别图片在相应平台的倒角距离图。
37.在一些实施例中,所述更新模块被配置为:将边缘图中的每个像素点划分为特征点和非特征点,其中,特征点的第二变换结果的变换值小于预设值,非特征点的第二变换结果的变换值不小于预设值;计算每个非特征点到最近的特征点的倒角距离,得到所述待识别图片在相应平台的倒角距离图。
38.在一些实施例中,所述识别模块还被配置为:根据确定的水印梯度,重构水印估计图像。
39.在一些实施例中,所述识别模块还被配置为:如果所述待识别图片含有水印,通过联合求解多个带水印图片的目标函数,确定所述水印的估计值。
40.根据本公开的再一些实施例,提供一种水印识别装置,其中,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行任一实施例所述的水印识别方法。
41.根据本公开的又再一些实施例,提供一种非瞬时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一实施例所述的水印识别方法。
附图说明
42.下面将对实施例或相关技术描述中所需要使用的附图作简单的介绍。根据下面参照附图的详细描述,可以更加清楚地理解本公开。
43.显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
44.图1示出根据本公开的一些实施例的水印识别方法的流程示意图。
45.图2示出根据本公开的一些实施例的更新所述水印梯度的方法的流程示意图。
46.图3示出根据本公开的一些实施例的水印识别装置的示意图。
47.图4示出根据本公开的另一些实施例的水印识别装置的示意图。
具体实施方式
48.下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。
49.假设同一平台以一致的方式,将结构和形状类似的水印添加到图片中,生成带水印图片;而不同平台生成带水印图片的过程中,添加到图片上的水印在结构和形状上各不相同,甚至差别很大。
50.在本公开的实施例中,带水印的图片可以分解为“前景”图片(即水印图片)、alpha matte(也称前景蒙版)和“背景”图片(即无水印的原始图片)。例如,用符号j表示带水印的图片,用符号w表示“前景”图片(以下简称水印),用符号α表示alpha matte值,用符号i表示“背景”图片(以下简称原始图片)。
51.假设带水印图片j是在无水印的原始图片i上叠加水印w得到的,那么,带水印图片j可以表示为:
52.j(p)=α(p)w(p)+(1-α(p))i(p)
ꢀꢀꢀ
(1)
53.其中,p=(x,y)表示像素坐标,α(p)表示像素坐标p对应的alpha matte值,每个alpha matte值表示带水印图片中的像素点随空间变化的不透明度。
54.根据公式(1),给定w和α,在每个像素点上进行添加水印的逆过程,即,在每个像素点上将带水印图片进行去除水印后得到原始图片的过程,可以表示为:
[0055][0056]
对于每个像素点来说,有三个未知变量(w,α,i)和一个约束条件公式(2),给定带水印图片j,求解水印图片w的问题仍然无法解决。然而,如果假设当所有待识别图片中的水印都是通过一致的方式被添加到集合中的所有图片的,那么就可以确定待识别图片集合{i
k
}中的每一张待识别图片具有相同的w和α:
[0057]
j
k
=αw+(1-α)i
k
,k=1,...,k
ꢀꢀꢀ
(3)
[0058]
其中,k为待识别图片集合中包含的待识别图片的总数。
[0059]
接下来描述本公开提供的水印识别方法,可以针对来自相同或不同的图片提供平台的待识别图片中的水印进行快速识别。
[0060]
图1示出根据本公开的一些实施例的水印识别方法的流程示意图。该方法例如可以由水印识别装置执行。
[0061]
如图1所示,该实施例的方法包括步骤101-105。
[0062]
在步骤101,分别提取与每个预设平台相关联的带水印图片,根据与每个平台相关
联的带水印图片,确定相应的水印梯度。
[0063]
其中,预设平台即为预设的图片提供平台,来自某一图片提供平台的图片包含有该图片提供平台特有的水印。
[0064]
首先,分别提取与每个预设平台相关联的带水印图片,为每一张提取的带水印图片中的水印分别标记一个粗略的边界框(bounding box),然后,计算带水印图片中的水印的边界框中的图像梯度,将边界框中的图像梯度确定为相应平台的初始化的水印梯度。
[0065]
假设共有l个平台,l个平台分别对应的l个水印构成的水印集合,例如可以表示为待识别图片集合中的每一张待识别图片时应的原始图片集合表示为其中,k为待识别图片集合中包含的待识别图片的总数。对于每个平台的水印w
l
(l∈{1,...,l}),同一平台是以一致的方式将水印添加到原始图片中的,即对于同一平台的水印具有统一的alpha matte值,每个平台对应的alpha matte例如表示为α
l
(l∈{1,...,l})。从l个平台中的每个平台分别提取与该平台相关联的一张带水印图片,计算这l张带水印图片中水印的图像梯度,作为每个相应平台的初始化的水印梯度,例如标记为
[0066]
通常情况下,多个平台所提供的图片上的水印的添加方式和添加位置是不确定的,即各个平台对应的带水印图片中的水印可能出现在图片的任意位置。上述实施例中,通过提取每个平台的一张带水印图片,作为初始化的水印梯度,为后续准确地识别出不同的平台所提供的待识别图片是否含有水印以及识别该水印来自哪一平台提供了基础。
[0067]
在步骤102,根据利用每个平台当前的水印梯度计算的倒角距离图,更新水印梯度。
[0068]
首先,针对待识别图片集合中的每张待识别图片,分别利用每个平台当前的水印梯度计算对应的倒角距离(chamfer distance)图。然后,在与每张待识别图片相关联的倒角距离图中,将当前具有最小倒角距离的倒角距离图所对应的平台作为待识别图片的关联平台。最后,在每个平台中,分别计算与每个平台相关联的各待识别图片的水印梯度,并将各待识别图片的水印梯度的中值作为对应平台更新后的水印梯度。
[0069]
其中,计算倒角距离包括:获取待识别图片集合中的每张待识别图片的边缘图,例如可以使用阈值为0.4的canny边缘检测器算法获取边缘图;然后,依次计算每张待识别图片对应的边缘图的欧式距离变换,得到第一变换结果;接着,利用每个平台的水印梯度作为卷积核,与欧式距离变换结果进行卷积操作得到第二变换结果;最后,针对每张待识别图片的第二变换结果中的每个像素计算对应的倒角距离,最终得到每张待识别图片分别对应的l幅倒角距离图{cd1,cd2,...,cd
l
}。
[0070]
在一些实施例中,步骤102包括步骤1021-1023。
[0071]
如图2所示,示出了根据本公开的一些实施例的更新所述水印梯度的方法的流程示意图。该实施例的方法包括步骤1021-1023。
[0072]
在步骤1021,针对待识别图片集合中的每张待识别图片,分别利用每个平台当前
的水印梯度计算对应的倒角距离图。
[0073]
针对待识别图片集合中的每张待识别图片,分别利用每个平台当前的水印梯度计算对应的倒角距离图包括:对待识别图片集合中的每张待识别图片的边缘图进行欧氏距离变换,以得到第一变换结果;分别利用每个平台的水印梯度作为卷积核,与第一变换结果进行卷积操作,以得到第二变换结果;计算第二变换结果的每个像素点的倒角距离,得到待识别图片在相应平台的倒角距离图。
[0074]
其中,分别利用每个平台的水印梯度作为卷积核,与第一变换结果进行卷积操作,以得到第二变换结果例如包括:首先,将每个平台的水印梯度(即卷积核)对应的矩阵进行水平和垂直翻转,得到每个平台的水印梯度对应的变换矩阵;然后,将水印梯度对应的变换矩阵与第一变换结果进行卷积操作,以得到第二变换结果。
[0075]
例如,对待识别图片a的边缘图进行欧氏距离变换,以得到第一变换结果,例如得到的第一变换结果o表示为假设平台1的水印梯度w表示为矩阵
[0076]
那么,利用平台1的水印梯度作为卷积核,与第一变换结果进行卷积操作,以得到第二变换结果的过程可以表示为:首先,将平台1的水印梯度(即卷积核)对应的矩阵进行水平和垂直翻转,得到平台1的水印梯度对应的变换矩阵w

表示为然后,将水印梯度对应的变换矩阵w

与第一变换结果o进行卷积操作,得到第二变换结果d表示为即,
[0077]
其中,
[0078]
d
11
=o
11
×
w
22
+o
12
×
w
21
+o
21
×
w
12
+o
22
×
w
11

[0079]
d
12
=o
12
×
w
22
+o
13
×
w
21
+o
22
×
w
12
+o
23
×
w
11

[0080]
d
21
=o
21
×
w
22
+o
22
×
w
21
+o
31
×
w
12
+o
32
×
w
11

[0081]
d
22
=o
22
×
w
22
+o
23
×
w
21
+o
32
×
w
12
+o
33
×
w
11

[0082]
计算第二变换结果的每个像素点的倒角距离,得到待识别图片在相应平台的倒角距离图包括:将边缘图中的每个像素点划分为特征点和非特征点,其中,特征点的第二变换结果的变换值小于预设值,非特征点的第二变换结果的变换值不小于预设值;计算每个非特征点到最近的特征点的倒角距离,得到待识别图片在相应平台的倒角距离图。
[0083]
在一些实施例中,计算每张待识别图片对应的倒角距离图之前还包括,对待识别待识别图片集合中的每张待识别图片进行预处理,预处理例如可以包括:待识别图片的尺
寸调整(例如归一化到同一尺寸)、数据清洗(例如包括处理存在无效值的待识别图片,和/或,处理存在缺失值的待识别图片等)等操作。预处理步骤可以选择性执行。
[0084]
在步骤1022,在与每张待识别图片相关联的倒角距离图中,将当前具有最小倒角距离的倒角距离图所对应的平台作为待识别图片的关联平台。
[0085]
例如,在与每张待识别图片相关联的倒角距离图中,将当前具有最小倒角距离的倒角距离图所对应的平台作为待识别图片的关联平台。待识别图片集合中的所有待识别图片被大致分类为{j
{0}
,j
{1}
,...,j
{l}
},其中j
{0}
表示不含水印的待识别图片集合,j
{l}
中的所有待识别图片的关联平台为平台l,即,j
{l}
表示由平台l添加水印的待识别图片集合(l=1,...,l)。对应地,原始图片集合被分类为{i
{0}
,i
{1}
,...,i
{l}
},其中i
{0}
=j
{0}
,即,不含有水印的待识别图片与相应的原始图片为同一图片。
[0086]
在步骤1023,在每个平台中,分别计算相关联的各待识别图片的水印梯度,并将各待识别图片的水印梯度的中值作为对应平台更新后的水印梯度。
[0087]
假设根据步骤1022将整个待识别图片集合划分为了l个类(即划分到了l个平台),例如可以标记为{j
{0}
,j
{1}
,...,j
{l}
}。对待识别图片集合{j
{1}
,j
{2}
,...,j
{l}
}中的每一个分类(即每个平台)分别计算该平台上的所有待识别图片对应的水印梯度的中值,得到的估计。即,分别在每个像素点p(xy)的x方向和y方向有:
[0088][0089]
其中,k
l
表示带水印图片集合j
{l}
包含的图片的总数,而且,其中,k0表示不含水印的图片总数。
[0090]
在一些实施例中,为了去除的边界区域,例如可以通过计算的幅值,并利用的边缘图(例如可以使用阈值为0.4的canny边缘检测算法得到)对应的边界框对进行裁剪。
[0091]
在步骤103,重复执行利用每个平台当前的水印梯度计算的倒角距离图,更新水印梯度的步骤,直到满足预设的终止条件为止。
[0092]
其中,满足预设的终止条件例如可以是达到预设的迭代次数(例如可以设置为3)。
[0093]
在步骤104,根据每张待识别图片在所有平台的当前的倒角距离图中的倒角距离的最小值,确定待识别图片是否含有水印。
[0094]
根据每张待识别图片在所有平台的当前的倒角距离图中的倒角距离的最小值,确定待识别图片是否含有水印包括:依次确定每张待识别图片在所有平台的当前的倒角距离图中的倒角距离的最小值;如果相应的待识别图片的倒角距离的最小值大于预设阈值,则确定待识别图片不含有水印;如果相应的待识别图片的倒角距离的最小值不大于预设阈值,则确定待识别图片含有水印。
[0095]
例如,若待识别图片中含有水印,则其水印例如,若待识别图片中含有水印,则其水印k∈{1,...,k};若待识别图片中没有水印,则w
k
=0,α
k
=0,例如可以表示为:
[0096]
j
k
=α
k
w
k
+(1-α
k
)i
k
,k=1,...,k;
[0097]
其中其中α0=0
ꢀꢀꢀ
(5)
[0098]
在步骤105,如果待识别图片含有水印,则将待识别图片的倒角距离图中的倒角距离小于预设阈值所对应的所有像素点确定为待识别图片的水印位置。
[0099]
假设比较某一待识别图片a的l幅倒角距离图中距离最小像素点的值,例如表示为考察具有最小值的距离图若距离图的最小像素点值大于预设阈值,则判定待识别图片a不含水印;否则,判定待识别图片a含有水印,而且,可以将倒角距离图中倒角距离小于预设阈值的所有像素点确定为水印的位置,另外,还可以确定待识别图片a的水印来自于平台l。
[0100]
在一些实施例中,根据确定的水印梯度,重构水印估计图像。待识别图片的总数量k不断增长时,水印估计图像会逐渐收敛于真实的水印w
m
=αw的梯度,并加上一个偏移量。因此,例如可以采用泊松重建(poisson reconstruction)重构得到水印估计图像。
[0101]
上述实施例中的步骤101-105,可以用程序语言的伪代码表示如下:
[0102][0103]
上述实施例中,利用计算倒角距离的方式,根据倒角距离的最小值识别待识别图片是否含有水印,能够自动且快速地识别带水印图片的水印。另外,在识别时将待识别图片与相应的图片提供平台相关联,不仅可以识别出以一致的方式添加到原始图片的水印(即来自同一平台的水印),而且,可以识别出以不同的方式添加到原始图片的水印(即来自多
个平台的水印),即能够适用于多平台的水印的识别。
[0104]
下面给出上述实施例的一个示例性的具体例子。
[0105]
假设有图片提供平台1和2,待识别图片有5张,分别标记为a、b、c、d、e。
[0106]
(1)首先,初始化各个平台的水印梯度。
[0107]
例如,从平台1上提取一张带水印图片,将提取的带水印图片的水印梯度作为平台1的初始的水印梯度,例如标记为从平台1上提取一张带水印图片,将提取的带水印图片的水印梯度作为平台2的初始的水印梯度,例如标记为
[0108]
(2)然后,根据平台1和平台2分别的初始的水印梯度和计算待识别图片a、b、c、d、e的倒角距离图,并确定与待识别图片a、b、c、d、e相关联的平台。(即第一次迭代)
[0109]
例如,计算待识别图片a的两幅倒角距离图假设待识别图片a包括四个像素点,根据平台1的初始的水印梯度计算所得的倒角距离图根据平台2的初始的水印梯度计算所得的倒角距离图由此,可以确定待识别图片a的最小倒角距离为0,该倒角距离值0是根据平台1的水印梯度计算得到的。则将当前具有最小倒角距离0的倒角距离图所对应的平台1作为待识别图片a的关联平台,即,将待识别图片a划分到平台1上。经过初步估计结果,意味着待识别图片a的水印可能是来自于平台1的水印。参照待识别图片a的倒角距离图的计算方法,分别计算待识别图片b、c、d、e的倒角距离图,假设利用初始的水印梯度计算的倒角距离图的结果,将待识别图片b、c划分到了平台1上,将待识别图片d、e划分到了平台2上。即,经过第一次的迭代,与平台1相关联的待识别图片有a、b、c;与平台2相关联的待识别图片有d、e。例如,可以表示为:
[0110]
平台1平台2a、b、cd、e
[0111]
(3)接着,计算得到更新后的水印梯度。
[0112]
例如,在平台1和平台2中,分别计算相关联的各待识别图片的水印梯度,并将各待识别图片的水印梯度的中值作为对应平台更新后的水印梯度。例如,与平台1相关联的待识别图片有a、b、c,计算a、b、c对应的水印梯度例如分别为-2,2,3,可以得到水印梯度的中值为2,则将2作为平台1更新后的水印梯度,标记为参照计算平台2更新后的水印梯度
[0113]
(4)再然后,根据更新后的水印梯度,计算待识别图片a、b、c、d、e的倒角距离图,并确定与待识别图片a、b、c、d、e相关联的平台。(即第二次迭代)
[0114]
例如,参照第一次迭代中计算倒角距离图的方法,根据平台1和平台2更新后的水印梯度和计算待识别图片a、b、c、d、e的倒角距离图,假设经过计算得到待识别图片a、b、c、d、e的倒角距离最小值分别对应平台1、1、2、2、2,即,经过第二次的迭代,与平台1相关联的待识别图片有a、b;与平台2相关联的待识别图片有c、d、e。例如,可以表示为:
[0115]
平台1平台2a、bc、d、e
[0116]
(5)计算得到更新后的水印梯度,并根据更新后的水印梯度,计算待识别图片a、b、c、d、e的倒角距离图,并确定与待识别图片a、b、c、d、e相关联的平台。(即第三次迭代)
[0117]
例如,首先参照第(3)步的方法计算得到更新后的平台1和平台2的水印梯度和然后参照即第(2)步的方法计算倒角距离图,根据平台1和平台2更新后的水印梯度和计算待识别图片a、b、c、d、e的倒角距离图,假设经过计算得到待识别图片a、b、c、d、e的倒角距离最小值分别对应平台1、1、2、2、2,即,经过第三次的迭代,与平台1相关联的待识别图片有a、b;与平台2相关联的待识别图片有c、d、e。例如,可以表示为:
[0118]
平台1平台2a、bc、d、e
[0119]
可以看到,第三次迭代的划分结果与第二次迭代的划分结果是一致的,一定程度上反应了该划分已经稳定。假设预设迭代次数为3,此时迭代终止。在实际应用中,由于待识别图片和涉及的平台的数量较大(成百上千甚至上亿),迭代次数可以根据实际需要适当增加或减少。
[0120]
(6)最后,根据每张待识别图片在所有平台的当前的倒角距离图(即第2次迭代中计算的倒角距离图)中的倒角距离的最小值,确定待识别图片是否含有水印。
[0121]
例如,根据第三次迭代中的倒角距离图的计算结果,与平台1相关联的待识别图片有a、b的倒角距离的最小值分别为0、10;与平台2相关联的待识别图片有c、d、e的倒角距离的最小值分别为18、0、2。假设预设阈值为5,因为待识别图片b、c所对应的倒角距离的最小值分别为10、18,均满足10>5,18>5,则确定待识别图片b、c不含有水印;另外,待识别图片a、d、e所对应的倒角距离的最小值分别为0、0、2,均小于预设阈值5,则确定待识别图片a、d、e含有水印。另外,可以将待识别图片a、d、e所对应的倒角距离图中的倒角距离小于预设值(例如设置为3)的所有像素点确定为相应待识别图片的水印位置。
[0122]
在一些实施例中,如果识别出待识别图片含有水印,还可以通过联合求解多个带水印图片的多个目标函数,确定水印的估计值。即,通过求解目标函数,计算得到水印、alpha matte值、原始图片的估计值。在该实施例中,只考虑含有水印的图片集{j
{1}
,j
{2}
,...,j
{l}
},将其分解为水印集{w1,w2,...,w
l
}、alpha matte值集{α1,α2,...,α
l
}和原始图片集{i
{1}
,i
{2}
,...,i
{l}
}。将水印添加的逆过程表述为共同求解和原始图片集的最优化问题,其目标函数例如可以表示为:
[0123][0124]
其中,l表示带水印图片集的水印共来自l个平台的水印,k
l
表示带水印图片集j
{l}
包含的图片数,且:min表示求最小值。表示求偏导。
[0125]
其中,e
data
表示估计的水印与真实的水印的距离,例如可以表示为:
[0126][0127]
其中,和分别为原始图片i、水印w、alpha matte值α的正则项,例如可以分别定义为:
[0128][0129][0130][0131]
其中,i
x
和i
y
为带水印图片的水平梯度和垂直梯度,w
x
和w
y
为水印图片的水平和垂直梯度。
[0132]
利用调整水印与最初估算的具有相似的梯度值,例如可以表示为:
[0133][0134]
引入辅助变量为第l类水印图片集j
{l}
的第k幅图片的水印,其值被要求逼近于w
l
(l=1,...,l)。因此最优化问题的目标函数可以转化为:
[0135][0136]
其中:
[0137][0138]
使用公式(13)可以将将目标函数公式(6)分解为更小、更简单的优化问题。
[0139]
对于{j
{1}
,j
{2}
,...,j
{l}
}可以分别执行以下步骤:
[0140]
步骤i:原始图片与水印分解
[0141]
在该步骤中,保持w
l
和α
l
不变,最小化与和相关的目标函数,即:
[0142][0143]
步骤ii.:水印更新
[0144]
通过最小化e
aux
来估算j
{l}
的全局水印w
l
,w
l
与每幅图的水印保持一致。j
{l}
的全局水印w通过计算的中值获得,即
[0145]
步骤iii:matte更新
[0146]
在该步骤中,求解α
l
,并保持其他变量不变,最小化目标函数为:
[0147][0148]
同样采用迭代加权最小二乘法irls(iteratively reweighted least squares)来求解该最小化问题。
[0149]
以上步骤i.步骤ii.步骤iii.重复迭代多次,直至收敛为止。最终得到和的估计值。
[0150]
上述实施例中,通过将水印添加的逆过程转化来求解共同的
和无水印图片集的最优化问题,能够自动且可靠地解决该优化问题,同时准确地估算水印和alpha-matte的值。
[0151]
图3示出根据本公开的一些实施例的水印识别装置的示意图。
[0152]
如图3所示,该实施例的水印识别装置300包括:确定模块301,更新模块302,以及识别模块303。
[0153]
确定模块301,被配置为分别提取与每个预设平台相关联的带水印图片,根据与每个平台相关联的带水印图片,确定相应的水印梯度;
[0154]
更新模块302,被配置为根据利用每个平台当前的水印梯度计算的倒角距离图,更新水印梯度,重复执行根据利用每个平台当前的水印梯度计算的倒角距离图,更新水印梯度的步骤,直到满足预设的终止条件为止,其中,根据利用每个平台当前的水印梯度计算的倒角距离图,更新水印梯度包括:针对待识别图片集合中的每张待识别图片,分别利用每个平台当前的水印梯度计算对应的倒角距离图;在与每张待识别图片相关联的倒角距离图中,将当前具有最小倒角距离的倒角距离图所对应的平台作为待识别图片的关联平台;在每个平台中,分别计算相关联的各待识别图片的水印梯度,并将各待识别图片的水印梯度的中值作为对应平台更新后的水印梯度;
[0155]
识别模块303,被配置为根据每张待识别图片在所有平台的当前的倒角距离图中的倒角距离的最小值,确定待识别图片是否含有水印。
[0156]
上述实施例中,利用计算倒角距离的方式,根据倒角距离的最小值识别待识别图片是否含有水印,能够自动且快速地识别带水印图片的水印。另外,在识别时将待识别图片与相应的图片提供平台相关联,不仅可以识别出以一致的方式添加到原始图片的水印(即来自同一平台的水印),而且,可以识别出以不同的方式添加到原始图片的水印(即来自多个平台的水印),即能够适用于多平台的水印的识别。
[0157]
图4示出根据本公开的另一些实施例的水印识别装置的示意图。
[0158]
如图4所示,该实施例的水印识别装置400包括:存储器401以及耦接至该存储器401的处理器402,处理器402被配置为基于存储在存储器401中的指令,执行本公开任意一些实施例中的水印识别方法。
[0159]
其中,存储器401例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(boot loader)以及其他程序等。
[0160]
处理器402被配置为基于存储在存储器401中的指令,执行如下的水印识别方法:首先,分别提取与每个预设平台相关联的带水印图片,根据与每个平台相关联的带水印图片,确定相应的水印梯度;然后,根据利用每个平台当前的水印梯度计算的倒角距离图,更新水印梯度;重复执行利用每个平台当前的水印梯度计算的倒角距离图,更新水印梯度的步骤,直到满足预设的终止条件为止;最后,根据每张待识别图片在所有平台的当前的倒角距离图中的倒角距离的最小值,确定待识别图片是否含有水印。
[0161]
其中,根据利用每个平台当前的水印梯度计算的倒角距离图,更新水印梯度包括:首先,针对待识别图片集合中的每张待识别图片,分别利用每个平台当前的水印梯度计算对应的倒角距离图;然后,在与每张待识别图片相关联的倒角距离图中,将当前具有最小倒
角距离的倒角距离图所对应的平台作为待识别图片的关联平台;接着,在每个平台中,分别计算相关联的各待识别图片的水印梯度,并将各待识别图片的水印梯度的中值作为对应平台更新后的水印梯度。
[0162]
在一些实施例中,根据每张待识别图片在所有平台的当前的倒角距离图中的倒角距离的最小值,确定待识别图片是否含有水印包括:依次确定每张待识别图片在所有平台的当前的倒角距离图中的倒角距离的最小值;如果相应的待识别图片的倒角距离的最小值大于预设阈值,则确定待识别图片不含有水印;如果相应的待识别图片的倒角距离的最小值不大于预设阈值,则确定待识别图片含有水印。
[0163]
在一些实施例中,针对待识别图片集合中的每张待识别图片,分别利用每个平台当前的水印梯度计算对应的倒角距离图包括:对待识别图片集合中的每张待识别图片的边缘图进行欧氏距离变换,以得到第一变换结果;分别利用每个平台的水印梯度作为卷积核,与第一变换结果进行卷积操作,以得到第二变换结果;计算第二变换结果的每个像素点的倒角距离,得到待识别图片在相应平台的倒角距离图。其中,计算第二变换结果的每个像素点的倒角距离,得到待识别图片在相应平台的倒角距离图包括:将边缘图中的每个像素点划分为特征点和非特征点,其中,特征点的第二变换结果的变换值小于预设值,非特征点的第二变换结果的变换值不小于预设值;计算每个非特征点到最近的特征点的倒角距离,得到待识别图片在相应平台的倒角距离图。
[0164]
在一些实施例中,如果待识别图片含有水印,例如,可以将待识别图片的倒角距离图中的倒角距离小于预设阈值所对应的所有像素点确定为待识别图片的水印位置。在一些实施例中,例如可以根据确定的水印梯度,重构水印估计图像。
[0165]
水印识别装置400还可以包括输入输出接口403、网络接口404、存储接口405等。这些接口403,404,405以及存储器401和处理器402之间例如可以通过总线406连接。其中,输入输出接口403为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口404为各种联网设备提供连接接口。存储接口404为sd卡、u盘等外置存储设备提供连接接口。
[0166]
本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机程序代码的计算机非瞬时性可读存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0167]
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0168]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或
多个方框中指定的功能。
[0169]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0170]
以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1