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

【 图像水印 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.mfbz.cn/a/19546.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux内核架构和工作原理

**前言&#xff1a;**作用是将应用层序的请求传递给硬件&#xff0c;并充当底层驱动程序&#xff0c;对系统中的各种设备和组件进行寻址。目前支持模块的动态装卸(裁剪)。Linux内核就是基于这个策略实现的。Linux进程1.采用层次结构&#xff0c;每个进程都依赖于一个父进程。内…

django基础知识详解

1. 安装与介绍 课程特点&#xff1a; 学习难度大&#xff0c;大部分内容需要理解并记忆文件较多易混淆学习阶段注重框架使用&#xff0c;工作阶段注重实现业务逻辑综合应用强&#xff0c;小练习少 1.1 Django框架的介绍 2005年发布,采用Python语言编写的开源web框架早期的时…

分享105个NET源码ASP源码,总有一款适合您

分享105个NET源码&#xff0c;总有一款适合您 源码下载链接&#xff1a;https://pan.baidu.com/s/1zFMIHX6juXdR2CaHMEr5mQ?pwdf5hz 提取码&#xff1a;f5hz 下面是文件的名字&#xff0c;我放了一些图片&#xff0c;文章里不是所有的图主要是放不下...&#xff0c;大家下载后…

每天一个提高效率的Matlab编程小技巧(1)-dbstop if error

相信在matlab调试程序的时候都遇到过这种情况&#xff1a;运行程序时命令行报错&#xff0c;而且出错的位置在我们自己定义的函数里&#xff0c;比如下面这个例子&#xff1a; 主函数main.m: a[1 2 3]; b[4 5]; csum_squares(a,b); 子函数sum_squares.m function csum_squa…

实验一 Python基础编程

实验一 Python基础编程 只为给原因学习编程的同学提供一个思路&#xff0c;让编程更简单&#xff01;&#xff01;&#xff01; 本博主擅长整理粉丝的私信&#xff01;只要你有需求就可以告诉博主&#xff01;博主可以帮你解决并发表&#xff01; 一、实验学时 2学时 二、实…

infuluxdb时序数据库介绍

时序数据库&#xff08;influxdb&#xff09; InfluxDB是一个开源的、高性能的时序型数据库&#xff0c;在时序型数据库DB-Engines Ranking上排名第一。 下载地址:https://dl.influxdata.com/influxdb/releases/influxdb2-2.3.0-windows-amd64.zip 启动&#xff1a; CMD到解压…

IDEA编译JDK1.8源码及运行测试

———————————————— 版权声明&#xff1a;本文为CSDN博主「神韵499」的原创文章&#xff0c;遵循CC 4.0 BY-SA版权协议&#xff0c;转载请附上原文出处链接及本声明。 原文链接&#xff1a;https://blog.csdn.net/qq_41055045/article/details/112002440 ————…

缓存穿透、缓存雪崩和缓存击穿

1 缓存穿透 缓存穿透是指查询一个一定不存在的数据&#xff0c;由于缓存中没有&#xff0c;每次查询都要去数据库中查询&#xff0c;导致频繁地访问数据库&#xff0c;从而影响系统的性能。攻击者可以利用这一点&#xff0c;对系统进行拒绝服务攻击。 1.1 缓存穿透举例 攻击者…

Qt Plugin插件开发

一、Qt 插件机制 .1 Qt 插件简介 插件是一种遵循一定规范的应用程序接口编写出来的程序&#xff0c;定位于开发实现应用软件平台不具备的功能的程序。插件与宿主程序之间通过接口联系&#xff0c;就像硬件插卡一样&#xff0c;可以被随时删除&#xff0c;插入和修改&#xff…

docker学习笔记(二)

目录 启动Docker ​编辑 建立 Docker 用户 ​编辑 测试 Docker 是否正常工作 卸载Docker Docker镜像加速器配置 配置镜像 检查加速器是否生效 如何在Linux中的.json文件下保存并退出 如果我是使用vi操作进来的&#xff0c;我该如何保存并退出呢&#xff1f; 如何在Li…

基于粒子群优化算法的最佳方式优化无线传感器节点的位置(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 此代码优化了由于电池耗尽而产生覆盖空洞后 WSN 节点的位置。如果活动通信中的任何节点死亡&#xff0c;则通过PSO优化再次定位…

Java Socket和ServerSocket 使用

在Java中&#xff0c;Socket和ServerSocket是用于创建网络连接的重要类。Socket类用于创建客户端套接字&#xff0c;而ServerSocket类用于创建服务器套接字。在本文中&#xff0c;我们将讨论Socket和ServerSocket的作用、使用方法以及相关代码示例。 Socket的作用 Socket是Jav…

【2023 · CANN训练营第一季】应用开发深入讲解——第四章 DVPP初级

学习资源 1.JPEG图片解码 文档 2.图片缩放 文档 媒体数据处理 数据预处理的典型使用场景 数据预处理的多种方式 分为两种&#xff0c;AIPP和DVPP DVPP数据预处理功能 了解两个重要概念 宽stride 和 高stride 理解&#xff1a;这里假设一张图片的宽为500&#xff0c;高为3…

匹配算法之 匈牙利算法详解

参考&#xff1a; 算法学习笔记(5)&#xff1a;匈牙利算法漫谈匈牙利算法匈牙利算法、KM算法匈牙利算法&#xff08;二分图&#xff09;通俗易懂小白入门&#xff09;二分图最大匹配——匈牙利算法多目标跟踪之数据关联&#xff08;匈牙利匹配算法和KM算法&#xff09;【小白学…

187页9万字企业大数据治理与云平台实施方案(word)

1 项目背景概述 1.1 项目背景理解 1.2 项目需求范围 2 项目技术方案 2.1 咨询研究服务方案 2.1.1 咨询研究服务内容 2.1.2 咨询服务方案 2.2 第三方独立评估 2.2.1 概述 2.2.2 管理办法 2.2.3 考核机制 2.3 安全咨询研究服务方案 2.3.1 安全咨询服务内…

【k8s】【ELK】日志环境部署【待写】

1、日志收集基本概念 k8s中pod的路径&#xff1a; containers log: /var/log/containers/*.log Pod log&#xff1a; /var/log/pods docker log: /var/lib/docker/containers/*/*.log如何收集日志 使用 EFKLogstashKafka 1、filebeat读取容器中的日志&#xff0c;然后写入K…

ChatGPT在小红书文案实践

今天聊一聊ChatGPT在小红书这个实际应用场景的案例。ChatGPT 以较低的门槛提高了使用者创作水平&#xff0c;有较高的下限&#xff0c;但如何创造更高质量的内容就要依靠使用者在领域的能力和AI使用技巧&#xff0c;作者无任何小红书推广和文案写作经验&#xff0c;文章内容来自…

快速排序、希尔排序、归并排序、堆排序、插入排序、冒泡排序、选择排序(递归、非递归)C语言详解

1.排序的概念及其运用 1.1排序的概念 排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。 稳定性&#xff1a;假定在待排序的记录序列中&#xff0c;存在多个具有相同的关键字的记录&a…

python中使用opencv LED屏数字识别(可用做车牌识别,一样的原理)

应项目要求需要基于cpu的LED数字识别&#xff0c;为了满足需求&#xff0c;使用传统方法进行实验。识别传感器中显示的数字。因此使用opencv的函数做一些处理&#xff0c;实现功能需求。 首先读取图像&#xff0c;因为我没想大致得到LED屏幕的区域&#xff0c;因此将RGB转换为H…

postman处理各种请求数据

1、后台request接收postman参数 2、后台单个参数接收postman 3、后台RequestParam参数接收postman 注意事项&#xff1a;情况一&#xff1a;全部都是单个字符串的 情况二&#xff1a;有可能是一个json对象序列化成字符串过来的&#xff0c;那么需要在form-data中设置 …
最新文章