水印嵌入以及提取方法、装置及电子设备与流程

文档序号:18872541发布日期:2019-10-14 19:52阅读:176来源:国知局
水印嵌入以及提取方法、装置及电子设备与流程

本申请涉及计算机技术领域,具体涉及一种水印嵌入方法、装置及电子设备。本申请同时涉及一种水印提取方法、装置及电子设备。



背景技术:

数字水印技术可用于所有权证明、泄露溯源、标注等应用。在某些应用中,对于提取水印的准确性有着比较严格的要求。

例如,在泄露溯源应用中,嵌入的信息通常是某个实体的标识信息,溯源要求必须准确地提取到实体的标识信息,否则就会误判“冤枉好人”,这种溯源技术也就失去了意义;例如,某个客户端将错误信息以水印信息的形式嵌入到图像中,服务端收到图像后,提取水印信息以确定是何种错误,如果提取到不完整的水印信息,服务端就无法正确判断是何种原因引起的错误;再如,以商品id作为水印信息嵌入的,如果提取了错误的水印信息,比如原本是儿童用品的标识,由于错误提取可能变成成人用品的标识,这是很难接受的。

因此,在某些场景下,需要准确提取嵌入到载体对象中的水印信息。



技术实现要素:

本申请提供一种水印嵌入方法以及一种水印提取方法,以提高提取嵌入到载体对象中的水印信息的准确度。

本申请提供一种水印嵌入方法,所述方法包括:

对水印信息进行编码,生成第一比特序列,其中,所述第一比特序列包括至少一个比特子序列;

在预先设定的至少一个模板中,确定所述第一比特序列中的比特子序列对应的模板;

将与所述比特子序列对应的模板编码为第二比特序列;

将所述第二比特序列嵌入到载体对象中。

可选的,所述对水印信息进行编码,生成第一比特序列,包括:

对水印信息进行编码,得到水印信息比特序列;

根据所述水印信息比特序列和校验位,生成所述第一比特序列。

可选的,所述方法还包括:

根据预先设定的模板的数量确定每个模板对应的比特位数;

将所述第一比特序列按照所述比特位数进行分组,得到至少一个比特子序列。

可选的,所述方法还包括:如果将所述第一比特序列按照所述比特位数进行分组后,所述第一比特序列中还有数量小于所述比特位数的第一比特位未被分组,则在所述第一比特位的基础上,填充第二比特位,其中,所述第一比特位与所述第二比特位构成一个比特子序列,所述第一比特位的数量与所述第二比特位的数量之和等于所述比特位数。

可选的,所述第一比特序列中的每个比特子序列分别对应一个模板。

可选的,所述第一比特序列中的多个比特子序列对应相同的模板。

可选的,所述模板为图形或图像。

可选的,所述将与所述比特子序列对应的模板编码为第二比特序列,包括:

对与所述比特子序列对应的模板包含的像素点进行编码,生成第二比特序列。

可选的,所述将所述第二比特序列嵌入到载体对象中,包括:

将所述模板对应的第二比特序列逐比特嵌入到载体对象中。

可选的,所述将所述第二比特序列嵌入到载体对象中,包括:

至少将一个模板对应的第二比特序列多次嵌入到载体对象中。

可选的,所述方法还包括:

将对应同一个模板的多个第二比特序列在所有第二比特序列中的位置信息通知给水印提取端。

可选的,所述预先设定的至少一个模板为预先设定的多组模板中的一组模板,每组模板都包括至少一个模板;

所述方法还包括:将与所述比特子序列对应的模板所在组别的信息通知给水印提取端。

本申请还提供一种水印提取方法,所述方法包括:

提取载体对象中嵌入的第二比特序列,其中,所述第二比特序列是对模板编码后得到的比特序列;

根据所述第二比特序列,得到与所述第二比特序列对应的模板;

根据得到的模板与预先设定的至少一个模板,确定水印提取结果;

其中,所述预先设定的至少一个模板与水印信息对应。

可选的,所述模板为图形或图像。

可选的,所述第二比特序列是对模板包含的像素点编码后得到的比特序列。

可选的,所述根据得到的模板与预先设定的至少一个模板,确定水印提取结果,包括:

根据得到的模板与预先设定的至少一个模板,判断得到的模板是否有效;

根据得到的模板是否有效的判断结果,确定水印提取结果。

可选的,所述根据得到的模板与预先设定的至少一个模板,判断得到的模板的有效性,包括:

确定得到的模板中的第一模板与预先设定的至少一个模板的相似度;

如果第一模板与预先设定的至少一个模板的相似度不小于预设的第一相似度阈值,则确定所述第一模板为有效模板;

如果所述第一模板与预先设定的任意一个模板的相似度都小于预设的第一相似度阈值,则确定所述第一模板为无效模板。

可选的,所述根据得到的模板是否有效的判断结果,确定水印提取结果,包括:

当确定同一个模板仅被嵌入一次到所述载体对象时,如果得到的每个模板均为有效模板,则根据与有效模板匹配的预先设定的模板与水印信息的对应关系,确定有效模板对应的水印信息;

如果得到的模板中包含至少一个无效模块,则确定水印提取失败。

可选的,所述根据得到的模板是否有效的判断结果,确定水印提取结果,包括:

当确定同一个模板被嵌入多次到所述载体对象时,

如果得到的每组模板中均有至少一个模板为有效模板,则根据与有效模板匹配的预先设定的模板对应的水印信息,确定有效模板对应的水印信息;

如果得到的所有组模板中至少有一组模板不包含有效模板,则确定水印提取失败;

其中,得到的模板被划分为至少一个组,每组模板与被多次嵌入到载体对象中的同一个模板对应。

可选的,所述方法还包括:

确定在所有第二比特序列中对应同一个模板的多个第二比特序列;

将所述对应同一个模板的多个第二比特序列分别对应的模板划分为一组模板。

可选的,所述确定在所有第二比特序列中对应同一个模板的多个第二比特序列,包括:获得水印嵌入端提供的对应同一个模板的多个第二比特序列在所有第二比特序列中的位置信息。

可选的,所述根据与有效模板匹配的预先设定的模板对应的水印信息,确定有效模板对应的水印信息,包括:

根据比特子序列与所述匹配的预先设定的模板的对应关系,确定有效模板对应的比特子序列;

根据比特子序列获得第一比特序列;

根据所述第一比特序列获得水印信息;

其中,所述第一比特序列包括至少一个比特子序列,所述第一比特序列是对水印信息编码后得到的比特序列。

可选的,所述根据比特子序列获得第一比特序列,包括:

将所述比特子序列组合为所述第一比特序列。

可选的,所述第一比特序列中包含校验位;

所述方法还包括:

根据校验位进行校验,如果校验成功,则确定提取水印成功,否则,确定提取水印失败。

可选的,所述预先设定的至少一个模板为预先设定的多组模板中的一组模板,每组模板都包括至少一个模板;

所述方法还包括:确定水印嵌入端使用的预先设定的至少一个模板所在的组别信息;

所述根据得到的模板与预先设定的至少一个模板,确定水印提取结果,包括:根据得到的模板与水印嵌入端使用的预先设定的一组模板,确定水印提取结果。

本申请还提供一种水印嵌入装置,所述装置包括:

第一比特序列生成单元,用于对水印信息进行编码,生成第一比特序列,其中,所述第一比特序列包括至少一个比特子序列;

模板确定单元,用于在预先设定的至少一个模板中,确定所述第一比特序列中的比特子序列对应的模板;

第二比特序列生成单元,用于将与所述比特子序列对应的模板编码为第二比特序列;

第二比特序列嵌入单元,用于将所述第二比特序列嵌入到载体对象中。

本申请还提供一种水印提取装置,所述装置包括:

第二比特序列提取单元,用于提取载体对象中嵌入的第二比特序列,其中,所述第二比特序列是对模板编码后得到的比特序列;

模板获得单元,用于根据所述第二比特序列,得到与所述第二比特序列对应的模板;

提取结果确定单元,用于根据得到的模板与预先设定的至少一个模板,确定水印提取结果;

其中,所述预先设定的至少一个模板与水印信息对应。

本申请另外提供一种电子设备,包括:

处理器;以及

存储器,用于水印嵌入方法的程序,该设备通电并通过所述处理器运行该水印嵌入方法的程序后,执行下述步骤:

对水印信息进行编码,生成第一比特序列,其中,所述第一比特序列包括至少一个比特子序列;

在预先设定的至少一个模板中,确定所述第一比特序列中的比特子序列对应的模板;

将与所述比特子序列对应的模板编码为第二比特序列;

将所述第二比特序列嵌入到载体对象中。

本申请还提供一种电子设备,包括:

处理器;以及

存储器,用于水印提取方法的程序,该设备通电并通过所述处理器运行该水印提取方法的程序后,执行下述步骤:

提取载体对象中嵌入的第二比特序列,其中,所述第二比特序列是对模板编码后得到的比特序列;

根据所述第二比特序列,得到与所述第二比特序列对应的模板;

根据得到的模板与预先设定的至少一个模板,确定水印提取结果;

其中,所述预先设定的至少一个模板与水印信息对应。

本申请还提供一种存储设备,

存储有用于存储水印嵌入方法的程序,该程序被处理器运行,执行下述步骤:

对水印信息进行编码,生成第一比特序列,其中,所述第一比特序列包括至少一个比特子序列;

在预先设定的至少一个模板中,确定所述第一比特序列中的比特子序列对应的模板;

将与所述比特子序列对应的模板编码为第二比特序列;

将所述第二比特序列嵌入到载体对象中。

本申请另外提供一种存储设备,存储有用于水印提取方法的程序,该程序被处理器运行,执行下述步骤:

提取载体对象中嵌入的第二比特序列,其中,所述第二比特序列是对模板编码后得到的比特序列,所述模板与全部的水印信息或部分水印信息对应;

根据所述第二比特序列,得到与所述第二比特序列对应的模板;

根据得到的模板与预先设定的至少一个模板,确定水印提取结果;

其中,所述预先设定的至少一个模板与水印信息对应。

与现有技术相比,本申请具有以下优点:

本申请提供的水印嵌入方法、装置及电子设备,通过将水印信息转化为对应的模板,再将对模板编码后得到的比特序列嵌入到载体对象中,为提取水印时根据模板确定水印信息提取结果提供了条件,提高了提取嵌入到载体对象中的水印信息的准确度。

本申请提供的水印提取方法、装置及电子设备,从载体对象中提取出与水印信息对应的模板,根据得到的模板与实际嵌入到载体对象中的模板,确定水印提取结果,提高了提取嵌入到载体对象中的水印信息的准确度。

附图说明

图1是本申请第一实施例提供的一种水印嵌入方法的流程图。

图2是本申请第一实施例提供的预先设定的模板的示意图。

图3是本申请第一实施例提供的水印嵌入过程的示意图。

图4是本申请第二实施例提供的一种水印提取方法的流程图。

图5是本申请第二实施例提供的水印提取过程的示意图。

图6是本申请第三实施例提供的一种水印嵌入装置的示意图。

图7是本申请第四实施例提供的一种水印提取装置的示意图。

图8是本申请第五实施例提供的一种电子设备的示意图。

图9是本申请第六实施例提供的另一种电子设备的示意图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。

本申请第一实施例提供了一种水印嵌入方法。请参考图1、图2,图1示出了本申请第一实施例提供的一种水印嵌入方法的流程图,图2本申请第一实施例提供的预先设定的模板的示意图,图3是本申请第一实施例提供的水印嵌入过程的示意图。以下结合图1、图2、图3进行详细说明。

如图1所示,在步骤s101中,对水印信息进行编码,生成第一比特序列,其中,所述第一比特序列包括至少一个比特子序列。

所述水印信息,指在载体对象中加入的额外信息,额外信息具有特定的含义。例如,某个客户端将错误信息以水印信息的形式嵌入到图像中,服务端收到图像后,提取水印信息以确定是何种错误。再例如,有些情况下,是以商品id作为水印信息嵌入到图像中的,例如商品id为“123456”。

所述对水印信息进行编码,生成第一比特序列,可以指对水印信息进行二进制编码,将其转化为对应的二进制序列。例如,如果水印信息为“123456”,可以将其中的每个数字转化为一个字节的二进制编码,则生成一个比特序列为“000000010000001000000011000001000000010100000110”,作为一个实施例,这个比特序列即为第一比特序列。

优选的,为了增加水印信息的可靠性,可以在水印信息中添加校验位,以便在提取水印信息时使用校验码确定提取是否成功。此时对水印信息进行编码,生成第一比特序列,包括:

对水印信息进行编码,得到水印信息比特序列;

根据所述水印信息比特序列和校验位,生成所述第一比特序列。

需要说明的是,在水印信息中添加校验位的位数没有严格的限制,可以根据实际情况进行添加,校验位可以添加到比特序列的尾部。例如,如果模板的个数为16个,每个模板对应4比特信息,水印信息比特序列为6个字节,则可以在比特序列后添加2个字节作为校验位。再如,如果模板的个数为32个,每个模板对应5比特信息,水印信息比特序列为8个字节(64位),则可以在比特序列后添加1位校验位,使第一比特序列为模板比特信息的整数倍(13倍)。

如图1所示,在步骤s102中,在预先设定的至少一个模板中,确定所述第一比特序列中的比特子序列对应的模板。

所述模板,可以为图形或图像。

在实际应用中,可以预先设定一个模板,也可以设定多个模板,为了使模板之间保持尽可能大的差异,预先设定的模板数量不宜过多,例如设定为8个或16个。如图2所示,预先设定8个模板,每个模板可以对应3比特位数,8个模板分别对应的比特位例如为000,001,010,011,100,101,110,111。如果预先设定的模板数量为16个,则每个模板可以对应4比特位数,16个模板分别对应的比特位例如为0000,0001,0010,0011,0100,0101,0110,0111,1000,1001,1010,1011,1100,1101,1110,1111,以此类推,如果预先设定的模板数量为32个,则每个模板可以对应5比特位数。

比特子序列,指第一比特序列的子序列,比特子序列的比特位数与预先设定的模板对应的比特位数相同。比特子序列可以通过下述方式得到:根据预先设定的模板的数量确定每个模板对应的比特位数;将所述第一比特序列按照所述比特位数进行分组,得到至少一个比特子序列。例如,如果模板对应3比特位数,则一个比特子序列也对应3比特位数。例如,生成的第一比特序列为“000000010000001000000011000001000000010100000110”,则将上述第一比特序列按照每个模板对应的比特位数进行分组,得到比特子序列分别为:“000”,“000”,“010”,“000”,“001”,“000”,“000”,“011”,“000”,“001”,“000”,“000”,“010”,“100”,“000”,“110”。

需要说明的是,如果将所述第一比特序列按照所述比特位数进行分组后,所述第一比特序列中还有数量小于所述比特位数的第一比特位未被分组,则在所述第一比特位的基础上,填充第二比特位,其中,所述第一比特位与所述第二比特位构成一个比特子序列,所述第一比特位的数量与所述第二比特位的数量之和等于所述比特位数。例如,如果模板的个数为32个,每个模板的比特位数为5,水印信息第一比特序列为8个字节(64位),则第一比特序列可以分为12组,还有4个第一比特位未被分组,则可以在第一比特位的基础上,填充1个第二比特位,使第一比特位的数量4与所述第二比特位的数量1之和等于比特位数5。

根据比特子序列与模板的对应关系,在预先设定的至少一个模板中,确定所述第一比特序列中的比特子序列对应的模板,可以指根据模板对应的比特信息将模板与比特子序列对应起来。第一比特序列中的每个比特子序列可以分别对应一个模板。仍沿用上述例子,上述第一比特序列包括的比特子序列分别为:“000”,“000”,“010”,“000”,“001”,“000”,“000”,“011”,“000”,“001”,“000”,“000”,“010”,“100”,“000”,“110”,则其可以分别对应模板比特信息为“000”,“000”,“010”,“000”,“001”,“000”,“000”,“011”,“000”,“001”,“000”,“000”,“010”,“100”,“000”,“110”的模板。

需要说明的是,在某些情况下,第一比特序列中的一部分或全部比特子序列对应的模板为同一个模板,例如,如果第一比特序列包含8个比特子序列,其子序列全部为“101”,则8个比特子序列都对应模板比特信息为“101”的模板。

通过步骤s101与步骤s102,将需要嵌入载体对象的水印信息转换成了对应的模板信息。

如图1所示,在步骤s103中,将与所述比特子序列对应的模板编码为第二比特序列。

在确定所述第一比特序列中的比特子序列对应的模板后,需要将比特子序列对应的模板嵌入到载体对象中。

所述第二比特序列,指需要嵌入到载体对象中的比特序列。

所述将与所述比特子序列对应的模板编码为第二比特序列,包括:

对与所述比特子序列对应的模板包含的像素点进行编码,生成第二比特序列。

如图2所示,如果比特子序列对应的模板的比特信息为“101”、“110”,则对比特信息为“101”、“110”的模板包含的像素点进行编码,生成第二比特序列,例如,一个模板包含16*16个像素点,并且模板为黑白二值图像,则生成的第二比特序列可以为一个包含256个比特位的序列,每个比特位表示一个像素点的像素值,1代表白色,0代表黑色。

如图1所示,在步骤s104中,将所述第二比特序列嵌入到载体对象中。

所述载体对象,可以指需要嵌入水印信息的对象,例如,图3中的原始图片。

在实际应用中,可以将第二比特序列逐比特嵌入到载体对象中。

如图3所示,将第二比特序列“01010101010101010101010101010101”嵌入到原始图片中,生成含水印图片。

在实际应用中,当预估嵌入水印信息后的载体对象被压缩的比较严重时,嵌入时可以对模板对应的第二比特序列进行冗余嵌入,即可以至少将一个模板对应的第二比特序列多次嵌入到载体对象中,这样可以提高后续提取水印信息的准确度。例如,可以将同一个模板对应的第二比特序列在载体对象中嵌入5次,这样,载体对象被嵌入了5个对应于同一个模板的第二比特序列。

当同一个模板被多次嵌入到载体对象时,为了保证水印提取端能够明确哪些模板对应同一个模板的信息,水印嵌入端可以将对应同一个模板的多个第二比特序列在所有第二比特序列中的位置信息通知给水印提取端。例如,嵌入端可以单独发送位置信息通知给提取端,嵌入端也可以在载体对象中携带位置信息。例如,如果模板1嵌入了5次,其对应的5个第二比特序列在所有第二比特序列中的位置次序分别为第1,6,11,16,21个第二比特序列,则可以将第二比特序列1,6,11,16,21为同一模板的信息通知给水印提取端。当然,水印嵌入端与水印提取端也可以预先约定对应同一个模板的多个第二比特序列在所有第二比特序列中的位置。

需要说明的是,预先设定的模板可能有一组以上,每组模板都包括至少一个模板,此时水印嵌入端可以通知水印提取端使用哪组模板。水印嵌入端可以将与所述比特子序列对应的模板所在组别的信息通知给水印提取端。

例如,有两组预先设定的模板,其中一组包括32个模板,另一组包括16个模板,如果嵌入时使用的预先设定的模板包括16个模板,则水印嵌入端可以通知水印提取端使用包含16个模板的预先设定的那组模板。

与上述水印嵌入方法对应的,本申请第二实施例提供了一种水印提取方法。请参考图4和图5,图4示出了本申请第二实施例提供的一种水印提取方法的流程图,图5本申请第二实施例提供的水印提取过程的示意图。以下结合图4、和图5进行详细说明。

如图4所示,在步骤s401中,提取载体对象中嵌入的第二比特序列,其中,所述第二比特序列是对模板编码后得到的比特序列,所述模板与全部的水印信息或部分水印信息对应。

所述载体对象,可以指需要嵌入水印信息的对象,例如,图3中的原始图片。

所述模板可以为图形或图像。

所述第二比特序列是对模板编码后得到的比特序列,所述模板与全部的水印信息或部分水印信息对应。例如,一个模板可以与对水印信息编码后得到的所有比特序列或所有比特序列中的部分比特序列对应。

所述第二比特序列可以是对模板包含的像素点编码后得到的比特序列。

例如,如果嵌入的模板的比特信息为“101”、,则对比特信息为“101”模板包含的像素点编码生成第二比特序列,假如模板包含16*16个像素点,并且模板为黑白二值图像,则生成的第二比特序列可以为一个包含256个比特位的序列,每个比特位表示一个像素点的像素值,可以用1或0表示,其中,1代表白色,0代表黑色。则提取出的第二比特序列为一个包含256个比特位的序列。

如图4所示,在步骤s402中,根据所述第二比特序列,得到与所述第二比特序列对应的模板。

如果模板为图形或图像,根据所述第二比特序列,得到与所述第二比特序列对应的模板,可以根据第二比特序列对应的模板的像素点的像素值,得到与所述第二比特序列对应的模板。

如图4所示,在步骤s403中,根据得到的模板与预先设定的至少一个模板,确定水印提取结果。其中,所述预先设定的至少一个模板与水印信息对应。

由于第二比特序列有可能在嵌入到载体对象中后被破坏,并且得到的模板是由第二比特序列恢复出来的,因此并非所有得到的第二比特序列对应的模板都是有效的,在得到第二比特序列对应的模板后,还需要判断得到的模板的有效性。所述根据得到的模板与预先设定的至少一个模板,确定水印提取结果,包括:根据得到的模板与预先设定的至少一个模板,判断得到的模板是否有效;根据得到的模板是否有效的判断结果,确定水印提取结果。

具体的,根据得到的模板与预先设定的至少一个模板,判断得到的模板的有效性,可以包括:

确定所述得到的模板中的第一模板与预先设定的至少一个模板的相似度;

如果第一模板与预先设定的至少一个模板的相似度不小于预设的第一相似度阈值,则确定所述第一模板为有效模板;

如果所述第一模板与预先设定的任意一个模板的相似度都小于预设的第一相似度阈值,则确定所述第一模板为无效模板。

所述第一模板,可以指得到的所有模板中的任意一个模板。

下面举例说明根据得到的模板与预先设定的至少一个模板,判断得到的模板的有效性。例如,假设预设的第一相似度阈值为80%,得到的模板中的第一模板为模板1,其包含16*16个像素,预先设定的任意一个模板也包含16*16个像素,模板1的第二比特序列包含256个元素,则将上述第二比特序列与预先设定的任意一个模板的像素点对应的比特序列进行比较,如果与其中至少一个模板的相似度不小于预设的第一相似度阈值80%,则确定所述模板1为有效模板;如果模板1与预先设定的任意一个模板的相似度都小于预设的第一相似度阈值80%,则确定所述模板1为无效模板。

根据得到的模板是否有效的判断结果,确定水印提取结果,可以包括以下两种情况:

一种情况是:

当确定同一个模板仅被嵌入一次到所述载体对象时,如果得到的每个模板均为有效模板,则根据与有效模板匹配的预先设定的模板与水印信息的对应关系,确定有效模板对应的水印信息;

如果得到的模板中包含至少一个无效模块,则确定水印提取失败。

例如,如果嵌入了6个不同的模板到载体对象,每个模板仅被嵌入一次,如果得到6个模板,每个模板均为有效模板,则根据与有效模板匹配的预先设定的模板与水印信息的对应关系,确定有效模板对应的水印信息;如果得到的模板中包含1个无效模块,则确定水印提取失败。

另一种情况是:当确定同一个模板被嵌入多次到所述载体对象时,

如果得到的每组模板中均有至少一个模板为有效模板,则根据与有效模板匹配的预先设定的模板对应的水印信息,确定有效模板对应的水印信息;

如果得到的所有组模板中至少有一组模板不包含有效模板,则确定水印提取失败;

其中,得到的模板被划分为至少一个组,每组模板与被多次嵌入到载体对象中的同一个模板对应。

例如,如果实际嵌入到所述载体对象中的模板的数量为6个,其中每个模板嵌入3次,共嵌入18个模板,提取出18个模板序号为1-18,被分为6组,每组模板与被多次嵌入到载体对象中的同一个模板对应,如果每组模板中均有至少一个模板为有效模板,则根据与有效模板匹配的预先设定的模板对应的水印信息,确定有效模板对应的水印信息;如果其中有一组模板不包括有效模板,则确定水印提取失败。

具体的,得到的模板可以采取下列方式被划分为至少一个组:

确定在所有第二比特序列中对应同一个模板的多个第二比特序列;

将所述对应同一个模板的多个第二比特序列分别对应的模板划分为一组模板。

需要说明的是,确定在所有第二比特序列中对应同一个模板的多个第二比特序列,包括:获得水印嵌入端提供的对应同一个模板的多个第二比特序列在所有第二比特序列中的位置信息。

进一步的,如果有多个有效模板与同一个预先设定的模板的相似度在预先设定的相似度范围内,则确定所述多个有效模板中的一个有效模板作为与所述同一个预先设定的模板相似度接近的第一有效模板;此时,根据与有效模板匹配的预先设定的模板对应的水印信息,确定有效模板对应的水印信息,包括:根据与第一有效模板匹配的预先设定的模板对应的水印信息,确定第一有效模板对应的水印信息。

例如,当将同一个模板5次嵌入到载体对象中时,则可能出现5个有效模板与同一个预先设定的模板的相似度在预先设定的相似度范围内的情况,则需要去除冗余,只保留一个与同一个预先设定的模板相似度最接近的模板作为第一有效模板即可。假设提取出的5个模板的序号为1、2、3、4、5,其中1、3、4、5号模板为有效模板,2号模板为无效模板,若1、3、4、5号模板与同一个预先设定的模板的相似度由大到小依次排序为3号模板、1号模板、5号模板、4号模板,则将3号模板作为第一有效模板。

如果有多个有效模板与同一个预先设定的模板的相似度在预先设定的相似度范围内,除了采用上述的方式外,还可以将多个有效模板对应的同一个预先设定的模板作为这一组得到的模板对应的预先设定的模板。

仍沿用上面的例子,如果提取出的5个模板的序号为1、2、3、4、5,其中1、3、4、5号模板为有效模板,则可以将1、3、4、5号模板对应的同一个预先设定的模板作为这一组得到的模板对应的预先设定的模板。

在实际应用中,将同一个模板多次嵌入到载体对象后,在提取模板时可能出现多个模板与同一个预先设定的模板的相似度相同,并且相似度高于其他模板与所述同一个预先设定的模板的相似度的情况,此时可以从这些相似度相同的模板中选择一个模板作为第一有效模板。

例如,将同一个模板3次嵌入到载体对象后,提取出的模板有两个与同一个预先设定的模板的相似度在预先设定的相似度范围内且相似度相同,另外一个模板与预先设定的任意一个模板的相似度都小于预先设定的相似度,此时可以从上述两个模板中选择一个模板作为第一有效模板。

此外,如果一组得到的模板中有一个以上的有效模板,并且多个有效模板均对应不同的预先设定的模板,此时可以有两种做法:一种是确认水印提取失败,另一种是选相似度最大的预先设定的模板作为这组得到的模板对应的预先设定的模板。

例如,如果一组得到的模板为模板1、模板2、模板3,其中模板1、模板2为有效模板,模板3为无效模板,模板1与预先设定的模板a相似、模板2与预先设定的模板b相似,模板1与模板a的相似度大于模板2与模板b的相似度,则将模板a作为这组得到的模板对应的预先设定的模板。

需要说明的是,提取失败的可能原因是载体对象携带的水印信息被破坏或者载体对象未携带水印信息。为了确定提取失败的具体原因,可以基于预先设定的第二相似度阈值来确定水印提取失败的原因。例如,如果提取的模板与所有预设模板的相似度低于第二相似度阈值,则认为该载体对象中未嵌入水印信息;如果提取的模板与某个预设模板的相似度高于第二相似度阈值但小于第一相似度阈值,则认为该载体对象中水印信息被破坏。

具体的,根据与有效模板匹配的预先设定的模板对应的水印信息,确定有效模板对应的水印信息,包括:

根据比特子序列与所述匹配的预先设定的模板的对应关系,确定有效模板对应的比特子序列;

根据比特子序列获得第一比特序列,根据所述第一比特序列获得水印信息,其中,所述第一比特序列包括至少一个比特子序列,所述第一比特序列是对水印信息编码后得到的比特序列。

所述根据比特子序列获得第一比特序列,包括:将所述比特子序列组合为所述第一比特序列。

所述根据比特子序列与模板的对应关系,确定得到的模板对应的比特子序列,为本申请第一实施例中根据比特子序列与模板的对应关系,在预先设定的至少一个模板中,确定所述第一比特序列中的比特子序列对应的模板的逆过程。

所述根据比特子序列获得第一比特序列,根据所述第一比特序列获得水印信息,可以指将所有比特子序列拼接为第一比特序列,然后再将第一比特序列转换为实际水印信息。

在得到第一比特序列后,还可以获得其中的校验位;根据校验位进行校验,如果校验成功,则确定提取水印成功,否则,确定提取水印失败。

通过校验环节,可以确保提取的水印信息为正确信息,避免了提取出错误的水印信息并使用错误水印信息。

例如,以商品id作为水印信息嵌入到图像中的,如果用户购买的是儿童商品,其商品id为“123456”,如果提取的商品id为“12345”,正好此商品为成人用品,通过校验环节,确定提取水印失败,避免了使用提取出的错误商品id。

再如,某个订餐网站,客户下单的商品为“红烧牛肉”,其编号为“1234”,将“1234”作为水印信息嵌入到订单图像中,如果提取出的水印信息为编号“1235”,其对应的商品为“锅包肉”,通过校验环节,确定提取水印失败,则避免了使用提取出的错误商品id。

需要说明的是,预先设定的至少一个模板可以为预先设定的多组模板中的一组模板,每组模板都包括至少一个模板;此时还需要确定水印嵌入端使用的预先设定的至少一个模板所在的组别信息;根据得到的模板与预先设定的至少一个模板,确定水印提取结果,包括:根据得到的模板与水印嵌入端使用的预先设定的一组模板,确定水印提取结果。

需要说明的是,水印嵌入方法可以在嵌入端执行,水印提取方法可以在提取端执行。为了保证提取端能够准确获得水印嵌入时的相关信息,例如校验位信息、同一个模板被嵌入的次数、模板嵌入的次序、实际嵌入到载体对象中的模板的数量、模板与比特子序列的对应关系等,嵌入端可以采取通知提取端的方式,或者采用嵌入端与提取端预先约定的方式,保证提取端能够准确获得水印嵌入时的相关信息。例如,嵌入端可以单独发送消息将水印嵌入时的相关信息通知给提取端,嵌入端也可以在载体对象中携带水印嵌入时的相关信息。

例如,为了保证提取端能够准确获得实际嵌入到载体对象中的模板的数量,提取端可以采取通知提取端的方式通知提取端嵌入的有效模板的数量,或者采用嵌入端与提取端预先约定的方式,例如,可以在最后一个第二比特序列尾部设置结束标志,例如,设置8个比特位“00000000”为结束标志,则结束标志之前的比特序列为嵌入的模板对应的第二比特序列。

与上述提供的一种水印嵌入方法相对应的,本申请第三实施例还提供了一种水印嵌入装置。如图6所示,水印嵌入装置包括:第一比特序列生成单元601、模板确定单元602、第二比特序列生成单元603、第二比特序列嵌入单元604。

第一比特序列生成单元601,用于对水印信息进行编码,生成第一比特序列,其中,所述第一比特序列包括至少一个比特子序列;

模板确定单元602,用于在预先设定的至少一个模板中,确定所述第一比特序列中的比特子序列对应的模板;

第二比特序列生成单元603,用于将与所述比特子序列对应的模板编码为第二比特序列;

第二比特序列嵌入单元604,用于将所述第二比特序列嵌入到载体对象中。

可选的,所述第一比特序列生成单元,具体用于:

对水印信息进行编码,得到水印信息比特序列;

根据所述水印信息比特序列和校验位,生成所述第一比特序列。

可选的,所述装置,还包括:

根据预先设定的模板的数量确定每个模板对应的比特位数;

将所述第一比特序列按照所述比特位数进行分组,得到至少一个比特子序列。

可选的,所述装置,还包括:如果将所述第一比特序列按照所述比特位数进行分组后,所述第一比特序列中还有数量小于所述比特位数的第一比特位未被分组,则在所述第一比特位的基础上,填充第二比特位,其中,所述第一比特位与所述第二比特位构成一个比特子序列,所述第一比特位的数量与所述第二比特位的数量之和等于所述比特位数。

可选的,所述第一比特序列中的每个比特子序列分别对应一个模板。

可选的,所述第一比特序列中的多个比特子序列对应相同的模板。

可选的,所述模板为图形或图像。

可选的,第二比特序列生成单元,具体用于:

对与所述比特子序列对应的模板包含的像素点进行编码,生成第二比特序列。

可选的,第二比特序列嵌入单元,具体用于:

将所述模板对应的第二比特序列逐比特嵌入到载体对象中。

可选的,第二比特序列嵌入单元,具体用于:

至少将一个模板对应的第二比特序列多次嵌入到载体对象中。

可选的,所述装置还包括:

信息通知单元,用于将对应同一个模板的多个第二比特序列在所有第二比特序列中的位置信息通知给水印提取端。

可选的,所述预先设定的至少一个模板为预先设定的多组模板中的一组模板,每组模板都包括至少一个模板;

所述装置还包括:

组别信息通知单元,用于将与所述比特子序列对应的模板所在组别的信息通知给水印提取端。

需要说明的是,对于本申请第三实施例提供的水印嵌入装置的详细描述可以参考对本申请第一实施例的相关描述,这里不再赘述。

与上述提供的一种水印提取方法相对应的,本申请第四实施例还提供了一种水印提取装置。如图7所示,水印嵌入装置包括:第二比特序列提取单元701、模板获得单元702、提取结果确定单元703。

第二比特序列提取单元701,用于提取载体对象中嵌入的第二比特序列,其中,所述第二比特序列是对模板编码后得到的比特序列,所述模板与全部的水印信息或部分水印信息对应;

模板获得单元702,用于根据所述第二比特序列,得到与所述第二比特序列对应的模板;

提取结果确定单元703,用于根据得到的模板与预先设定的至少一个模板,确定水印提取结果;其中,所述预先设定的至少一个模板与水印信息对应。

可选的,所述模板为图形或图像。

可选的,所述第二比特序列是对模板包含的像素点编码后得到的比特序列。

可选的,所述根据得到的模板与预先设定的至少一个模板,确定水印提取结果,具体用于:

根据得到的模板与预先设定的至少一个模板,判断得到的模板是否有效;

根据得到的模板是否有效的判断结果,确定水印提取结果。

可选的,所述根据得到的模板与预先设定的至少一个模板,判断得到的模板的有效性,具体用于:

确定得到的模板中的第一模板与预先设定的至少一个模板的相似度;

如果第一模板与预先设定的至少一个模板的相似度不小于预设的第一相似度阈值,则确定所述第一模板为有效模板;

如果所述第一模板与预先设定的任意一个模板的相似度都小于预设的第一相似度阈值,则确定所述第一模板为无效模板。

可选的,所述根据得到的模板是否有效的判断结果,确定水印提取结果,具体用于:

当确定同一个模板仅被嵌入一次到所述载体对象时,如果得到的每个模板均为有效模板,则根据与有效模板匹配的预先设定的模板与水印信息的对应关系,确定有效模板对应的水印信息;

如果得到的模板中包含至少一个无效模块,则确定水印提取失败。

可选的,所述根据得到的模板是否有效的判断结果,确定水印提取结果,具体用于:

当确定同一个模板被嵌入多次到所述载体对象时,

如果得到的每组模板中均有至少一个模板为有效模板,则根据与有效模板匹配的预先设定的模板对应的水印信息,确定有效模板对应的水印信息;

如果得到的所有组模板中至少有一组模板不包含有效模板,则确定水印提取失败;

其中,得到的模板被划分为至少一个组,每组模板与被多次嵌入到载体对象中的同一个模板对应。

可选的,所述装置还包括:

确定单元,用于确定在所有第二比特序列中对应同一个模板的多个第二比特序列;

划分单元,用于将所述对应同一个模板的多个第二比特序列分别对应的模板划分为一组模板。

可选的,所述确定在所有第二比特序列中对应同一个模板的多个第二比特序列,具体用于:获得水印嵌入端提供的对应同一个模板的多个第二比特序列在所有第二比特序列中的位置信息。

可选的,所述根据与有效模板匹配的预先设定的模板对应的水印信息,确定有效模板对应的水印信息,具体用于:

根据比特子序列与所述匹配的预先设定的模板的对应关系,确定有效模板对应的比特子序列;

根据比特子序列获得第一比特序列;

根据所述第一比特序列获得水印信息;

其中,所述第一比特序列包括至少一个比特子序列,所述第一比特序列是对水印信息编码后得到的比特序列。

可选的,所述根据比特子序列获得第一比特序列,具体用于:

将所述比特子序列组合为所述第一比特序列。

可选的,所述第一比特序列中包含校验位;

所述装置还包括:

校验单元,用于根据校验位进行校验,如果校验成功,则确定提取水印成功,否则,确定提取水印失败。

可选的,所述预先设定的至少一个模板为预先设定的多组模板中的一组模板,每组模板都包括至少一个模板;

所述装置还包括:

组别确定单元,用于确定水印嵌入端使用的预先设定的至少一个模板所在的组别信息;

所述根据得到的模板与预先设定的至少一个模板,确定水印提取结果,具体用于:根据得到的模板与水印嵌入端使用的预先设定的一组模板,确定水印提取结果。

需要说明的是,对于本申请第四实施例提供的水印提取装置的详细描述可以参考对本申请第二实施例的相关描述,这里不再赘述。

本申请第五实施例提供一种电子设备,如图8所示,包括:

处理器801;以及

存储器802,用于水印嵌入方法的程序,该设备通电并通过所述处理器运行该水印嵌入方法的程序后,执行下述步骤:

对水印信息进行编码,生成第一比特序列,其中,所述第一比特序列包括至少一个比特子序列;

在预先设定的至少一个模板中,确定所述第一比特序列中的比特子序列对应的模板;

将与所述比特子序列对应的模板编码为第二比特序列;

将所述第二比特序列嵌入到载体对象中。

可选的,所述对水印信息进行编码,生成第一比特序列,包括:

对水印信息进行编码,得到水印信息比特序列;

根据所述水印信息比特序列和校验位,生成所述第一比特序列。

可选的,所述电子设备还包括:

根据预先设定的模板的数量确定每个模板对应的比特位数;

将所述第一比特序列按照所述比特位数进行分组,得到至少一个比特子序列。

可选的,所述电子设备执行下述步骤:如果将所述第一比特序列按照所述比特位数进行分组后,所述第一比特序列中还有数量小于所述比特位数的第一比特位未被分组,则在所述第一比特位的基础上,填充第二比特位,其中,所述第一比特位与所述第二比特位构成一个比特子序列,所述第一比特位的数量与所述第二比特位的数量之和等于所述比特位数。

可选的,所述第一比特序列中的每个比特子序列分别对应一个模板。

可选的,所述第一比特序列中的多个比特子序列对应相同的模板。

可选的,所述模板为图形或图像。

可选的,所述将与所述比特子序列对应的模板编码为第二比特序列,包括:

对与所述比特子序列对应的模板包含的像素点进行编码,生成第二比特序列。

可选的,所述将所述第二比特序列嵌入到载体对象中,包括:

将所述模板对应的第二比特序列逐比特嵌入到载体对象中。

可选的,所述将所述第二比特序列嵌入到载体对象中,包括:

至少将一个模板对应的第二比特序列多次嵌入到载体对象中。

可选的,所述电子设备还执行下述步骤:将对应同一个模板的多个第二比特序列在所有第二比特序列中的位置信息通知给水印提取端。

可选的,所述预先设定的至少一个模板为预先设定的多组模板中的一组模板,每组模板都包括至少一个模板;

所述电子设备还执行下述步骤:将与所述比特子序列对应的模板所在组别的信息通知给水印提取端。

需要说明的是,对于本申请第五实施例提供的电子设备的详细描述可以参考对本申请第一实施例的相关描述,这里不再赘述。

本申请第六实施例提供了另一种电子设备,如图9所示,所述电子设备包括:

处理器901;以及

存储器902,用于水印提取方法的程序,该设备通电并通过所述处理器运行该水印提取方法的程序后,执行下述步骤:

提取载体对象中嵌入的第二比特序列,其中,所述第二比特序列是对模板编码后得到的比特序列;

根据所述第二比特序列,得到与所述第二比特序列对应的模板;

根据得到的模板与预先设定的至少一个模板,确定水印提取结果;

其中,所述预先设定的至少一个模板与水印信息对应。

可选的,所述模板为图形或图像。

可选的,所述第二比特序列是对模板包含的像素点编码后得到的比特序列。

可选的,所述根据得到的模板与预先设定的至少一个模板,确定水印提取结果,具体用于:

根据得到的模板与预先设定的至少一个模板,判断得到的模板是否有效;

根据得到的模板是否有效的判断结果,确定水印提取结果。

可选的,所述根据得到的模板与预先设定的至少一个模板,判断得到的模板的有效性,具体用于:

确定得到的模板中的第一模板与预先设定的至少一个模板的相似度;

如果第一模板与预先设定的至少一个模板的相似度不小于预设的第一相似度阈值,则确定所述第一模板为有效模板;

如果所述第一模板与预先设定的任意一个模板的相似度都小于预设的第一相似度阈值,则确定所述第一模板为无效模板。

可选的,所述根据得到的模板是否有效的判断结果,确定水印提取结果,具体用于:

当确定同一个模板仅被嵌入一次到所述载体对象时,如果得到的每个模板均为有效模板,则根据与有效模板匹配的预先设定的模板与水印信息的对应关系,确定有效模板对应的水印信息;

如果得到的模板中包含至少一个无效模块,则确定水印提取失败。

可选的,所述根据得到的模板是否有效的判断结果,确定水印提取结果,具体用于:

当确定同一个模板被嵌入多次到所述载体对象时,

如果得到的每组模板中均有至少一个模板为有效模板,则根据与有效模板匹配的预先设定的模板对应的水印信息,确定有效模板对应的水印信息;

如果得到的所有组模板中至少有一组模板不包含有效模板,则确定水印提取失败;

其中,得到的模板被划分为至少一个组,每组模板与被多次嵌入到载体对象中的同一个模板对应。

可选的,所述电子设备还用于执行下列步骤:

确定在所有第二比特序列中对应同一个模板的多个第二比特序列;

将所述对应同一个模板的多个第二比特序列分别对应的模板划分为一组模板。

可选的,所述确定在所有第二比特序列中对应同一个模板的多个第二比特序列,具体用于:获得水印嵌入端提供的对应同一个模板的多个第二比特序列在所有第二比特序列中的位置信息。

可选的,所述根据与有效模板匹配的预先设定的模板对应的水印信息,确定有效模板对应的水印信息,具体用于:

根据比特子序列与所述匹配的预先设定的模板的对应关系,确定有效模板对应的比特子序列;

根据比特子序列获得第一比特序列;

根据所述第一比特序列获得水印信息;

其中,所述第一比特序列包括至少一个比特子序列,所述第一比特序列是对水印信息编码后得到的比特序列。

可选的,所述根据比特子序列获得第一比特序列,具体用于:

将所述比特子序列组合为所述第一比特序列。

可选的,所述第一比特序列中包含校验位;

所述电子设备还用于执行下列步骤:

根据校验位进行校验,如果校验成功,则确定提取水印成功,否则,确定提取水印失败。

可选的,所述预先设定的至少一个模板为预先设定的多组模板中的一组模板,每组模板都包括至少一个模板;

所述电子设备还用于执行下列步骤:

确定水印嵌入端使用的预先设定的至少一个模板所在的组别信息;

所述根据得到的模板与预先设定的至少一个模板,确定水印提取结果,具体用于:根据得到的模板与水印嵌入端使用的预先设定的一组模板,确定水印提取结果。

需要说明的是,对于本申请第六实施例提供的电子设备的详细描述可以参考对本申请第二实施例的相关描述,这里不再赘述。

本申请第七实施例提供一种存储设备,存储有用于存储水印嵌入方法的程序,该程序被处理器运行,执行下述步骤:

对水印信息进行编码,生成第一比特序列;

根据比特子序列与模板的对应关系,在预先设定的至少一个模板中,确定所述第一比特序列中的比特子序列对应的模板,其中,所述第一比特序列包括至少一个比特子序列;

将与所述比特子序列对应的模板编码为第二比特序列;

将所述第二比特序列嵌入到载体对象中。

本申请第八实施例提供另外一种存储设备,存储有用于水印提取方法的程序,该程序被处理器运行,执行下述步骤:

提取载体对象中嵌入的第二比特序列,其中,所述第二比特序列是对模板编码后得到的比特序列,所述模板与全部的水印信息或部分水印信息对应;

根据所述第二比特序列,得到与所述第二比特序列对应的模板;

根据得到的模板与预先设定的至少一个模板,确定水印提取结果;

其中,所述预先设定的至少一个模板与水印信息对应。

本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本发明的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本发明权利要求所界定的范围为准。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1