Open-CD: A Change Detection Toolbox Built on the OpenMMLab Stack
A Change Detection Repo Standing on the Shoulders of Giants
At a glance
- What is it?
- Open-CD collects 18 change detection architectures and 12 remote sensing datasets behind the mmsegmentation training and testing interface. The value is consolidation, not novelty, and the cost is a deep dependency on the OpenMMLab 2.x ecosystem.
- Who is it for?
- Adopt Open-CD if you already run mmsegmentation and want a single repository where Changer, BiT, ChangeFormer, TinyCD and their siblings share one config format and one training loop. Do not adopt it if you need a self-contained package with no OpenMMLab install, or if you work outside remote sensing imagery.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 92 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
The problem Open-CD addresses: eighteen papers, eighteen codebases
Change detection research produces a new architecture roughly every conference cycle. Each paper ships its own repository with its own data loader, its own training loop, its own argument parser and its own evaluation script. If you want to compare Changer against BiT against ChangeFormer on LEVIR-CD, the README's supported model list suggests you would otherwise be reconciling three unrelated codebases. Open-CD's answer is to reimplement each method as an mmsegmentation config plus a model class, so that the same tools/train.py and tools/test.py drive all of them. The README describes the project as an open source change detection toolbox based on a series of open source general vision task tools, and the supported list runs from FC-EF and FC-Siam-diff (ICIP 2018) through STANet, IFN, SNUNet, BiT, ChangeStar, ChangeFormer, TinyCD, Changer, HANet, TinyCDv2, LightCDNet, CGNet, BAN, TTP and MTKD. That is the audience: researchers and engineers who need to run a controlled comparison across architectures without rewriting the harness each time, and who are already comfortable inside the OpenMMLab 2.x conventions.
How the toolbox is assembled: configs, registry and borrowed model code
The repository layout follows mmsegmentation conventions. Each method gets a directory under configs (configs/changer, configs/bit, configs/changeformer, configs/tinycd, configs/stanet and so on), and each directory holds the config files that bind a backbone, a decode head and a dataset together. The README is explicit that some model code is borrowed directly from official repositories, which means the toolbox is partly a re-hosting layer rather than a uniform rewrite. That choice keeps the implementations faithful to their papers, but it also means coding style, dependency assumptions and licence headers can vary from directory to directory. The dependency surface is listed as OpenMMLab Toolkits plus pytorch-image-models, so timm-style backbones are reachable alongside the mmsegmentation registry. Datasets are not vendored: the README links out to LEVIR-CD, WHU-CD, S2Looking, SVCD, DSIFN, CLCD, RSIPAC, SECOND, Landsat, BANDON and JL1-CD, and points at an external awesome-remote-sensing-change-detection list for descriptions. You convert them to the mmsegmentation dataset format yourself. The inference API added in v1.1.0 is documented separately in docs/inference.md, which the README references rather than reproducing.
Getting it running: mim, mmcv and the two-command install
Installation goes through OpenMMLab's package manager rather than pip alone. The README gives this sequence: pip install -U openmim, then mim install mmengine, mim install "mmcv>=2.0.0", mim install "mmpretrain>=1.0.0rc7", pip install "mmsegmentation>=1.2.2" and pip install "mmdet>=3.0.0". After that you clone the repository, cd into it and run pip install -v -e . for an editable install. Training is a single call: python tools/train.py configs/changer/changer_ex_r18_512x512_40k_levircd.py --work-dir ./changer_r18_levir_workdir. Testing splits into two modes. With --show-dir tmp_infer you get .png prediction maps; without it you get metrics. Both use the same config and checkpoint pair, for example changer_r18_levir_workdir/latest.pth. The config filename encodes the setup: Changer with a ResNet-18 backbone, 512x512 crops, 40k iterations, LEVIR-CD. A Colab notebook is linked for people who want to try the pipeline before installing anything locally. The docs/install.md file is referenced for details the README does not cover.
The OpenMMLab version pin is the real constraint
Every install line carries a version floor, and mmcv in particular is the component that most often breaks against a mismatched PyTorch or CUDA build. The README asks for mmcv>=2.0.0 alongside mmsegmentation>=1.2.2 and mmdet>=3.0.0, and the mmdet requirement is worth noticing: a change detection toolbox pulling in an object detection framework suggests shared registry or transform code rather than a detection task. If your environment is pinned to an older mmcv 1.x line, this toolbox is the wrong tool, and the README's own history confirms the break: the 4/21/2023 note says Open-CD v1.0.0 is released in the 1.x branch, based on OpenMMLab 2.0, which means the pre-2.0 line lives on a separate branch with a different API. There is also no claim of a Docker image or a conda recipe in the material, so environment reproducibility is on you. The second limitation is scope: the model list is entirely remote sensing change detection. If your task is video change detection, document diffing or general image differencing, none of these eighteen architectures was designed for it, and the dataset links are all satellite or aerial imagery.
Where Open-CD sits against writing your own training loop
The obvious alternative is not another toolbox but a plain PyTorch training script built on torchvision or timm, with your own Dataset class and your own metric code. The difference in approach is concrete. A hand-rolled script gives you total control over the augmentation pipeline, the loss weighting and the evaluation protocol, and it carries no mmcv version constraint. Open-CD gives you eighteen reference implementations and their configs already wired to a shared runner, at the cost of adopting mmsegmentation's config system, its registry and its checkpoint format. If you plan to publish a comparison across several published methods, the config-per-method structure saves the work of porting each one. If you plan to train exactly one architecture and tune it heavily, the abstraction layer is overhead you will fight. The repository also links a technical report on arXiv (2407.15317), accepted at ACMMM 2025 according to the news section, which is the place to check before assuming a given method's reported numbers were reproduced identically here.
Maintenance, releases and what Apache-2.0 does not settle
Release cadence has been slow but not stalled. v0.0.2 landed in March 2023, v1.0.0 in October 2023, v1.1.0 in February 2024, and the last push recorded for the repository is June 2026, with the technical report updated to v1.1 in April 2025 when MTKD and the JL1-CD dataset were added. Upgrading between minor versions means re-checking your config against the new mmsegmentation release, because the config schema is inherited rather than owned by this project. An OpenMMLab bump can invalidate a working config without any change in this repository. On licensing, the top-level licence is Apache-2.0, which permits commercial use and modification provided notices are kept. The complication is the borrowed code: the README states that some model implementations come directly from their official repositories, and those may carry their own terms. Apache-2.0 on the wrapper does not automatically relicense a file copied from a project with different conditions. Check the header of the specific config directory you intend to use, and treat the citation block (the ACMMM 2025 Open-CD paper plus the TGRS paper on foundation-model-based change detection) as the attribution the authors expect.
Editorial conclusion
Adopt Open-CD if you already run mmsegmentation and want a single repository where Changer, BiT, ChangeFormer, TinyCD and their siblings share one config format and one training loop. Do not adopt it if you need a self-contained package with no OpenMMLab install, or if you work outside remote sensing imagery. Before committing, verify the mmcv and mmsegmentation version pins against your CUDA build, confirm the licence and provenance of the model code borrowed from official repositories, and check that the checkpoint you want is present in the Open-CD_Model_Zoo on Hugging Face.
Community notes