{"id":13785230,"url":"https://github.com/wzjialang/MFPNet","last_synced_at":"2025-05-11T20:32:43.760Z","repository":{"id":41068382,"uuid":"388325848","full_name":"wzjialang/MFPNet","owner":"wzjialang","description":"[Remote Sensing] PyTorch implementation for \"Remote Sensing Change Detection Based on Multidirectional Adaptive Feature Fusion and Perceptual Similarity\"","archived":false,"fork":false,"pushed_at":"2022-10-04T18:06:47.000Z","size":6802,"stargazers_count":32,"open_issues_count":5,"forks_count":6,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-08-03T19:09:19.536Z","etag":null,"topics":["attention-mechanism","change-detection","deep-learning","feature-fusion","perceptual-loss","remote-sensing"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wzjialang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-07-22T04:28:35.000Z","updated_at":"2024-06-10T11:16:23.000Z","dependencies_parsed_at":"2023-01-19T03:16:22.070Z","dependency_job_id":null,"html_url":"https://github.com/wzjialang/MFPNet","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wzjialang%2FMFPNet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wzjialang%2FMFPNet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wzjialang%2FMFPNet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wzjialang%2FMFPNet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wzjialang","download_url":"https://codeload.github.com/wzjialang/MFPNet/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225094395,"owners_count":17419986,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["attention-mechanism","change-detection","deep-learning","feature-fusion","perceptual-loss","remote-sensing"],"created_at":"2024-08-03T19:00:58.302Z","updated_at":"2024-11-17T21:31:11.380Z","avatar_url":"https://github.com/wzjialang.png","language":"Python","funding_links":[],"categories":["Multispectral"],"sub_categories":["Deep Learning"],"readme":"# Remote Sensing Change Detection Based on Multidirectional Adaptive Feature Fusion and Perceptual Similarity\n![](https://img.shields.io/badge/author-Jialang,Xu-brightgreen)![](https://img.shields.io/badge/email-504006937@qq.com-blue)\n\nPyTorch implementation for \"[Remote Sensing Change Detection Based on Multidirectional Adaptive Feature Fusion and Perceptual Similarity](https://www.mdpi.com/2072-4292/13/15/3053)\"\n\n- [03 August 2021] Release the code of MFPNet model.\n- [28 June 2022] Release the processed datasets, training/evaluation codes.\n- [08 JUly 2022] Release model weights for Season-varying/LEVIR-CD/Google datasets.\n\n## Introduction\nRemote sensing change detection (RSCD) is an important yet challenging task in Earth observation. The booming development of convolutional neural networks (CNNs) in computer vision raises new possibilities for RSCD, and many recent RSCD methods have introduced CNNs to achieve promising improvements in performance. This paper proposes a novel multidirectional fusion and perception network for change detection in bi-temporal very-high-resolution remote sensing images. First, we propose an elaborate feature fusion module consisting of a multidirectional fusion pathway (MFP) and an adaptive weighted fusion (AWF) strategy  for RSCD to boost the way that information propagates in the network. The MFP enhances the flexibility and diversity of information paths by creating extra top-down and shortcut-connection paths. The AWF strategy conducts weight recalibration for every fusion node to highlight salient feature maps and overcome semantic gaps between different features. Second, a novel perceptual similarity module is designed to introduce perceptual loss into the RSCD task, which adds the perceptual information, such as structure and semantic, for high-quality change maps generation. Extensive experiments on four challenging benchmark datasets demonstrate the superiority of the proposed network comparing with eight state-of-the-art methods in terms of F1, Kappa, and visual qualities.\n\n## Content\n### Architecture\n\u003cimg src=\"https://github.com/wzjialang/MFPNet/blob/main/figure/MFPNet.png\" height=\"500\"/\u003e\n\nFig.1 Overall architecture of the proposed multidirectional fusion and perception network (MFPNet). \u003cbr\u003e\nNote that the process with the dashed line only participates in model training.\n\n### Datasets\nThe processed and original datasets can be downloaded from the table below, we recommended downloading the processed one directly to get a quick start on our codes:\n\n\u003ctable\u003e\n\t\u003ctr\u003e\n\t    \u003cth\u003eDatasets\u003c/th\u003e\n\t    \u003cth\u003eProcessed Links\u003c/th\u003e\n\t    \u003cth\u003eOriginal Links\u003c/th\u003e\t\n\t\u003c/tr\u003e\n    \u003ctr\u003e\n\t    \u003ctd\u003eSeason-varying Dataset [\u003ca href=\"https://www.int-arch-photogramm-remote-sens-spatial-inf-sci.net/XLII-2/565/2018/\"\u003e1\u003c/a\u003e]\u003c/td\u003e\n\t    \u003ctd rowspan=\"4\"\u003e[\u003ca href=\"https://drive.google.com/file/d/1-A-t3sPK0Pv0ofjtvpCJ87f2H2CsY6Km/view?usp=sharing\" target=\"_blank\"\u003eGoogle Drive\u003c/a\u003e]\n\t    [\u003ca href=\"https://pan.baidu.com/s/1kf5QmTY8Usnknkao1JcAkw?pwd=1234\" target=\"_blank\"\u003eBaidu Drive\u003c/a\u003e] \n        \u003ctd\u003e[\u003ca href=\"https://drive.google.com/file/d/1GX656JqqOyBi_Ef0w65kDGVto-nHrNs9\" target=\"_blank\"\u003eOriginal\u003c/a\u003e] \u003c/td\u003e\n\t\u003c/tr\u003e\n\t    \u003ctd\u003eLEVIR-CD Dataset [\u003ca href=\"https://www.mdpi.com/2072-4292/12/10/1662\"\u003e2\u003c/a\u003e]\u003c/td\u003e\n\t    \u003ctd\u003e[\u003ca href=\"https://justchenhao.github.io/LEVIR/\" target=\"_blank\"\u003eOriginal\u003c/a\u003e]\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003c/tr\u003e\n\t    \u003ctd\u003eGoogle Dataset [\u003ca href=\"https://ieeexplore.ieee.org/document/9161009/\"\u003e3\u003c/a\u003e]\u003c/td\u003e\n\t    \u003ctd\u003e[\u003ca href=\"https://github.com/GeoZcx/A-deeply-supervised-image-fusion-network-for-change-detection-in-remote-sensing-images/tree/master/dataset\" target=\"_blank\"\u003eOriginal\u003c/a\u003e]\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003c/tr\u003e\n\t    \u003ctd\u003eZhange Dataset [\u003ca href=\"https://www.sciencedirect.com/science/article/abs/pii/S0924271620301532\"\u003e4\u003c/a\u003e]\u003c/td\u003e\n\t    \u003ctd\u003e[\u003ca href=\"https://github.com/daifeng2016/Change-Detection-Dataset-for-High-Resolution-Satellite-Imagery\" target=\"_blank\"\u003eOriginal\u003c/a\u003e]\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e \n\n### Setup \u0026 Usage for the Code\n\n1. Check the structure of data folders:\n```\n(root folder)\n├── dataset1\n|  ├── train\n|  |  ├── A\n|  |  ├── B\n|  |  ├── label\n|  ├── val\n|  |  ├── A\n|  |  ├── B\n|  |  ├── label\n|  ├── test\n|  |  ├── A\n|  |  ├── B\n|  |  ├── label\n├── ...\n```\n\n2. Check dependencies:\n```\n- Python 3.6+\n- PyTorch 1.7.0+\n- scikit-learn\n- cudatoolkit\n- cudnn\n- OpenCV-Python\n```\n\n3. Change paths:\n```\n- Change the 'metadata_json_path' in 'train.py' to your 'metadata.json' path.\n- Change the 'dataset_dir' and 'weight_dir' in 'metadata.json' to your own path.\n```\n\n4. Train the MFPNet:\n```\npython train.py\n```\n\n5. Evaluate the MFPNet:\n```\n- Download model weights (optional).\n- Change the 'weight_path' in 'eval.py' to your model weight path.\n- python eval.py\n```\n\n## Model Weights\nModel weights for Season-varying/LEVIR-CD/Google datasets are available via [Google Drive](https://drive.google.com/drive/folders/1-2njQ7Z3IIrjv6YGXoMD2CBZbc1nQuRu?usp=sharing) or [Baidu Drive](https://pan.baidu.com/s/141aQDQ_lMEi83O2t6AcLqg?pwd=1234). Note that the training/dataloader codes are rewritten and improved so the performance is a little different from the paper.\n\n\u003ctable\u003e\n\t\u003ctr\u003e\n\t    \u003cth\u003eDatasets\u003c/th\u003e\n\t    \u003cth\u003eF1 (%)\u003c/th\u003e\n\t    \u003cth\u003eKappa (%)\u003c/th\u003e\t\n\t\u003c/tr\u003e\n    \u003ctr\u003e\n\t    \u003ctd\u003eSeason-varying\u003c/td\u003e\n\t    \u003ctd\u003e97.964\u003c/td\u003e\n\t    \u003ctd\u003e97.691\u003c/td\u003e\n\t\u003c/tr\u003e\n\t    \u003ctd\u003eLEVIR-CD\u003c/td\u003e\n\t    \u003ctd\u003e91.568\u003c/td\u003e\n\t    \u003ctd\u003e91.120\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003c/tr\u003e\n\t    \u003ctd\u003eGoogle\u003c/td\u003e\n\t    \u003ctd\u003e88.058\u003c/td\u003e\n\t    \u003ctd\u003e84.140\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e \n\n\n## Reference\nAppreciate the work from the following repositories:\n* [likyoo/Siam-NestedUNet](https://github.com/likyoo/Siam-NestedUNet)\n* [zylo117/Yet-Another-EfficientDet-Pytorch](https://github.com/zylo117/Yet-Another-EfficientDet-Pytorch)\n\n## Cite\nIf this repository is useful for your research, please cite:\n```\n@Article{rs13153053,\nAUTHOR = {Xu, Jialang and Luo, Chunbo and Chen, Xinyue and Wei, Shicai and Luo, Yang},\nTITLE = {Remote Sensing Change Detection Based on Multidirectional Adaptive Feature Fusion and Perceptual Similarity},\nJOURNAL = {Remote Sensing},\nVOLUME = {13},\nYEAR = {2021},\nNUMBER = {15},\nARTICLE-NUMBER = {3053},\nURL = {https://www.mdpi.com/2072-4292/13/15/3053},\nISSN = {2072-4292},\nDOI = {10.3390/rs13153053}\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwzjialang%2FMFPNet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwzjialang%2FMFPNet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwzjialang%2FMFPNet/lists"}