Fengchun Liu; Tong Zhang; Chunying Zhang
本仓库包含论文《CLPSTNet: A Progressive Multi-Scale Convolutional Steganography Model Integrating Curriculum Learning》的官方实现。

CLPSTNet 是一种融合课程学习的渐进式多尺度卷积隐写网络模型。该网络由多个融合了 Inception 结构和空洞卷积的渐进式多尺度卷积模块组成。该模块包含多个分支路径,从较小的卷积核和扩张率开始,提取特征图中的基础局部特征信息,并逐渐扩展到具有更大卷积核和扩张率的卷积,以感知更大感受野的特征信息,从而实现从浅到深、从细到粗的多尺度特征提取,使浅层秘密信息特征能够在不同的融合阶段得到细化。
实验结果表明,所提出的 CLPSTNet 不仅在 ALASKA2、VOC2012 和 ImageNet 三个大型公开数据集上具有较高的 PSNR、SSIM 指标和解码准确率,而且由 CLPSTNet 生成的隐写图像具有较低的隐写分析得分。
我们的实验环境如下:
请运行以下命令安装依赖包:
pip install -r requirement.txt
模型在三个公开数据集上训练和评估:VOC2012;ImageNet;ALASKA2 代码中默认使用的数据集。目录结构应为:
../VOC2012/
├── train/
├── val/
└── test/
CLPSTNet 由三个主要组件组成:
CLPSTNet 的核心是渐进式多尺度卷积模块(PMCB),该模块在 clpstnet.py 文件中实现。
编码器网络(clpstnet.py 中的 Encoder_Network)负责将秘密信息隐藏到载体图像中。它使用一系列渐进式多尺度卷积模块,在保持载体图像视觉质量的同时,逐步嵌入秘密数据。
解码器网络(decoder.py 中的 decode_Network)从隐写图像中提取隐藏信息。它还采用具有多种卷积分支的多尺度架构,以有效恢复嵌入的秘密数据。
判别器网络(critic.py 中的 XuNet)旨在区分载体图像和隐写图像。它在训练过程中充当对手,促使编码器生成更不易察觉的隐写图像。
要训练 CLPSTNet 模型,请运行 main.py 脚本:
python main.py
训练过程包括以下步骤:
数据加载:从指定数据集加载图像。
秘密生成:生成随机二进制数据作为要隐藏的秘密信息(D)。
前向传播:载体图像和秘密数据通过编码器生成隐写图像,然后通过解码器恢复秘密信息。
损失计算:计算多个损失函数:
优化:使用 Adam 优化器更新模型参数。
要评估训练好的模型,请使用 val.py 脚本:
python val.py
该脚本加载训练好的模型,并在验证数据集上对其进行评估,计算:
若要从训练好的模型生成示例隐写图像,请使用 sample.py 脚本:
python sample.py

如果您觉得我们的工作对您的研究有帮助,请考虑引用:
@article{liu2025clpstnet,
title={CLPSTNet: A Progressive Multi-Scale Convolutional Steganography Model Integrating Curriculum Learning},
author={Liu, Fengchun and Zhang, Tong and Zhang, Chunying},
journal={arXiv preprint arXiv:2504.16364},
year={2025}
}
如果您在使用本仓库时遇到任何问题,欢迎在 issues 中留言或通过以下邮箱联系我们: