【论文笔记】Deep 3D-to-2D Watermarking == Google ==CVPR‘2022

Deep 3D-to-2D Watermarking: Embedding Messages in 3D Meshes and Extracting Them from 2D Renderings

本文工作:提出了一个端到端的框架来从2D渲染图像中提取水印信息,且对 不同光照和相机位姿 的渲染结果具有鲁棒性。

1.1 本文工作概述

在这里插入图片描述

核心贡献:
  1. 本工作对3D网格输入进行隐式编码,然后对渲染得到的2D图像进行解码,提取水印信息。
  2. 可微渲染保证了本文工作在有一系列可微3D扭曲的端到端训练。
  3. 本文解码器也可以从不可微渲染器中解码信息 。

1.2 相关工作

1.2.1 3D水印

早期的3D水印工作施加 傅里叶变换或者小波分析 到三角或多边网格上。

1.2.2 可微渲染

最初是为了网格、点云、体素等显式3D表示而提出的,曾经它因为通过网格光栅化造成的反向传播困难被排除在深度学习框架之外。 Loper等人首先提出了一个通用的可微渲染器 OpenDR,它可以高效地近似关于3D模型的导数。后来出现了很多技术使得渲染可以反向传播。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个 GitHub 仓库包含了一个基于深度学习的数字水印技术的实现代码,主要分为两部分:水印嵌入和水印提取。 1. 水印嵌入 在水印嵌入方面,作者使用了 ResNet18 作为基础模型,从 ImageNet 数据集上进行预训练,然后使用一个全连接层将其输出转化为水印的编码,再将编码嵌入到目标图像的 DCT 系数中。具体实现流程如下: 1.1. 加载模型 调用 `models.py` 中的 `ResNet18()` 函数构建 ResNet18 模型,然后使用 PyTorch 自带的 `torch.load()` 函数加载预训练的权重文件。 1.2. 加载水印 使用 `watermark.py` 中的 `load_watermark()` 函数加载水印,这个函数会将水印转化为二进制格式,并且在最后加上一个结束标志。 1.3. 将水印编码嵌入到图像中 使用 `embed.py` 中的 `embed()` 函数,将预训练的 ResNet18 模型的输出作为水印的编码,然后将编码嵌入到目标图像的 DCT 系数中。 2. 水印提取 在水印提取方面,作者同样使用了 ResNet18 作为基础模型,但是这次不需要对其进行训练,只需要使用预训练的权重文件进行推理,得到目标图像中嵌入的水印编码,然后解码得到原始的水印。具体实现流程如下: 2.1. 加载模型 同样是调用 `models.py` 中的 `ResNet18()` 函数构建 ResNet18 模型,然后使用 PyTorch 自带的 `torch.load()` 函数加载预训练的权重文件。 2.2. 从图像中提取水印编码 使用 `extract.py` 中的 `extract()` 函数,将目标图像的 DCT 系数作为输入,经过模型推理得到水印编码。 2.3. 解码水印 使用 `watermark.py` 中的 `decode_watermark()` 函数,将水印编码解码得到原始的水印。 总体来说,这个仓库的实现使用了深度学习的方法,将水印编码嵌入到图像中,然后通过模型进行水印提取,可以有效地保护数字内容的版权。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值