← all repositories
tancik/StegaStamp

Hiding data in photos that survive printing and scanning

It hides short hyperlinks inside images so subtly that the data survives printing, re-photography, and the usual abuse of physical media.

867 stars Python Computer VisionML Frameworks
StegaStamp
Not currently ranked — collecting fresh signals.
star history

What it does

StegaStamp treats photographs as noisy communication channels. It uses deep-learning models to embed roughly seven UTF-8 characters into an image while keeping the picture visually intact. The repository contains the encoder, decoder, and training code from the CVPR 2020 paper, along with pretrained weights.

The interesting bit

Most digital steganography dies the moment it leaves the screen. StegaStamp’s decoder is trained to recover its hidden payload after the image is printed, re-photographed, and subjected to real-world corruptions like warping and lighting changes. It is essentially an error-correcting barcode disguised as a snapshot.

Key highlights

  • Survives the full physical pipeline: digital file → printer → camera lens → digital file again.
  • Ships with pretrained encoder and decoder models, plus scripts to train your own.
  • Includes a detector for locating multiple stamps in a single image or video frame.
  • Uses error-correcting codes to pack roughly seven characters into 56 robust bits.

Caveats

  • The detector’s training code is not included; the paper relied on an externally trained BiSeNet segmentation model.
  • Detector outputs are explicitly described as noisy and sensitive to stamp size, with no further optimization explored in the paper.
  • The codebase targets TensorFlow 1.13, which is now several major versions behind.

Verdict

A solid reference implementation for researchers studying physical-world robustness or perceptual steganography; a poor fit for production apps needing modern framework support or long payloads.

Frequently asked

What is tancik/StegaStamp?
It hides short hyperlinks inside images so subtly that the data survives printing, re-photography, and the usual abuse of physical media.
Is StegaStamp open source?
Yes — tancik/StegaStamp is open source, released under the MIT license.
What language is StegaStamp written in?
tancik/StegaStamp is primarily written in Python.
How popular is StegaStamp?
tancik/StegaStamp has 867 stars on GitHub.
Where can I find StegaStamp?
tancik/StegaStamp is on GitHub at https://github.com/tancik/StegaStamp.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.