[ICCV2025] StealthAttack
See the code
Bo-Hsu Ke
·
You-Zhe Xie
·
Yu-Lun Liu
·
Wei-Chen Chiu
|
git clone https://github.com/Hentci/StealthAttack_official.git --recursive
cd StealthAttack_official
conda create -n stealthattack python=3.10 -y
conda activate stealthattack
chmod +x setup_environment.sh && ./setup_environment.sh
In our paper, we evaluate on the following datasets: Mip-NeRF 360, Tanks and Temples, and Free.
Please download the dataset and organize them like follows:
StealthAttack_official
├── data
│ ├── mip-nerf-360
│ │ │── bicycle (base_dir)
│ │ │ │── images
│ │ │ │── sparse/0
│ │ │ │ │── original_points3D.ply
│ │ │ │ │── cameras.bin
│ │ │ │ │── images.bin
│ │ │ │ │── ...
│ │ │ │── _DSC8777_original.JPG
│ │ │ │── trigger_pattern.png
│ │ │ │── voxel_grid.npz
│ │ │── bonsai
│ │ │── counter
│ │ │── ...
│ ├── free
│ │ │── ...
Setup Steps:
Generate point cloud file:
python gaussian-splatting/gen_points3Dply.py /path/to/scene/sparse/0 -o /path/to/scene/sparse/0/original_points3D.ply
Prepare target view:
base_dir and rename to ${filename}_original.[jpg/JPG]_DSC8777_original.JPG (as shown in the directory structure above)Prepare trigger pattern:
base_dirsrc/image_processor.pyGenerate Scene Voxel Grid
python utils/voxel_grid.py
Update configuration:
config.yaml with all required pathscd density-guided-point-cloud-attack/src
python run.py
This is the standard 3DGS training pipeline with minimal modifications. You can use:
cd gaussian-splatting
python train.py -s <path to COLMAP or NeRF Synthetic dataset>
Path to the source directory containing a COLMAP or Synthetic NeRF data set.
Path where the trained model should be stored (output/<random> by default).
Alternative subdirectory for COLMAP images (images by default).
Add this flag to use training/test split for evaluation.
Target view name for poisoning attack.
Noise scheduling method (linear, cosine, sqrt, or none for no noise).
Starting sigma value for noise (default: 100).
Note: For pure data poisoning (Density-Guided Point Cloud Attack only), use --noise_scheduler none.
python render.py -m <path to pre-trained model> -s <path to COLMAP dataset>
If you find our evaluation results, or code useful, please cite this paper and give us a ⭐️.
@InProceedings{ke2025stealthattack,
author = {Ke, Bo-Hsu and Xie, You-Zhe and Liu, Yu-Lun and Chiu, Wei-Chen},
title = {StealthAttack: Robust 3D Gaussian Splatting Poisoning via Density-Guided Illusions},
booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
year = {2025}
}
This research was funded by the National Science and Technology Council, Taiwan, under Grants NSTC 112-2222-E-A49-004-MY2, 113-2628-E-A49-023-, 111-2628-E-A49-018-MY4, and 112-2221-E-A49-087-MY3. The authors are grateful to Google, NVIDIA, and MediaTek Inc. for their generous donations. Yu-Lun Liu acknowledges the Yushan Young Fellow Program by the MOE in Taiwan.
[ICCV2025] StealthAttack
See the code
Bo-Hsu Ke
·
You-Zhe Xie
·
Yu-Lun Liu
·
Wei-Chen Chiu
|
git clone https://github.com/Hentci/StealthAttack_official.git --recursive
cd StealthAttack_official
conda create -n stealthattack python=3.10 -y
conda activate stealthattack
chmod +x setup_environment.sh && ./setup_environment.sh
In our paper, we evaluate on the following datasets: Mip-NeRF 360, Tanks and Temples, and Free.
Please download the dataset and organize them like follows:
StealthAttack_official
├── data
│ ├── mip-nerf-360
│ │ │── bicycle (base_dir)
│ │ │ │── images
│ │ │ │── sparse/0
│ │ │ │ │── original_points3D.ply
│ │ │ │ │── cameras.bin
│ │ │ │ │── images.bin
│ │ │ │ │── ...
│ │ │ │── _DSC8777_original.JPG
│ │ │ │── trigger_pattern.png
│ │ │ │── voxel_grid.npz
│ │ │── bonsai
│ │ │── counter
│ │ │── ...
│ ├── free
│ │ │── ...
Setup Steps:
Generate point cloud file:
python gaussian-splatting/gen_points3Dply.py /path/to/scene/sparse/0 -o /path/to/scene/sparse/0/original_points3D.ply
Prepare target view:
base_dir and rename to ${filename}_original.[jpg/JPG]_DSC8777_original.JPG (as shown in the directory structure above)Prepare trigger pattern:
base_dirsrc/image_processor.pyGenerate Scene Voxel Grid
python utils/voxel_grid.py
Update configuration:
config.yaml with all required pathscd density-guided-point-cloud-attack/src
python run.py
This is the standard 3DGS training pipeline with minimal modifications. You can use:
cd gaussian-splatting
python train.py -s <path to COLMAP or NeRF Synthetic dataset>
Path to the source directory containing a COLMAP or Synthetic NeRF data set.
Path where the trained model should be stored (output/<random> by default).
Alternative subdirectory for COLMAP images (images by default).
Add this flag to use training/test split for evaluation.
Target view name for poisoning attack.
Noise scheduling method (linear, cosine, sqrt, or none for no noise).
Starting sigma value for noise (default: 100).
Note: For pure data poisoning (Density-Guided Point Cloud Attack only), use --noise_scheduler none.
python render.py -m <path to pre-trained model> -s <path to COLMAP dataset>
If you find our evaluation results, or code useful, please cite this paper and give us a ⭐️.
@InProceedings{ke2025stealthattack,
author = {Ke, Bo-Hsu and Xie, You-Zhe and Liu, Yu-Lun and Chiu, Wei-Chen},
title = {StealthAttack: Robust 3D Gaussian Splatting Poisoning via Density-Guided Illusions},
booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
year = {2025}
}
This research was funded by the National Science and Technology Council, Taiwan, under Grants NSTC 112-2222-E-A49-004-MY2, 113-2628-E-A49-023-, 111-2628-E-A49-018-MY4, and 112-2221-E-A49-087-MY3. The authors are grateful to Google, NVIDIA, and MediaTek Inc. for their generous donations. Yu-Lun Liu acknowledges the Yushan Young Fellow Program by the MOE in Taiwan.