基于图像的信息隐藏方法、装置、存储介质和电子设备转让专利

申请号 : CN201811447829.0

文献号 : CN109729233B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 许志浩张霞

申请人 : 东软集团股份有限公司

摘要 :

本公开涉及一种基于图像的信息隐藏方法、装置、存储介质和电子设备,涉及信息技术领域,该方法包括:获取初始图像对应的第一DCT系数矩阵中的每个DCT系数的影响度,影响度用于指示每个DCT系数改变时对初始图像的影响程度,将待隐藏的隐私信息嵌入第一DCT系数矩阵中的目标DCT系数中,以获取第二DCT系数矩阵,目标DCT系数是根据每个DCT系数的影响度确定的,根据第二DCT系数矩阵生成目标图像。能够根据DCT系数的影响度来确定隐私信息嵌入图像的位置,使得在图像中隐藏隐私信息时,能减少图像中像素的变化,并且能够保证嵌入的隐私信息的安全性。

权利要求 :

1.一种基于图像的信息隐藏方法,其特征在于,所述方法包括:

获取初始图像对应的第一离散余弦变换DCT系数矩阵中的每个DCT系数的影响度,所述影响度用于指示所述每个DCT系数改变时对所述初始图像的影响程度;

将待隐藏的隐私信息嵌入所述第一DCT系数矩阵中的目标DCT系数中,以获取第二DCT系数矩阵,所述目标DCT系数是根据所述每个DCT系数的影响度确定的,所述目标DCT系数为所述第一DCT系数矩阵中影响度最小的,所述隐私信息的位数个DCT系数;

根据所述第二DCT系数矩阵生成目标图像;

所述获取初始图像对应的第一DCT系数矩阵中的每个DCT系数的影响度,包括:根据训练图像和训练信息,确定DCT系数与图像特征变化量的关系函数中的关联系数,所述训练图像的尺寸与所述初始图像的尺寸相同,所述训练图像为在所述初始图像之前生成的多个图像,所述关系函数为线性函数;

将所述第一DCT系数矩阵中的每个DCT系数和所述关联系数作为所述关系函数的输入,以得到所述关系函数输出的所述每个DCT系数对应的图像特征变化量,作为所述每个DCT系数的影响度。

2.根据权利要求1所述的方法,其特征在于,所述根据训练图像和训练信息,确定DCT系数与图像特征变化量的关系函数中的关联系数,包括:获取所述训练图像对应的第三DCT系数矩阵;

将所述训练信息嵌入所述第三DCT系数矩阵中的DCT系数中,以获取第四DCT系数矩阵;

根据所述第三DCT系数矩阵中每个DCT系数对应的第一图像特征和所述第四DCT系数矩阵中对应位置处的DCT系数对应的第二图像特征,获取所述第三DCT系数矩阵中的每个DCT系数对应的图像特征变化量;

根据所述第三DCT系数矩阵中的每个DCT系数对应的图像特征变化量,确定所述关联系数。

3.根据权利要求2所述的方法,其特征在于,所述根据所述第三DCT系数矩阵中每个DCT系数对应的第一图像特征和所述第四DCT系数矩阵中对应位置处的DCT系数对应的第二图像特征,获取所述第三DCT系数矩阵中的每个DCT系数对应的图像特征变化量,包括:根据所述第一图像特征和所述第二图像特征,利用第一计算公式获取所述第三DCT系数矩阵中的每个DCT系数对应的图像特征变化量;

所述第一计算公式包括:

其中, 表示所述第三DCT系数矩阵中第i行第j列的DCT系数对应的图像特征变化量,F1表示所述第三DCT系数矩阵中第i行第j列的DCT系数对应的所述第一图像特征,F2表示所述第四DCT系数矩阵中第i行第j列的DCT系数对应的所述第二图像特征,H表示所述训练信息的信息量。

4.根据权利要求1所述的方法,其特征在于,所述隐私信息为二进制序列,所述将待隐藏的隐私信息嵌入所述第一DCT系数矩阵中的目标DCT系数中,以获取第二DCT系数矩阵,包括:将所述第一DCT系数矩阵中非0或1的影响度最小的n个DCT系数,作为n个目标DCT系数,n为所述隐私信息的位数;

将所述隐私信息嵌入所述n个目标DCT系数,以获取所述第二DCT系数矩阵。

5.根据权利要求4所述的方法,其特征在于,所述将所述隐私信息嵌入所述n个目标DCT系数,以获取所述第二DCT系数矩阵,包括:将所述隐私信息的第m位替换所述n个目标DCT系数中的第m个目标DCT系数的最低位,m的起始值为1,m小于或等于n;

令m=m+1,重复执行所述将所述隐私信息的第m位替换所述n个目标DCT系数中的第m个目标DCT系数的最低位,直至所述隐私信息的所有位均已嵌入所述n个目标DCT系数。

6.一种基于图像的信息隐藏装置,其特征在于,所述装置包括:

获取模块,用于获取初始图像对应的第一离散余弦变换DCT系数矩阵中的每个DCT系数的影响度,所述影响度用于指示所述每个DCT系数改变时对所述初始图像的影响程度;

嵌入模块,用于将待隐藏的隐私信息嵌入所述第一DCT系数矩阵中的目标DCT系数中,以获取第二DCT系数矩阵,所述目标DCT系数是根据所述每个DCT系数的影响度确定的,所述目标DCT系数为所述第一DCT系数矩阵中影响度最小的,所述隐私信息的位数个DCT系数;

生成模块,用于根据所述第二DCT系数矩阵生成目标图像;

所述获取模块包括:

训练子模块,用于根据训练图像和训练信息,确定DCT系数与图像特征变化量的关系函数中的关联系数,所述训练图像的尺寸与所述初始图像的尺寸相同,所述训练图像为在所述初始图像之前生成的多个图像,所述关系函数为线性函数;

第一确定子模块,用于将所述第一DCT系数矩阵中的每个DCT系数和所述关联系数作为所述关系函数的输入,以得到所述关系函数输出的所述每个DCT系数对应的图像特征变化量,作为所述每个DCT系数的影响度。

7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-5中任一项所述方法的步骤。

8.一种电子设备,其特征在于,包括:

存储器,其上存储有计算机程序;

处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-5中任一项所述方法的步骤。

说明书 :

基于图像的信息隐藏方法、装置、存储介质和电子设备

技术领域

[0001] 本公开涉及信息技术领域,具体地,涉及一种基于图像的信息隐藏方法、装置、存储介质和电子设备。

背景技术

[0002] 随着计算机技术和数字图像处理技术的不断发展,数字图像作为人们获取信息的重要载体,已经被广泛应用于日常生活和工作中,例如各种服务、监控平台的运维图像,新闻媒体中的新闻图像、电子政务中的公文图像,电子商务中的合同、发票等图像。与此同时,数字图像在发布或导出的过程中,会增加用户信息、来源信息等标注。为了保证原始标注的完整性,通常会将标注隐藏在数字图像中。现有技术中,标注在数字图像中的隐藏位置通常为固定位置或随机位置,当隐藏位置为固定位置时,容易被破解,存在被第三方篡改的风险,当隐藏位置为随机位置时,容易降低数字图像的质量。

发明内容

[0003] 本公开的目的是提供一种基于图像的信息隐藏方法、装置、存储介质和电子设备,用以解决现有技术中由于隐藏位置不合适,导致信息安全度和图像质量不能兼顾的问题。
[0004] 为了实现上述目的,根据本公开实施例的第一方面,提供一种基于图像的信息隐藏方法,所述方法包括:
[0005] 获取初始图像对应的第一离散余弦变换DCT系数矩阵中的每个DCT系数的影响度,所述影响度用于指示所述每个DCT系数改变时对所述初始图像的影响程度;
[0006] 将待隐藏的隐私信息嵌入所述第一DCT系数矩阵中的目标DCT系数中,以获取第二DCT系数矩阵,所述目标DCT系数是根据所述每个DCT系数的影响度确定的;
[0007] 根据所述第二DCT系数矩阵生成目标图像。
[0008] 可选地,所述获取初始图像对应的第一DCT系数矩阵中的每个DCT系数的影响度,包括:
[0009] 根据训练图像和训练信息,确定DCT系数与图像特征变化量的关系函数中的关联系数,所述训练图像的尺寸与所述初始图像的尺寸相同;
[0010] 将所述第一DCT系数矩阵中的每个DCT系数和所述关联系数作为所述关系函数的输入,以得到所述关系函数输出的所述每个DCT系数对应的图像特征变化量,作为所述每个DCT系数的影响度。
[0011] 可选的,所述关系函数包括:
[0012] Yij=J*Xij
[0013] 其中,Xij表示DCT系数矩阵中第i行第j列的DCT系数,Yij表示Xij对应的图像特征变化量,J表示所述关联系数。
[0014] 可选的,所述根据训练图像和训练信息,确定DCT系数与图像特征变化量的关系函数中的关联系数,包括:
[0015] 获取所述训练图像对应的第三DCT系数矩阵;
[0016] 将所述训练信息嵌入所述第三DCT系数矩阵中的DCT系数中,以获取第四DCT系数矩阵;
[0017] 根据所述第三DCT系数矩阵中每个DCT系数对应的第一图像特征和所述第四DCT系数矩阵中对应位置处的DCT系数对应的第二图像特征,获取所述第三DCT系数矩阵中的每个DCT系数对应的图像特征变化量;
[0018] 根据所述第三DCT系数矩阵中的每个DCT系数对应的图像特征变化量,确定所述关联系数。
[0019] 可选的,所述根据所述第三DCT系数矩阵中每个DCT系数对应的第一图像特征和所述第四DCT系数矩阵中对应位置处的DCT系数对应的第二图像特征,获取所述第三DCT系数矩阵中的每个DCT系数对应的图像特征变化量,包括:
[0020] 根据所述第一图像特征和所述第二图像特征,利用第一计算公式获取所述第三DCT系数矩阵中的每个DCT系数对应的图像特征变化量;
[0021] 所述第一计算公式包括:
[0022]
[0023] 其中, 表示所述第三DCT系数矩阵中第i行第j列的DCT系数对应的图像特征变化量,F1表示所述第三DCT系数矩阵中第i行第j列的DCT系数对应的所述第一图像特征,F2表示所述第四DCT系数矩阵中第i行第j列的DCT系数对应的所述第二图像特征,H表示所述训练信息的信息量。
[0024] 可选的,所述隐私信息为二进制序列,所述将待隐藏的隐私信息嵌入所述第一DCT系数矩阵中的目标DCT系数中,以获取第二DCT系数矩阵,包括:
[0025] 将所述第一DCT系数矩阵中非0或1的影响度最小的n个DCT系数,作为n个目标DCT系数,n为所述隐私信息的位数;
[0026] 将所述隐私信息嵌入所述n个目标DCT系数,以获取所述第二DCT系数矩阵。
[0027] 可选的,所述将所述隐私信息嵌入所述n个目标DCT系数,以获取所述第二DCT系数矩阵,包括:
[0028] 将所述隐私信息的第m位替换所述n个目标DCT系数中的第m个目标DCT系数的最低位,m的起始值为1,m小于或等于n;
[0029] 令m=m+1,重复执行所述将所述隐私信息的第m位替换所述n个目标DCT系数中的第m个目标DCT系数的最低位,直至所述隐私信息的所有位均已嵌入所述n个目标DCT系数。
[0030] 可选的,所述根据所述第二DCT系数矩阵生成目标图像,包括:
[0031] 对所述第二DCT系数矩阵进行量化处理,以得到目标DCT系数矩阵;
[0032] 通过将所述目标DCT系数矩阵进行霍夫曼编码,生成所述目标图像。
[0033] 根据本公开实施例的第二方面,提供一种基于图像的信息隐藏装置,所述装置包括:
[0034] 获取模块,用于获取初始图像对应的第一离散余弦变换DCT系数矩阵中的每个DCT系数的影响度,所述影响度用于指示所述每个DCT系数改变时对所述初始图像的影响程度;
[0035] 嵌入模块,用于将待隐藏的隐私信息嵌入所述第一DCT系数矩阵中的目标DCT系数中,以获取第二DCT系数矩阵,所述目标DCT系数是根据所述每个DCT系数的影响度确定的;
[0036] 生成模块,用于根据所述第二DCT系数矩阵生成目标图像。
[0037] 可选的,所述获取模块包括:
[0038] 训练子模块,用于根据训练图像和训练信息,确定DCT系数与图像特征变化量的关系函数中的关联系数,所述训练图像的尺寸与所述初始图像的尺寸相同;
[0039] 第一确定子模块,用于将所述第一DCT系数矩阵中的每个DCT系数和所述关联系数作为所述关系函数的输入,以得到所述关系函数输出的所述每个DCT系数对应的图像特征变化量,作为所述每个DCT系数的影响度。
[0040] 可选的,所述关系函数包括:
[0041] Yij=J*Xij
[0042] 其中,Xij表示DCT系数矩阵中第i行第j列的DCT系数,Yij表示Xij对应的图像特征变化量,J表示所述关联系数。
[0043] 可选的,所述训练子模块用于:
[0044] 获取所述训练图像对应的第三DCT系数矩阵;
[0045] 将所述训练信息嵌入所述第三DCT系数矩阵中的DCT系数中,以获取第四DCT系数矩阵;
[0046] 根据所述第三DCT系数矩阵中每个DCT系数对应的第一图像特征和所述第四DCT系数矩阵中对应位置处的DCT系数对应的第二图像特征,获取所述第三DCT系数矩阵中的每个DCT系数对应的图像特征变化量;
[0047] 根据所述第三DCT系数矩阵中的每个DCT系数对应的图像特征变化量,确定所述关联系数。
[0048] 可选的,所述训练子模块用于:
[0049] 根据所述第一图像特征和所述第二图像特征,利用第一计算公式获取所述第三DCT系数矩阵中的每个DCT系数对应的图像特征变化量;
[0050] 所述第一计算公式包括:
[0051]
[0052] 其中, 表示所述第三DCT系数矩阵中第i行第j列的DCT系数对应的图像特征变化量,F1表示所述第三DCT系数矩阵中第i行第j列的DCT系数对应的所述第一图像特征,F2表示所述第四DCT系数矩阵中第i行第j列的DCT系数对应的所述第二图像特征,H表示所述训练信息的信息量。
[0053] 可选的,所述隐私信息为二进制序列,所述嵌入模块包括:
[0054] 第二确定子模块,用于将所述第一DCT系数矩阵中非0或1的影响度最小的n个DCT系数,作为n个目标DCT系数,n为所述隐私信息的位数;
[0055] 嵌入子模块,用于将所述隐私信息嵌入所述n个目标DCT系数,以获取所述第二DCT系数矩阵。
[0056] 可选的,所述嵌入子模块用于:
[0057] 将所述隐私信息的第m位替换所述n个目标DCT系数中的第m个目标DCT系数的最低位,m的起始值为1,m小于或等于n;
[0058] 令m=m+1,重复执行所述将所述隐私信息的第m位替换所述n个目标DCT系数中的第m个目标DCT系数的最低位,直至所述隐私信息的所有位均已嵌入所述n个目标DCT系数。
[0059] 可选的,所述生成模块包括:
[0060] 量化子模块,用于对所述第二DCT系数矩阵进行量化处理,以得到目标DCT系数矩阵;
[0061] 编码子模块,用于通过将所述目标DCT系数矩阵进行霍夫曼编码,生成所述目标图像。
[0062] 根据本公开实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面提供的基于图像的信息隐藏方法的步骤。
[0063] 根据本公开实施例的第四方面,提供一种电子设备,包括:存储器,其上存储有计算机程序;
[0064] 处理器,用于执行所述存储器中的所述计算机程序,以实现第一方面提供的基于图像的信息隐藏方法的步骤。
[0065] 通过上述技术方案,本公开首先获取初始图像对应的第一DCT系数矩阵中每个DCT系数的影响度,每个DCT系数的影响度能够指示在该DCT系数改变时对初始图像的影响程度,再将待隐藏的隐私信息嵌入第一DCT系数矩阵中的目标DCT系数中,将嵌入了隐私信息的第一DCT系数矩阵作为第二DCT系数矩阵,其中,目标DCT系数是根据每个DCT系数的影响度确定的,最后根据第二DCT系数矩阵生成目标图像。能够根据DCT系数的影响度来确定隐私信息嵌入图像的位置,使得在图像中隐藏隐私信息时,能减少图像中像素的变化,并且由于根据影响度确定的嵌入位置不是固定的,因此也能够保证嵌入的隐私信息的安全性。
[0066] 本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

[0067] 附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
[0068] 图1是根据一示例性实施例示出的一种基于图像的信息隐藏方法的流程图;
[0069] 图2是根据一示例性实施例示出的另一种基于图像的信息隐藏方法的流程图;
[0070] 图3是根据一示例性实施例示出的另一种基于图像的信息隐藏方法的流程图;
[0071] 图4是根据一示例性实施例示出的另一种基于图像的信息隐藏方法的流程图;
[0072] 图5是根据一示例性实施例示出的一种基于图像的信息隐藏装置的框图;
[0073] 图6是根据一示例性实施例示出的另一种基于图像的信息隐藏装置的框图;
[0074] 图7是根据一示例性实施例示出的另一种基于图像的信息隐藏装置的框图;
[0075] 图8是根据一示例性实施例示出的另一种基于图像的信息隐藏装置的框图;
[0076] 图9是根据一示例性实施例示出的一种电子设备的框图。

具体实施方式

[0077] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
[0078] 图1是根据一示例性实施例示出的一种基于图像的信息隐藏方法的流程图,如图1所示,该方法包括:
[0079] 步骤101,获取初始图像对应的第一DCT系数矩阵中的每个DCT系数的影响度,影响度用于指示每个DCT系数改变时对初始图像的影响程度。
[0080] 举例来说,初始图像可以是监控平台产生的原始运维图像(例如:设备的运行图像、实时监控图像等),需要将用户信息、设备信息等待隐藏的隐私信息隐藏在初始图像中,首先可以对初始图像进行DCT(英文:Discrete Cosine Transform,中文:离散余弦变换)变换,以获取第一DCT系数矩阵。例如,可以将初始图像按照像素划分为8*8大小(也可以划分为16*16大小,或32*32大小,或者可根据需求划分为其他尺寸)的图像块,即将初始图像划分为多个图像块,每个图像块中包含8*8=64个像素。根据不同尺寸(尺寸即分辨率,用于表示图像在长和宽方向上的像素点数量)的初始图像,划分出的图像块的数量也不相同,例如:初始图像的尺寸为640*480(包含307200个像素点),那么可以划分为4800个图像块,每个图像块的尺寸为8*8,包含64个像素。对每个图像块分别作DCT变换,每个图像块对应得到一个8*8的DCT系数矩阵,将所有图像块对应的DCT系数矩阵组合在一起,得到第一DCT系数矩阵。再获取第一DCT系数矩阵中每个DCT系数的影响度,其中,每个DCT系数的影响度能够指示在该DCT系数改变时对初始图像的影响程度。
[0081] 以第一DCT系数为例,第一DCT系数的影响度可以理解为将第一DCT系数矩阵中的第一DCT系数改变后,对第一DCT系数矩阵(包含了改变后的第一DCT系数)进行DCT反变换得到的图像与初始图像之间的差别,其中第一DCT系数为第一DCT系数矩阵中的任一DCT系数。第一DCT系数的影响度大,则表示第一DCT系数对应的图像信息简单,如果图像信息改变,容易引起视觉变化。第一DCT系数的影响度小,则表示第一DCT系数对应的图像信息复杂,如果图像信息改变,不容易引起视觉变化。
[0082] 步骤102,将待隐藏的隐私信息嵌入第一DCT系数矩阵中的目标DCT系数中,以获取第二DCT系数矩阵,目标DCT系数是根据每个DCT系数的影响度确定的。
[0083] 示例的,首先根据第一DCT系数矩阵中每个DCT系数的影响度的大小来确定目标DCT系数,再将待隐藏的隐私信息依次嵌入第一DCT系数矩阵中的目标DCT系数中。可以先按照每个DCT系数的影响度大小将全部DCT系数进行升序排列,选择第一DCT系数矩阵中排序最前的DCT系数作为目标DCT系数,依次将隐私信息嵌入第一DCT系数矩阵中的目标DCT系数中。以隐私信息的长度为n为例,可以选择选择第一DCT系数矩阵中排序最前的n个DCT系数作为目标DCT系数。还可以在将隐私信息的每一位嵌入第一DCT系数矩阵时,选取第一DCT系数矩阵中当前影响度最小(不包含已经嵌入隐私信息的DCT系数)的DCT系数作为目标DCT系数。
[0084] 步骤103,根据第二DCT系数矩阵生成目标图像。
[0085] 示例的,根据步骤102中获得的第二DCT系数矩阵,将第二DCT系数矩阵按照Z字(英文:Zigzag)扫描排序,再经过量化和编码的过程,对第二DCT系数矩阵中包含的图像信息进行压缩,得到隐藏有隐私信息的目标图像,目标图像可以是JPEG(英文:Joint Photographic Experts Group,中文:联合图像专家小组)格式。当具有读取隐私信息的权限的授权终端获取到目标图像后,可以对目标图像进行解码、反量化的处理,再按照Z字扫描排序的顺序获得第二DCT系数矩阵,由于授权终端具有读取隐私信息的权限,那么授权终端能够获知隐私信息在第二DCT系数矩阵中的嵌入位置(例如,可以是由该目标图像的发送端发送给授权终端的),因此可以提取出第二DCT系数矩阵中包含的隐私信息。而不具有读取该隐私信息的权限的其他非授权终端在获取到目标图像后,由于非授权终端不能获知隐私信息在第二DCT系数矩阵中的嵌入位置,因此无法提取出隐私信息。授权终端和非授权终端都可以对第二DCT系数矩阵做反DCT变换,获得解码图像,但是由于非授权终端无法得知隐私信息的嵌入位置,因此能够保证该隐私信息的安全性,并且由于隐私信息在第二DCT系数矩阵中的嵌入位置选取的是影响度最小的DCT系数,因此解码图像与初始图像相比,图像信息的改变小,不会引起视觉变化。
[0086] 综上所述,本公开首先获取初始图像对应的第一DCT系数矩阵中每个DCT系数的影响度,每个DCT系数的影响度能够指示在该DCT系数改变时对初始图像的影响程度,再将待隐藏的隐私信息嵌入第一DCT系数矩阵中的目标DCT系数中,将嵌入了隐私信息的第一DCT系数矩阵作为第二DCT系数矩阵,其中,目标DCT系数是根据每个DCT系数的影响度确定的,最后根据第二DCT系数矩阵生成目标图像。能够根据DCT系数的影响度来确定隐私信息嵌入图像的位置,使得在图像中隐藏隐私信息时,能减少图像中像素的变化,并且由于根据影响度确定的嵌入位置不是固定的,因此也能够保证嵌入的隐私信息的安全性。
[0087] 图2是根据一示例性实施例示出的另一种基于图像的信息隐藏方法的流程图,如图2所示,步骤101可以通过以下步骤来实现:
[0088] 步骤1011,根据训练图像和训练信息,确定DCT系数与图像特征变化量的关系函数中的关联系数,训练图像的尺寸与初始图像的尺寸相同。
[0089] 步骤1012,将第一DCT系数矩阵中的每个DCT系数和关联系数作为关系函数的输入,以得到关系函数输出的每个DCT系数对应的图像特征变化量,作为每个DCT系数的影响度。
[0090] 举例来说,可以预先选取一个或多个与初始图像的尺寸相同的训练图像,以初始图像为运维图像为例,由于运维图像会一直生成,每个运维图像之间具有相似的特性,因此可以选取一个或多个当前时刻之前的运维图像作为训练图像。训练信息也可以是一个或多个,每个训练信息可以是与隐私信息相似的信息,也可以随机生成的信息,还可以是满足预设概率分布的信息。根据训练图像和训练信息,来确定DCT系数与图像特征变化量的关系函数中的关联系数。之后,将第一DCT系数矩阵中的每个DCT系数和关联系数作为关系函数的输入,从而得到第一DCT系数矩阵中的每个DCT系数对应的图像特征变化量,并将每个DCT系数对应的图像特征变化量作为每个DCT系数的影响度。其中,每个DCT系数对应的图像特征变化量是指该DCT系数改变前后图像特征(例如可以是548维特征、基于校准的特征、偏序马尔可夫特征等)的变化量。以第一DCT系数为例,第一DCT系数对应的图像特征变化量可以理解为将第一DCT系数矩阵中的第一DCT系数改变后,对第一DCT系数矩阵(包含了改变后的第一DCT系数)进行DCT反变换得到的图像所具有的图像特征与初始图像所具有的图像特征之间的差别,其中第一DCT系数为第一DCT系数矩阵中的任一DCT系数。
[0091] 其中,可以理解为DCT系数与图像特征变化量之间为线性关系,即DCT系数与图像特征变化量的关系函数为线性函数,例如,DCT系数与图像特征变化量的关系函数可以包括:
[0092] Yij=J*Xij
[0093] 其中,Xij表示DCT系数矩阵中第i行第j列的DCT系数,Yij表示Xij对应的图像特征变化量,J表示关联系数。
[0094] 可选的,步骤1011可以包括以下步骤:
[0095] 1)获取训练图像对应的第三DCT系数矩阵,其中,第三DCT系数矩阵的行数和列数,与第一DCT系数矩阵的行数和列数分别相等。
[0096] 2)将训练信息嵌入第三DCT系数矩阵中的DCT系数中,以获取第四DCT系数矩阵。
[0097] 3)根据第三DCT系数矩阵中每个DCT系数对应的第一图像特征和第四DCT系数矩阵中对应位置处的DCT系数对应的第二图像特征,获取第三DCT系数矩阵中的每个DCT系数对应的图像特征变化量。
[0098] 4)根据第三DCT系数矩阵中的每个DCT系数对应的图像特征变化量,确定关联系数。
[0099] 举例来说,首先对训练图像做DCT变换,得到第三DCT系数矩阵,由于训练图像与初始图像的尺寸相同,因此第三DCT系数矩阵的行数和列数,与第一DCT系数矩阵的行数和列数分别相等。再按照预设的隐写算法将训练信息嵌入第三DCT系数矩阵中的预设位置处,将嵌入了训练信息的第三DCT系数矩阵作为第四DCT系数矩阵,隐写算法例如可以是LSB Matching(英文:Least Significant Bits Matching,中文:最低有效位匹配)算法,还可以是LSB Replacement(英文:Least Significant Bits Replacement,中文:最低有效位替换)算法。其中,预设位置可以是随机选取的,即在第三DCT系数矩阵中训练信息嵌入的DCT系数可以是随机选取的(下文对随机选取的用于嵌入训练信息的DCT系数称为被选取的DCT系数)。之后对第三DCT系数矩阵和第四DCT系数矩阵进行图像特征提取(图像特征例如可以是548维特征、基于校准的特征、偏序马尔可夫特征等),以得到第三DCT系数矩阵中的被选取的DCT系数对应的第一图像特征和第四DCT系数矩阵中对应位置处的DCT系数对应的第二图像特征。再根据被选取的DCT系数的第一图像特征和第二图像特征,获取第三DCT系数矩阵中的被选取的DCT系数对应的图像特征变化量。最后对根据被选取的DCT系数及其对应的图像特征变化量进行线性拟合,以得到该关联系数。需要说明的是,训练图像可以是一个或多个,即每个训练图像对应一个第三DCT系数矩阵,因此可以多次执行步骤1)至步骤4)。其中,对于一个训练图像来说,在一次训练中可能无法获取到第三DCT系数矩阵中的所有DCT系数的图像特征变化量,因此可以多次执行步骤1)至步骤4),直至获取该训练图像对应的第三DCT系数矩阵中的每个DCT系数的图像特征变化量。对于多个训练图像则可以采用与一个训练图像相同的方法,获取每个训练图像的对应的第三DCT系数矩阵中的每个DCT系数的图像特征变化量。
[0100] 或者,可选的,对于多个训练图像,也可以对每个训练图像对应的第三DCT系数矩阵执行一次步骤1)至步骤4),从而通过多个训练图像执行多次步骤1)至步骤4),以获取多组DCT系数与图像特征变化量的对应关系。或者,训练信息也可以多个,即可以使用同一个训练图像,通过多个不同的训练信息,多次执行步骤1)至步骤4),以获取多组DCT系数与图像特征变化量的对应关系。DCT系数与图像特征变化量的对应关系的数量越多,线性拟合的结果越准确,即DCT系数与图像特征变化量的关系函数越准确。
[0101] 其中,步骤3)可以通过以下方式来实现:
[0102] 根据第一图像特征和第二图像特征,利用第一计算公式获取第三DCT系数矩阵中的每个DCT系数对应的图像特征变化量。
[0103] 第一计算公式包括:
[0104]
[0105] 其中, 表示第三DCT系数矩阵中第i行第j列的DCT系数对应的图像特征变化量,F1表示第三DCT系数矩阵中第i行第j列的DCT系数对应的第一图像特征,F2表示第四DCT系数矩阵中第i行第j列的DCT系数对应的第二图像特征,H表示训练信息的信息量。H即为训练信息所包含的信息熵,F1和F2分别表示第三DCT系数矩阵和第四DCT系数矩阵中相同位置的DCT系数的图像特征。
[0106] 图3是根据一示例性实施例示出的另一种基于图像的信息隐藏方法的流程图,隐私信息为二进制序列,步骤102包括:
[0107] 步骤1021,将第一DCT系数矩阵中非0或1的影响度最小的n个DCT系数,作为n个目标DCT系数,n为隐私信息的位数。
[0108] 步骤1022,将隐私信息嵌入n个目标DCT系数,以获取第二DCT系数矩阵。
[0109] 举例来说,隐私信息可以为长度为n的二进制序列,在确定了第一DCT系数矩阵中的每个DCT系数的影响度后,选取第一DCT系数矩阵中影响度最小,且非0或1的n个DCT系数,作为n个目标DCT系数,按照预设的隐写算法将n位隐私信息嵌入n个目标DCT系数中,将嵌入了n位隐私信息的第一DCT系数矩阵作为第二DCT系数矩阵,需要说明的是,此处的隐写算法和步骤1011中2)所采用的隐写算法,可以是相同的隐写算法,也可以是不同的隐写算法。由于图像经过DCT变换后得到的DCT系数矩阵中为0的DCT系数比较多(有时可以达到60%以上),如果将为0的DCT系数作为目标DCT系数,会对步骤103中的编码过程产生影响,不利于压缩图像,因此在选择目标DCT系数时,可以跳过为0的DCT系数,而为1的DCT系数在嵌入隐私信息后可能会变为0,同样也会对编码过程产生影响,因此在选择目标DCT系数时,还可以跳过为1的DCT系数。
[0110] 其中,步骤1022可以包括以下步骤:
[0111] A.将隐私信息的第m位替换n个目标DCT系数中的第m个目标DCT系数的最低位,m的起始值为1,m小于或等于n。
[0112] B.令m=m+1,重复执行将隐私信息的第m位替换n个目标DCT系数中的第m个目标DCT系数的最低位,直至隐私信息的所有位均已嵌入n个目标DCT系数。
[0113] 示例的,从隐私信息的第1位开始,依次将隐私信息的每一位替换一个目标DCT系数的最低位,直至将n个目标DCT系数替换完毕。以目标DCT系数为2、3、4、5为例,每个目标DCT系数对应的二进制为0010、0011、0100、0101,当隐私信息的为1001时,用‘1’替换0010的最低位,变为0011(即第一个目标DCT系数由2变为3),用‘0’替换0011的最低位,变为0010(即第二个目标DCT系数由3变为2),用‘0’替换0100的最低位,保持不变,(即第三个目标DCT系数保持4不变),用‘1’替换0101的最低位,保持不变,(即第四个目标DCT系数保持5不变)。
[0114] 图4是根据一示例性实施例示出的另一种基于图像的信息隐藏方法的流程图,步骤103包括:
[0115] 步骤1031,对第二DCT系数矩阵进行量化处理,以得到目标DCT系数矩阵。
[0116] 步骤1032,通过将目标DCT系数矩阵进行霍夫曼编码,生成目标图像。
[0117] 举例来说,根据预设的量化表对第二DCT系数矩阵进行量化处理,将经过量化处理后的第二DCT系数矩阵作为目标DCT系数矩阵。其中,量化处理是用第二DCT系数矩阵中的每个DCT系数除以量化表中对应位置的值(即量化步长),由于图像中的高频部分代表图像中的噪声,而对视觉重要的信息通常都集中在中低频部分,经过量化处理,能够达到保持低频分量,抑制高频分量的目的。最后对目标DCT系数矩阵进行霍夫曼编码,对图像信息进行压缩,以得到隐藏有隐私信息JPEG格式的目标图像。
[0118] 综上所述,本公开首先获取初始图像对应的第一DCT系数矩阵中每个DCT系数的影响度,每个DCT系数的影响度能够指示在该DCT系数改变时对初始图像的影响程度,再将待隐藏的隐私信息嵌入第一DCT系数矩阵中的目标DCT系数中,将嵌入了隐私信息的第一DCT系数矩阵作为第二DCT系数矩阵,其中,目标DCT系数是根据每个DCT系数的影响度确定的,最后根据第二DCT系数矩阵生成目标图像。能够根据DCT系数的影响度来确定隐私信息嵌入图像的位置,使得在图像中隐藏隐私信息时,能减少图像中像素的变化,并且由于根据影响度确定的嵌入位置不是固定的,因此也能够保证嵌入的隐私信息的安全性。
[0119] 图5是根据一示例性实施例示出的一种基于图像的信息隐藏装置的框图,如图5所示,该装置200包括:
[0120] 获取模块201,用于获取初始图像对应的第一DCT系数矩阵中的每个DCT系数的影响度,影响度用于指示每个DCT系数改变时对初始图像的影响程度。
[0121] 嵌入模块202,用于将待隐藏的隐私信息嵌入第一DCT系数矩阵中的目标DCT系数中,以获取第二DCT系数矩阵,目标DCT系数是根据每个DCT系数的影响度确定的。
[0122] 生成模块203,用于根据第二DCT系数矩阵生成目标图像。
[0123] 图6是根据一示例性实施例示出的另一种基于图像的信息隐藏装置的框图,如图6所示,获取模块201包括:
[0124] 训练子模块2011,用于根据训练图像和训练信息,确定DCT系数与图像特征变化量的关系函数中的关联系数,训练图像的尺寸与初始图像的尺寸相同。
[0125] 第一确定子模块2012,用于将第一DCT系数矩阵中的每个DCT系数和关联系数作为关系函数的输入,以得到关系函数输出的每个DCT系数对应的图像特征变化量,作为每个DCT系数的影响度。
[0126] 其中,该关系函数包括:
[0127] Yij=J*Xij
[0128] 其中,Xij表示DCT系数矩阵中第i行第j列的DCT系数,Yij表示Xij对应的图像特征变化量,J表示关联系数。
[0129] 可选的,训练子模块2011可以用于实现以下步骤:
[0130] 1)获取训练图像对应的第三DCT系数矩阵。
[0131] 2)将训练信息嵌入第三DCT系数矩阵中的DCT系数中,以获取第四DCT系数矩阵。
[0132] 3)根据第三DCT系数矩阵中每个DCT系数对应的第一图像特征和第四DCT系数矩阵中对应位置处的DCT系数对应的第二图像特征,获取第三DCT系数矩阵中的每个DCT系数对应的图像特征变化量。
[0133] 4)根据第三DCT系数矩阵中的每个DCT系数对应的图像特征变化量,确定关联系数。
[0134] 其中,训练子模块2011在实现步骤3)时可以用于:
[0135] 根据第一图像特征和第二图像特征,利用第一计算公式获取第三DCT系数矩阵中的每个DCT系数对应的图像特征变化量。
[0136] 第一计算公式包括:
[0137]
[0138] 其中, 表示第三DCT系数矩阵中第i行第j列的DCT系数对应的图像特征变化量,F1表示第三DCT系数矩阵中第i行第j列的DCT系数对应的第一图像特征,F2表示第四DCT系数矩阵中第i行第j列的DCT系数对应的第二图像特征,H表示训练信息的信息量。
[0139] 图7是根据一示例性实施例示出的另一种基于图像的信息隐藏装置的框图,隐私信息为二进制序列,嵌入模块202包括:
[0140] 第二确定子模块2021,用于将第一DCT系数矩阵中非0或1的影响度最小的n个DCT系数,作为n个目标DCT系数,n为隐私信息的位数。
[0141] 嵌入子模块2022,用于将隐私信息嵌入n个目标DCT系数,以获取第二DCT系数矩阵。
[0142] 可选的,嵌入子模块2022可以用于实现以下步骤:
[0143] A.将隐私信息的第m位替换n个目标DCT系数中的第m个目标DCT系数的最低位,m的起始值为1,m小于或等于n。
[0144] B.令m=m+1,重复执行将隐私信息的第m位替换n个目标DCT系数中的第m个目标DCT系数的最低位,直至隐私信息的所有位均已嵌入n个目标DCT系数。
[0145] 图8是根据一示例性实施例示出的另一种基于图像的信息隐藏装置的框图,如图8所示,生成模块203包括:
[0146] 量化子模块2031,用于对第二DCT系数矩阵进行量化处理,以得到目标DCT系数矩阵。
[0147] 编码子模块2032,用于通过将目标DCT系数矩阵进行霍夫曼编码,生成目标图像。
[0148] 关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0149] 综上所述,本公开首先获取初始图像对应的第一DCT系数矩阵中每个DCT系数的影响度,每个DCT系数的影响度能够指示在该DCT系数改变时对初始图像的影响程度,再将待隐藏的隐私信息嵌入第一DCT系数矩阵中的目标DCT系数中,将嵌入了隐私信息的第一DCT系数矩阵作为第二DCT系数矩阵,其中,目标DCT系数是根据每个DCT系数的影响度确定的,最后根据第二DCT系数矩阵生成目标图像。能够根据DCT系数的影响度来确定隐私信息嵌入图像的位置,使得在图像中隐藏隐私信息时,能减少图像中像素的变化,并且由于根据影响度确定的嵌入位置不是固定的,因此也能够保证嵌入的隐私信息的安全性。
[0150] 图9是根据一示例性实施例示出的一种电子设备300的框图。如图9所示,该电子设备300可以包括:处理器301,存储器302。该电子设备300还可以包括多媒体组件303,输入/输出(I/O)接口304,以及通信组件305中的一者或多者。
[0151] 其中,处理器301用于控制该电子设备300的整体操作,以完成上述的基于图像的信息隐藏方法中的全部或部分步骤。存储器302用于存储各种类型的数据以支持在该电子设备300的操作,这些数据例如可以包括用于在该电子设备300上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器302可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件303可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器302或通过通信组件305发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口304为处理器301和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件305用于该电子设备300与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件305可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
[0152] 在一示例性实施例中,电子设备300可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(Digital Signal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的基于图像的信息隐藏方法。
[0153] 在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的基于图像的信息隐藏方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器302,上述程序指令可由电子设备300的处理器301执行以完成上述的基于图像的信息隐藏方法。
[0154] 综上所述,本公开首先获取初始图像对应的第一DCT系数矩阵中每个DCT系数的影响度,每个DCT系数的影响度能够指示在该DCT系数改变时对初始图像的影响程度,再将待隐藏的隐私信息嵌入第一DCT系数矩阵中的目标DCT系数中,将嵌入了隐私信息的第一DCT系数矩阵作为第二DCT系数矩阵,其中,目标DCT系数是根据每个DCT系数的影响度确定的,最后根据第二DCT系数矩阵生成目标图像。能够根据DCT系数的影响度来确定隐私信息嵌入图像的位置,使得在图像中隐藏隐私信息时,能减少图像中像素的变化,并且由于根据影响度确定的嵌入位置不是固定的,因此也能够保证嵌入的隐私信息的安全性。
[0155] 以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,本领域技术人员在考虑说明书及实践本公开后,容易想到本公开的其它实施方案,均属于本公开的保护范围。
[0156] 另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。同时本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。本公开并不局限于上面已经描述出的精确结构,本公开的范围仅由所附的权利要求来限制。