【 图像水印 2019 CVPR】 StegaStamp 论文翻译

news2024/11/27 17:51:20

【 图像水印 2019 CVPR】 StegaStamp 论文翻译

论文题目:StegaStamp: Invisible Hyperlinks in Physical Photographs

中文题目:物理照片中不可见的超链接

论文链接:https://arxiv.org/abs/1904.05343

论文代码:https://github.com/tancik/StegaStamp

论文团队:加州大学伯克利分校

发表时间:

DOI:

引用:Tancik M, Mildenhall B, Ng R. Stegastamp: Invisible hyperlinks in physical photographs[C]//Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2020: 2117-2126.

引用数:157

摘要

打印和数字显示的照片能够隐藏可通过互联网连接的成像系统访问的不易察觉的数字数据。

另一种思考方式是物理照片,其中隐藏着独特的二维码。

本文介绍了解决这一愿景的架构、算法和原型实现。

我们的关键技术贡献是 StegaStamp,这是一种学习的隐写算法,能够以接近感知不可见的方式将任意超链接位串稳健地编码和解码为照片。

StegaStamp 包含一个深度神经网络,该网络学习一种编码/解码算法,该算法对图像扰动具有鲁棒性,近似于真实打印和摄影导致的失真空间。

我们演示了对来自野外视频的照片中的超链接进行实时解码,这些视频包含光照、阴影、透视、遮挡和观看距离的变化。我们的原型系统在纠错后能够可靠地检索 56 位超链接——足以在互联网上的每张照片中嵌入唯一代码。

1. 介绍

我们的愿景是未来,现实世界中的每张照片都会无形地编码一个指向任意信息的独特超链接。

通过将相机对准照片并使用本文中描述的系统解码并跟踪超链接来访问此信息。

未来,增强现实 (AR) 系统可能会持续执行此任务,将检索到的信息视觉叠加在用户视图中的每张照片旁边。


我们的方法与无处不在的 QR 码和类似技术有关,这些技术现在在各种数据传输任务中很常见,例如共享网址、购买商品和跟踪库存。

我们的方法可以被认为是一种互补的解决方案,它避免了可见的、难看的条形码,并使数字信息不可见并融入现代视觉世界无处不在的意象中。

值得花点时间考虑一下我们系统的三个潜在用例。

首先,在农贸市场,摊位所有者可以在价格旁边添加每种产品的照片,并为客户提供有关源农场、营养信息、食谱和季节性供应的额外信息。

其次,在大学系的大厅里,教师的照片目录可以通过为每个人的照片编码一个唯一的 URL 来增加,该 URL 包含教授的网页、办公时间、位置和方向。

第三,纽约市的时代广场贴满了数字广告牌。显示的每个图像帧都可以使用包含有关产品、公司和促销交易的更多信息的 URL 进行编码。


图 1 在典型使用流程的上下文中展示了我们称为 StegaStamp 的系统的概述。

输入是图像和所需的超链接。

首先,我们为超链接分配一个唯一的位串(类似于 http://tinyurl.com 等 URL 缩短服务所使用的过程)。

其次,我们使用我们的 StegaStamp 编码器将位串嵌入到目标图像中。这会产生一个编码图像,该图像在理想情况下与输入图像在感知上相同。

如第 4 节中详细描述的,我们的编码器是作为一个深度神经网络实现的,它与实现解码的第二个网络联合训练。

第三,编码图像被物理打印(或显示在电子显示器上)并呈现在现实世界中。

第四,用户拍摄包含物理打印的照片。

第五,系统使用图像检测器来识别和裁剪所有图像。

第六,使用StegaStamp解码器处理每个图像以检索唯一的位串,该位串用于跟随超链接并检索与图像相关的信息。


image-20230511103800169

图 1:我们的深度学习系统经过训练可以隐藏图像中的超链接。首先,编码器网络将输入图像和超链接位串处理成 StegaStamp(编码图像)。然后,StegaStamp 由相机打印和捕获。检测网络在将 StegaStamp 传递给解码器网络之前对其进行定位和校正。比特恢复并纠正错误后,用户可以点击超链接。为了训练编码器和解码器网络,我们使用一组可区分的图像增强来模拟由打印、重新成像和检测 StegaStamp 引起的损坏。

这种数据传输方法在隐写术和水印文献中都有悠久的历史。

我们针对这个问题提出了第一个端到端训练的深度管道,即使在“物理传输”下也可以实现稳健的解码,提供足以编码和检索基本上无限数量的图像的任意超链接的出色性能。

我们通过添加一组不同的来扩展传统的学习隐写术框架编码器和解码器之间存在的像素级和空间图像损坏,成功地逼近了由“物理传输”(即实际打印或显示以及随后的图像捕获)导致的失真空间。

结果是在现实条件下对 95% 的 100 个编码位进行稳健检索,同时保持出色的感知图像质量。

这使我们的原型能够对隐藏的超链接进行唯一编码,以获取比当今互联网上存在的数量级更多的图像(上限为 100 万亿)。

2. 相关工作

2.1 隐写术

隐写术是将数据隐藏在其他数据中的行为,其历史可以追溯到古希腊。我们提出的任务是一种隐写术,我们在图像中隐藏代码。已经开发了各种用于数字图像隐写术的方法。数据可以隐藏在图像的最低有效位、细微的颜色变化和细微的亮度变化中。通常方法旨在逃避隐写分析,即隐藏消息的检测 [18, 34]。我们将感兴趣的读者推荐给调查 [9, 11],这些调查回顾了一系列广泛的技术。

与我们的提议最相关的工作是利用深度学习对隐藏在图像中的消息进行编码和解码的方法 [5, 21, 43, 47, 51, 54, 44]。我们的方法假设图像将被编码和解码步骤之间的显示成像管道破坏。除了 HiDDeN [54] 和 Light Field Messaging (LFM) [45] 之外,小的图像处理或损坏会使现有技术无用,因为它们的目标是在完美的数字环境中编码大量的每像素比特传送。 HiDDeN 在编码和解码之间引入了各种类型的噪声以提高鲁棒性,但仅关注通过数字图像处理(例如 JPEG 压缩和裁剪)可能发生的一组损坏。对于用作物理条形码,解码器不能假设完美对齐,因为在拍摄随意照片时保证会发生透视偏移和像素重采样。 LFM [45] 使用在手动拍摄监视器的大型数据集上训练的网络获得鲁棒性,以消除相机显示损坏。我们的方法不需要这种耗时的数据集捕获步骤,并且可以推广到打印图像,而对于这种介质,收集训练数据将更加困难。

2.2 水印

水印是一种隐写术,长期以来一直被认为是一种将物理图像链接到 Internet 资源的潜在方式 [2]。该领域的早期工作为鲁棒水印定义了一组理想的目标,包括对图像处理的不可见性和鲁棒性[7]。后来的研究证明了在对数极坐标频域中编码水印具有显着的鲁棒性优势 [27,33,35,53]。类似的方法已经过优化,可用作交互式手机应用程序 [13,31,36]。其他工作的重点是仔细建模打印机-相机变换 [37, 42] 或显示相机变换 [17, 46, 50] 以实现更好的信息传输。一些显示相机通信的方法利用了这种硬件组合的独特属性,例如偏振 [49]、卷帘快门伪影 [26] 或高帧速率 [12]。图像取证中的一项相关工作探索了是否可以使用 CNN 来检测图像何时被重新成像 [16]。与之前水印工作中使用的手工设计的管道相比,我们的方法自动学习如何以一种对许多不同的鲁棒性的方式隐藏和传输数据打印机/显示器、相机、照明和视点的组合。我们提供了一个训练这个系统的框架,并对其能力进行了严格的评估,证明它可以在许多现实世界的场景中工作,并使用消融来展示我们训练扰动的相对重要性。

2.3 条码

条码是将短数据串传输到计算设备的最流行的解决方案之一,只需要简单的硬件(激光阅读器或相机)和用于打印或显示代码的区域。传统条码是一维模式,其中交替粗细的条码编码不同的值。无处不在的高质量手机摄像头导致经常使用二维 QR 码在手机之间传输数据。例如,用户可以共享联系信息、支付商品、跟踪库存或从广告中检索优惠券。

过去的研究已经解决了使用相机对现有或新的条形码设计进行稳健解码的问题 [29, 32]。一些设计特别利用相机在简单激光扫描仪之外以各种方式增加的功能,例如将颜色合并到条形码中[8]。其他工作提出了一种方法,该方法可以确定条形码应该放在图像上的什么位置以及应该使用什么颜色来提高机器可读性 [30]。

另一种特殊类型的条形码专门设计用于传输小型标识符和精确的六自由度方向,用于相机定位或校准,例如 ArUco 标记 [19, 38]。胡等人。 [22] 使用类似于我们的方法的数据增强训练深度网络,以在具有挑战性的现实世界条件下定位和识别 ArUco 标记。然而,他们的重点是对高度可见的预先存在的标记进行稳健检测,而不是对隐藏在任意自然图像中的消息进行稳健解码。

2.4 强大的对抗性图像攻击

针对对象分类 CNN 的对抗性图像攻击旨在最大限度地减少对图像的干扰,以产生不正确的分类。与我们的工作最相关的是物理世界中对抗性示例的演示 [4, 10, 15, 25, 28, 40, 41],其中系统通过对物理上逼真的扰动(即仿射图像扭曲)进行建模来增强成像应用的鲁棒性、加性噪声和 JPEG 压缩)。简等人 [25] 采用不同的方法,明确训练神经网络以复制成像系统添加的失真,并表明将攻击应用于失真图像会提高成功率。

这些结果表明,在图像经过成像管道后,网络仍然会受到小扰动的影响。我们提出的任务有一些相似之处;然而,分类目标是 n ≈ 2 10 n\approx2^{10} n210个标签中的 1 个,而我们的目标是唯一解码 2 m 2^{m} 2m条消息中的 1 个,其中 m ≈ 100 m\approx100 m100是编码位数。此外,对抗性攻击通常不会修改解码器网络,而我们明确训练我们的解码器与我们的编码器合作以实现最大的信息传输。

3. 真实世界的稳健性训练

在训练期间,我们在编码器和解码器之间应用图 3 中概述的一组可微图像扰动来近似由物理显示和成像 StegaStamps 引起的失真。

之前合成鲁棒对抗样本的工作使用了一种类似的方法来攻击野外的分类网络(称为“期望转换”),尽管他们使用了一组更有限的转换 [4]。

HiDDeN [54] 使用非空间扰动来增强他们的隐写流水线,仅针对数字扰动。

Deep ChArUco [22] 使用空间和非空间扰动来训练专门用于 ChArUco 基准标记板的鲁棒检测器。

我们结合了所有这些工作的想法,训练了一个编码器和解码器,它们合作通过物理显示成像管道稳健地传输隐藏的消息。

image-20230511104839904

图 3:图像扰动管道。在训练期间,我们近似于物理显示成像管道的效果,以使我们的模型在现实世界中使用时具有鲁棒性。在将图像通过解码网络之前,我们获取编码网络的输出并应用此处显示的随机变换(详见第 3 节)

3.1 透视变形

假设针孔相机模型,同一平面的任何两个图像都可以通过单应性关联。

我们生成一个随机单应性来模拟未与编码图像标记精确对齐的相机的效果。

为了对单应性(homography.)进行采样,我们在固定范围内(最多 ±40 个像素,即 ±10%)均匀地随机扰动标记的四个角位置,然后求解将原始角映射到新位置的单应性。

我们对原始图像进行双线性重采样以创建透视扭曲图像。

3.2 运动和散焦模糊

相机运动和不准确的自动对焦都可能导致模糊。

为了模拟运动模糊,我们对随机角度进行采样并生成宽度在 3 到 7 像素之间的直线模糊核。

为了模拟散焦,我们使用高斯模糊核,其标准偏差在 1 到 3 个像素之间随机采样。

3.3 颜色处理

与完整的 RGB 色彩空间相比,打印机和显示器的色域有限。相机使用曝光设置、白平衡和色彩校正矩阵来修改它们的输出。我们用一系列随机仿射颜色变换(在整个图像中保持不变)来近似这些扰动,如下所示:

  1. 色调偏移:向从 [ − 0.1 , 0.1 ] [-0.1,0.1] [0.1,0.1]均匀采样的每个 RGB 通道添加随机颜色偏移。
  2. 去饱和:在完整的 RGB 图像与其等效灰度图像之间进行随机线性插值。
  3. 亮度和对比度:仿射直方图用 m ∼ U [ 0.5 , 1.5 ] m\sim U[0.5,1.5] mU[0.5,1.5] b ∼ U [ − 0.3 , 0.3 ] . b\sim U[-0.3,0.3]. bU[0.3,0.3].重新缩放 m x + b mx + b mx+b

在这些变换之后,我们将颜色通道裁剪为 [0, 1]。

3.4 噪音

相机系统引入的噪声得到了很好的研究,包括光子噪声、暗噪声和散粒噪声[20]。我们假设标准的非光子饥饿成像条件,采用高斯噪声模型(采样标准偏差 σ∼U[0, 0.2])来解释成像噪声。

3.5 JPEG压缩

相机图像通常以有损格式存储,例如 JPEG。 JPEG 通过计算图像中每个 8 × 8 块的离散余弦变换并通过四舍五入到最接近的整数(在不同频率下的不同强度)来量化结果系数来压缩图像。这个舍入步骤是不可微的,所以我们使用 Shin 和 Song [40] 的技巧来用分段函数逼近零附近的量化步骤
q ( x ) = { x 3 : ∣ x ∣ < 0.5 x : ∣ x ∣ ≥ 0.5 q(x)=\begin{cases}x^3&:|x|<0.5\\ x&:|x|\geq0.5\end{cases} q(x)={x3x:x<0.5:x0.5
几乎处处都有非零导数。我们在 [50, 100] 内均匀地采样 JPEG 质量。

4. 实现细节

4.1 编码器

编码器经过训练,可以将消息嵌入到图像中,同时最小化输入图像和编码图像之间的感知差异。

我们使用 U-Net [39] 风格的架构,接收四通道 400 × 400 像素输入(输入图像 RGB 通道加上一个用于消息的通道并输出三通道 RGB 残差图像输入消息表示为 100 位二进制字符串,通过全连接层处理形成 50 × 50 × 3 的张量,然后上采样产生 400 × 400 × 3 的张量。

我们发现将这种预处理应用于消息有助于收敛。我们在图 2 中展示了编码图像的示例。

image-20230511105816621

图 2:编码图像示例。残差由编码器网络计算并添加回原始图像以产生编码的StegaStamp。这些示例具有 100 位编码消息,并且对通过打印和成像管道发生的图像扰动具有鲁棒性。

4.2 解码器

解码器是一个经过训练的网络,可以从编码图像中恢复隐藏信息。空间变换器网络 [24] 用于开发针对在捕获和校正编码图像时引入的小的透视变化的鲁棒性。转换后的图像通过一系列卷积层和密集层以及 sigmoid 来产生与消息长度相同的最终输出。解码器网络使用交叉熵损失进行监督。

4.3 Detector 探测器

对于现实世界的使用,我们必须在解码之前在宽视场图像中检测和校正 StegaStamps,因为解码器网络本身并不能处理更大图像中的完整检测。我们对现成的语义分割网络 BiSeNet [48] 进行微调,以分割图像中被认为包含 StegaStamps 的区域。

该网络使用嵌入到从 DIV2K [1] 采样的高分辨率图像中随机变换的 StegaStamps 数据集进行训练。在测试时,我们将一个四边形拟合到每个网络提议区域的凸包,然后计算一个单应性以将每个四边形扭曲回 400 × 400 像素的图像以供解码器解析。

4.4 编码器/解码器训练程序

训练数据 在训练期间,我们使用来自 MIRFLICKR 数据集 [23] 的图像(重新采样到 400 × 400 分辨率)与随机采样的二进制消息相结合。

Critic 作为我们总损失的一部分,我们使用一个评论网络来预测消息是否在图像中编码,并用作编码器/解码器管道的感知损失。该网络由一系列卷积层和最大池化组成。为了训练critic,输入图像和编码图像被分类,Wasserstein损失[3]被用作监督信号。Critic 的训练与编码器/解码器的训练交错。

Losses 为了对编码的 StegaStamp 实施最小的感知失真,我们使用 L2 残差正则化 LR、LPIPS 感知损失 [52] LP 和在编码图像和原始图像之间计算的Critic损失 LC。我们对消息使用交叉熵损失 LM。训练损失是这些损失成分的加权和。
L = λ R L R + λ P L P + λ C L C + λ M L M L=\lambda_R L_R+\lambda_P L_P+\lambda_C L_C+\lambda_M L_M L=λRLR+λPLP+λCLC+λMLM
我们发现三个损失函数调整在训练网络时特别有助于收敛:

  1. 当解码器训练到高精度时,这些图像损失权重 λ R , P , C \lambda_{R,P,C} λR,P,C必须最初设置为零,然后线性增加 λ R , P , C \lambda_{R,P,C} λR,P,C
  2. 图像扰动强度也必须从零开始。透视扭曲是最敏感的扰动,并且以最慢的速度增加。
  3. 该模型学习在图像边缘添加分散注意力的图案(可能有助于定位)。我们通过余弦衰减增加边缘处 L 2 L2 L2 损失的权重来减轻这种影响。

5. 真实世界和基于模拟的评估

我们在真实世界条件和显示成像管道的合成近似下测试我们的系统。我们展示了我们的系统在野外工作,在不受控制的室内和室外环境中恢复消息。我们在受控的现实世界环境中评估我们的系统,其中包含 6 台不同显示器/打印机和 3 台不同相机的 18 种组合。综合所有设置(捕获 1890张图片)我们实现了 98.7% 的平均位精度。我们使用四种不同的训练模型进行真实和合成消融研究,以验证我们的系统对我们在训练期间应用的每种扰动都是稳健的,并且省略这些增强会显着降低性能。

5.1 野外鲁棒性

我们的方法在各种真实环境中捕获的手持手机摄像头视频上进行了测试。 StegaStamps 在消费级打印机上打印。具有检测到的四边形和解码精度的捕获帧示例如图 4 所示。当 StegaStamp 的部分被其他对象覆盖时,我们还展示了令人惊讶的鲁棒性水平(图 5)。请查看我们的补充视频,了解真实世界 StegaStamp 解码的大量示例,包括使用 BCH 纠错码完美恢复 56 位消息的示例 [6]。我们一般发现,如果边界矩形定位准确,解码精度就很高。但是,检测器可能会错过视频帧子集上的 StegaStamp。实际上这不是问题,因为代码只需要恢复一次。我们预计未来的扩展包含时间信息和自定义检测网络可以进一步提高检测一致性。

image-20230511110759633

我们在野外部署的系统示例。我们概述了我们的系统检测和解码的 StegaStamps 以及显示消息恢复的准确性。我们的方法适用于现实世界,表现出对改变相机方向、光照、阴影等的鲁棒性。您可以在我们的补充视频中找到这些示例以及更多内容。

image-20230511110816031

图 5:尽管没有明确训练该方法对遮挡具有鲁棒性,但我们发现我们的解码器可以优雅地处理部分擦除,保持高精度。

5.2 真实世界实验

为了证明我们的模型从合成扰动推广到真实的物理显示成像管道,我们进行了一系列测试,其中编码的图像被打印或显示,由相机重新捕获,然后解码。我们从 ImageNet 数据集 [14] 中随机选择 100 张独特的图像(与我们的训练集不相交),并在每张图像中嵌入随机的 100 位消息。我们为总共 105 个测试图像生成了 5 个额外的 StegaStamps,它们具有相同的源图像但不同的消息。我们在具有固定照明的暗室中进行实验。打印的图像被固定在一个装置中以保持一致性,并由安装在三脚架上的相机捕获。生成的照片经过手工裁剪、校正并通过解码器。


图像使用消费者打印机打印(HP LaserJet Pro M281fdw)、企业打印机 (HP LaserJet Enterprise CP4025) 和商业打印机 (Xerox 700i Digital Color Press)。这些图像还在磨砂 1080p 显示器 (Dell ST2410)、光滑的高 DPI 笔记本电脑屏幕 (Macbook Pro 15 英寸) 和 OLED 手机屏幕 (iPhone X) 上进行数字显示。为了对 StegaStamps 进行成像,我们使用高清网络摄像头 (Logitech C920)、手机摄像头 (Google Pixel 3) 和 DSLR 摄像头 (Canon 5D Mark II)。所有设备都使用其出厂校准设置。 105 张图像中的每一张都是通过 6 个媒体和 3 个摄像机的所有 18 种组合捕获的。结果如表 1 所示。我们的方法在显示器/打印机和相机的各种不同组合中具有高度鲁棒性。这些场景中的三分之二产生 100% 的中值准确度和至少 95% 完美解码的第 5 个百分位准确度。我们对所有 1890 张捕获的图像的平均准确率为 98.7%。


image-20230511110913034

表 1:使用六种显示方法(三台打印机和三台屏幕)和三台相机的组合测试的真实世界解码精度(正确恢复的比特百分比)。我们展示了第 5、第 25 和第 50 个百分位数以及从 ImageNet [14] 中随机选择的 105 张图像的平均值,其中随机采样 100 位消息。

使用由手机摄像头 + 消费者打印机组合组成的测试集,我们将我们方法的变体(在第 5.3 节中进一步描述)与图 6 中的 Baluja [5]、HiDDeN [54] 和 LFM [44] 进行比较。我们的模型使用相同的架构,但经过不同增强的训练;名称 None、Pixelwise、Spatial 和 All 表示在训练期间应用了哪些类别的扰动。我们看到 Baluja [5],用最少量的增强噪声(类似于我们的 None 变体)训练的性能并不比猜测好。 HiDDeN [54] 包含增强到他们的训练管道,以增加对扰动的鲁棒性。他们的方法是通过一组像素级的扰动以及“裁剪”增强来训练的,该增强可以屏蔽掉一个随机图像区域。然而,它缺乏对图像进行空间重采样的增强,我们发现它的准确性介于我们的 Pixelwise 和 Spatial 变体之间。 LFM [44] 专门训练“失真”网络来模拟显示和重新捕获编码图像的效果,在他们从 25 个显示器/相机对收集的超过 100 万张图像的数据集上进行训练。在这个领域(“屏幕”),我们发现 LFM 表现相当不错。但是,它并没有推广到打印机/相机管道(“打印机”)。有关比较方法的测试详细信息,请参阅补充。在我们自己的消融变体中,我们看到仅使用空间扰动进行训练比仅使用像素级扰动产生显着更高的性能;然而,Spatial 仍然不能可靠地恢复足够的数据以供实际使用。我们提出的方法(All)结合了像素级和空间扰动,在很大程度上实现了最精确和最准确的结果。

image-20230511110945935

图 6:使用表 1 中的手机摄像头 + 消费者打印机管道,我们在第 5.3 节中描述的方法的变体与竞争方法的真实世界比较。我们展示了随机猜测的分布(其平均值为 0.5,由虚线表示)证明无扰动消融和Baluja [5]的表现并不比机会好。 HiDDeN [54] 使用像素级扰动和随机掩蔽。添加空间扰动对于实现高真实世界性能至关重要。

5.3 合成消融实验

image-20230511111044587

图 7:合成消融测试显示使用各种图像扰动组合进行训练对位恢复鲁棒性的影响。 “逐像素”扰动 © 是噪声、颜色变换和 JPEG 压缩,“空间”扰动 (d) 是透视扭曲和模糊。为了测试一系列可能退化的鲁棒性,我们将每个扰动的强度参数化,范围从 0(最弱)到 1(训练期间看到的最大值)到 2(最强)。未针对空间扰动 (b-c) 进行训练的模型非常容易受到扭曲和模糊的影响,而仅针对空间扰动 (d) 进行训练的模型对颜色转换很敏感。线条显示平均准确度,阴影区域显示 100 个随机图像和消息的第 25-75 个百分位数范围。有关详细信息,请参阅第 5.3 节。

我们测试了使用第 3 节中图像扰动的不同子集进行训练如何影响合成实验中的解码精度(图 7)。我们评估我们的基础模型(经过所有扰动训练)和另外三个模型(在没有扰动、只有像素级扰动和只有空间扰动的情况下训练)。大多数关于学习图像隐写术的工作都集中在尽可能多地隐藏信息,假设在解码之前不会发生损坏(如在我们的“无扰动”模型中)。

我们对 1000 张图像进行了更详尽的合成消融研究,以分别测试每个训练时间扰动对准确性的影响。图 7 中显示的结果遵循与现实世界比较测试类似的模式。在没有扰动的情况下训练的模型对颜色扭曲和噪声具有惊人的鲁棒性,但在出现扭曲、模糊或任何级别的 JPEG 压缩时立即失败。仅使用像素级扰动的训练对这些增强产生了很高的鲁棒性,但仍然使网络容易受到来自扭曲或模糊的任何数量的像素重采样的影响。另一方面,仅使用空间扰动进行训练也可以提高对 JPEG 压缩的鲁棒性(可能是因为它具有与模糊相似的低通滤波效果)。同样,使用空间和像素增强进行训练会产生最佳结果。

5.4 实用消息

我们的模型可以被训练来存储不同数量的比特。在之前的所有示例中,我们使用的消息长度为 100。

图 8 比较了来自四个具有不同消息长度的单独训练模型的编码图像。较大的消息更难编码和解码;结果,在恢复准确性和感知相似性之间存在权衡。相关的图像指标在表 2 中报告。在训练时,图像和消息损失进行了调整,使得比特准确率收敛到至少 95%。

我们选择 100 位的消息长度,因为它在图像质量和信息传输之间提供了良好的折衷。给定至少 95% 的恢复精度估计,我们可以使用 BCH 码 [6] 对至少 56 个纠错位进行编码。正如引言中所讨论的,这使我们能够将历史中记录的每个图像唯一地映射到相应的 StegaStamp。考虑到纠错,仅使用 50 个总消息位将大大减少可能的编码超链接的数量到 10 亿以下。由 150 或 200 位编码引起的图像质量下降更为明显。

image-20230511111601052

图 8:四个模型经过训练可对不同长度的消息进行编码。插图显示了相对于原始图像的残差。随着更多比特被编码,感知质量下降。我们发现 100 位的消息长度提供了良好的图像质量,并且足以使用纠错码对几乎无限数量的不同超链接进行编码。

6. 结论

我们提出了一个端到端的深度学习框架,用于将 56 位纠错超链接编码为任意自然图像。我们的网络通过图像扰动模块进行训练,该模块允许它们泛化到现实世界的显示成像管道。我们在实验设置中展示了在各种打印机、屏幕和相机组合上的强大解码性能。我们还表明,我们的方法足够稳定,可以在野外部署作为现有条形码的替代品,这种条形码的侵入性更小,更美观。

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

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

相关文章

QxRibbon 知:openEuler 23.03 搭建 Qt5 开发环境

文章目录 安装 openEuler 23.03 虚拟机安装 GNOME 桌面环境安装 Qt5 开发环境构建 QxRibbon参考资料 安装 openEuler 23.03 虚拟机 VMware 安装 openEuler 23.03 虚拟机 平台&#xff1a;x86_64 虚拟机配置&#xff1a;4核、4G内存、100G磁盘 ISO 镜像&#xff1a;https://mir…

FT2000+ qemu kvm 红旗 crash 分析 频繁设置CPU online导致进程卡死、不调度故障

测试程序 /** tcti.cpp参考&#xff1a; https://www.cnblogs.com/organic/p/17321523.htmlg -stdc11 -lpthread trigger_cgroup_timer_inactive.cpp -o inactive_timer ./inactive_timer 100000 10000 */#include <errno.h> #include <iostream> #include <pt…

Redis进阶(集群,雪崩,击穿,穿透.......)

Redis进阶 Redis事务_事务的概念与ACID特性 Redis的事物不保证原子性 数据库层面事务 在数据库层面&#xff0c;事务是指一组操作&#xff0c;这些操作要么全都被成功执行&#xff0c;要么全都不执行。 数据库事务的四大特性 A&#xff1a;Atomic&#xff0c;原子性&#xf…

Docker笔记5 | 容器的基本操作

5 | 容器的基本操作 1 启动容器1.1 启动方式1.2 新建容器并启动1.3 docker run时的运行过程1.4 启动已终止容器1.5 后台运行1.6 查看容器信息 2 终止容器3 进入容器3.1 docker attach3.2 docker exec 4 导入导出容器4.1 导出容器4.2 导入容器 5 删除容器 1 启动容器 1.1 启动方…

Linux内核主要组成部分有哪些?

Linux 内核由几大子系统构成&#xff0c;分别为进程调度、进程间通信&#xff08;IPC&#xff09; 、内存管理、虚拟 文件系统和网络接口。这几大子系统既相互独立又有非常紧密的关联。图 3-5 展示了内核的 几大子系统之间以及这些子系统和计算机系统的其他模块之间的关系。 接…

ADS-B教学实验方案

ADS-B教学系统是为了让学生学习ADS-B原理、ADS-B系统组成、ADS-B信号处理技术。可以通过ADS-B教学系统进一步研究分析ADS-B位置的精度、准确性、稳定性、实时性&#xff0c;设计基于ADS-B的空中碰撞告警系统&#xff0c;混合空域的空中交通管理系统(UTM)设计。也可以研究ADS-B报…

《花雕学AI》你不知道的AI 机器人:29个让你大开眼界的事实

AI 机器人是人工智能技术的最具代表性的应用之一&#xff0c;它们可以模仿人类的行为和思维&#xff0c;完成各种复杂的任务&#xff0c;如识别图像、语音和文字&#xff0c;进行对话、翻译和推理&#xff0c;控制机械臂、汽车和飞机等。AI 机器人的发展速度令人惊叹&#xff0…

Windows命令提示行使用指南二(批处理)

命令提示行使用指南 前言四、批处理简介五、如何编写批处理1、Hello world2、做加法3、查找文件&#xff0c;并输出到文本。4、批量重命名5、自动记录开机时间 前言 cmd 是 Windows 操作系统中的命令行界面&#xff08;CLI&#xff09;&#xff0c;也称为命令提示符&#xff0…

Linux shell编程 数组排序算法

冒泡排序 循环对比相邻的元素&#xff0c;交换较大元素到后面的位置 大循环根据列表中存在的元素数量循环n-1次&#xff0c;保证所有元素都能被排序完成 小循环从前向后遍历&#xff0c;循环一次循环范围减少一位&#xff08;由于后面的已经排列完成无需再比较&#xff09;小循…

【halcon知识】应用仿射变换

一、说明 无论什么样的变换&#xff0c;都离不开齐次变换矩阵。一般地&#xff0c;先准备一个空的齐次变换矩阵&#xff0c;这个矩阵随便填写&#xff1a;1&#xff09;填入旋转类参数就是旋转矩阵&#xff0c;2——填入仿射参数就可进行仿射变换&#xff0c;3&#xff09;填入…

Kali-linux攻击WordPress和其他应用程序

今天越来越多的企业利用SAAS&#xff08;Software as a Service&#xff09;工具应用在他们的业务中。例如&#xff0c;他们经常使用WordPress作为他们网站的内容管理系统&#xff0c;或者在局域网中使用Drupal框架。从这些应用程序中找到漏洞&#xff0c;是非常有价值的。 为…

[JAVA数据结构]堆

目录 1.堆的概念 2.堆的创建 3.堆的插入与删除 3.1堆的插入 3.2堆的删除 1.堆的概念 如果有一个关键码的集合K {k0&#xff0c;k1&#xff0c; k2&#xff0c;…&#xff0c;kn-1}&#xff0c;把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中&#xff0c;…

【Linux】远程桌面连接服务器报错:未启用对服务器的远程访问......

&#x1f341;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; 文章目录 前述操作环境说明&#xff1a;远程报…

<数据结构>NO4.带头双向循环链表

文章目录 前言1. 头文件2. 函数实现1&#xff09;创建哨兵位节点2&#xff09;新增一个节点3&#xff09;打印链表4&#xff09;头插5&#xff09;尾插6&#xff09;头删7&#xff09;尾删8&#xff09;查找9&#xff09;pos前插入10&#xff09;删除pos处节点11&#xff09;销…

Redis 缓存穿透、缓存击穿与缓存雪崩

文章目录 1. 缓存穿透解决方法 2. 缓存击穿解决方法 3. 缓存雪崩解决方法 在 redis 的应用场景中&#xff0c;需要考虑缓存在某些场景下可能出现的问题&#xff1a; 缓存穿透 缓存击穿 缓存雪崩 以下缓存问题的讨论都是基于以下应用架构讨论的&#xff1a; 1. 缓存穿透 对应…

数据备份系列:Rsync 备份实战记录(二)

一、Rsync Cron 场景使用 在对数据备份要求实时性不高的情况下&#xff0c;可优先考虑该场景&#xff0c;选择一个合适的时间&#xff0c;对数据进行定时远程增量同步。 在《数据备份系列&#xff1a;Rsync 备份详解&#xff08;一&#xff09;》中我们已经对服务搭建以及远程…

DAD-DAS模型

DAD-DAS模型 文章目录 DAD-DAS模型[toc]1 产品服务:需求方程2 实际利率:费雪方程3 通货膨胀:菲利普斯方程4 预期通货膨胀&#xff1a;适应性预期5 货币政策规则&#xff1a;泰勒方程6 动态总供给-总需求方程&#xff08;DAS-DAD&#xff09;7 总供给冲击模拟 1 产品服务:需求方…

【JavaEE初阶】文件操作——IO

摄影分享~ 文章目录 文件文件路径&#xff08;Path&#xff09; 文件的类型Java中操作文件File概述 文件内容的读写——数据流字节流InputStream概述OutputStream 概述字符流FileInputStream 概述利用 Scanner 进行字符读取 实例练习 文件 文件&#xff1a;File这个概念&…

PostSQL内存管理之内存上下文

瀚高数据库 目录 环境 文档用途 详细信息 环境 系统平台&#xff1a;Linux x86-64 Red Hat Enterprise Linux 7 版本&#xff1a;14 文档用途 了解pg内存分配 详细信息 1.MemoryContex机制 内存上下文是pg相关的内存控制结构&#xff0c;树形结构组织下的内存上下文能在频繁的…

SNMPc软件的下载和安装教程,计算机网络管理,网络工程师

⬜⬜⬜ &#x1f430;&#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea;(*^▽^*)欢迎光临 &#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea;&#x1f430;⬜⬜⬜ ✏️write in front✏️ &#x1f4dd;个人主页&#xff1a;陈丹宇jmu &am…