CN113538197B - 水印提取方法、装置、存储介质以及电子设备 - Google Patents
水印提取方法、装置、存储介质以及电子设备 Download PDFInfo
- Publication number
- CN113538197B CN113538197B CN202010296419.1A CN202010296419A CN113538197B CN 113538197 B CN113538197 B CN 113538197B CN 202010296419 A CN202010296419 A CN 202010296419A CN 113538197 B CN113538197 B CN 113538197B
- Authority
- CN
- China
- Prior art keywords
- watermark
- pixel
- extracted
- watermark information
- determining
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0021—Image watermarking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2201/00—General purpose image data processing
- G06T2201/005—Image watermarking
- G06T2201/0065—Extraction of an embedded watermark; Reliable detection
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Editing Of Facsimile Originals (AREA)
- Image Processing (AREA)
Abstract
本公开关于一种水印提取方法、装置、存储介质以及电子设备,属于视频处理领域。包括:对待提取水印的目标图像进行像素块划分;将划分出来的像素块中每m个像素块组成一个分组;在得到的多个分组中确定属于水印嵌入区域的S个分组;在S个分组中的每个分组内分别进行一个比特的水印信息提取;将提取到的S个比特的水印信息进行组合,得到水印的二进制序列。针对水印提取,本公开采取同水印添加过程一致的像素块划分和分组方式,基于上述水印提取过程可知,本公开在水印嵌入阶段是在水印嵌入区域的每个分组内分别嵌入二进制序列的一个比特水印信息,不但利用了空间上的冗余性,而且嵌入的水印即便遭到了攻击,在水印提取阶段也能提取出正确的水印。
Description
技术领域
本公开涉及视频处理技术领域,尤其涉及一种水印提取方法、装置、存储介质以及电子设备。
背景技术
时下各大视频网站(也称视频平台)均存在众多的视频生产者,这些用户生产并上传的视频很有可能会被其他用户或者其他视频网站所盗用,因此亟需一种确认版权的手段,以对视频生产者和视频网站进行保护。
相关技术中,为了对视频进行版权保护,通常采取以下几种方式:在视频画面中的边角位置添加上视频平台的LOGO(标志)、视频作品的唯一标识码、或者视频生产者自己的LOGO等。针对上述几种方式,均存在容易被抹除的缺陷、不够稳健,因此效果欠佳。
基于以上描述可知,为了实现有效的版权保护,亟需一种不易被抹除、足够稳健的版权保护措施。随之而来,数字水印技术作为一种新的版权保护技术便得到了广泛的研究和应用。示例性地,在对载体图像执行水印嵌入得到水印图像后,通常还会对水印图像执行互逆的水印提取过程,以验证水印添加是否有效以及验证水印的抗攻击能力等。为此,在完成水印嵌入后如何进行水印提取,也是一项十分重要的工作。
发明内容
本公开提供一种水印提取方法、装置、存储介质以及电子设备,在水印提取过程中,采取同水印添加阶段一致的像素块划分和分组处理方式,另外,在与水印添加过程互逆的水印提取阶段,是在属于水印嵌入区域的每个分组内分别提取出一个比特水印信息,并将提取到的水印信息组合成为嵌入的水印的二进制序列,由于水印的嵌入不但利用了图像空间上的冗余性,而且还对各种常用攻击手段具有较强的稳健性,所以嵌入的水印即便遭到了常用攻击手段的攻击,在水印提取阶段也能够提取出正确的水印信息,实现了有效的版权保护。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种水印提取方法,包括:
对待提取水印的目标图像进行像素块划分,其中,所述目标图像中嵌入有水印;
将划分出来的像素块中每m个像素块组成一个分组,得到多个分组,m为正整数;
在所述多个分组中确定属于水印嵌入区域的S个分组,S为正整数;
在所述S个分组中的每个分组内分别进行一个比特的水印信息提取;
将提取到的S个比特的水印信息进行组合,得到所述水印的二进制序列。
在一种可能的实现方式中,所述在所述S个分组中的每个分组内分别进行一个比特的水印信息提取,包括:
在所述S个分组中,对于同一分组内的每个像素块,获取所述像素块的像素矩阵,所述像素矩阵中的各个元素指代所述像素块对应位置上的像素值;
获取所述像素块的像素均值,根据所述像素矩阵和所述像素均值获取指定矩阵;
对所述指定矩阵进行奇异值分解处理,得到一个对角矩阵,所述对角矩阵的对角线元素为所述对角矩阵的奇异值;
根据目标强度参数和所述对角矩阵中的目标奇异值,确定在所述像素块内提取到的水印信息;
根据在所述每个像素块内提取到的水印信息,确定在所述分组内提取到的水印信息。
在一种可能的实现方式中,所述根据在所述每个像素块内提取到的水印信息,确定在所述分组内提取到的水印信息,包括:
若提取到的水印信息为1的像素块数量大于提取到的水印信息为0的像素块数量,则确定在所述分组内提取到的水印信息为1;
若提取到的水印信息为0的像素块数量大于提取到的水印信息为1的像素块数量,则确定在所述分组内提取到的水印信息为0。
在一种可能的实现方式中,所述根据在所述每个像素块内提取到的水印信息,确定在所述分组内提取到的水印信息,包括:
若提取到的水印信息为1的像素块数量大于目标比例,则确定在所述分组内提取到的水印信息为1;
若提取到的水印信息为0的像素块数量大于所述目标比例,则确定在所述分组内提取到的水印信息为0。
在一种可能的实现方式中,所述获取所述像素块的像素矩阵,包括:
获取所述像素块的像素值方差,若所述像素值方差大于目标阈值,则执行所述获取所述像素块的像素矩阵的步骤。
在一种可能的实现方式中,所述在所述多个分组中确定属于水印嵌入区域的S个分组,包括:
对于所述多个分组中的每个分组,获取所述分组包括的每个像素块的像素值方差;
根据获取到的像素值方差,在所述多个分组中确定像素值方差最大的S个分组,得到属于所述水印嵌入区域的所述S个分组。
在一种可能的实现方式中,所述在所述多个分组中确定属于水印嵌入区域的S个分组,包括:
获取定位码的长度,所述定位码用于定位所述水印嵌入区域;
获取水印添加过程用于嵌入所述定位码的目标掩模以及所述目标掩模的长度;
根据所述定位码的长度、所述目标掩模以及所述目标掩模的长度,在所述目标图像中提取所述定位码;
根据所述定位码在所述多个分组中确定所述S个分组。
在一种可能的实现方式中,所述定位码分别嵌入在所述S个分组开头部分的连续X个分组内以及结尾部分的连续X个分组内,其中,X为正整数,X指代所述定位码的长度;所述X个分组中的每个分组内分别嵌入有所述定位码的一个比特定位信息;其中,所述定位码的嵌入过程包括:
对于所述X个分组中的每个分组,对所述分组的嵌入比特和目标掩模进行异或操作;根据得到的异或操作结果,确定所述分组内各个像素块嵌入的定位信息;所述分组内第i个像素块与第i+X个像素块需要嵌入的定位信息相同,i为正整数。
在一种可能的实现方式中,所述在所述S个分组中的每个分组内分别进行一个比特的水印信息提取之前,还包括:
在所述目标图像中的多个起始位置处分别执行水印提取处理;
若在任意一个起始位置处成功提取到用于定位水印嵌入区域的定位码,则将所述起始位置处确定为未进行裁剪之前的原始水印图像的像素块边界。
在一种可能的实现方式中,所述将提取到的S个比特的水印信息进行组合,得到所述水印的二进制序列,包括:
将提取到的S个比特的水印信息进行组合,得到组合序列;
对所述组合序列进行纠错译码,得到所述水印的二进制序列。
根据本公开实施例的第二方面,提供一种水印提取装置,包括:
划分模块,被配置为对待提取水印的目标图像进行像素块划分,其中,所述目标图像中嵌入有水印;
分组模块,被配置为将划分出来的像素块中每m个像素块组成一个分组,得到多个分组,m为正整数;
确定模块,被配置为在所述多个分组中确定属于水印嵌入区域的S个分组,S为正整数;
提取模块,被配置为在所述S个分组中的每个分组内分别进行一个比特的水印信息提取;将提取到的S个比特的水印信息进行组合,得到所述水印的二进制序列。
在一种可能的实现方式中,所述提取模块,还被配置为在所述S个分组中,对于同一分组内的每个像素块,获取所述像素块的像素矩阵,所述像素矩阵中的各个元素指代所述像素块对应位置上的像素值;获取所述像素块的像素均值,根据所述像素矩阵和所述像素均值获取指定矩阵;对所述指定矩阵进行奇异值分解处理,得到一个对角矩阵,所述对角矩阵的对角线元素为所述对角矩阵的奇异值;根据目标强度参数和所述对角矩阵中的目标奇异值,确定在所述像素块内提取到的水印信息;根据在所述每个像素块内提取到的水印信息,确定在所述分组内提取到的水印信息。
在一种可能的实现方式中,所述提取模块,还被配置为若提取到的水印信息为1的像素块数量大于提取到的水印信息为0的像素块数量,则确定在所述分组内提取到的水印信息为1;若提取到的水印信息为0的像素块数量大于提取到的水印信息为1的像素块数量,则确定在所述分组内提取到的水印信息为0。
在一种可能的实现方式中,所述提取模块,还被配置为若提取到的水印信息为1的像素块数量大于目标比例,则确定在所述分组内提取到的水印信息为1;若提取到的水印信息为0的像素块数量大于所述目标比例,则确定在所述分组内提取到的水印信息为0。
在一种可能的实现方式中,所述提取模块,还被配置为获取所述像素块的像素值方差,若所述像素值方差大于目标阈值,则执行所述获取所述像素块的像素矩阵的步骤。
在一种可能的实现方式中,所述确定模块,还被配置为对于所述多个分组中的每个分组,获取所述分组包括的每个像素块的像素值方差;根据获取到的像素值方差,在所述多个分组中确定像素值方差最大的S个分组,得到属于所述水印嵌入区域的所述S个分组。
在一种可能的实现方式中,所述确定模块,还被配置为获取定位码的长度,所述定位码用于定位所述水印嵌入区域;获取水印添加过程用于嵌入所述定位码的目标掩模以及所述目标掩模的长度;根据所述定位码的长度、所述目标掩模以及所述目标掩模的长度,在所述目标图像中提取所述定位码;根据所述定位码在所述多个分组中确定所述S个分组。
在一种可能的实现方式中,所述定位码分别嵌入在所述S个分组开头部分的连续X个分组内以及结尾部分的连续X个分组内,其中,X为正整数,X指代所述定位码的长度;所述X个分组中的每个分组内分别嵌入有所述定位码的一个比特定位信息。
在一种可能的实现方式中,所述装置还用于:在所述目标图像中的多个起始位置处分别执行水印提取处理;若在任意一个起始位置处成功提取到用于定位水印嵌入区域的定位码,则将所述起始位置处确定为未进行裁剪之前的原始水印图像的像素块边界。
在一种可能的实现方式中,所述提取模块,还被配置为将提取到的S个比特的水印信息进行组合,得到组合序列;对所述组合序列进行纠错译码,得到所述水印的二进制序列。
根据本公开实施例的第三方面,提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如第一方面所述的水印提取方法。
根据本公开实施例的第四方面,提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如第一方面所述的水印提取方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,所述计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备能够执行第一方面所述的水印提取方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
在水印提取过程中,本公开实施例采取同水印添加过程一致的像素块划分和分组处理方式,即,首先对待提取水印的目标图像进行像素块划分,并将划分出来的像素块中每m个像素块组成一个分组,得到多个分组;之后,在多个分组中确定属于水印嵌入区域的S个分组,并在S个分组中的每个分组内分别进行一个比特的水印信息提取;最后,将提取到的S个比特的水印信息进行组合,进而得到嵌入的水印的二进制序列。
基于上述水印提取过程可知,在水印添加过程是在属于水印嵌入区域的每个分组内分别嵌入该二进制序列的一个比特水印信息,这不但利用了图像空间上的冗余性,而且还确保了嵌入的水印对各种常用攻击手段具有较强的稳健性,这样嵌入的水印即便遭到了常用攻击手段的攻击,在水印提取阶段也能够提取出正确的水印信息,实现了有效的版权保护。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种水印提取方法涉及的实施环境的示意图。
图2是根据一示例性实施例示出的一种水印提取方法的执行流程框架图。
图3是根据一示例性实施例示出的一种水印提取方法的流程图。
图4是根据一示例性实施例示出的一种水印提取方法的流程图。
图5是根据一示例性实施例示出的一种水印提取装置的框图。
图6是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开所涉及的用户信息可以为经用户授权或者经过各方充分授权的信息。
在对本公开实施例进行详细地解释说明之前,先对本公开实施例可能涉及到的一些缩略语或术语进行介绍。
数字水印:是信息隐藏技术的一个重要研究方向。简言之,数字水印技术即是将一些身份标识信息(即数字水印)直接嵌入到数字载体(包括但不限于音频、视频、图像、文档或软件)中,但不影响原有数字载体的使用价值,通过这些隐藏在数字载体中的信息,来达到版权保护的目的。
通常情况下,数字水印一般应用具有如下特点:
a、隐形性(Invisibility):是指数字水印的存在不应明显干扰被保护的数字载体。
b、稳健性或鲁棒性(Robustness):是指数字水印应该难以被破坏或伪造。一般来说,对于不确定或无目的的攻击,在不致破坏原有数字载体而影响识别的情况下,数字水印应当具有:一般信号处理下的稳健性,几何变换下的稳健性,以及欺骗攻击下的稳健性。
示例性地,一般信号处理包括但不限于:噪声、平滑、增强等信号滤波,D/A转换、A/D转换,以及有失真压缩等,本公开实施例对此不进行具体限定。几何变换包括但不限于:平移、旋转、缩放以及裁剪等,本公开实施例对此同样不进行具体限定。欺骗攻击包括但不限于:共谋攻击(Collusion)和伪造攻击(Forgery)等,本公开实施例对此同样不进行具体限定。
c、确定性(Unambiguous):是指数字水印所携带的信息能够被唯一确定地鉴别。
d、安全性(Security):非授权用户无法检测和破坏水印,主要针对获知水印算法或相关知识情况下的有目的攻击(Targeted Attacks)。
e、数据容量(Data Capacity):是指数字水印应能够包含相当的数据容量,以满足多样化的需要。
下面对本公开实施例提供的水印提取方法涉及的实施环境进行介绍。
参见图1,该实施环境可以包括水印添加设备101和水印提取设备102。
其中,水印添加设备101也可称为水印嵌入设备,水印提取设备102用于执行本公开实施例提供的水印提取方法。
在本公开实施例中,水印添加设备101用于在载体图像中嵌入水印信息,以用于版权保护和创作者身份追溯。而水印提取设备102则用于在嵌入有水印信息的目标图像中提取出水印信息。
在一种可能的实现方式中,水印添加设备101和水印提取设备102的类型包括但不限于:移动式终端和固定式终端。作为一个示例,移动式终端包括但不限于:智能手机、平板电脑、笔记本电脑、电子阅读器、MP3播放器(Moving Picture Experts Group Audio LayerIII,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group AudioLayer IV,动态影像专家压缩标准音频层面4)播放器等;固定式终端包括但不限于台式电脑,本公开实施例对此不进行具体限定。
示例性地,上述目标图像可以为嵌入有水印的视频中的任意一帧视频画面,即水印提取设备102可以对嵌入有水印的视频中的每一帧视频画面均进行水印提取。
另外,上述目标图像既可以为单通道图像,也可以为多通道图像。例如,如果在水印添加阶段,对载体图像的RGB三个通道中的每一个通道均进行了水印添加,则在水印提取阶段,可以对目标图像的RGB三个通道中的每一个通道均进行水印提取。又例如,如果在水印添加阶段,对编解码过程中的YUV图像的Y通道进行了水印添加,则在水印提取阶段,可以对嵌入有水印的YUV图像的Y通道进行水印提取。
另外,上述目标图像既可以为横幅图像,也可以为竖幅图像,本公开实施例对此不进行具体限定。
图2示出了一种可能的水印提取过程的执行流程图。
步骤a、对嵌入有水印的水印图像执行水印提取处理,得到编码水印。
步骤b、对编码水印进行纠错译码,得到数字水印。
需要说明的是,如果在水印添加过程中对水印信息进行了纠错编码处理,则相应地,在水印提取阶段会对编码水印再进行纠错译码,进而得到嵌入的数字水印。
基于以上的实施环境,本公开实施例提供了一种水印提取方案,其中,水印提取方案为相应的水印添加方案的逆过程。通过在嵌入有水印的水印图像中进行水印提取,可以对诸如视频等数字载体的创作者身份进行追溯。这样,即便视频被盗用并被发表至其他视频平台,也可以通过该种手段检测到原始的创作者身份,实现了版权保护。
另外,由于水印图像对常见的攻击手段有较强的抵抗能力,因此即便利用这些手段对水印图像进行处理之后,仍然能在水印图像中提取出添加的水印信息。比如,对常见的压缩转码操作不敏感,利用常见的压缩转码对水印图像进行处理之后,仍然能够正确提取水印信息;又比如,对裁剪处理不敏感,对水印图像进行裁剪后,仍然能够正确提取水印信息。
下面通过以下实施例对本公开实施例提供的水印添加方案进行详细解释说明。
图3是根据一示例性实施例示出的一种水印提取方法的流程图,如图3所示,该方法用于图1所示的水印提取设备中,包括以下步骤。
在步骤301中,对待提取水印的目标图像进行像素块划分,其中,目标图像中嵌入有水印。
在步骤302中,将划分出来的像素块中每m个像素块组成一个分组,得到多个分组,m为正整数。
在步骤303中,在多个分组中确定属于水印嵌入区域的S个分组,S为正整数。
在步骤304中,在S个分组中的每个分组内分别进行一个比特的水印信息提取。
在步骤305中,将提取到的S个比特的水印信息进行组合,得到水印的二进制序列。
本公开实施例提供的方法,在水印提取过程中,本公开实施例采取同水印添加过程一致的像素块划分和分组处理方式,即,首先对待提取水印的目标图像进行像素块划分,并将划分出来的像素块中每m个像素块组成一个分组,得到多个分组;之后,在多个分组中确定属于水印嵌入区域的S个分组,并在S个分组中的每个分组内分别进行一个比特的水印信息提取;最后,将提取到的S个比特的水印信息进行组合,进而得到嵌入的水印的二进制序列。
基于上述水印提取过程可知,在水印添加过程是在属于水印嵌入区域的每个分组内分别嵌入该二进制序列的一个比特水印信息,这不但利用了图像空间上的冗余性,而且还确保了嵌入的水印对各种常用攻击手段具有较强的稳健性,这样嵌入的水印即便遭到了常用攻击手段的攻击,在水印提取阶段也能够提取出正确的水印信息,实现了有效的版权保护。
基于以上描述可知,在水印添加过程是对在属于水印嵌入区域的每个分组内分别嵌入该二进制序列的一个比特水印信息,这不但利用了图像空间上的冗余性,而且还确保了嵌入的水印对各种常用攻击手段具有较强的稳健性,这样嵌入的水印即便遭到了常用攻击手段的攻击,在水印提取阶段也能够提取出正确的水印信息,实现了有效的版权保护。
在一种可能的实现方式中,所述在所述S个分组中的每个分组内分别进行一个比特的水印信息提取,包括:
在所述S个分组中,对于同一分组内的每个像素块,获取所述像素块的像素矩阵,所述像素矩阵中的各个元素指代所述像素块对应位置上的像素值;
获取所述像素块的像素均值,根据所述像素矩阵和所述像素均值获取指定矩阵;
对所述指定矩阵进行奇异值分解处理,得到一个对角矩阵,所述对角矩阵的对角线元素为所述对角矩阵的奇异值;
根据目标强度参数和所述对角矩阵中的目标奇异值,确定在所述像素块内提取到的水印信息;
根据在所述每个像素块内提取到的水印信息,确定在所述分组内提取到的水印信息。
在一种可能的实现方式中,所述根据在所述每个像素块内提取到的水印信息,确定在所述分组内提取到的水印信息,包括:
若提取到的水印信息为1的像素块数量大于提取到的水印信息为0的像素块数量,则确定在所述分组内提取到的水印信息为1;
若提取到的水印信息为0的像素块数量大于提取到的水印信息为1的像素块数量,则确定在所述分组内提取到的水印信息为0。
在一种可能的实现方式中,所述根据在所述每个像素块内提取到的水印信息,确定在所述分组内提取到的水印信息,包括:
若提取到的水印信息为1的像素块数量大于目标比例,则确定在所述分组内提取到的水印信息为1;
若提取到的水印信息为0的像素块数量大于所述目标比例,则确定在所述分组内提取到的水印信息为0。
在一种可能的实现方式中,所述获取所述像素块的像素矩阵,包括:
获取所述像素块的像素值方差,若所述像素值方差大于目标阈值,则执行所述获取所述像素块的像素矩阵的步骤。
在一种可能的实现方式中,所述在所述多个分组中确定属于水印嵌入区域的S个分组,包括:
对于所述多个分组中的每个分组,获取所述分组包括的每个像素块的像素值方差;
根据获取到的像素值方差,在所述多个分组中确定像素值方差最大的S个分组,得到属于所述水印嵌入区域的所述S个分组。
在一种可能的实现方式中,所述在所述多个分组中确定属于水印嵌入区域的S个分组,包括:
获取定位码的长度,所述定位码用于定位所述水印嵌入区域;
获取水印添加过程用于嵌入所述定位码的目标掩模以及所述目标掩模的长度;
根据所述定位码的长度、所述目标掩模以及所述目标掩模的长度,在所述目标图像中提取所述定位码;
根据所述定位码在所述多个分组中确定所述S个分组。
在一种可能的实现方式中,所述定位码分别嵌入在所述S个分组开头部分的连续X个分组内以及结尾部分的连续X个分组内,其中,X为正整数,X指代所述定位码的长度;所述X个分组中的每个分组内分别嵌入有所述定位码的一个比特定位信息;其中,所述定位码的嵌入过程包括:
对于所述X个分组中的每个分组,对所述分组的嵌入比特和目标掩模进行异或操作;根据得到的异或操作结果,确定所述分组内各个像素块嵌入的定位信息;所述分组内第i个像素块与第i+X个像素块需要嵌入的定位信息相同,i为正整数。
在一种可能的实现方式中,所述在所述S个分组中的每个分组内分别进行一个比特的水印信息提取之前,还包括:
在所述目标图像中的多个起始位置处分别执行水印提取处理;
若在任意一个起始位置处成功提取到用于定位水印嵌入区域的定位码,则将所述起始位置处确定为未进行裁剪之前的原始水印图像的像素块边界。
在一种可能的实现方式中,所述将提取到的S个比特的水印信息进行组合,得到所述水印的二进制序列,包括:
将提取到的S个比特的水印信息进行组合,得到组合序列;
对所述组合序列进行纠错译码,得到所述水印的二进制序列。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
图4是根据一示例性实施例示出的一种水印添加方法的流程图该方法用于图1所示的水印提取设备。如图4所示,包括以下步骤。
在步骤401中,水印提取设备对待提取水印的目标图像进行像素块划分,其中,目标图像中嵌入有水印;将划分出来的像素块中每m个像素块组成一个分组,得到多个分组。
其中,m的取值为正整数;目标图像指代嵌入有水印的水印图像,即目标图像在本文中也可以称之为水印图像。
其中,水印图像可以为嵌入有水印的视频中的任意一帧视频画面,即可以对该视频中的每一帧视频画面进行水印提取。另外,上述水印图像既可以为单通道图像,也可以为多通道图像。例如,如果在水印添加阶段,对载体图像的RGB三个通道中的每一个通道均进行了水印添加,则在水印提取阶段,可以对水印图像的RGB三个通道中的每一个通道均进行水印信息提取。另外,上述水印图像既可以为横幅图像,也可以为竖幅图像,本公开实施例对此均不进行具体限定。
本公开实施例仅以上述水印图像为嵌入有水印的视频中的一帧图像,且该图像为单通道图像为例,对本公开实施例提供的水印提取方案进行举例说明。
示例性地,针对水印添加阶段,水印信息的嵌入过程可以为:对待添加水印的载体图像进行像素块划分。将划分出来的像素块中每m个像素块组成一个分组,得到多个分组。对待添加至载体图像中的目标水印进行编码处理得到二进制序列。在多个分组中确定适合嵌入二进制序列的N个分组,N指代二进制序列的长度。在N个分组中的每个分组内分别嵌入二进制序列的一个比特水印信息。
相应地,针对水印提取阶段,在对水印图像进行像素块划分和分组时,可以参考水印添加阶段的像素块划分和分组方式,比如也是将n*n划分为一个像素块,即划分出来的各个像素块的大小可以均一致。在进行分组时,分组方式也是同水印添加阶段的分组方式一致。
需要说明的是,关于像素块的划分以及像素块的分组方式信息,在水印添加阶段可以作为嵌入信息添加在载体图像中,也可通过其他约定的方式(比如邮件或短消息)告知水印提取操作者,本公开实施例对此不进行具体限定。
在步骤402中,水印提取设备在多个分组中确定属于水印嵌入区域的S个分组。
其中,S的取值为正整数。示例性地,在理想情况下,如果画面本身在后续操作中能够保持不变,那么在进行水印提取的时候可以通过下述步骤4021即可确定水印嵌入区域。针对该种方式,在水印添加阶段也是通过类似的方式在载体图像中确定出来适合嵌入水印信息的水印嵌入区域的。即,在理想情况下,水印添加阶段确定出来的N个分组与水印提取界面确定出来的S个分组是一致的。
4021、对于多个分组中的每个分组,获取该分组包括的每个像素块的像素值方差;根据获取到的像素值方差,在多个分组中确定像素值方差最大的S个分组,得到属于水印嵌入区域的S个分组。
在对划分出来的像素块进行分组后,对于任意一个分组,本公开实施例会计算该分组包括的每个像素块的像素值方差,并记录下各个像素块的像素值方差。
其中,n2指代像素块中包括像素点个数,x为n2个像素点的像素均值,x1、x2…等指代各个像素点的像素值。
针对该种方式,即是在多个分组中选择组内的像素块的像素值方差符合要求的分组,比如,计算每个分组内各个像素块的像素值方差,并将像素块的像素值方差最大的S个分组确定为水印嵌入区域。
需要说明的第一点是,由于在水印添加阶段也是通过类似的方式来确定水印嵌入区域的,所以如果画面本身在后续操作中能够保持不变,那么在水印提取阶段确定出来的S个分组便会与水印添加阶段确定出来的水印嵌入区域(N个分组)完全一致。
需要说明的第二点是,考虑到画面中最上面和最下面的边缘部分容易被裁剪,或者通过在这些边缘部分添加LOGO等对画面进行重新编辑,因此在水印添加阶段在对待添加水印的载体图像进行像素块划分时,还可以采取下述方式:根据目标比例在载体图像中确定上边缘区域和下边缘区域;对载体图像中除了上边缘区域和下边缘区域之外的其他图像区域进行像素块划分。
其中,上述目标比例是一个可调参数,其取值可以根据实际任务需求而定,本公开实施例对此不进行具体限定。比如,目标比例的取值可以为10%。举例来说,假设载体图像的高度为1092像素,如果目标比例的取值为10%,则在进行像素块划分和进行分组时,可以避免最上边缘至1092*10%个像素之间的上边缘区域,以及最下边缘至1092*10%个像素之间的下边缘区域。即,针对载体图像的整体来说,上下各自滤除10%大小的区域,并在剩余的80%区域进行像素块划分和分组。
需要说明的第三点是,但实际使用中,编解码过程往往会对图像本身造成微小的改变,因此采用上述步骤4021提取水印可能无法找到与水印添加阶段完全一致的水印嵌入区域用于提取水印,进而造成水印提取不成功。为此,本公开实施例采取了将定位码作为嵌入信息直接嵌入到载体图像的方式。其中,定位码用于定位水印嵌入区域。
针对水印嵌入阶段,在对载体图像进行像素块划分以及分组得到多个分组后,以及在这多个分组中确定适合嵌入二进制序列的N个分组之后,还包括如下步骤:在N个分组的开头部分确定连续的X个分组,在该X个分组中的每个分组内分别嵌入定位码中的一个比特定位信息;在N个分组的结尾部分确定连续的X个分组,在该X个分组中的每个分组内分别嵌入定位码中的一个比特定位信息。其中,X指代定位码的长度,X为正整数。
作为一个示例,为了降低误识别率,在本公开实施例中,定位码可以采用组内掩模(mask)的形式嵌入。需要说明的是,对于属于水印的比特信息,相应分组内所有像素块小块的嵌入信息都是相同的,即全部像素块要么嵌入1要么嵌入0。而对于定位码的嵌入信息,在组内通过组内掩模的形式进行确定。即,在X个分组中的每个分组内分别嵌入定位码中的一个比特定位信息,包括但不限于:
对于X个分组中的每个分组,对该分组内待嵌入的水印信息和目标掩模进行异或操作;根据得到的异或操作结果,确定该分组内各个像素块应嵌入的定位信息;其中,该分组内第i个像素块与第i+X个像素块需要嵌入的定位信息相同,其中,i为正整数。
即,该分组内每一像素块的嵌入比特=需要嵌入的定位比特与目标掩模的异或操作。
以定位码的长度为3,目标掩模的长度也为3为例,假设目标掩模为101,而本组需要嵌入的定位比特是0,那么第1个像素块需要嵌入的定位信息为1 XOR 0=1,第2个像素块需要嵌入的定位信息为0 XOR 0=0,第3个像素块需要嵌入的定位信息1 XOR 0=1,循坏地,第4个像素块需要嵌入的定位信息为1 XOR 0=1,第5个像素块需要嵌入的定位信息为0XOR 0=0,第6个像素块需要嵌入的定位信息1 XOR 0=1,以此类推,直至本组内最后一个像素块。
需要说明的是,定位码和目标掩模的长度并不是一个定值,可以根据任务需要而定。其中,定位码和目标掩模的长度十分重要,如果不知道这两个参数,那么在水印提取阶段将难以定位水印嵌入区域,进而难以提取到水印信息。
通过如上操作,可以使得定位码和普通的水印信息能够比较明显的区分开。另外,通过定位码不但使得在水印提取阶段能够精确地定位水印嵌入区域,为水印提取提供了保障,而且在载体图像中加入定位码,还增强了水印的稳定性。
基于以上描述可知,在水印提取阶段,本公开实施例还可以通过下述步骤4022来确定水印嵌入区域。
4022、获取定位码的长度;获取水印添加过程用于嵌入定位码的目标掩模以及目标掩模的长度;根据定位码的长度、目标掩模以及目标掩模的长度,在目标图像中提取定位码;根据定位码在多个分组中确定S个分组。
其中,定位码的嵌入过程即为定位码嵌入的逆过程,此处不再赘述。另外,针对水印添加阶段,由于在水印嵌入区域的开头部分和结尾部分分别利用连续的X个分组来嵌入定位码(比如100),那么针对水印提取阶段,在水印图像上检测到距离为S(此时S应等于N)个分组的两个100的嵌入信息,即可以确定中间部分为水印嵌入区域。
另外,定位码的形式和嵌入方式除了上述所示之外,还可以采取其他形式和其他嵌入方式,本公开实施例对此不进行具体限定。
在步骤403中,水印提取设备在S个分组中的每个分组内分别进行一个比特的水印信息提取;将提取到的S个比特的水印信息进行组合,得到水印的二进制序列。
针对水印添加阶段,本公开实施例采用下述的基于矩阵奇异值分解的方式,在适合嵌入水印信息的N个分组中进行每个比特的水印信息嵌入。相应地,针对水印提取阶段,采用相反的逆过程,来确定在上述水印嵌入区域的每个分组内嵌入的一个比特的水印信息。
在一种可能的实现方式中,针对水印添加阶段,在N个分组中的每个分组内分别嵌入二进制序列的一个比特水印信息,包括但不限于如下步骤。其中,二进制序列是通过对水印进行编码处理得到。
(1)、在N个分组中,对于同一分组内的每个像素块,获取该像素块的像素矩阵;获取该像素块的像素均值,根据该像素矩阵和该像素均值获取中间矩阵;对该中间矩阵进行奇异值分解处理,得到两个正交矩阵和一个对角矩阵。
以这个像素块的像素矩阵为M为例,则像素矩阵M中的各个元素指代这个像素块对应位置上的像素值;假设这个像素块的像素均值为μ,则中间矩阵为像素矩阵M减去像素均值μ得到的矩阵。进一步地,对中间矩阵进行奇异值分解(Singular Value Decomposition,SVD):M-μ=U*S*V’。其中,矩阵U和矩阵V是两个正交矩阵,矩阵V’为矩阵V的转置矩阵,矩阵S是一个对角矩阵,该对角矩阵的对角线元素即为该对角矩阵的奇异值。
(2)、根据目标强度参数和该分组需要嵌入的水印信息,量化得到的对角矩阵中的目标奇异值。
其中,基于矩阵奇异值分解的水印嵌入技术是想要将需要嵌入的水印信息嵌入到对角的奇异值中。如果在嵌入水印的过程中选择一个嵌入强度因子来控制水印信息嵌入的程度,那么当该嵌入强度因子足够小时,嵌入水印后的图像在视觉上不会产生明显的变化。因此在水印嵌入时,选择合适的嵌入强度因子是十分重要的。其中,该嵌入强度因子在本文中也被称之为强度参数。
其中,小的强度参数有利于水印的透明性,但嵌入的水印信息容易受到外界噪声的干扰,如果噪声强度足够大,则可能会使水印信息被噪声淹没而完全丢失,导致提取水印时无法得到水印的完整信息。大的强度参数有利于增强算法的鲁棒性,即使在噪声较强的情况下水印信息也不会受到很大的影响,但是过大的强度参数可能对奇异值产生较大的影响,有可能破坏水印的透明性,影响图像的质量。因此,在水印嵌入时要选择适当的强度参数,以使得水印图像的不可觉察性与鲁棒性达到最佳。
示例性地,目标强度参数的设置可根据实际任务需求而定,本公开实施例对此不进行具体限定。本步骤即是对于在对角矩阵S中选定的奇异值,根据目标强度参数s和需要嵌入的水印信息(嵌入比特为0或1)将选中的奇异值量化到对应的数值。其中,选定的奇异值可以为随机选定的,比如选定的奇异值可以为任意一个对角线元素,本公开实施例对此不进行具体限定。
在一种可能的实现方式中,根据目标强度参数和该分组需要嵌入的水印信息,量化该对角矩阵中的目标奇异值,包括但不限于:
步骤a、若该分组需要嵌入的水印信息为0,则根据目标强度参数s和需要嵌入的水印信息0,将选定的目标奇异值量化修改为与目标强度参数s相关的第一数值。
例如,选中对角线的第3个元素为需要变化的目标奇异值,需要嵌入的水印信息为0,则根据参数s和0,将第3个元素修改成与s相关的第一数值。
示例性地,与参数s相关的第一数值,可以为参数s与选定的目标奇异值的和值,本公开实施例对此不进行具体限定。
步骤b、若该分组需要嵌入的水印信息为1,则根据目标强度参数s和嵌入的水印信息,将选定的目标奇异值量化修改为与目标强度参数s相关的第二数值。
继续以上述例子为例,如果需要嵌入的水印信息为1,则根据参数s和1,将第3个元素修改成与s相关的第二数值。
示例性地,与参数s相关的第二数值,可以为参数s与选定的目标奇异值的差值,本公开实施例对此不进行具体限定。
需要说明的是,在进行量化修改时,除了上述加法运算和减法运算外,还可以为更复杂的其他运算,本公开实施例对此不进行具体限定。
(3)、根据量化后得到的新的奇异值、两个正交矩阵和像素均值,重构该像素块的像素矩阵,以新的像素矩阵替换该像素块原始的像素矩阵。
本步骤即是按照量化后得到的新的奇异值,来重构该像素块的像素矩阵。即,M_new=U*S_new*V’+μ。其中,S_new指代新的奇异值,M_new就是重构得到的新的像素矩阵。
至此完成在一个分组内嵌入一个比特的水印信息,重复执行上述步骤即完成水印信息在N个分组中每个像素块的嵌入。相应地,在一种可能的实现方式中,在S个分组中的每个分组内分别进行一个比特的水印信息提取,包括但不限于下述步骤:
4031、在S个分组中,对于同一分组内的每个像素块,获取该像素块的像素矩阵,该像素矩阵中的各个元素指代该像素块对应位置上的像素值。
4032、获取该像素块的像素值方差,若该像素块的像素值方差小于目标阈值,则跳过这个像素块不进行处理。
4033、获取该像素块的像素值方差,若该像素块的像素值方差小于目标阈值,则获取该像素块的像素均值,根据该像素块的像素矩阵和像素均值获取指定矩阵。
其中,指定矩阵即为该像素块的像素矩阵与该像素块的像素均值的差值。
4034、对指定矩阵进行奇异值分解处理,得到一个对角矩阵,该对角矩阵的对角线元素为该对角矩阵的奇异值。
4035、根据目标强度参数和该对角矩阵中的目标奇异值,确定在该像素块内提取到的水印信息。
需要说明的是,目标强度参数和目标奇异值与水印添加阶段使用的一致。比如在水印添加阶段使用第三个对角线元素作为选定的奇异值,则在水印提取阶段也是使用第三个对角线元素作为选定的奇异值。另外,针对每个像素块,由于水印信息的嵌入过程与水印信息的提取过程为逆过程,所以此处对各个像素块的水印信息提取详细过程不再进行赘述。
4036、根据在每个像素块内提取到的水印信息,确定在该分组内提取到的水印信息。
对于S个分组中的每个分组,在对该分组内m个像素块均提取完水印信息后,本公开实施例可以采取如下两种方式来确定在该分组内提取到的水印信息。
第一种、根据多数原则确定在本组内最终提取到的水印信息。
即,根据在每个像素块内提取到的水印信息,确定在该分组内提取到的水印信息,包括:若提取到的水印信息为1的像素块数量大于提取到的水印信息为0的像素块数量,则确定在该分组内提取到的水印信息为1;若提取到的水印信息为0的像素块数量大于提取到的水印信息为1的像素块数量,则确定在该分组内提取到的水印信息为0。
举例来说,假设一个分组一共有20个像素块,其中,在9个像素块内提取到的水印信息为1,在剩下的11个像素块内提取到的水印信息为0,那么最终确定在该分组内提取到的水印信息为0。
第二种、根据变种的多数原则确定在本组内最终提取到的水印信息。
即,根据在每个像素块内提取到的水印信息,确定在分组内提取到的水印信息,还可以包括:若提取到的水印信息为1的像素块数量大于目标比例,则确定在分组内提取到的水印信息为1;若提取到的水印信息为0的像素块数量大于目标比例,则确定在分组内提取到的水印信息为0。
其中,目标比例的取值可以为2/3,即这里采用的多数原则也可以根据任务需求而采用不同的变种,比如认为大于2/3才是多数,在中间的情况则认为无法识别,而不强行给出识别结果。举例来说,假设一个分组一共有20个像素块,其中,在9个像素块内提取到的水印信息为1,在剩下的11个像素块内提取到的水印信息为0,则如果采用这样的规则,则最终的结果便为无法识别。
重复执行上述步骤,直至将S个分组的水印提取结果都记录下来。至此,单帧图像的水印提取过程结束。在一种可能的实现方式中,如果对嵌入有水印的视频的每一帧视频画面均进行水印提取,则可以将每帧图像的水印提取结果进行综合,仍然可以采取上述的两种确定规则,来确定最终的每一个比特的水印信息。举例来说,假设针对第二位的水印信息的提取结果,有20%的图像帧给出无法识别的提取结果,有70%的图像帧给出为1的提取结果,有10%的图像帧给出为0的提取结果,那么第二位的水印信息的最终结果便为1。
在步骤404中,水印提取设备根据得到的二进制序列还原嵌入的水印。
针对水印添加阶段,该二进制序列是通过对待添加至载体图像中的目标水印进行编码处理后得到的。因此针对水印提取阶段,在得到该二进制序列后,通过互逆的解码过程,便可以还原嵌入的水印。
本公开实施例提供的方法至少具有以下有益效果:
针对水印添加阶段,水印添加设备会对载体图像进行像素块划分并分组,以及在N个分组中的每个分组内分别嵌入二进制序列的一个比特水印信息,该种水印添加方案不但利用了图像空间上的冗余性,而且对各种常用攻击手段具有较强的稳健性,能够实现有效的版权保护,即可以对诸如视频等数字载体的创作者身份进行追溯。这样,即便视频被盗用并被发表至其他视频平台,也可以被发现并检测到;另外,添加的水印信息还不容易引起用户视觉上可察觉的变化。
详细来说,由于该种水印添加方案对常见的攻击手段有较强的抵抗能力,所以利用这些手段对添加有水印信息的视频进行处理之后,在水印提取阶段仍然能提取出添加的水印信息。比如,通过对载体图像进行像素块划分以及分组,并对组内符合要求的每个像素块进行矩阵的奇异值分解计算,据此来实现水印信息的嵌入,能够保证嵌入的水印对压缩转码的攻击手段比较稳健。即,该种水印嵌入方案对常见的压缩转码操作不敏感,利用常见的压缩转码对添加有水印信息的视频进行处理之后,在水印提取阶段仍然能够正确提取水印信息;又比如,对裁剪处理不敏感,对添加有水印信息的视频进行裁剪后,在水印提取阶段仍然能够正确提取水印信息。
另外,通过对视频中每一帧视频画面进行水印信息嵌入,利用了视频时间上的冗余性。
相应地,针对水印提取阶段,本公开实施例采取同水印添加过程一致的像素块划分和分组处理方式,即,首先对待提取水印的目标图像进行像素块划分,并将划分出来的像素块中每m个像素块组成一个分组,得到多个分组;之后,在多个分组中确定属于水印嵌入区域的S个分组,并在S个分组中的每个分组内分别进行一个比特的水印信息提取;最后,将提取到的S个比特的水印信息进行组合,进而得到嵌入的水印的二进制序列。
基于上述水印提取过程可知,在水印添加过程是在属于水印嵌入区域的每个分组内分别嵌入该二进制序列的一个比特水印信息,这不但利用了图像空间上的冗余性,而且还确保了嵌入的水印对各种常用攻击手段具有较强的稳健性,这样嵌入的水印即便遭到了常用攻击手段的攻击,在水印提取阶段也能够提取出正确的水印信息,实现了有效的版权保护。
在另一个实施例中,在对载体图像添加水印得到水印图像后,以及在对水印图像进行水印提取之前,水印图像可能会被执行裁剪处理,为了应对剪裁处理可能对水印提取过程造成的不良影响,本公开实施例在开始对水印图像进行水印提取之前,还会先确定出原始画面中的像素块边界在当前画面中的哪里。换言之,在本公开实施例中,算法的基本单元是n*n的像素块。在对水印图像进行裁剪后,裁剪后的画面与原始画面的像素块不再是对齐的,所以在开始水印提取之前,还需先确定出原始画面中的像素块的边界在哪里。
比如,以像素块的大小为10*10像素为例,则从原始画面的上边缘开始,第1个像素至第10个像素便属于一个像素块,第10个像素所在的位置便为像素块的边界。如果将从上边缘开始的2个像素裁剪掉,则针对裁剪后的画面,像素块的边界便为第8个像素所在的位置,而不是原始的第10个像素所在的位置。
在一种可能的实现方式中,可以采取试错法来确定像素块的边界。比如,从水印图像的不同的起始位置处开始执行水印提取;如果在某个起始位置能够成功提取到定位码,那么就认为这个起始位置是原始画面中像素块的边界。示例性地,对于n*n的像素块划分,最多需要执行n*n-1次试错。即,在S个分组中的每个分组内分别进行一个比特的水印信息提取之前,本公开实施例还包括:在目标图像中的多个起始位置处分别执行水印提取处理;若在任意一个起始位置处成功提取到用于定位水印嵌入区域的定位码,则将该起始位置处确定为未进行裁剪之前的原始水印图像的像素块边界。
该种定位像素块边界的处理方式,可以应该裁剪画面攻击,对精确地定位水印嵌入区域以及进行正确地水印信息提取提供了保障。
在另一个实施例中,考虑到水印提取过程中有可能存在误判的情况,比如原本要嵌入的比特是1,由于图像在编解码、传输、后续编辑等过程中产生了变化,提取的结果变为不确定或者变为了0,这样会造成水印信息提取失败。为了避免这种情况的发生,本公开实施例还会引入纠错编码机制。其中,纠错编码是一大类方法,用于对已有信息进行重新编码,使得编码后的信息能够抵抗一定程度的错误和缺失;另外,纠错编码可以发现一定程度的错误并进行纠正,也可以发现是否存在过多错误从而无法纠正。即,针对水印添加阶段,在对待添加至载体图像中的目标水印进行编码处理得到二进制序列之后,还包括如下步骤:对二进制序列进行纠错编码处理,得到经过纠错编码后的水印序列。
其中,纠错编码处理可以发生在得到二进制序列之后以及执行水印嵌入之前。示例性地,纠错编码BCH纠错编码,参数具体为m=6,t=3。其中,BCH码是一种常用的纠错码,它是循环码的一种,具有很强的纠正能力。通常用(n,k)表示,n表示编完码以后的码长,k表示信息位长度。
在此参数下,纠错校验码为18比特,所以48比特信息将被重新编码为66比特。其中,T指代纠错能力,66比特指代66位编码后的码长,48比特信息表示信息位的长度,18比特为纠错校验码。
需要说明的第一点是,BCH编码的过程是将长度length的数据编码得到长度为length–k的校验码;BCH解码的过程是将长度length的数据和长度为length–k的校验码进行计算,检测数据是否有错误,如果数据发生错误,对错误的数据进行纠正。其中,最多可以纠正t个错误。即BCH纠错编码的原理是:对于任何正整数m和t(m>=3,t<2m-1),存在着能纠正t个以内错误的BCH码,其参数为:码长:n=2m-1。最小码距:d>2t+1。
需要说明的第二点是,除了采取BCH纠错编码之外,也可以采用其他的纠错编码算法,或者在采取BCH纠错编码的情况下使用其他的参数,本公开实施例对此不进行具体限定。
相应地,针对水印提取阶段,还包括如下步骤:将提取到的S个比特的水印信息进行组合,得到组合序列;对组合序列进行纠错译码,得到水印的二进制序列。
在水印嵌入过程中对水印信息进行纠错编码处理,能够保证在水印提取阶段精确地提取水印,为水印提取提供了保障,即在水印嵌入过程中引入纠错编码机制,增强了水印的稳定性。
图5是根据一示例性实施例示出的一种水印提取装置的框图。参照图5,该装置包括划分模块501,分组模块502,确定模块503和提取模块504。
划分模块501,被配置为对待提取水印的目标图像进行像素块划分,其中,所述目标图像中嵌入有水印;
分组模块502,被配置为将划分出来的像素块中每m个像素块组成一个分组,得到多个分组,m为正整数;
确定模块503,被配置为在所述多个分组中确定属于水印嵌入区域的S个分组,S为正整数;
提取模块504,被配置为在所述S个分组中的每个分组内分别进行一个比特的水印信息提取;将提取到的S个比特的水印信息进行组合,得到所述水印的二进制序列。
本公开实施例提供的装置,在水印提取过程中,本公开实施例采取同水印添加过程一致的像素块划分和分组处理方式,即,首先对待提取水印的目标图像进行像素块划分,并将划分出来的像素块中每m个像素块组成一个分组,得到多个分组;之后,在多个分组中确定属于水印嵌入区域的S个分组,并在S个分组中的每个分组内分别进行一个比特的水印信息提取;最后,将提取到的S个比特的水印信息进行组合,进而得到嵌入的水印的二进制序列。
基于上述水印提取过程可知,在水印添加过程是在属于水印嵌入区域的每个分组内分别嵌入该二进制序列的一个比特水印信息,这不但利用了图像空间上的冗余性,而且还确保了嵌入的水印对各种常用攻击手段具有较强的稳健性,这样嵌入的水印即便遭到了常用攻击手段的攻击,在水印提取阶段也能够提取出正确的水印信息,实现了有效的版权保护。
在一种可能的实现方式中,所述提取模块,还被配置为在所述S个分组中,对于同一分组内的每个像素块,获取所述像素块的像素矩阵,所述像素矩阵中的各个元素指代所述像素块对应位置上的像素值;获取所述像素块的像素均值,根据所述像素矩阵和所述像素均值获取指定矩阵;对所述指定矩阵进行奇异值分解处理,得到一个对角矩阵,所述对角矩阵的对角线元素为所述对角矩阵的奇异值;根据目标强度参数和所述对角矩阵中的目标奇异值,确定在所述像素块内提取到的水印信息;根据在所述每个像素块内提取到的水印信息,确定在所述分组内提取到的水印信息。
在一种可能的实现方式中,所述提取模块,还被配置为若提取到的水印信息为1的像素块数量大于提取到的水印信息为0的像素块数量,则确定在所述分组内提取到的水印信息为1;若提取到的水印信息为0的像素块数量大于提取到的水印信息为1的像素块数量,则确定在所述分组内提取到的水印信息为0。
在一种可能的实现方式中,所述提取模块,还被配置为若提取到的水印信息为1的像素块数量大于目标比例,则确定在所述分组内提取到的水印信息为1;若提取到的水印信息为0的像素块数量大于所述目标比例,则确定在所述分组内提取到的水印信息为0。
在一种可能的实现方式中,所述提取模块,还被配置为获取所述像素块的像素值方差,若所述像素值方差大于目标阈值,则执行所述获取所述像素块的像素矩阵的步骤。
在一种可能的实现方式中,所述确定模块,还被配置为对于所述多个分组中的每个分组,获取所述分组包括的每个像素块的像素值方差;根据获取到的像素值方差,在所述多个分组中确定像素值方差最大的S个分组,得到属于所述水印嵌入区域的所述S个分组。
在一种可能的实现方式中,所述确定模块,还被配置为获取定位码的长度,所述定位码用于定位所述水印嵌入区域;获取水印添加过程用于嵌入所述定位码的目标掩模以及所述目标掩模的长度;根据所述定位码的长度、所述目标掩模以及所述目标掩模的长度,在所述目标图像中提取所述定位码;根据所述定位码在所述多个分组中确定所述S个分组。
在一种可能的实现方式中,所述定位码分别嵌入在所述S个分组开头部分的连续X个分组内以及结尾部分的连续X个分组内,其中,X为正整数,X指代所述定位码的长度;所述X个分组中的每个分组内分别嵌入有所述定位码的一个比特定位信息。
在一种可能的实现方式中,所述装置还用于:在所述目标图像中的多个起始位置处分别执行水印提取处理;若在任意一个起始位置处成功提取到用于定位水印嵌入区域的定位码,则将所述起始位置处确定为未进行裁剪之前的原始水印图像的像素块边界。
在一种可能的实现方式中,所述提取模块,还被配置为将提取到的S个比特的水印信息进行组合,得到组合序列;对所述组合序列进行纠错译码,得到所述水印的二进制序列。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图6示出了本公开一个示例性实施例提供的一种电子设备600的结构框图。通常,设备600包括有:处理器601和存储器602。
处理器601可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器601可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器601也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器601可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器601还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器602可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器602还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器602中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器601所执行以实现本公开中方法实施例提供的水印提取方法。
在一些实施例中,设备600还可选包括有:***设备接口603和至少一个***设备。处理器601、存储器602和***设备接口603之间可以通过总线或信号线相连。各个***设备可以通过总线、信号线或电路板与***设备接口603相连。具体地,***设备包括:显示屏605和电源609。
***设备接口603可被用于将I/O(Input/Output,输入/输出)相关的至少一个***设备连接到处理器601和存储器602。在一些实施例中,处理器601、存储器602和***设备接口603被集成在同一芯片或电路板上;在一些其他实施例中,处理器601、存储器602和***设备接口603中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
显示屏604用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏604是触摸显示屏时,显示屏604还具有采集在显示屏604的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器601进行处理。此时,显示屏604还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏604可以为一个,设置设备600的前面板;显示屏604可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
电源605用于为设备600中的各个组件进行供电。电源605可以是交流电、直流电、一次性电池或可充电电池。当电源605包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
本领域技术人员可以理解,图6中示出的结构并不构成对设备600的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器,上述指令可由电子设备600的处理器执行以完成上述水印提取方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品,所述计算机程序产品中的指令由电子设备600的处理器执行时,使得电子设备600能够执行如上述方法实施例中的水印提取方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (20)
1.一种水印提取方法,其特征在于,包括:
对待提取水印的目标图像进行像素块划分,其中,所述目标图像中嵌入有水印;
将划分出来的像素块中每m个像素块组成一个分组,得到多个分组,m为正整数;
在所述多个分组中确定属于水印嵌入区域的S个分组,S为正整数;
在所述S个分组中,对于同一分组内的每个像素块,获取所述像素块的像素矩阵,所述像素矩阵中的各个元素指代所述像素块对应位置上的像素值;
获取所述像素块的像素均值,根据所述像素矩阵和所述像素均值获取指定矩阵;
对所述指定矩阵进行奇异值分解,得到一个对角矩阵,所述对角矩阵的对角线元素为所述对角矩阵的奇异值;
根据目标强度参数和所述对角矩阵中的目标奇异值,确定在所述像素块内提取到的水印信息,所述目标强度参数用于控制所述水印信息嵌入的程度;
根据在所述每个像素块内提取到的水印信息,确定在所述分组内提取到的水印信息;
将提取到的S个比特的水印信息进行组合,得到所述水印的二进制序列。
2.根据权利要求1所述的方法,其特征在于,所述根据在所述每个像素块内提取到的水印信息,确定在所述分组内提取到的水印信息,包括:
若提取到的水印信息为1的像素块数量大于提取到的水印信息为0的像素块数量,则确定在所述分组内提取到的水印信息为1;
若提取到的水印信息为0的像素块数量大于提取到的水印信息为1的像素块数量,则确定在所述分组内提取到的水印信息为0。
3.根据权利要求1所述的方法,其特征在于,所述根据在所述每个像素块内提取到的水印信息,确定在所述分组内提取到的水印信息,包括:
若提取到的水印信息为1的像素块数量大于目标比例,则确定在所述分组内提取到的水印信息为1;
若提取到的水印信息为0的像素块数量大于所述目标比例,则确定在所述分组内提取到的水印信息为0。
4.根据权利要求1所述的方法,其特征在于,所述获取所述像素块的像素矩阵,包括:
获取所述像素块的像素值方差,若所述像素值方差大于目标阈值,则执行所述获取所述像素块的像素矩阵的步骤。
5.根据权利要求1所述的方法,其特征在于,所述在所述多个分组中确定属于水印嵌入区域的S个分组,包括:
对于所述多个分组中的每个分组,获取所述分组包括的每个像素块的像素值方差;
根据获取到的像素值方差,在所述多个分组中确定像素值方差最大的S个分组,得到属于所述水印嵌入区域的所述S个分组。
6.根据权利要求1所述的方法,其特征在于,所述在所述多个分组中确定属于水印嵌入区域的S个分组,包括:
获取定位码的长度,所述定位码用于定位所述水印嵌入区域;
获取水印添加过程用于嵌入所述定位码的目标掩模以及所述目标掩模的长度;
根据所述定位码的长度、所述目标掩模以及所述目标掩模的长度,在所述目标图像中提取所述定位码;
根据所述定位码在所述多个分组中确定所述S个分组。
7.根据权利要求6所述的方法,其特征在于,所述定位码分别嵌入在所述S个分组开头部分的连续X个分组内以及结尾部分的连续X个分组内,其中,X为正整数,X指代所述定位码的长度;所述X个分组中的每个分组内分别嵌入有所述定位码的一个比特定位信息;其中,所述定位码的嵌入过程包括:
对于所述X个分组中的每个分组,对所述分组的嵌入比特和目标掩模进行异或操作;根据得到的异或操作结果,确定所述分组内各个像素块嵌入的定位信息;所述分组内第i个像素块与第i+X个像素块需要嵌入的定位信息相同,i为正整数。
8.根据权利要求1至7中任一项权利要求所述的方法,其特征在于,所述在所述多个分组中确定属于水印嵌入区域的S个分组之后,所述方法还包括:
在所述目标图像中的多个起始位置处分别执行水印提取处理;
若在任意一个起始位置处成功提取到用于定位水印嵌入区域的定位码,则将所述起始位置处确定为未进行裁剪之前的原始水印图像的像素块边界。
9.根据权利要求1至7中任一项权利要求所述的方法,其特征在于,所述将提取到的S个比特的水印信息进行组合,得到所述水印的二进制序列,包括:
将提取到的S个比特的水印信息进行组合,得到组合序列;
对所述组合序列进行纠错译码,得到所述水印的二进制序列。
10.一种水印提取装置,其特征在于,包括:
划分模块,被配置为对待提取水印的目标图像进行像素块划分,其中,所述目标图像中嵌入有水印;
分组模块,被配置为将划分出来的像素块中每m个像素块组成一个分组,得到多个分组,m为正整数;
确定模块,被配置为在所述多个分组中确定属于水印嵌入区域的S个分组,S为正整数;
提取模块,被配置为在所述S个分组中,对于同一分组内的每个像素块,获取所述像素块的像素矩阵,所述像素矩阵中的各个元素指代所述像素块对应位置上的像素值;获取所述像素块的像素均值,根据所述像素矩阵和所述像素均值获取指定矩阵;对所述指定矩阵进行奇异值分解,得到一个对角矩阵,所述对角矩阵的对角线元素为所述对角矩阵的奇异值;根据目标强度参数和所述对角矩阵中的目标奇异值,确定在所述像素块内提取到的水印信息,所述目标强度参数用于控制所述水印信息嵌入的程度;根据在所述每个像素块内提取到的水印信息,确定在所述分组内提取到的水印信息;将提取到的S个比特的水印信息进行组合,得到所述水印的二进制序列。
11.根据权利要求10所述的装置,其特征在于,所述提取模块,还被配置为若提取到的水印信息为1的像素块数量大于提取到的水印信息为0的像素块数量,则确定在所述分组内提取到的水印信息为1;若提取到的水印信息为0的像素块数量大于提取到的水印信息为1的像素块数量,则确定在所述分组内提取到的水印信息为0。
12.根据权利要求10所述的装置,其特征在于,所述提取模块,还被配置为若提取到的水印信息为1的像素块数量大于目标比例,则确定在所述分组内提取到的水印信息为1;若提取到的水印信息为0的像素块数量大于所述目标比例,则确定在所述分组内提取到的水印信息为0。
13.根据权利要求10所述的装置,其特征在于,所述提取模块,还被配置为获取所述像素块的像素值方差,若所述像素值方差大于目标阈值,则执行所述获取所述像素块的像素矩阵的步骤。
14.根据权利要求10所述的装置,其特征在于,所述确定模块,还被配置为对于所述多个分组中的每个分组,获取所述分组包括的每个像素块的像素值方差;根据获取到的像素值方差,在所述多个分组中确定像素值方差最大的S个分组,得到属于所述水印嵌入区域的所述S个分组。
15.根据权利要求10所述的装置,其特征在于,所述确定模块,还被配置为获取定位码的长度,所述定位码用于定位所述水印嵌入区域;获取水印添加过程用于嵌入所述定位码的目标掩模以及所述目标掩模的长度;根据所述定位码的长度、所述目标掩模以及所述目标掩模的长度,在所述目标图像中提取所述定位码;根据所述定位码在所述多个分组中确定所述S个分组。
16.根据权利要求15所述的装置,其特征在于,所述定位码分别嵌入在所述S个分组开头部分的连续X个分组内以及结尾部分的连续X个分组内,其中,X为正整数,X指代所述定位码的长度;所述X个分组中的每个分组内分别嵌入有所述定位码的一个比特定位信息。
17.根据权利要求10至16中任一项权利要求所述的装置,其特征在于,所述装置还用于:在所述目标图像中的多个起始位置处分别执行水印提取处理;若在任意一个起始位置处成功提取到用于定位水印嵌入区域的定位码,则将所述起始位置处确定为未进行裁剪之前的原始水印图像的像素块边界。
18.根据权利要求10至16中任一项权利要求所述的装置,其特征在于,所述提取模块,还被配置为将提取到的S个比特的水印信息进行组合,得到组合序列;对所述组合序列进行纠错译码,得到所述水印的二进制序列。
19.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至9中任一项所述的水印提取方法。
20.一种存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1至9中任一项所述的水印提取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010296419.1A CN113538197B (zh) | 2020-04-15 | 2020-04-15 | 水印提取方法、装置、存储介质以及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010296419.1A CN113538197B (zh) | 2020-04-15 | 2020-04-15 | 水印提取方法、装置、存储介质以及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113538197A CN113538197A (zh) | 2021-10-22 |
CN113538197B true CN113538197B (zh) | 2022-12-27 |
Family
ID=78120150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010296419.1A Active CN113538197B (zh) | 2020-04-15 | 2020-04-15 | 水印提取方法、装置、存储介质以及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113538197B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117370944A (zh) * | 2022-06-30 | 2024-01-09 | 中兴通讯股份有限公司 | 水印嵌入方法、水印提取方法、电子设备、存储介质 |
CN116703686B (zh) * | 2023-08-01 | 2023-12-22 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、设备及存储介质 |
CN117061768B (zh) * | 2023-10-12 | 2024-01-30 | 腾讯科技(深圳)有限公司 | 视频水印处理方法、装置、电子设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833746B (zh) * | 2010-04-23 | 2012-05-30 | 北京大学 | 一种数字图像中可逆水印的嵌入方法及其提取方法 |
CN103106636A (zh) * | 2013-02-28 | 2013-05-15 | 大连民族学院 | 一种基于奇异值分解的灰度图像水印嵌入和提取方法 |
CN106447590B (zh) * | 2016-10-11 | 2019-08-30 | 华南理工大学 | 数字图像中水印的加入及提取方法 |
-
2020
- 2020-04-15 CN CN202010296419.1A patent/CN113538197B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113538197A (zh) | 2021-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113538197B (zh) | 水印提取方法、装置、存储介质以及电子设备 | |
US8774451B2 (en) | Method and apparatus for embedding a watermark image in a host image | |
US20230008085A1 (en) | Method for embedding watermark in video data and apparatus, method for extracting watermark in video data and apparatus, device, and storage medium | |
Rajput et al. | Image tamper detection and self-recovery using multiple median watermarking | |
CN111768327A (zh) | 基于深度学习的水印添加、提取方法、设备及存储介质 | |
Korus et al. | Towards practical self-embedding for JPEG-compressed digital images | |
CN111107370B (zh) | 视频水印的嵌入处理方法、装置、电子设备及存储介质 | |
EP1908007B1 (en) | Image watermarking | |
El-sayed et al. | Adaptive difference expansion-based reversible data hiding scheme for digital images | |
KR102637177B1 (ko) | 워터마크 기반의 이미지 무결성 검증 방법 및 장치 | |
CN105160619B (zh) | 一种图像水印检测方法 | |
CN109859090B (zh) | 基于人类视觉***的可逆水印方法及装置 | |
Li et al. | A new robust watermarhing scheme based on shuffled frog leaping algorithm | |
CN113538198B (zh) | 水印添加方法、装置、存储介质以及电子设备 | |
Huynh-The et al. | Robust image watermarking framework powered by convolutional encoder-decoder network | |
CN116962851A (zh) | 多媒体版权保护方法及装置 | |
US11423506B2 (en) | Video frame to frame difference watermarking with drm metadata | |
Chalamala et al. | Local binary patterns for digital image watermarking | |
CN112004148A (zh) | 视频处理方法、装置、计算机设备及存储介质 | |
Thanh et al. | Comparison of watermarking schemes using linear and nonlinear feature matching | |
JP2007036652A (ja) | 画像処理方法および画像処理装置およびプログラムおよび記憶媒体 | |
CN117499665B (zh) | 一种基于灰度值量化的图像数据嵌入和提取方法、装置 | |
CN117291787B (zh) | 一种基于数据水印的追溯方法及*** | |
Lv et al. | Using QRCode to Enhance Extraction Efficiency of Video Watermark Algorithm | |
Shakeri et al. | A robust zero-watermarking scheme using Canny edge detector |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |