
CLPSTNet: Прогрессивная многомасштабная свёрточная модель стеганографии, интегрирующая обучение по нарастающей сложности
Fengchun Liu; Tong Zhang; Chunying Zhang
Этот репозиторий содержит официальную реализацию статьи «CLPSTNet: A Progressive Multi-Scale Convolutional Steganography Model Integrating Curriculum Learning».

CLPSTNet — это прогрессивная многомасштабная сверточная стеганографическая сетевая модель, интегрирующая обучение по программе (curriculum learning). Сеть состоит из нескольких прогрессивных многомасштабных сверточных модулей, объединяющих структуры Inception и дилатированные свертки. Модуль содержит несколько ветвей, начиная с меньшего ядра свертки и меньшего коэффициента дилатации, извлекая базовую локальную информацию из карты признаков, и постепенно расширяясь до свертки с большим ядром и коэффициентом дилатации для восприятия информации с большего рецептивного поля. Это позволяет реализовать многомасштабное извлечение признаков от мелких к крупным и от тонких к грубым, что дает возможность уточнять мелкие признаки секретной информации на различных этапах слияния.
Экспериментальные результаты показывают, что предложенная CLPSTNet обладает не только высокими показателями PSNR, SSIM и точностью декодирования на трех крупных публичных наборах данных — ALASKA2, VOC2012 и ImageNet, — но и стегоизображения, созданные с её помощью, имеют низкие оценки стеганоанализа.
Наша экспериментальная среда выглядит следующим образом:
Выполните следующую команду для установки зависимостей:
pip install -r requirement.txt
Модель обучается и оценивается на трех публичных наборах данных: VOC2012; ImageNet; ALASKA2. Набор данных, используемый по умолчанию в коде. Структура каталогов должна быть следующей:
../VOC2012/
├── train/
├── val/
└── test/
CLPSTNet состоит из трех основных компонентов:
Ядром CLPSTNet является прогрессивный многомасштабный сверточный блок (PMCB), реализованный в файле clpstnet.py.
Сеть кодера ( Encoder_Network в clpstnet.py ) отвечает за скрытие секретной информации внутри изображения-контейнера. Она использует серию прогрессивных многомасштабных сверточных блоков для постепенного встраивания секретных данных, сохраняя при этом визуальное качество изображения-контейнера.
Сеть декодера ( decode_Network в decoder.py ) извлекает скрытую информацию из стегоизображения. Она также использует многомасштабную архитектуру с различными ветвями свертки для эффективного восстановления встроенных секретных данных.
Сеть критика ( XuNet в critic.py ) предназначена для различения изображений-контейнеров и стегоизображений. Она выступает в роли противника во время обучения, заставляя кодер генерировать более незаметные стегоизображения.
Для обучения модели 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 или свяжитесь с нами по адресу: