1.本发明属于网络安全技术领域,具体涉及基于深度学习的屏幕水印识别方法及系统。
背景技术:2.屏幕水印(screen watermark)是在整个桌面上显示计算机的水印信息,水印信息包括自定义信息和操作者信息(登陆用户、计算机名称、ip地址和时间)。当屏幕内容通过视频或照片泄露出去时,管理员可以通过查看视频或者照片,得知屏幕内容是从哪台计算机泄露出去的。
3.水印信息需要具备以下特征:a)隐蔽性:在屏幕中嵌入的水印信息不能对原有信息产生明显降质,并且不易被发现;b)隐藏位置的安全性:屏幕显示内容的切换不应导致水印信息的丢失;c)在经历多种无意或者有意的信号处理过程(包括信道噪音、滤波、剪切、位置、尺度变化等)后,水印信息仍能保持完整性或仍能被准确鉴别。
4.但是现有的水印信息存在以下缺陷:a)现有水印信息往往是在屏幕上直接嵌入明显的文字内容,从而便于溯源与识别,但是对使用者造成一定程度商的内容信息干扰;b)现有点阵水印往往通过九宫格的方式,在屏幕上嵌入小圆点图案,从而实现对嵌入的信息进行加密隐藏,虽然在用户体验商有一些改善,但是这种水印信息嵌入方法鲁棒性不好,容易受到信号处理过程的干扰,导致后期嵌入信息难以提取完整。
技术实现要素:5.针对现有技术中的缺陷,本发明提供一种基于深度学习的屏幕水印识别方法及系统,抗干扰性强,不会影响用户阅读体验。
6.第一单元,一种基于深度学习的屏幕水印识别方法,包括以下步骤:
7.在计算机屏幕中嵌入水印信息,所述水印信息包括由多个色块组成的加密信息,所述加密信息由原始数据根据预设的加密规则加密得到;
8.获取包含所述水印信息的待识别屏幕图像;
9.对所述待识别屏幕图像进行预处理,以得到预处理屏幕图像;
10.将所述预处理屏幕图像输入至识别模型,以得到识别结果;
11.根据所述加密规则对所述识别结果进行解密,以得到所述待识别屏幕图像的原始数据。
12.优选地,所述水印信息中色块的颜色包括第一颜色和第二颜色,其中第一颜色的色块表示二进制数1,第二颜色的色块表示二进制数0。
13.优选地,所述对所述待识别屏幕图像进行预处理,以得到预处理屏幕图像具体包括:
14.将所述待识别屏幕图像按照预设大小进行分割,以得到多个所述预处理屏幕图像。
15.优选地,所述识别模型包括基于cgan原理实现的生成器和辨识器;
16.所述生成器用于从所述预处理屏幕图像中提取出所述水印信息,以得到所述识别结果;
17.所述辨别器训练用于判断所述识别结果的清晰度,将所述清晰度反馈给所述生成器,对所述生成器进行训练。
18.优选地,所述生成器包括10层下采样u-net层和10层上采样u-net层;
19.所述下采样u-net层包括conv2d二维卷积层、leakyrelu激活层以及batchnormalization归一化层;
20.所述上采样u-net层包括upsampling2d上采样层、conv2d二维卷积层、dropout正则化层、batchnormalization归一化层以及concatenate层。
21.优选地,所述下采样u-net层用于对所述预处理屏幕图像进行下采样编码以及特征提取,以得到所述预处理屏幕图像的图像特征;
22.所述上采样u-net层用于将所述图像特征还原到预设尺寸。
23.优选地,所述辨识器为9层二维卷积神经网络,其中每一层包括conv2d二维卷积层、leakyrelu激活层以及batchnormalization归一化层。
24.优选地,所述识别结果为由多个黑色色块和多个白色色块构成的黑白相间图像。
25.优选地,所述根据所述加密规则对所述识别结果进行解密,以得到所述待识别屏幕图像的原始数据具体包括:
26.将所述待识别屏幕图像对应的所有所述黑白相间图像拼成一张完整图像;
27.提取出所述完整图像中的色块,对所述色块进行解析,以得到加密信息;其中解析方法包括用二进制数1代表黑色色块,用二进制数0代表白色色块;
28.根据所述加密规则对所述所述加密信息进行解密,以得到所述所述待识别屏幕图像的原始数据。
29.第二方面,一种基于深度学习的屏幕水印识别系统,包括:
30.水印信息生成单元:用于在计算机屏幕中嵌入水印信息,所述水印信息包括由多个色块组成的加密信息,所述加密信息由原始数据根据预设的加密规则加密得到;
31.识别单元:用于获取包含所述水印信息的待识别屏幕图像,对所述待识别屏幕图像进行预处理,以得到预处理屏幕图像;识别单元还用于根据所述加密规则对识别结果进行解密,以得到所述待识别屏幕图像的原始数据;
32.识别模型:与所述识别单元连接;所述识别模型用于识别所述预处理屏幕图像,以得到所述识别结果。
33.由上述技术方案可知,本发明提供的基于深度学习的屏幕水印识别方法及系统,抗干扰性强,不会影响用户阅读体验。
附图说明
34.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
35.图1为实施例提供的基于深度学习的屏幕水印识别方法的流程图。
36.图2为生成器的模块示意图。
37.图3为辨识器的模块示意图。
38.图4为patchgan算法的计算过程示意图。
39.图5为u-net网络结构的示意图。
40.图6为屏幕水印识别方法解密的示意图。
41.图7为实施例提供的基于深度学习的屏幕水印识别系统的模块框图。
具体实施方式
42.下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。需要注意的是,除非另有说明,本技术使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。
43.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
44.还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
45.如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0046]
实施例一:
[0047]
一种基于深度学习的屏幕水印识别方法,参见图1,包括以下步骤:
[0048]
s1:在计算机屏幕中嵌入水印信息,所述水印信息包括由多个色块组成的加密信息,所述加密信息由原始数据根据预设的加密规则加密得到;
[0049]
s2:获取包含所述水印信息的待识别屏幕图像;
[0050]
s3:对所述待识别屏幕图像进行预处理,以得到预处理屏幕图像;
[0051]
s4:将所述预处理屏幕图像输入至识别模型,以得到识别结果;
[0052]
s5:根据所述加密规则对所述识别结果进行解密,以得到所述待识别屏幕图像的原始数据。
[0053]
具体地,该方法通过图形叠加的方式在计算机屏幕上嵌入原始数据,从而可以将计算机的原始数据(例如登录用户、计算机名称、ip地址)隐藏在屏幕中。
[0054]
当用户通过即时通信软件、邮件等向互联网发布截屏信息时,该方法首先获取截屏信息,定义为待识别屏幕图像,对待识别屏幕图像进行预处理后,传输给识别模型进行识别,例如识别模型识别出待识别屏幕图像中的水印信息、以及水印信息中的色块以及每个色块表示的数字,比如每个色块表示的二进制数。最后对识别结果进行解密,得到嵌入计算机屏幕中的原始数据。所述识别模型可以为深度对抗神经网络模型。
[0055]
该方法利用大规模数据样本训练深度对抗神经网络模型,使得训练好的深度对抗
神经网络模型能够识别截屏信息中的水印,这样,当用户通过即时通信软件、邮件等向互联网发布截屏信息时,可以通过对截屏信息中的水印信息进行溯源,定位到泄密主机与泄密用户,解决了目前屏幕水印及相关产品因嵌入信息太明显而干扰用户阅读体验的问题。该方法由于采用色块对原始数据进行加解密,具有防噪音、滤波等干扰,适应屏幕剪切等多个应用场景。
[0056]
优选地,所述水印信息中色块的颜色包括第一颜色和第二颜色,其中第一颜色的色块表示二进制数1,第二颜色的色块表示二进制数0。
[0057]
具体地,第一颜色可以是淡黄色,第二颜色可以是白色,第一颜色和第二颜色可以是相互区分的不同颜色。其中原始数据包括登录用户、计算机名称、ip地址等等。加密信息由原始数据根据加密规则加密得到。加密规则可以根据用户的需求自行设计得到,加密信息包括由二进制数1和二进制数0构成的二进制字符串。水印信息用于对加密信息进行翻译,例如用淡黄色的色块表示加密信息中的二进制数1,用白色的色块表示加密信息中的二进制数0,从而实现计算机可以识别的水印信息和加密信息的功能。
[0058]
优选地,所述对所述待识别屏幕图像进行预处理,以得到预处理屏幕图像具体包括:
[0059]
将所述待识别屏幕图像按照预设大小进行分割,以得到多个所述预处理屏幕图像。
[0060]
具体地,待识别屏幕图像的分割大小由识别模型中图像识别的大小确定,识别模型中图像识别的大小由识别模型配置的训练参数确定。该大小可以由用户自行确认,例如将待识别屏幕图像切割成(1024*1024,256*256或者512*512)大小。
[0061]
优选地,所述识别模型包括基于cgan原理实现的生成器和辨识器;
[0062]
所述生成器用于从所述预处理屏幕图像中提取出所述水印信息,以得到所述识别结果;
[0063]
所述辨别器训练用于判断所述识别结果的清晰度,将所述清晰度反馈给所述生成器,对所述生成器进行训练。
[0064]
具体地,cgan(条件生成对抗神经网络)原理由生成器(generator)与辨别器(discriminator)两部分组成,生成器用来从预处理屏幕图像中提取之前隐藏的加密信息,辨别器用来判断识别结果的清晰度。为了满足产品需求,该方法对辨别器的输入做了一些变化,辨别器除了需要输入识别结果之外,还可以输入相匹配的真实密钥。
[0065]
首先将预处理屏幕图像x输入生成器,由生成器输出识别结果g(x),然后将g(x)与x合并在一起,作为辩别器的输入,由辩别器输出概率值(即清晰度),该概率值表示输入的预处理屏幕图像x是真实图像还是生成图像,概率值越接近1,表示辨别器越肯定输入的预处理屏幕图像x是真实图像。当标签图片y(即真实密钥)与预处理屏幕图像x一起输入辨别器时,辨别器给出的概率会更接近1,当识别结果g(x)与预处理屏幕图像x一起输入辨别器时,给出的概率会更接近0。训练过程中,生成器会根据辨别器的反馈不断优化生成能力,辨别器会根据生成的图片不断加强辨别能力,从而共同推进加密信息的正确提取。
[0066]
优选地,所述生成器包括10层下采样u-net层和10层上采样u-net层;
[0067]
所述下采样u-net层包括conv2d二维卷积层、leakyrelu激活层以及batchnormalization归一化层;
[0068]
所述上采样u-net层包括upsampling2d上采样层、conv2d二维卷积层、dropout正则化层、batchnormalization归一化层以及concatenate层。
[0069]
具体地,参见图2,生成器(generator)采用20层u-net实现,其中包括10层下采样u-net层和10层上采样u-net层。在下采样过程中,每一个下采样u-net层包括一个conv2d二维卷积、一个leakyrelu的激活以及一个batchnormalization的归一化层。在上采样过程中,每一个上采样u-net层包括一个upsampling2d上采样层、一个conv2d二维卷积、一个dropout正则化、一个batchnormalization的归一化层以及一个与上一层连接合并的concatenate层,用来保存不同分辨率下图像的细节信息。
[0070]
优选地,所述辨识器为9层二维卷积神经网络,其中每一层包括conv2d二维卷积层、leakyrelu激活层以及batchnormalization归一化层。
[0071]
具体地,参见图3,辨别器(discriminator)是一个普通的9层二维卷积神经网络,每一层包括一个conv2d二维卷积、一个leakyrelu激活层以及一个batchnormalization归一化层,用来辨别识别结果与真实密钥之间的差异。
[0072]
cgan算法的优化公式为:其中包括cgan的优化目标,与l1的距离两部分,l1是用来约束识别结果和真实密钥之间的差异。cgan的优化目标为:l
cgan
(g,d)=e
x,y
[log d(x,y)]+e
x,z
[log(1-d(x,g(x)))],辨别器d的优化目标是使公式log d(x,y)的值越大越好,代表辨别器的辨识能力越强。生成器的优化目标是使公式log(1-d(x,g(x)))越小越好,代表生成器的密钥提取能力越强。与l1的距离的计算公式为:l
l1
(g)=e
x,y
[||y-g(x)||1]。生成器不断尝试最小化目标函数l
cgan
(g,d),而辨别器通过不断迭代来最大化目标函数l
cgan
(g,d)。
[0073]
参见图4,从整个算法的优化器来看,该方法使用传统的l1距离构建图片的低频部分(跟训练图片尽量相似),用patchgan算法来构建图片的高频细节部分(细节纹理):
[0074]
patchgan算法最后输出的不是一个标量值,而是一个n*n的矩阵x,矩阵x的每一个神经元x
ij
表示一块输入的patch,这个神经元就是这块patch的像素敏感区,这块path就是输出x
ij
的感知域。这样通过每个patch进行差别判别,实现了局部图像特征的提取与表征,有利于实现更高分辨率的图像生成,最后通过特征图进行平均,将局部图像特征和整体图像特征进行融合。
[0075]
优选地,所述下采样u-net层用于对所述预处理屏幕图像进行下采样编码以及特征提取,以得到所述预处理屏幕图像的图像特征;
[0076]
所述上采样u-net层用于将所述图像特征还原到预设尺寸。
[0077]
具体地,参见图5,u-net网络结构是一个完全对称的编解码结构,它在上采样的过程中,增加了每个对称层之间的长连接,主要作用是通过连续的下上采样达到压缩图像和去噪音的目标。预处理屏幕图像经过下采样u-net层编码,进行特征提取,提取预处理屏幕图像的图像特征(例如位置、语义等信息)。上采样u-net层最大作用是把抽象的图像特征还原到原图预设尺寸,而中间的长连接获取了预处理屏幕图像很多信息,有助于还原降采样所带来的信息损失。
[0078]
u-net网络的特点是通过层层采样,抓取了不同层次的特征,并将他们通过特征叠
加的方式整合。该方法使用u-net网络结构,不仅可以把加密信息之外的内容通过下采用过程消除,还能通过多层的网络结构提取在不同分辨率下的加密信息色块,然后通过上采用的卷积融合起来,达到图像高清纹理识别的目标。
[0079]
优选地,所述识别结果为由多个黑色色块和多个白色色块构成的黑白相间图像。
[0080]
具体地,该方法将所有切割完毕的预处理屏幕图像输入到识别模型中,将识别结果转换成一张张黑白相间的图片,大小为预设大小(例如1024*1024)。
[0081]
优选地,所述根据所述加密规则对所述识别结果进行解密,以得到所述待识别屏幕图像的原始数据具体包括:
[0082]
将所述待识别屏幕图像对应的所有所述黑白相间图像拼成一张完整图像;
[0083]
提取出所述完整图像中的色块,对所述色块进行解析,以得到加密信息;其中解析方法包括用二进制数1代表黑色色块,用二进制数0代表白色色块;
[0084]
根据所述加密规则对所述所述加密信息进行解密,以得到所述所述待识别屏幕图像的原始数据。
[0085]
具体地,该方法首先按照之前分割的顺序,把生成的所有黑白相间图像拼成一张完整图像。然后将加密信息从拼接好的完整图像中提取出来,提取规则为用二进制数1代表黑色色块,用二进制数0代表白色色块。最后根据加密规则进行解码,解码后得到的原始数据包括图片被泄密时的目标主机信息,例如:a公司,工号:001,ip地址:192.168.xx.yy。该方法的整个流程示意图参见图6,
[0086]
实施例二:
[0087]
一种基于深度学习的屏幕水印识别系统,参见图7,包括:
[0088]
水印信息生成单元:用于在计算机屏幕中嵌入水印信息,所述水印信息包括由多个色块组成的加密信息,所述加密信息由原始数据根据预设的加密规则加密得到;
[0089]
识别单元:用于获取包含所述水印信息的待识别屏幕图像,对所述待识别屏幕图像进行预处理,以得到预处理屏幕图像;识别单元还用于根据所述加密规则对识别结果进行解密,以得到所述待识别屏幕图像的原始数据;
[0090]
识别模型:与所述识别单元连接;所述识别模型用于识别所述预处理屏幕图像,以得到所述识别结果。
[0091]
本发明实施例所提供的系统,为简要描述,实施例部分未提及之处,可参考前述实施例中相应内容。
[0092]
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。