Skip to content

WHU-X-Lab/BCDWorkflow

Repository files navigation

BCDWorkflow: A Workflow of Building Footprints Change Detection


This repository contains the implementation of the multi-stage deep learning workflow proposed in the paper:

"A workflow of deep models with concept learning and domain-specific attention for change detection in vector building footprints"

Xiang Zhang, Ruolan Li, Yilang Shen

📌 Overview


The study addresses a challenging change detection problem in heterogeneous vector building footprints, where pseudo-changes (caused by differences in LOD, displacement, generalization, etc.) are difficult to distinguish from real modifications. We propose a multi-stage deep learning workflow that integrates:

· Concept learning (discrepancy, displacement)
· Domain-specific attention (non-learnable morphological attention)
· Multi-scale feature fusion

Our workflow significantly reduces pseudo-change rates (from >40% to 16.7%) and outperforms both conventional rule-based methods and end-to-end deep models (including Transformers), especially in small-data scenarios.

🏗️ Model Architecture


The workflow consists of three main sub-tasks:

1. Local Discrepancy Discriminator – identifies significant visual differences.
2. Global Displacement Discriminator – detects cartographic displacement.
3. Change Classifier – fuses local and global features for final change detection.

模型架构
Domain-specific attention is implemented via morphological operations to guide the model toward meaningful regions without additional learned parameters.

📂 Repository Structure


├── models/              # Implementations of CNN backbones (AlexNet, GoogLeNet, ResNet, etc.)
├── training/            # Multi-stage training scripts for discrepancy, displacement, and change tasks
├── inference/           # Scripts to run the full workflow on new data
├── utils/               # Helper functions (attention mechanisms, sampling, evaluation)
└── configs/             # Configuration files for training and evaluation

🚀 Quick Start


1. Install Dependencies

pip install torch torchvision opencv-python scikit-learn 


2. Prepare Data

All the dataset have been published in figshare: Building Dataset

3. Train the Workflow

Stage-by-stage training:

python training/trainDiifNet.py --config configs/config_diff.py
python training/trainShiftNet.py --config configs/config_shift.py
python training/trainClassify.py 


4. Run Inference

python inference/predict.py --model_path ./save_models/ --input_dir ./test_pairs/

📚 Citation


If you use this code or find the paper helpful, please cite:

@article{zhang2025workflow,
title={A workflow of deep models with concept learning and domain-specific attention for change detection in vector building footprints},
author={Zhang, Xiang and Li, Ruolan and Shen, Yilang},
journal={Transactions in GIS},
year={2025},
doi ={10.1111/tgis.70172}, 
url ={http://dx.doi.org/10.1111/tgis.70172}}

About

基于Pytorch实现多尺度特征融合的建筑物变化探测

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages