区块链 | NFT 水印:Review on Watermarking Techniques(二)

news2025/1/16 11:31:11

🍍原文:Review on Watermarking Techniques Aiming Authentication of Digital Image Artistic Works Minted as NFTs into Blockchains



1 半脆弱和可逆水印

鲁棒性好的水印技术通常会产生非常低透明度。正如前面所述,由于透明度在处理数字艺术品时是一个非常重要的特性,因此鲁棒性好的水印可能不是 NFT 认证的最好选择。

不过通过脆弱 f r a g i l e \mathsf{fragile} fragile 、半脆弱 s e m i _ f r a g i l e \mathsf{semi\_fragile} semi_fragile 甚至是可逆 r e v e r s i b l e \mathsf{reversible} reversible 水印技术,可以实现非常透明的水印。这些技术主要有:

  • 基于空间域的方法,比如:扩展频谱 ( S S ) \mathsf{(SS)} (SS)、最低有效位 ( L S B ) \mathsf{(LSB)} (LSB) 技术;
  • 基于变换域的方法,比如:离散余弦变换 ( D C T ) \mathsf{(DCT)} (DCT)、离散小波变换 ( D W T ) \mathsf{(DWT)} (DWT) 技术;

半脆弱 s e m i _ f r a g i l e \mathsf{semi\_fragile} semi_fragile 水印技术能够容忍一定程度上的非恶意修改,例如图像格式的转换,比如将数字图像从 JPEG 格式转换为 PNG 格式。但是,如果是出于欺诈目的而进行的大幅度的扭曲,比如图像的水平翻转,这将会导致水印的丢失,数字作品将无法再被验证。

可逆 r e v e r s i b l e \mathsf{reversible} reversible 水印的设计目标是能够通过正确的密钥来移除水印,以此来恢复原始的艺术作品。这种技术在 NFT 领域尤其引人注目,因为在这个领域中,保持图像质量是至关重要的。我们将在接下来的章节中详细说明如何实现这一功能。



2 基于空间域的方法

扩展频谱 S p r e a d   S p e c t r u m \mathsf{Spread\ Spectrum} Spread Spectrum 和最低有效位 L S B \mathsf{LSB} LSB 技术广泛应用于生成透明水印,以实现认证目的。这些方法可以被定制为区域性的,从而能够识别出哪些区域遭受了篡改。


2.1 扩展频谱技术

扩展频谱是在空间域上进行的加法操作,最终生成加了水印的图像:

I W = I + α b W I_{W}=I+\alpha bW IW=I+αbW

其中 I I I 是一个原始的图片或者视频帧, W W W 是与 I I I 大小相同的水印图像。 α \alpha α 是根据所需鲁棒性和透明度设计的缩放参数, b b b 是一个 a n t i p o d a l   b i t \mathsf{antipodal\ bit} antipodal bit 反极性位 ∈ { − 1 , + 1 } \in \{−1,+1\} {1,+1}

水印图像 W W W 是由白噪声构成的,它在频率域中产生了宽广的频谱信号。反极性位 b b b 用于在水印信号认证中传递一个比特的信息。

在一些情况下, b b b 可以被丢弃,只留下加权水印信号,即:

I W = I + α W I_{W}=I+\alpha W IW=I+αW

在其他情况下,想要嵌入更多的比特,可以使用更复杂的水印信号,这种信号由原始图像相同维度的伪随机序列的加权和组成。这些伪随机序列可以被进一步优化以提高它们的正交性。无论在哪种情况下,权重 α \alpha α 都可以根据预定的鲁棒性和透明度之间的平衡关系进行计算。

下图展示了,通过应用复杂的多比特扩展频谱技术,实现了非常好的透明度效果:

在这里插入图片描述
(a) 是原始的 L e n n a \mathsf{Lenna} Lenna 图像;(b) 通过文献 [4] 所述的多比特技术,在 L e n n a \mathsf{Lenna} Lenna 图像中嵌入了 10 位水印,而这样做几乎不影响其视觉感知,保持了极高的透明度;(c) 是原图与水印图像之间差异的放大视图,以增强对比度和可观察性。


2.2 LSB 技术和可逆水印

水印的嵌入过程涉及修改图像像素的最后 K K K 个最低有效位。例如,对最后两位的修改通常微乎其微,因此实现了极其透明的嵌入。此外,LSB 嵌入技术还可以利用异或 X O R \mathsf{XOR} XOR 运算的性质来实现可逆。

以每像素最后一位进行 LSB 嵌入为例,工作原理如下:假定一个秘密密钥 I K I_K IK,它是一个与原始图像 I I I 尺寸相同的 1 位图像。

通过对每个像素的最后一位执行异或 ⊕ \oplus 操作,嵌入的水印 W W W 可以表示为:

W ( i ) = I K ( i ) ⊕ I ( i ) W(i) = I_K(i) \oplus I(i) W(i)=IK(i)I(i)

随后,图像中每个像素的最后一位被水印 W ( i ) W(i) W(i) 所替换,产生加了水印的图像 I W I_W IW,如下图所示。这一过程使得数字图像能够通过既定协议进行验证。

在这里插入图片描述

(a) 是原始的 L e n n a \mathsf{Lenna} Lenna 图像;(b) 嵌入了单位水印的 L e n n a \mathsf{Lenna} Lenna 图像,在本例中水印为全零,通过 LSB 技术实现,对视觉感知几乎没有影响;(c) 这三幅图像之间的差异,经过 100 倍放大以便更清晰地观察。

更重要的是,借助秘密密钥 I K I_K IK,先前修改的原图像的最后几位信息可以被完全复原:

I ( i ) = W ( i ) ⊕ I K ( i ) I(i) = W(i) \oplus I_K(i) I(i)=W(i)IK(i)

通过将加了水印的图像 I W I_W IW 的每个像素的最后一位 I W ( i ) I_W(i) IW(i),恢复为原始图像 I I I 的相应位 I ( i ) I(i) I(i),可以完全恢复出原始图像。这一特性有助于增强 NFT 市场的安全性。

LSB 技术不仅限于修改最后一位,还可以用于修改更多的位,这样会降低图像的透明度,同时增加可嵌入的信息量。需要注意的是,LSB 是一种相当敏感的技术,图像的任何改动都可能导致水印的损坏。然而,这种敏感性在认证协议和服务中是可以接受的,因为它有助于提升 NFT 市场的安全性和认可度。



3 基于频率域的方法

在频率域内,结合人类感知的频率模型来嵌入水印是一种有效的方法。这种技术能够依据人类感知的模型来精细调整透明度,从而显著降低水印嵌入对视觉的影响,与空间域技术相比尤为如此。在实现这一目标时,最广泛应用的转换方法包括离散余弦变换 D C T \mathsf{DCT} DCT 和小波变换 D W T \mathsf{DWT} DWT。多种策略通过修改频率域中的特定系数来嵌入水印,这些策略的详细研究可参见文献 [2]。




本节参考文献

  • [2] Yu X, Wang C, Zhou X. Review on semi-fragile watermarking algorithms for content authentication of digital images. Future Internet. 2017;9:56
  • [4] Mayer J. Optimization of Multibit Watermarking. Watermarking Book. London, UK: Intechopen; 2012


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1653594.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenGL 入门(四)—— 贴纸与美颜滤镜

本篇我们来介绍贴纸效果与美颜滤镜的实现。 1、贴纸效果 贴纸实际上是一个图片,用 Bitmap 加载图片后用 OpenGL 渲染到指定的位置上。我们举例添加一个耳朵贴纸: 1.1 获取人脸位置 上一篇我们在讲大眼滤镜时,在 Native 层除了获取到人脸 5…

【数据库表的约束(下)】

文章目录 一、自增长主键二、唯一键约束三、外键约束总结 一、自增长主键 这个约束的功能是: 你不用管我,也不需要插入我这一列的数据,我会保证自己与其他数据不冲突,并且是连续的。 创建一个表,表格内容如下&#x…

Tkinter组件:Checkbutton

Tkinter组件:Checkbutton Checkbutton(多选按钮)组件用于实现确定是否选择的按钮。Checkbutton 组件可以包含文本或图像,你可以将一个 Python 的函数或方法与之相关联,当按钮被按下时,对应的函数或方法将被…

保护公司机密:避免员工带着数据说拜拜

公司的核心资产之一就是数据。无论是客户信息、研发代码、内部决议、财务报告、商业合同、设计图纸等都是公司的重要资产。如果这些数据在员工离职时被带走,或在员工在职期间不当行为导致数据泄露,将给公司带来重大损失。 然而,保护这些数据…

大模型微调之 在亚马逊AWS上实战LlaMA案例(四)

大模型微调之 在亚马逊AWS上实战LlaMA案例(四) 在 Amazon SageMaker JumpStart 上微调 Llama 2 以生成文本 Meta 能够使用Amazon SageMaker JumpStart微调 Llama 2 模型。 Llama 2 系列大型语言模型 (LLM) 是预先训练和微调的生成文本模型的集合&#x…

漏洞伴随App无时不在,该怎么办?

漏洞攻击、加密被破坏以及数据泄露是App面临的三大重要安全风险,无论开发者如何防范,攻击者往往会找到新的方法,并依靠最新的工具来破坏App安全性。 统计数据表明,大约82%的漏洞是在App程序代码中发现的。如果尽快发现…

百度百科怎么修改词条

百度百科是一个由网民编辑内容的网络百科全书,支持用户添加或修改词条。以下是关于如何修改百度百科词条的详细步骤和注意事项。 1. 登录百度百科账户 首先,你需要登录到百度百科账户。如果你还没有百度账号,你需要先注册一个。注册完成后&a…

【vue+el-upload】当action=“#“,代表不使用默认上传,使用自定义上传,http-request获取文件流

el-upload有多种上传行为: 1、立即上传: 当 action 属性被赋予一个有效的 URL 时,一旦用户选择了文件,el-upload 组件会立即自动将文件上传到指定的服务器地址。 2、不立即上传(自定义触发): 如…

2024-5-3学习笔记 虚拟继承原理

目录 原理 总结 前面提到过,解决菱形继承产生的数据二义性问题和数据冗余,就需要用到虚拟继承,关于它是如何解决的,我们来一起研究。 class Person { public :string _name ; // 姓名 }; class Student : virtual public Perso…

微软exchange邮箱发送

使用java发送exchange类型的邮件&#xff0c;foxmail中配置如下图&#xff1a; 需要的maven依赖如下&#xff1a; <dependency><groupId>com.microsoft.ews-java-api</groupId><artifactId>ews-java-api</artifactId><version>2.0</ve…

以gitee为例的git入门使用指北

安装git 在linux中我们首先需要使用 sudo apt install git来下载git 在windows中可以下载msysGit 链接&#xff1a;https://git-scm.com/download/win gitee准备 申请账号 建立仓库 ​ 点击新建仓库 这里一般是私有库&#xff0c;点击创建&#xff0c;这时你就拥有一个线上…

LearnOpenGL(九)之材质

一、材质 在现实世界里&#xff0c;每个物体会对光产生不同的反应。比如&#xff0c;钢制物体看起来通常会比陶土花瓶更闪闪发光&#xff0c;一个木头箱子也不会与一个钢制箱子反射同样程度的光。在opengl中&#xff0c;我们可以针对每种表面定义不同的材质(Material)属性来模…

Web自动化测试入门:前端页面的组成分析详解!

在进行Web自动化测试时&#xff0c;了解前端页面的组成是非常重要的&#xff0c;因为页面的不同元素和交互会直接影响测试的实施和结果。本文将从0到1详细规范地介绍前端页面的组成。 1. 页面结构 一个典型的前端页面通常由HTML、CSS和JavaScript三部分组成。HTML负责页面的整…

STL速查

容器 (Containers) 图解容器 支持随机访问 stringarrayvectordeque支持支持支持支持 string 类 构造函数 string(); ------创建一个空的字符串 例如: string str;string(const char* s); ------使用字符串s初始化string(const string& str); ------拷贝构造 赋值操作…

Spring中FactoryBean的作用和实现原理

Spring中FactoryBean的作用和实现原理 BeanFactory与FactoryBean&#xff0c;相信很多刚翻看Spring源码的同学跟我一样很好奇这俩货怎么长得这么像&#xff0c;分别都是干啥用的。 BeanFactory是Spring中Bean工厂的顶层接口&#xff0c;也是我们常说的SpringIOC容器&#xff…

pip install flash_attn 报错

目录 报错截图关键问题nvcc -V 查看 cuda 版本查看 usr/local/cuda-* 安装的cuda版本设置 cuda-12.0 &#xff08;添加入环境变量&#xff09;FlashAttention 安装成功 报错截图 ImportError: This modeling file requires the following packages that were not found in you…

OSPF Stub区域

原理概述 OSPF 协议定义了多种区域&#xff08; Area &#xff09;类型&#xff0c;其中比较常见的有 Stub 区域和 Totally Stub 区域。区域的类型决定了在这个区域当中所存在的 LSA 的类型。 Stub 区域不允许 Type-4和 Type-5 LSA 进入&#xff0c;该区域会通过 Type-3 LSA…

Elasticsearch中的三种分页策略深度解析:原理、使用及对比

码到三十五 &#xff1a; 个人主页 在Elasticsearch中&#xff0c;分页是查询操作中不可或缺的一部分。随着数据量的增长&#xff0c;如何高效地分页查询数据急需需要面对的问题。Elasticsearch提供了三种主要的分页方式&#xff1a;from size、scroll和search_after。下面详细…

【Kubernetes集群一主二从安装教程】

文章目录 环境准备主机间做信任安装ansible工具 升级内核版本使用elrepo源升级内核查看最新版内核安装最新的内核版本设置系统默认内核设置默认内核为我们刚才升级的内核版本 初始化关闭防火墙关闭selinux关闭swap修改主机名修改hosts文件将桥接的IPv4流量传递到iptables的链配…

谈谈IP地址

IP地址 IP地址概念动态分配 IP(DHCP)NAT机制(网络转换机制)IPv6 IP地址组成特殊的IP地址 IP地址 IP协议报文结构: 概念 IP地址: 描述了主机的具体位置.有32位,利用点分十进制的方式来表示.例如: 192.168.190.77 32位ip地址表示的数据非常有限,42亿九千万…, 那么ip地址不够用…