Giter VIP home page Giter VIP logo

cpp-net's Introduction

Abstract

In the domain of compressive sensing (CS), deep unfolding networks (DUNs) have garnered attention for their good performance and certain degree of interpretability rooted in CS domain, achieved by marrying traditional optimization solvers with deep networks. However, current DUNs are ill-suited for the intricate task of capturing fine-grained image details, leading to perceptible distortions and blurriness in reconstructed images, particularly at low CS ratios, e.g., 0.10 and below. In this paper, we propose CPP-Net, a novel deep unfolding CS framework, inspired by the primal-dual hybrid strategy of the Chambolle and Pock Proximal Point Algorithm (CP-PPA). First, we derive three iteration submodules, $\mathbf{X}^{(k)}$, $\mathbf{V}^{(k)}$ and $\mathbf{Y}^{(k)}$, by incorporating customized deep learning modules to solve the sparse basis related proximal operator within CP-PPA. Second, we design the Dual Path Fusion Block (DPFB) to adeptly extract and fuse multi-scale feature information, enhancing sensitivity to feature information at different scales and improving detail reconstruction. Third, we introduce the Iteration Fusion Strategy (IFS) to effectively weight the fusion of outputs from diverse reconstruction stages, maximizing the utilization of feature information and mitigating the information loss during reconstruction stages. Extensive experiments demonstrate that CPP-Net effectively reduces distortion and blurriness while preserving richer image details, outperforming current state-of-the-art methods.

Test

python test.py --model=cpp8 --cs_ratio=10 --dataset=Set11

Place the test dataset into the "./data/" folder and replace the option "dataset" with the name of the test dataset.

The results.csv and reconstructed images will be generated in the folder "./results/{model}/{dataset}/{cs_ratio}/".

The results.csv will save the results in "{image name},{PSNR (dB)},{SSIM},{LPIPS}" format.

The reconstructed images will be saved under the name "{image name}_{cs_ratio}_PSNR_{PSNR:.2f}_SSIM_{SSIM:.4f}_LPIPS_{LPIPS:.4f}.png".

Train

  1. Multi-GPUs
OMP_NUM_THREADS=8 CUDA_VISIBLE_DEVICES=0,1 python -m torch.distributed.launch --nproc_per_node=2 train.py --model=cpp8 --data_path="../data/train" --eval_data_path="../data/val" --cs_ratio=10 --blr=4e-5 --min_lr=1e-6 --epochs=400 --batch_size=8 --warmup_epochs=10 --input_size=96
  1. Single GPU
python train.py --model=cpp8 --data_path="../data/train" --eval_data_path="../data/val" --cs_ratio=10 --blr=4e-5 --min_lr=1e-6 --epochs=400 --batch_size=8 --warmup_epochs=10 --input_size=96

Replace the options "data_path" and "eval_data_path" with the path to the train dataset and eval dataset, respectively.

The model parameters will be saved under the name "checkpoint-{model}-{cs_ratio}-best.pth" in the ". /model" folder.

Pretrained Models

Requirements

  • Python == 3.10.12
  • Pytorch == 1.12.0

Citation

@inproceedings{guoCPPNet2024,
  title={CPP-Net: Embracing Multi-Scale Feature Fusion into Deep Unfolding CP-PPA Network for Compressive Sensing},
  author={Guo, Zhen and Gan, Hongping},
  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
  year={2024}
}

Acknowledge

This work is based on the awesome work ConvNeXt.

cpp-net's People

Contributors

icsresearch avatar

Stargazers

 avatar Bin Chen avatar Yuchen Wu avatar

Watchers

 avatar

cpp-net's Issues

论文paper

甘教授,您好,恭喜您成功录用CVPR2024,我看到摘要认为这是非常有意义的工作,但是没有找到paper,您可以上传arxiv或者其他资源分享嘛

Has the sampling matrix been made public

I'm interested in this method. Where do the numpy-formatted sampling rate matrices for sampling_matrix come from?

I seem to not find it in any comments or files, which prevents me from performing performance tests on the method.

Feel free to let me know of any new developments. Thank you!

paper

干教授,您好,恭喜您成功录用CVPR2024,我看到摘要认为这是非常有意义的工作,但是没有找到paper,您可以上传arxiv或者其他资源分享嘛

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.