Zixuan Chen, Guangcong Wang, Jiahao Zhu, Jian-Huang Lai, Xiaohua Xie.
TL;DR: GuardSplat is an efficient watermarking framework to protect the copyright of 3DGS assets. It presents superior performance to state-of-the-art watermarking approaches in capacity, invisibility, robustness, security, and training efficiency.
Application scenarios of GuardSplat. To protect the copyright of 3D Gaussian Splatting (3DGS) assets, (a) the owners (Alice) can use our GuardSplat to embed the secret message (blue key) into these models. (b) If malicious users (Bob) render views for unauthorized uses, (c) Alice can use the private message decoder to extract messages (purple key) for copyright identification.
Overview of GuardSplat. (a) Given a binary message
We provide a demo code "eval_watermark.ipynb" for evaluation. It is recommended to check the evaluation results recorded in the Jupyter Notebook and run the code by the following steps:
-
Install the 3D gaussian splatting (see https://github.com/graphdeco-inria/gaussian-splatting).
-
Install the CLIP (see https://github.com/openai/CLIP).
-
Download the "eval_examples" folder from Google Driver / Baidu Cloud as:
-
Copy the file "eval_watermark.ipynb" and the "eval_examples" folder into the "gaussian-splatting" folder as:
gaussian-splatting/
├── eval_examples/
│ ├── CLIP_visual+msg_decoder-32.pt (CLIP Visual Encoder + Our Message Decoder)
│ ├── original-lego.ply (original 3DGS asset)
│ ├── watermarked-lego.ply (watermarked file)
│ ├── message-lego.txt (32-bit secret message)
│ └── cameras-lego.json (3DGS camera pose file)
├── eval_watermark.ipynb
└── ...
- Run the code in "eval_watermark.ipynb".
@article{Chen_2024_GuardSplat,
author = {Chen, Zixuan and Wang, Guangcong and Zhu, Jiahao and Lai, Jian-Huang and Xie, Xiaohua},
title = {GuardSplat: Efficient and Robust Watermarking for 3D Gaussian Splatting},
year = {2024},
journal = {arXiv preprint},
}
We build our project based on gaussian-splatting and CLIP. We sincerely thank them for their wonderful work and code release.