Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vector Watermarking with PCA-Synchronized PSO-QIM

This repository contains the implementation and processed experimental results for the manuscript:

Robust Watermarking for Vector Geographic Data in IoT-Enabled Geospatial Services via Virtual Vertices and PSO-QIM

The method combines virtual-vertex localization, a discrete wavelet transform coefficient-ratio carrier, PCA-based rotation synchronization, and particle swarm optimization-guided quantization index modulation (PSO-QIM). Feature-level embedding is parallelized, and particle fitness is evaluated in vectorized batches.

Repository contents

  • psoqim/: embedding, extraction, PCA synchronization, attacks, transforms, watermark processing, and shapefile I/O
  • run_single.py: embed and verify a watermark on one vector dataset
  • run_experiments.py: run the complete robustness experiment suite
  • results/: processed attack and embedding-runtime CSV results used in the manuscript
  • requirements.txt: Python dependencies

Installation

Python 3.10 or later is recommended.

python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -r requirements.txt

Input data

The experiments use six vector geographic datasets and a binary watermark image.

Place the shapefile components and watermark image in a local data directory. Dataset files are not redistributed in this repository.

Run one dataset

python3 run_single.py \
  --dataset /path/to/Railways.shp \
  --watermark /path/to/watermark.png \
  --out outputs/railways.shp \
  --particles 10 \
  --iters 40 \
  --jobs 7

The command writes the embedded shapefile and its PCA synchronization key.

Run the experiment suite

python3 run_experiments.py \
  --data-dir /path/to/data \
  --watermark /path/to/watermark.png \
  --particles 10 \
  --iters 40 \
  --jobs 7

Adjust --jobs to the number of CPU workers available. Use --skip-write when only numerical results are required.

The experiment driver reports normalized correlation, bit accuracy, bit error rate, embedding time, effective PSO iterations, and PCA candidate information. The latest processed outputs are stored in results/.

Reproducibility notes

  • The manuscript experiments use 10 particles and at most 40 PSO iterations.
  • PCA synchronization is enabled by default.
  • Fixed random seeds are defined in the implementation configuration.
  • The extraction procedure evaluates registered PCA synchronization candidates and selects the candidate with the highest watermark-verification score.

License

This project is released under the MIT License. The source datasets remain subject to their respective providers' terms.

Contact

For questions about the implementation, contact Xu Xi at xixu@usts.edu.cn.

About

PCA-synchronized parallel PSO-QIM watermarking for vector geographic data

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages