Home

Awesome

IDEAS - Official PyTorch implementation

result 1

Image Disentanglement Autoencoder for Steganography without Embedding

Xiyao Liu, Ziping Ma, Junxing Ma, Jian Zhang, Gerald Schaefer, Hui Fang

This repo is the official implementation of "Image Disentanglement Autoencoder for Steganography without Embedding"

Abstract

Conventional steganography approaches embed a secret message into a carrier for concealed communication but are prone to attack by recent advanced steganalysis tools. In this paper, we propose Image DisEntanglement Autoencoder for Steganography (IDEAS) as a novel steganography without embedding (SWE) technique. Instead of directly embedding the secret message into a carrier image, our approach hides it by transforming it into a synthesised image, and is thus fundamentally immune to any steganalysis attack. By disentangling an image into two representations for structure and texture, we exploit the stability of structure representation to improve secret message extraction while increasing synthesis diversity via randomising texture representations to enhance steganography security. In addition, we design an adaptive mapping mechanism to further enhance the diversity of synthesised images when ensuring different required extraction levels. Experimental results convincingly demonstrate IDEAS to achieve superior performance in terms of enhanced security, reliable secret message extraction and flexible adaptation for different extraction levels, compared to state-of-the-art SWE methods.

Main Results of IDEAS

IDEAS N = 1, σ = 1

LSUN BedroomLSUN ChurchFFHQ
Δ = 0%100% / 16.88100% / 15.90100% / 32.88
Δ = 25%100% / 15.56100% / 15.50100% / 31.10
Δ = 50%99.54% / 13.3999.55% / 14.4899.49% / 29.31

IDEAS N = 2, σ = 1

LSUN BedroomLSUN ChurchFFHQ
Δ = 0%100% / 14.17100% / 17.15100% / 29.76
Δ = 25%100% / 14.01100% / 16.32100% / 29.02
Δ = 50%99.32% / 13.5199.29% / 16.3499.42% / 28.45

Main results of IDEAS in terms of extraction accuracy (values on the left) and FID scores (value on the right).

Requirements

Training

Train a model using the dataset with path of PATH and type of TYPE.

python train.py --exp_name NAME --dataset_type TYPE --dataset_path PATH --num_iters ITERS

The training configuration can be customized with command line option:

argsDescription
exp_nameThe working directory ./experiments/{exp_name}.
dataset_typeThe type of dataset. Select lmdb for LMDB files, or normal for the folder storing files.
dataset_pathThe path of dataset.
num_itersNum of training iterations.
N, lambda_ExThe hyper-parameters of IDEAS.
ckptTrain from scratch if ignored, else resume training from ./experiments/NAME/checkpoints/{ckpt}.pt.
log_everyOutput logs every log_every iterations.
show_everySave example images every show_every iterations under ./experiments/NAME/samples/.
save_everySave models every save_every iterations under ./experiments/NAME/checkpoints/.

Citation

@inproceedings{liu2022image,
  title={Image Disentanglement Autoencoder for Steganography Without Embedding},
  author={Liu, Xiyao and Ma, Ziping and Ma, Junxing and Zhang, Jian and Schaefer, Gerald and Fang, Hui},
  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
  pages={2303--2312},
  year={2022}
}