Deep Learning Image Steganography
A deep learning framework that hides a full image inside another with high imperceptibility and robust recovery of the hidden data.
- Role
- Graduate Researcher
- Timeline
- Jan 2024 – Jun 2026
- Stack
- PythonPyTorchComputer VisionEncoder-Decoder Networks
Problem
Classical steganography hides bits in an image's least significant noise, which is easy to detect and easy to destroy. The harder problem is to embed an entire image inside another image so that the carrier looks untouched to both humans and statistical detectors, while the hidden image survives extraction intact.
Approach
The framework is an encoder and decoder pair trained end to end. The encoder fuses the secret image into the cover image, and the decoder recovers the secret from the resulting container. The loss balances two competing objectives, imperceptibility and recoverability, so the network learns where in the cover image information can hide without a visible cost.
Architecture & Tech
The implementation is in PyTorch, with joint training of the hiding and reveal networks. I iterated on the network architecture and training parameters specifically to improve concealment accuracy, adding deeper fusion layers where capacity was the bottleneck and reweighting the loss where artifacts appeared in flat image regions.
Results & Impact
The optimized framework embeds one image within another with high imperceptibility and robust recovery of the hidden data, which allows image-in-image transmission that survives the round trip. The optimization work measurably increased concealment accuracy over the initial architecture.
What I'd do next
I would test robustness under real world channel distortions such as JPEG recompression, resizing, and screenshots, and I would evaluate the framework against learned steganalysis detectors rather than only statistical ones.