Edge-Guided High-Payload Color Image Steganography with Deep-Steganalysis Feedback and Discounted LinUCB

Published: 6 August 2026| Version 1 | DOI: 10.17632/tk8tvmmcn3.1
Contributor:

Description

Training Logs: This dataset contains the training logs from the discounted-LinUCB dynamic parameter controller used in edge-guided RGB-GINA+OPAP color image steganography, supporting Figures 7–17 and Tables 6–9 of the associated manuscript. It covers twelve training runs spanning three edge-guidance methods (Sobel, Scharr, and Laplacian-of-Gaussian) and a no-edge baseline, each evaluated against three trainable RGB steganalyzers (SRNetRGB, YeNetRGB, YedroudjNetRGB), with payload increasing from 60,000 to 100,000 bits. For each edge-guided run, per-epoch aggregated metrics (validation AUC, adversarial loss, message accuracy, BER) and per-step controller decision records (selected k, α, edge threshold, scan mode, channel policy, bandit reward) are provided; the no-edge baseline includes per-epoch training logs only. A Python script to reproduce the manuscript's figures directly from these logs is included. Full column definitions and file structure are documented in the accompanying README. Source Code: This dataset contains the source code used to produce the results reported in the associated manuscript on edge-guided high-payload color image steganography with deep-steganalysis feedback and a discounted-LinUCB dynamic parameter controller. It includes the self-contained training script implementing RGB-GINA+OPAP embedding with Sobel/Scharr/LoG edge guidance, the discounted-LinUCB controller, and adversarial training against SRNetRGB, YeNetRGB, and YedroudjNetRGB steganalyzers, together with an example YAML configuration file and a supporting library of verification utilities and early development-stage prototypes. The README documents the role of every file, the requirements to run them, and a verification log confirming each component executes correctly. Image-Quality Metrics: This dataset contains per-image imperceptibility and capacity metrics for edge-guided RGB-GINA+OPAP color image steganography, supporting the associated manuscript. For each of three edge-guidance methods (Sobel, Laplacian-of-Gaussian, and Scharr) and four fixed payload sizes (85,000–100,000 bits), the full 3,456-image cover set was embedded and scored for PSNR, SSIM, LPIPS, bits-per-pixel, message accuracy, and bit-error rate (41,472 embeddings in total), together with payload-level summary statistics. Unlike the accompanying training-log dataset, these metrics use a fixed, non-adversarially-trained embedding configuration and therefore isolate the structural imperceptibility and capacity of the embedding method itself. The Python script used to generate all metrics — which dynamically reuses the actual training pipeline rather than reimplementing it — is included. Full column definitions are documented in the accompanying README.

Files

Steps to reproduce

Training Logs: 1. Prepare the cover image set (NRC/CALTECH PNG images, 512x512) and the RGB-GINA+OPAP training pipeline (train_main.py) from the accompanying Source Code dataset. 2. For each of the three edge-guidance methods (Sobel, Scharr, LoG) and three steganalyzers (SRNetRGB, YeNetRGB, YedroudjNetRGB), prepare a YAML config with model.detector and gina.edge_method set accordingly. 3. Run: python train_main.py --config <config_file>.yaml This trains the generator/discriminator with the discounted-LinUCB controller while the payload schedule increases from 60,000 to 100,000 bits, and writes per-epoch summary logs and per-step controller decision logs automatically during training. 4. Repeat step 3 for the no-edge baseline condition (no controller). 5. To reproduce Figures 7-17 of the manuscript directly from these logs, run code/generate_figures_7_17.py from within this dataset. Source Code: 1. Install dependencies: torch, torchvision, opencv-python, numpy, pyyaml, scipy, matplotlib (matplotlib only needed for the two stego/*_prototype.py scripts). 2. Prepare a cover image dataset and edit the dataset.root path in a YAML config (see config_srnet_rgb_edge_template.yaml for an example). 3. Run: python train_main.py --config <config_file>.yaml to train the generator against a chosen steganalyzer with edge-guided embedding and the discounted-LinUCB controller. 4. Optionally, run stego/batch_verify_rgb_gina_opap.py to batch-verify embed/extract reversibility (BER) on a folder of cover images. 5. See README.md for the role of every file and a verification log confirming each component runs correctly. Image-Quality Metrics: 1. Prepare the same cover image set used for training (3,456 PNG images), plus the original training script and YAML config (see the Source Code dataset). 2. Install dependencies: numpy, opencv-python, pillow, pyyaml, torch, torchvision, scikit-image, lpips, pandas. 3. Run: python batch_generate_all_edge_metrics_no_checkpoint_v2.py \ --train_script train_main.py --config <config_file>.yaml \ --cover_root <path_to_cover_images> --metrics_root <output_path> \ --edge_methods sobel log scharr --payloads 85000 90000 95000 100000 --overwrite 4. This dynamically loads the actual training script's Generator/YeNetRGB/BanditSearcher classes (freshly initialized, no checkpoint) and embeds every cover image at each payload level, computing PSNR/SSIM/LPIPS/bpp/message accuracy/BER per image. 5. Per-image results and payload-level summaries are written as CSV files, one pair per edge method.

Institutions

Categories

Information Security, Steganography, Generative Adversarial Network

Licence