一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

水印添加方法、装置、电子设备及存储介质与流程

2022-04-24 20:03:32 来源:中国专利 TAG:


1.本技术涉及加密技术领域,尤其涉及一种水印添加方法、装置、电子设备及存储介质。


背景技术:

2.神经网络技术在机器视觉领域中起着至关重要的作用,训练一个性能优异的神经网络模型往往需要基于的是海量高质量的图像样本和高性能的图形处理器(gpu,graphics processing unit)计算集群,因此,为了保障训练完成的神经网络模型不被复制、重新分发或非法使用,可以对神经网络模型添加水印。相关技术中,对神经网络添加水印会对神经网络的性能带来负面影响。


技术实现要素:

3.为解决相关技术问题,本技术实施例提供一种水印添加方法、装置、电子设备及存储介质。
4.本技术实施例的技术方案是这样实现的:
5.本技术实施例提供了一种水印添加方法,包括:
6.确定第一密钥的所有数位中包括的n种第一数值;所述n为大于或等于1的整数;
7.在神经网络模型中定位n个第一权值;所述n个第一权值中的每个第一权值对应所述n种数值中的一种第一数值;
8.将第二密钥作为水印嵌入所述神经网络模型;其中,
9.所述第二密钥通过将所述第一密钥中每个数位上的第一数值替换为对应的第一权值在第一设定数位上的第二数值得到。
10.其中,上述方案中,所述将所述第二密钥作为水印嵌入所述神经网络模型,包括:
11.将所述第二密钥嵌入至所述神经网络模型的至少一个第二权值中。
12.上述方案中,所述将第二密钥嵌入至所述神经网络模型的至少一个第二权值中时,所述方法包括:
13.将第二权值中位于第二设定数位之后的所有数位替换为所述第二密钥。
14.上述方案中,所述第二设定数位包括百分位。
15.上述方案中,所述将第二权值中位于第二设定数位之后的所有数位替换为所述第二密钥,包括:
16.在所述神经网络模型的训练过程中,将第二权值中位于第二设定数位之后的所有数位替换为所述第二密钥;
17.其中,所述第二设定数位包括十位或个位。
18.上述方案中,所述方法还包括:
19.随机生成数位长度大于第一设定值的所述第一密钥。
20.上述方案中,所述方法还包括:
21.基于设定字符串中每个字符对应的数字编码,生成所述第一密钥。
22.本技术实施例还提供了一种水印添加装置,包括:
23.确定单元,用于确定第一密钥的所有数位中包括的n种第一数值;所述n为大于或等于1的整数;
24.定位单元,用于在神经网络模型中定位n个第一权值;所述n个第一权值中的每个第一权值对应所述n种数值中的一种第一数值;
25.嵌入单元,用于将第二密钥作为水印嵌入所述神经网络模型;其中,
26.所述第二密钥通过将所述第一密钥中每个数位上的第一数值替换为对应的第一权值在第一设定数位上的第二数值得到。
27.本技术实施例还提供了一种电子设备,包括:第一处理器及第一通信接口;其中,
28.所述第一处理器,用于确定第一密钥的所有数位中包括的n种第一数值;在神经网络模型中定位n个权值;将第二密钥作为水印嵌入所述神经网络模型;其中,
29.所述n为大于或等于1的整数;所述n个第一权值中的每个第一权值对应所述n种数值中的一种第一数值;所述第二密钥通过将所述第一密钥中每个数位上的第一数值替换为对应的第一权值在第一设定数位上的第二数值得到。
30.本技术实施例还提供了一种电子设备,包括:第一处理器和用于存储能够在处理器上运行的计算机程序的第一存储器,
31.其中,所述第一处理器用于运行所述计算机程序时,执行上述任一水印添加方法的步骤。
32.本技术实施例还提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一水印添加方法的步骤。
33.本技术实施例提供的水印添加方法、装置、电子设备及存储介质,确定第一密钥的所有数位中包括的n种第一数值,在神经网络模型中定位n个第一权值,并且所述n个第一权值中的每个第一权值对应所述n种数值中的一种第一数值,通过将所述第一密钥中每个数位上的第一数值替换为对应的第一权值在设定数位上的第二数值,得到第二密钥,将所述第二密钥作为水印嵌入所述神经网络模型。这里,基于神经网络模型中的权值实现对神经网络模型添加水印,避免了相关技术中通过调整或扩充训练数据来完成水印添加而导致的对模型计算精度的影响,由此保证了神经网络模型的计算精度,避免对神经网络模型的性能带来负面影响。
附图说明
34.图1为本技术实施例水印添加方法流程示意图;
35.图2为本技术实施例水印嵌入神经网络模型权值示例图;
36.图3为本技术实施水印添加装置结构示意图;
37.图4为本技术实施例电子设备结构示意图。
具体实施方式
38.下面结合附图及实施例对本技术再作进一步详细的描述。
39.神经网络技术在图像分类、目标检测、语义分割等方面有着突出表现,在机器视觉
等领域中起着至关重要的作用。训练一个性能优异的神经网络模型往往需要基于的是海量高质量的图像样本和高性能的gpu计算集群,因此,为了保障训练完成的神经网络模型不被复制、重新分发或非法使用,可以对神经网络模型添加水印或进行加密处理。
40.相关技术中,对神经网络模型进行加密的技术手段如下:通过构造各类映射函数,将神经网络模型的权值通过函数编码后进行存储,等到使用模型时,采用对应的反函数变换将存储的数值解码得到神经网络模型的权值,再参与计算。这样,每次调用神经网络模型时,都需要通过解码得到相应的权值,解码过程会耗费大量时间,影响神经网络模型的处理效率。此外,还可以通过在神经网络模型的训练数据中嵌入水印的方式来实现为神经网络模型添加水印,然而,训练数据在嵌入了水印之后,也即对训练数据进行了调整和扩充,训练数据原本的分布形态被改变,导致基于嵌入了水印的训练数据训练出的神经网络模型的计算精度降低,神经网络模型的性能不佳。或者,通过直接为神经网络模型添加水印“标签”的方式来实现为神经网络模型添加水印,但是,此种方式很容易被他人识别出神经网络模型添加了水印,也很容易将水印从神经网络模型中剔除,无法保障神经网络模型不被复制、重新分发或非法使用。
41.基于此,在本技术的各种实施例中,确定第一密钥的所有数位中包括的n种第一数值,在神经网络模型中定位n个第一权值,并且所述n个第一权值中的每个第一权值对应所述n种数值中的一种第一数值,通过将所述第一密钥中每个数位上的第一数值替换为对应的第一权值在设定数位上的第二数值,得到第二密钥,将所述第二密钥作为水印嵌入所述神经网络模型。这里,无需对神经网络模型的训练数据进行调整扩充,而是基于神经网络模型中的权值实现对神经网络模型添加水印,保证了神经网络模型的计算精度,避免对神经网络模型的性能带来负面影响。
42.本技术实施例提供了一种水印添加方法,如图1所示,该方法包括:
43.步骤101:确定第一密钥的所有数位中包括的n种第一数值。
44.其中,所述n为大于或等于1的整数。
45.这里,第一密钥作为神经网络模型的原始水印内容,由一定长度的数位构成,每个数位上取相应的数值。由于就单一数位来说,每个数位中可以取得的数值为数值集合{0,1,2,3,4,5,6,7,8,9}中的一个,因此,第一密钥的所有数位中至少包括一种数值,至多包括10种数值。
46.关于第一密钥的生成,在一实施例中,所述方法还包括:
47.随机生成数位长度大于第一设定值的所述第一密钥。
48.这里,可以将随机生成的数位足够长的随机数作为第一密钥,数位的长度可以由技术人员设置。以深度神经网络的权值为例,通常设置为浮点型(float)32的格式,基于此,在本实施例中,第一密钥的数位长度设置可以参考权值小数点后的数位长度,例如,设置第一密钥的数位长度比权值小数点后的数位长度小2。
49.此外,第一密钥也可以基于字符串生成。基于此,在一实施例中,所述方法还包括:
50.基于设定字符串中每个字符对应的数字编码,生成所述第一密钥。
51.这里,在预先定义的字符编码表中设置每个字符对应的数字编码,其中,每个字符可以对应多位的编码,这样,从字符编码表中查找出设定字符串中每个字符对应的数字编码,并依据每个字符在设定字符串中的次序,将查找到的数字编码依次排列,生成第一密
钥。例如,在字符编码表中依次查找字符串“中国移动通信有限公司研究院”中每个字符对应的数字编码,得到第一密钥:
[0052]“20013222693122721160368902044926377384802084421496307403135038498”。
[0053]
步骤102:在神经网络模型中定位n个第一权值。
[0054]
其中,所述n个第一权值中的每个第一权值对应所述n种数值中的一种第一数值。
[0055]
这里,根据第一密钥的所有数位中涉及到的数值的数量n,在神经网络模型中定位出n个第一权值,并且,定位出的n个第一权值中的每个第一权值分别对应n种数值中的一种数值。
[0056]
参见图2示例,在神经网络模型的隐藏层(hidden layers)中定位5个权值,图2中的神经元1即为定位出的第一权值的位置。
[0057]
步骤103:将第二密钥作为水印嵌入所述神经网络模型。
[0058]
其中,所述第二密钥通过将所述第一密钥中每个数位上的第一数值替换为对应的第一权值在第一设定数位上的第二数值得到。
[0059]
例如,以圆周率π作为第一密钥,记圆周率中非0的数值依次为π1,π2……
,其中,πi∈{1,2,3,4,5,6,7,8,9},i≤9。在神经网络模型m中定位9个第一权值,并对定位出的第一权值进行排序,依次记为w1,w2……
,选择9个第一权值中的任意一个wj(j≤9)对应πi,例如,π=3.1415926

,令w1对应3,w2对应1
……
,在权值以float 32位数据结构进行存储的情况下,wj中至少有7位的有效数字,因此,用wj对应的πi替换wj中设定数位上的有效数字,得到第一密钥对应的第二密钥,例如,用wj对应的πi替换wj中第7位上的有效数字。实际应用时,第一设定数位可以为第一权值中的任意一个数位。
[0060]
实际应用时,一般的深度神经网络的权值采用float 32的格式来进行存储计算,因此,每个权值都有许多小数点位数。通常,权值中个位与十分位上的数值对神经网络模型的计算精度的影响最大,而在把神经网络模型的权值限制在小数点后两位或三位的情况下,对应的神经网络模型在计算精度和准确率上的损失可以忽略不计,因此,可以考虑在对神经网络模型嵌入水印时,直接将水印嵌入至权值的小数点最末的若干数位中。
[0061]
基于此,在一实施例中,所述将第二密钥作为水印嵌入所述神经网络模型,包括:
[0062]
将所述第二密钥嵌入至所述神经网络模型的至少一个第二权值中。
[0063]
在将第二密钥嵌入至第二权值中时,为了不对神经网络模型的计算精度产生负面影响,在一实施例中,所述将所述第二密钥嵌入至所述神经网络模型的至少一个第二权值中时,所述方法包括:
[0064]
将第二权值中位于第二设定数位之后的所有数位替换为所述第二密钥。
[0065]
其中,所述第二设定数位包括百分位。
[0066]
也就是,考虑将第二权值小数点后第三位开始的数位全部替换为第二密钥,这样,可以将水印转入权值中较末尾的小数点位数中,即不会损失神经网络模型的计算精度,也可以通过直接将水印嵌入在权值末尾,使得无需通过构造哈希函数来加密水印并在使用神经网络模型时解密水印,提高了神经网络模型的计算效率,大大地减少了对计算资源的占用。并且,当将添加了水印的神经网络模型应用在离线模型的场景中,当怀疑该神经网络模型被复制、重新分发或非法使用时,通过调取离线的该神经网络模型中的相关权值,结合图1的水印生成方法,反向生成第一密钥,与原始的第一密钥进行配对,便可以判断离线模型
参数反向解码与自身秘钥进行匹配,便可以判断该神经网络模型是否被复制、重新分发或非法使用。
[0067]
实际应用时,为了防止他人通过将权值百分位以后的数据全部置0,进而剔除掉水印,在一实施例中,所述将第二权值中位于第二设定数位之后的所有数位替换为所述第二密钥,包括:
[0068]
在所述神经网络模型的训练过程中,将第二权值中位于第二设定数位之后的所有数位替换为所述第二密钥;其中,
[0069]
所述第二设定数位包括十位或个位。
[0070]
如前文所述,由于权值中个位与十分位上的数值对神经网络模型的计算精度的影响最大,如果水印的嵌入位置包含了权值的个位或十分位,也就是水印嵌入到了影响计算精度的关键位置上,这样一来,如果将水印从权值中剔除,则会严重影响神经网络模型的计算精度。基于此,若第二设定数位为十位,那么水印将嵌入至包含了权值的个位和十分位的位置上,若第二设定数位为个位,那么水印将嵌入至包含了权值的十分位的位置上,使得水印无法轻易被剔除。在实际应用中,在水印的嵌入位置包含了权值的个位或十分位的情况下,考虑到避免对神经网络模型的计算精度带来损失,可以在训练过程中将水印添加至神经网络模型中,将水印的添加过程与模型的训练过程相结合,以保证训练完成的神经网络模型的性能。实际应用中,可以通过在训练过程中添加约束条件,使得水印可以嵌入到影响经网络模型的计算精度的关键位置之上,使得水印无法被剔除。
[0071]
本技术实施例提供的水印添加方法,确定第一密钥的所有数位中包括的n种第一数值,在所述神经网络模型中定位n个第一权值,并且所述n个第一权值中的每个第一权值对应所述n种数值中的一种第一数值,通过将所述第一密钥中每个数位上的第一数值替换为对应的第一权值在设定数位上的第二数值,得到第二密钥,将所述第二密钥作为水印嵌入所述神经网络模型。这里,基于神经网络模型中的权值实现对神经网络模型添加水印,保证了神经网络模型的计算精度,避免对神经网络模型的性能带来负面影响。
[0072]
本技术实施例提供的水印添加方法具备以下优点:1、基于第一权值的设定数位对密钥进行数值替换,并将得到的水印内容嵌入至第二权值的设定位置,这样多层加密的方式大大提高了破解水印的算法复杂度,并且不会对神经网络模型的计算精度带来影响;2、水印添加逻辑可以有效地适用于各种离线模型中;3、无需构造编解码函数,不会带来额外的计算资源占用;4、不需要全新构造水印数据;5、可以将嵌入水印的过程与神经网络模型的训练过程相结合,进一步避免水印被剔除的风险。
[0073]
为了实现本技术实施例的方法,本技术实施例还提供了一种水印添加装置,如图3所示,该装置包括:
[0074]
确定单元301,用于确定第一密钥的所有数位中包括的n种第一数值;所述n为大于或等于1的整数;
[0075]
定位单元302,用于在神经网络模型中定位n个权值;所述n个权值中的每个权值对应所述n种数值中的一种第一数值;
[0076]
嵌入单元303,用于将第二密钥作为水印嵌入所述神经网络模型;其中,
[0077]
所述第二密钥通过将所述第一密钥中每个数位上的第一数值替换为对应的权值在第一设定数位上的第二数值得到。
[0078]
其中,在一实施例中,所述嵌入单元303,用于:
[0079]
将所述第二密钥嵌入至所述神经网络模型的至少一个第二权值中。
[0080]
在一实施例中,所述嵌入单元303将所述第二密钥嵌入至所述神经网络模型的至少一个第二权值中时,用于:
[0081]
将第二权值中位于第二设定数位之后的所有数位替换为所述第二密钥。
[0082]
在一实施例中,所述第二设定数位包括百分位。
[0083]
在一实施例中,所述嵌入单元303将第二权值中位于第二设定数位之后的所有数位替换为所述第二密钥,包括:
[0084]
在所述神经网络模型的训练过程中,将第二权值中位于第二设定数位之后的所有数位替换为所述第二密钥;其中,
[0085]
所述第二设定数位包括十位或个位。
[0086]
在一实施例中,所述装置还包括:
[0087]
第一生成单元,用于随机生成数位长度大于第一设定值的所述第一密钥。
[0088]
在一实施例中,所述装置还包括:
[0089]
第二生成单元,用于基于设定字符串中每个字符对应的数字编码,生成所述第一密钥。
[0090]
实际应用时,所述确定单元301、定位单元302、嵌入单元303和第一生成单元、第二生成单元,可由水印添加装置中的处理器实现。
[0091]
需要说明的是:上述实施例提供的水印添加装置在进行水印添加时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的水印添加装置与水印添加方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0092]
基于上述程序模块的硬件实现,且为了实现本技术实施例的水印添加方法,本技术实施例还提供了一种电子设备,如图4所示,电子设备400包括:
[0093]
第一通信接口401,能够与其他网络节点进行信息交互;
[0094]
第一处理器402,与所述第一通信接口401连接,以实现与其他网络节点进行信息交互,用于运行计算机程序时,执行上述一个或多个技术方案提供的方法。而所述计算机程序存储在第一存储器403上。
[0095]
具体地,所述第一处理器402,用于确定第一密钥的所有数位中包括的n种第一数值;所述n为大于或等于1的整数;
[0096]
在神经网络模型中定位n个第一权值;所述n个第一权值中的每个第一权值对应所述n种数值中的一种第一数值;
[0097]
将第二密钥作为水印嵌入所述神经网络模型;其中,
[0098]
所述第二密钥通过将所述第一密钥中每个数位上的第一数值替换为对应的第一权值在第一设定数位上的第二数值得到。
[0099]
其中,在一实施例中,所述第一处理器402将所述第二密钥作为水印嵌入所述神经网络模型,包括:
[0100]
将所述第二密钥嵌入至所述神经网络模型的至少一个第二权值中。
[0101]
在一实施例中,所述第一处理器402将所述第二密钥嵌入至所述神经网络模型的至少一个第二权值中时,用于:
[0102]
将第二权值中位于第二设定数位之后的所有数位替换为所述第二密钥。
[0103]
在一实施例中,所述第二设定数位包括百分位。
[0104]
在一实施例中,所述第一处理器402将第二权值中位于第二设定数位之后的所有数位替换为所述第二密钥,包括:
[0105]
在所述神经网络模型的训练过程中,将第二权值中位于第二设定数位之后的所有数位替换为所述第二密钥;其中,
[0106]
所述第二设定数位包括十位或个位。
[0107]
在一实施例中,所述第一处理器402还用于:
[0108]
随机生成数位长度大于第一设定值的所述第一密钥。
[0109]
在一实施例中,所述第一处理器402还用于:
[0110]
基于设定字符串中每个字符对应的数字编码,生成所述第一密钥。
[0111]
需要说明的是:第一处理器402的具体处理过程可参照上述方法理解。
[0112]
当然,实际应用时,电子设备400中的各个组件通过总线系统404耦合在一起。可理解,总线系统404用于实现这些组件之间的连接通信。总线系统404除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图4中将各种总线都标为总线系统404。
[0113]
本技术实施例中的第一存储器403用于存储各种类型的数据以支持电子设备400的操作。这些数据的示例包括:用于在电子设备400上操作的任何计算机程序。
[0114]
上述本技术实施例揭示的方法可以应用于所述第一处理器402中,或者由所述第一处理器402实现。所述第一处理器402可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过所述第一处理器402中的硬件的集成逻辑电路或者软件形式的指令完成。上述的所述第一处理器402可以是通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。所述第一处理器402可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于第一存储器403,所述第一处理器402读取第一存储器403中的信息,结合其硬件完成前述方法的步骤。
[0115]
在示例性实施例中,电子设备400可以被一个或多个应用专用集成电路(asic,application specific integrated circuit)、dsp、可编程逻辑器件(pld,programmable logic device)、复杂可编程逻辑器件(cpld,complex programmable logic device)、现场可编程门阵列(fpga,field-programmable gate array)、通用处理器、控制器、微控制器(mcu,micro controller unit)、微处理器(microprocessor)、或者其他电子元件实现,用于执行前述方法。
[0116]
可以理解,本技术实施例的第一存储器403可以是易失性存储器或者非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器
(rom,read only memory)、可编程只读存储器(prom,programmable read-only memory)、可擦除可编程只读存储器(eprom,erasable programmable read-only memory)、电可擦除可编程只读存储器(eeprom,electrically erasable programmable read-only memory)、磁性随机存取存储器(fram,ferromagnetic random access memory)、快闪存储器(flash memory)、磁表面存储器、光盘、或只读光盘(cd-rom,compact disc read-only memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(ram,random access memory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(sram,static random access memory)、同步静态随机存取存储器(ssram,synchronous static random access memory)、动态随机存取存储器(dram,dynamic random access memory)、同步动态随机存取存储器(sdram,synchronous dynamic random access memory)、双倍数据速率同步动态随机存取存储器(ddrsdram,double data rate synchronous dynamic random access memory)、增强型同步动态随机存取存储器(esdram,enhanced synchronous dynamic random access memory)、同步连接动态随机存取存储器(sldram,synclink dynamic random access memory)、直接内存总线随机存取存储器(drram,direct rambus random access memory)。本技术实施例描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
[0117]
在示例性实施例中,本技术实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的第一存储器403,上述计算机程序可由电子设备400的第一处理器402执行,以完成前述方法所述步骤。计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、flash memory、磁表面存储器、光盘、或cd-rom等存储器。
[0118]
需要说明的是:“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
[0119]
另外,本技术实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
[0120]
以上所述,仅为本技术的较佳实施例而已,并非用于限定本技术的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献