StegaStamp

Invisible Hyperlinks in Physical Photographs

University of California, Berkeley

paper
paper
Paper
</Code>
Paper
paper
</Code>
* Denotes Equal Contribution

Overview Video

Introduction

Printed and digitally displayed photos have the ability to hide imperceptible digital data that can be accessed through internet-connected imaging systems. Another way to think about this is physical photographs that have unique QR codes invisibly embedded within them. This paper presents an architecture, algorithms, and a prototype implementation addressing this vision. Our key technical contribution is StegaStamp, a learned steganographic algorithm to enable robust encoding and decoding of arbitrary hyperlink bitstrings into photos in a manner that approaches perceptual invisibility. StegaStamp comprises a deep neural network that learns an encoding/decoding algorithm robust to image perturbations approximating the space of distortions resulting from real printing and photography. We demonstrates real-time decoding of hyperlinks in photos from in-the-wild videos that contain variation in lighting, shadows, perspective, occlusion and viewing distance. Our prototype system robustly retrieves 56 bit hyperlinks after error correction - sufficient to embed a unique code within every photo on the internet.

Method

Deployment

Our system uses an encoder network to process the input image and hyperlink bitstring into a StegaStamp. The StegaStamp is then printed and captured by a camera. A detection network localizes and rectifies the StegaStamp before passing it to the decoder network. After the bits are recovered and error corrected, the user can follow the hyperlink.

Training

To train the encoder and decoder networks, we simulate the corruptions caused by printing, reimaging, and detecting the StegaStamp with a set of differentiable image augmentations.

Example Encoded Images

Original Image
StegaStamp
Residual

Here are examples of images that have been converted to StegaStamps. The residual depicts the difference between the original image and the StegaStamp.

Results

Oblique Angles
Variable Lighting
Occlusion
Reflections

Here are examples of detection and decoding. The percentage corresponds to the number of bits correctly decoded. Each of these examples encode 100 bits.

Error Correcting Codes

Error correcting codes can be used to filter out bad decodings (due to incorrect detection proposal, or large image corruptions) and correct incorrect bits. Our prototype used BCH codes to create a code with 56 message bits and 40 error correcting bits. The image above demonstrates successful decoding of the 56 bit message  – sufficient to embed a unique code within every photo on the internet.