
CLPSTNet : un modèle de stéganographie convolutionnelle multi-échelle progressif intégrant l'apprentissage par curriculum
Fengchun Liu; Tong Zhang; Chunying Zhang
Ce dépôt contient l'implémentation officielle de l'article « CLPSTNet: A Progressive Multi-Scale Convolutional Steganography Model Integrating Curriculum Learning ».

CLPSTNet est un modèle de réseau de stéganographie convolutif multi-échelle progressif qui intègre l'apprentissage curriculaire. Le réseau est composé de plusieurs modules convolutifs multi-échelle progressifs qui intègrent des structures Inception et des convolutions dilatées. Le module contient plusieurs chemins de ramification, partant d'un noyau de convolution et d'un taux de dilatation plus petits pour extraire les informations de caractéristiques locales de base de la carte de caractéristiques, puis s'élargissant progressivement vers une convolution avec un noyau de convolution et un taux de dilatation plus grands afin de percevoir les informations de caractéristiques d'un champ réceptif plus large, réalisant ainsi l'extraction multi-échelle des caractéristiques du superficiel au profond et du fin au grossier, ce qui permet d'affiner les caractéristiques des informations secrètes superficielles à différents stades de fusion.
Les résultats expérimentaux montrent que le CLPSTNet proposé atteint non seulement des métriques PSNR et SSIM élevées ainsi qu'une précision de décodage élevée sur trois grands ensembles de données publics, ALASKA2, VOC2012 et ImageNet, mais aussi que les images stéganographiques générées par CLPSTNet obtiennent de faibles scores de stéganalyse.
Notre environnement expérimental est le suivant :
Veuillez exécuter la commande suivante pour installer les paquets de dépendances :
pip install -r requirement.txt
Le modèle est entraîné et évalué sur trois ensembles de données publics : VOC2012 ; ImageNet ; ALASKA2 Ensemble de données par défaut utilisé dans le code. La structure des répertoires doit être la suivante :
../VOC2012/
├── train/
├── val/
└── test/
CLPSTNet se compose de trois composants principaux :
Le cœur de CLPSTNet est le bloc convolutif multi-échelle progressif (PMCB), implémenté dans le fichier clpstnet.py.
Le réseau encodeur ( Encoder_Network dans clpstnet.py ) est chargé de dissimuler les informations secrètes dans l'image de couverture. Il utilise une série de blocs convolutifs multi-échelle progressifs pour intégrer progressivement les données secrètes tout en préservant la qualité visuelle de l'image de couverture.
Le réseau décodeur ( decode_Network dans decoder.py ) extrait les informations cachées de l'image stéganographique. Il utilise également une architecture multi-échelle avec diverses branches de convolution pour récupérer efficacement les données secrètes intégrées.
Le réseau critique ( XuNet dans critic.py ) est conçu pour distinguer les images de couverture des images stéganographiques. Il sert d'adversaire pendant l'entraînement, poussant l'encodeur à générer des images stéganographiques plus imperceptibles.
Pour entraîner le modèle CLPSTNet, exécutez le script main.py :
python main.py
Le processus d'entraînement comprend les étapes suivantes :
Chargement des données : les images sont chargées depuis l'ensemble de données spécifié.
Génération du secret : des données binaires aléatoires sont générées comme informations secrètes à dissimuler (D).
Passe avant : l'image de couverture et les données secrètes sont transmises à l'encodeur pour générer une image stéganographique, qui est ensuite transmise au décodeur pour récupérer le secret.
Calcul de la perte : plusieurs fonctions de perte sont calculées :
Optimisation : les paramètres du modèle sont mis à jour à l'aide de l'optimiseur Adam.
Pour évaluer le modèle entraîné, utilisez le script val.py :
python val.py
Ce script charge un modèle entraîné et l'évalue sur l'ensemble de données de validation, en calculant :
Pour générer des exemples d'images stéganographiques à partir du modèle entraîné, utilisez le script sample.py :
python sample.py

Si vous trouvez notre travail utile pour vos recherches, veuillez envisager de le citer :
@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}
}
Si vous rencontrez des problèmes lors de l'utilisation de ce dépôt, n'hésitez pas à laisser un message dans les issues ou à nous contacter à :