📑对应
本文对应
Git 仓库 SteganoGAN,GitHub
https://github.com/DAI-Lab/SteganoGAN
英文文档——SteganoGAN 项目描述
https://dai-lab.github.io/SteganoGAN
中文文档——SteganoGAN 项目描述
https://www.cnpython.com/pypi/steganogan
概述
SteganoGAN 是使用对抗训练创建隐写图像的工具
配置环境
以下是笔者使用的依赖环境和工具
🗃️附件
Python 3.7.6
https://www.python.org/ftp/python/3.7.6/python-3.7.6-amd64.exe
Anaconda 2020.2
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2020.02-Windows-x86_64.exe
⭐推荐
安装过程中具体选项选择可参考
https://www.bilibili.com/video/BV1SD4y1S7jo?p=2
本项目基于 PyTorch 1.0.0,主要涉及 SteganoGAN 库
💬相关
PyTorch 1.0.0安装流程可参考之前的文章
https://blog.csdn.net/weixin_42077074/article/details/111192660
而安装 SteganoGAN 库仅需要在 Anaconda 打开 Anaconda Prompt 后,输入以下代码即可
pip install steganogan
项目完整运行教程在/research/Tutorial.ipynb
,可在Anaconda打开 Jupyter Notebook 查看,跟着文件内描述的流程一步步来
训练项目
给定训练集、验证集,以及一系列参数对项目进行训练
训练完毕后,生成 steg 文件保存训练结果
将 steg 文件复制到 Anaconda 相应的目录下,在笔者电脑的目录是
D:\Programs\anaconda3\envs\SteganoGAN-gpu\Lib\site-packages\steganogan\pretrained
运行项目
运行项目需要先加载训练过的 steg 文件,再给定图片路径和加密信息参数即可加密和解密图像
运行项目有几种方式,在这里笔者用 Jupyter Notebook、Spyder、命令行分别运行一遍
Jupyter Notebook
Jupyter Notebook 运行 ipynb 文件,那就接着用刚刚的 /research/Tutorial.ipynb
顺便将输入图像 input.png
放在了同级目录下
Spyder和命令行
先将此前训练生成的 steg 文件放置在 /steganogan/pretrained
笔者编写了 runner.py
文件并随同输入图像 input.png
放在了项目一级目录/里面,py文件内容如下
import numpy as np
from steganogan import SteganoGAN
from steganogan.loader import DataLoader
from steganogan.encoders import BasicEncoder, DenseEncoder
from steganogan.decoders import BasicDecoder, DenseDecoder
from steganogan.critics import BasicCritic
steganogan = SteganoGAN.load(architecture='demo', path=None, cuda=True, verbose=True)
steganogan.encode('input.png', 'output.png', 'This is a super secret message!')
print(steganogan.decode('output.png'))
在 Spyder 中或在命令行中运行py文件均可达成效果