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.
psoqim/: embedding, extraction, PCA synchronization, attacks, transforms, watermark processing, and shapefile I/Orun_single.py: embed and verify a watermark on one vector datasetrun_experiments.py: run the complete robustness experiment suiteresults/: processed attack and embedding-runtime CSV results used in the manuscriptrequirements.txt: Python dependencies
Python 3.10 or later is recommended.
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -r requirements.txtThe experiments use six vector geographic datasets and a binary watermark image.
- Railways, Building, and Landuse: OpenStreetMap data distributed through Geofabrik
- Boundary, Road, and Lake: National Geographic Information Catalogue Service of China
Place the shapefile components and watermark image in a local data directory. Dataset files are not redistributed in this repository.
python3 run_single.py \
--dataset /path/to/Railways.shp \
--watermark /path/to/watermark.png \
--out outputs/railways.shp \
--particles 10 \
--iters 40 \
--jobs 7The command writes the embedded shapefile and its PCA synchronization key.
python3 run_experiments.py \
--data-dir /path/to/data \
--watermark /path/to/watermark.png \
--particles 10 \
--iters 40 \
--jobs 7Adjust --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/.
- 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.
This project is released under the MIT License. The source datasets remain subject to their respective providers' terms.
For questions about the implementation, contact Xu Xi at xixu@usts.edu.cn.