Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/DAI-Lab/SteganoGAN
SteganoGAN is a tool for creating steganographic images using adversarial training.
https://github.com/DAI-Lab/SteganoGAN
generative-adversarial-networks steganography
Last synced: 3 months ago
JSON representation
SteganoGAN is a tool for creating steganographic images using adversarial training.
- Host: GitHub
- URL: https://github.com/DAI-Lab/SteganoGAN
- Owner: DAI-Lab
- License: mit
- Created: 2018-09-07T19:03:04.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-03-23T03:34:08.000Z (over 1 year ago)
- Last Synced: 2024-07-17T01:53:12.383Z (4 months ago)
- Topics: generative-adversarial-networks, steganography
- Language: Python
- Homepage:
- Size: 42.5 MB
- Stars: 291
- Watchers: 19
- Forks: 82
- Open Issues: 35
-
Metadata Files:
- Readme: README.md
- Changelog: HISTORY.md
- Contributing: CONTRIBUTING.rst
- License: LICENSE
- Authors: AUTHORS.rst
Awesome Lists containing this project
- awesome-anti-forensic - StegoGAN
README
An open source project from Data to AI Lab at MIT.[![PyPI Shield](https://img.shields.io/pypi/v/steganogan.svg)](https://pypi.python.org/pypi/steganogan)
[![Travis CI Shield](https://travis-ci.org/DAI-Lab/SteganoGAN.svg?branch=master)](https://travis-ci.org/DAI-Lab/SteganoGAN)
[![Coverage Status](https://codecov.io/gh/DAI-Lab/SteganoGAN/branch/master/graph/badge.svg)](https://codecov.io/gh/DAI-Lab/SteganoGAN)
[![Downloads](https://pepy.tech/badge/steganogan)](https://pepy.tech/project/steganogan)# SteganoGAN
- License: MIT
- Documentation: https://DAI-Lab.github.io/SteganoGAN
- Homepage: https://github.com/DAI-Lab/SteganoGAN## Overview
**SteganoGAN** is a tool for creating steganographic images using adversarial training.
## Installation
To get started with **SteganoGAN**, we recommend using `pip`:
```bash
pip install steganogan
```Alternatively, you can clone the repository and install it from source by running `make install`:
```bash
git clone [email protected]:DAI-Lab/SteganoGAN.git
cd SteganoGAN
make install
```For development, you can use the `make install-develop` command instead in order to install all
the required dependencies for testing and linting.**NOTE** SteganoGAN currently requires `torch` version to be `1.0.0` in order to work properly.
## Usage
### Command Line
**SteganoGAN** includes a simple command line interface for encoding and decoding steganographic
images.#### Hide a message inside an image
To create a steganographic image, you simply need to supply the path to the cover image and the
secret message:```
steganogan encode [options] path/to/cover/image.png "Message to hide"
```#### Read a message from an image
To recover the secret message from a steganographic image, you simply supply the path to the
steganographic image that was generated by a compatible model:```
steganogan decode [options] path/to/generated/image.png
```#### Additional options
The script has some additional options to control its behavior:
* `-o, --output PATH`: Path where the generated image will be stored. Defaults to `output.png`.
* `-a, --architecture ARCH`: Architecture to use, basic or dense. Defaults to dense.
* `-v, --verbose`: Be verbose.
* `--cpu`: force CPU usage even if CUDA is available. This might be needed if there is a GPU
available in the system but the VRAM amount is too low.**WARNING**: Make sure to use the same architecture specification (`--architecture`) during both
the encoding and decoding stage; otherwise, `SteganoGAN` will fail to decode the message.### Python
The primary way to interact with **SteganoGAN** from Python is through the `steganogan.SteganoGAN`
class. This class can be instantiated using a pretrained model:```python3
from steganogan import SteganoGAN
steganogan = SteganoGAN.load(architecture='dense')
```Once we have loaded our model, we can give it the input image path, the output image path, and
the secret message:```
steganogan.encode('research/input.png', 'research/output.png', 'This is a super secret message!')
```This will generate an `output.png` image that closely resembles the input image but contains the
secret message. In order to recover the message, we can simply pass `output.png` to the `decode`
method:```python3
steganogan.decode('research/output.png')
'This is a super secret message!'
```## Research
We provide example scripts in the `research` folder which demonstrate how you can train your own
`SteganoGAN` models from scratch on arbitrary datasets. In addition, we provide a convenience
script in `research/data` for downloading two popular image datasets.## What's next?
For more details about **SteganoGAN** and all its possibilities and features, please check the
[project documentation site](https://DAI-Lab.github.io/SteganoGAN/)!## Citing SteganoGAN
If you use SteganoGAN for your research, please consider citing the following work:
Zhang, Kevin Alex and Cuesta-Infante, Alfredo and Veeramachaneni, Kalyan. SteganoGAN: High
Capacity Image Steganography with GANs. MIT EECS, January 2019. ([PDF](https://arxiv.org/pdf/1901.03892.pdf))```
@article{zhang2019steganogan,
title={SteganoGAN: High Capacity Image Steganography with GANs},
author={Zhang, Kevin Alex and Cuesta-Infante, Alfredo and Veeramachaneni, Kalyan},
journal={arXiv preprint arXiv:1901.03892},
year={2019},
url={https://arxiv.org/abs/1901.03892}
}
```