Targeted False Positive Synthesis via Detector-guided Adversarial Diffusion Attacker for Robust Polyp Detection
Quan Zhou1, *, Gan Luo1, *, Qiang Hu2, †, Qingyong Zhang1, Jinhua Zhang3, Yinjiao Tian3, Qiang Li2, Zhiwei Wang2, †
1 WUT, 2 WNLO, HUST, 3 Changzhou United lmaging Healthcare Surgical Technology Co., Ltd.
(*: equal contribution, †: corresponding author)
In our work, we adopt a inpainting strategy and the specific inference flow is: Firstly you should have a real endoscopy image; Secondly you need to specify a inpainting region (a bounding box region); and Finally, our method can generate a high-value negative sample in the region you have formulated in this real image. To make it clear, we've made a GIF, which is shown as follows:
To tackle the challenge of polyp detectors easy to produce false positive prediction, this work firstly (to the best of our knowledge) to apply adversarial diffusion framwork to generate high-value negative samples (e.g., polyp-like interferences, light spots, circular lumens and and other background objects). The core module is Detector-guided Adversarial Diffusion Attacker (DADA), which perturbs the denoising process to generate challenging false positives capable of confusing a well-trained polyp detector, thereby guiding the synthesis of high-value negative samples. The negative samples synthesized by our method can improve the performance of the detector more than other data data synthesis methods.
- Python 3.8+
- PyTorch 2.2+
- TorchVision corresponding to the PyTorch version
- NVIDIA GPU + CUDA
cd DADA
pip install -r requirements.txt
We provide well-trained BG-De weights based on the public Kvasir dataset, which can be downloaded from this link, . Please place the weights in the BG-De_model
folder.
Additionally, we also offer YOLOv5l weights trained on the public Kvasir dataset, which can be downloaded from this link. Please place the weights in the Detection_model
folder.
DADA
├── BG-De_model
├── Detection_model
After completing the above steps, you can generate negative samples by simply running Main.py
:
python Main.py
Please place the dataset you want to train in the path ./datasets
and ensure that the size of the images and masks is 256. The path structure should be as follows:
DADA
├── datasets
│ ├── images
│ ├── masks
Please set the "state"
parameter of modelConfig in Main.py
to "train"
, and set parameters such as batch_size according to actual conditions.
python Main.py
Place the weights in the BG-De_model
folder.
Before running the tests, ensure an object detection model is ready. For this project, we utilize the YOLOv5l architecture. Place the weights in the Detection_model
folder and set the "state"
parameter of modelConfig
in Main.py
to "eval"
.
python Main.py
We acknowledge the outstanding open-source contributions from DDPM, YOLOv5, and DETR.
If you find our paper and code useful in your research, please consider giving us a star ⭐ and citing DADA by the following BibTeX entry.
@article{zhou2025targeted,
title={Targeted False Positive Synthesis via Detector-guided Adversarial Diffusion Attacker for Robust Polyp Detection},
author={Zhou, Quan and Luo, Gan and Hu, Qiang and Zhang, Qingyong and Zhang, Jinhua and Tian, Yinjiao and Li, Qiang and Wang, Zhiwei},
journal={arXiv preprint arXiv:2506.18134},
year={2025}
}