
CLPSTNet: Un modello progressivo di steganografia convoluzionale multi-scala che integra l'apprendimento curriculare
Fengchun Liu; Tong Zhang; Chunying Zhang
Questa repository contiene l'implementazione ufficiale dell'articolo "CLPSTNet: A Progressive Multi-Scale Convolutional Steganography Model Integrating Curriculum Learning".

CLPSTNet è un modello di rete steganografica convoluzionale multi-scala progressiva che integra l'apprendimento curriculare. La rete è composta da molteplici moduli convoluzionali multi-scala progressivi che integrano strutture Inception e convoluzioni dilatate. Il modulo contiene molteplici percorsi ramificati, a partire da un kernel convoluzionale e un tasso di dilatazione più piccoli, estraendo le informazioni caratteristiche locali di base dalla mappa delle caratteristiche, e ampliandosi gradualmente alla convoluzione con un kernel convoluzionale e un tasso di dilatazione più grandi per percepire le informazioni caratteristiche di un campo recettivo più ampio, realizzando così l'estrazione multi-scala delle caratteristiche dal superficiale al profondo e dal fine al grossolano, consentendo alle caratteristiche superficiali delle informazioni segrete di essere affinate nelle diverse fasi di fusione.
I risultati sperimentali mostrano che la CLPSTNet proposta non solo presenta elevati valori di PSNR e SSIM e un'elevata accuratezza di decodifica su tre grandi dataset pubblici, ALASKA2, VOC2012 e ImageNet, ma anche che le immagini steganografiche generate da CLPSTNet hanno bassi punteggi di steganalisi.
Il nostro ambiente sperimentale è il seguente:
Eseguire il seguente comando per installare i pacchetti di dipendenza:
pip install -r requirement.txt
Il modello viene addestrato e valutato su tre dataset pubblici: VOC2012; ImageNet; ALASKA2 Dataset predefinito utilizzato nel codice. La struttura delle directory dovrebbe essere:
../VOC2012/
├── train/
├── val/
└── test/
CLPSTNet è composto da tre componenti principali:
Il cuore di CLPSTNet è il Blocco Convoluzionale Multi-Scala Progressivo (PMCB), implementato nel file clpstnet.py.
La rete encoder ( Encoder_Network in clpstnet.py ) è responsabile dell'occultamento delle informazioni segrete all'interno dell'immagine di copertura. Utilizza una serie di Blocchi Convoluzionali Multi-Scala Progressivi per incorporare gradualmente i dati segreti, mantenendo la qualità visiva dell'immagine di copertura.
La rete decoder ( decode_Network in decoder.py ) estrae le informazioni nascoste dall'immagine stego. Utilizza inoltre un'architettura multi-scala con vari rami di convoluzione per recuperare efficacemente i dati segreti incorporati.
La rete critic ( XuNet in critic.py ) è progettata per distinguere tra immagini di copertura e immagini stego. Funge da avversario durante l'addestramento, spingendo l'encoder a generare immagini stego più impercettibili.
Per addestrare il modello CLPSTNet, eseguire lo script main.py:
python main.py
Il processo di addestramento comprende i seguenti passaggi:
Caricamento dei dati: Le immagini vengono caricate dal dataset specificato.
Generazione del segreto: Vengono generati dati binari casuali come informazioni segrete da nascondere (D).
Passaggio in avanti: L'immagine di copertura e i dati segreti vengono passati attraverso l'encoder per generare un'immagine stego, che viene poi passata attraverso il decoder per recuperare il segreto.
Calcolo della loss: Vengono calcolate più funzioni di loss:
Ottimizzazione: I parametri del modello vengono aggiornati utilizzando l'ottimizzatore Adam.
Per valutare il modello addestrato, utilizzare lo script val.py:
python val.py
Questo script carica un modello addestrato e lo valuta sul dataset di validazione, calcolando:
Per generare immagini stego di esempio dal modello addestrato, utilizzare lo script sample.py:
python sample.py

Se trovi il nostro lavoro utile per la tua ricerca, ti preghiamo di considerare la citazione:
@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}
}
Se incontri problemi durante l'utilizzo di questa repository, non esitare a lasciare messaggi nelle issues o a contattarci a: