git《Pseudo-ISP: Learning Pseudo In-camera Signal Processing Pipeline from A Color Image Denoiser》(2021) GitHub: [fig5]

Overview

Pseudo-ISP: Learning Pseudo In-camera Signal Processing Pipeline from A Color Image Denoiser

Abstract

The success of deep denoisers on real-world color photographs usually relies on the modeling of sensor noise and in-camera signal processing (ISP) pipeline. Performance drop will inevitably happen when the sensor and ISP pipeline of test images are different from those for training the deep denoisers (i.e., noise discrepancy). In this paper, we present an unpaired learning scheme to adapt a color image denoiser for handling test images with noise discrepancy. We consider a practical training setting, i.e., a pretrained denoiser, a set of test noisy images, and an unpaired set of clean images. To begin with, the pre-trained denoiser is used to generate the pseudo clean images for the test images. Pseudo-ISP is then suggested to jointly learn the pseudo ISP pipeline and signal-dependent rawRGB noise model using the pairs of test and pseudo clean images. We further apply the learned pseudo ISP and rawRGB noise model to clean color images to synthesize realistic noisy images for denoiser adaption. Pseudo-ISP is effective in synthesizing realistic noisy sRGB images, and improved denoising performance can be achieved by alternating between Pseudo-ISP training and denoiser adaption. Experiments show that our Pseudo-ISP not only can boost simple Gaussian blurring-based denoiser to achieve competitive performance against CBDNet, but also is effective in improving state-of-the-art deep denoisers, e.g., CBDNet and RIDNet.

Illustration of our unpaired learning scheme

drawing

Illustration of our unpaired learning scheme, which iterates with four steps. First, the denoiser is used to obtain pseudo clean images of test noisy images. Then, Pseudo-ISP is deployed to learn noise model in the pseudo rawRGB space, which is further used to synthesize realistic noisy images. Finally, the denoiser is finetuned for adaption using both pseudo and synthetic paired data.

Learning PseudoISP for Noise Modeling

drawing

We constitute our Pseudo-ISP involving three subnets, i.e.,sRGB2Raw, Raw2sRGB and noise estimation (see Fig. 3).

Comparison with State-of-the-arts

drawing

Table 6 lists the PSNR and SSIM results. On all datasets, CBDNet*, RIDNet* and PT-MWRN* outperform their counterparts, indicating that our Pseudo-ISP can be incorporated with different pre-trained denoisers for handling various kinds of noise discrepancy.

Dataset Download Link

Download the mat file of DND dataset

Pre-trained Denoising Model Download Link

Contact

Please send email to [email protected] or [email protected]

You might also like...
git《Learning Pairwise Inter-Plane Relations for Piecewise Planar Reconstruction》(ECCV 2020) GitHub:

Learning Pairwise Inter-Plane Relations for Piecewise Planar Reconstruction Code for the ECCV 2020 paper by Yiming Qian and Yasutaka Furukawa Getting

git《USD-Seg:Learning Universal Shape Dictionary for Realtime Instance Segmentation》(2020) GitHub: [fig2]
git《USD-Seg:Learning Universal Shape Dictionary for Realtime Instance Segmentation》(2020) GitHub: [fig2]

USD-Seg This project is an implement of paper USD-Seg:Learning Universal Shape Dictionary for Realtime Instance Segmentation, based on FCOS detector f

Camera-caps - Examine the camera capabilities for V4l2 cameras
Camera-caps - Examine the camera capabilities for V4l2 cameras

camera-caps This is a graphical user interface over the v4l2-ctl command line to

Third party Pytorch implement of Image Processing Transformer (Pre-Trained Image Processing Transformer arXiv:2012.00364v2)

ImageProcessingTransformer Third party Pytorch implement of Image Processing Transformer (Pre-Trained Image Processing Transformer arXiv:2012.00364v2)

git《Beta R-CNN: Looking into Pedestrian Detection from Another Perspective》(NeurIPS 2020) GitHub:[fig3]
git《Beta R-CNN: Looking into Pedestrian Detection from Another Perspective》(NeurIPS 2020) GitHub:[fig3]

Beta R-CNN: Looking into Pedestrian Detection from Another Perspective This is the pytorch implementation of our paper "[Beta R-CNN: Looking into Pede

git《Commonsense Knowledge Base Completion with Structural and Semantic Context》(AAAI 2020) GitHub: [fig1]
git《Commonsense Knowledge Base Completion with Structural and Semantic Context》(AAAI 2020) GitHub: [fig1]

Commonsense Knowledge Base Completion with Structural and Semantic Context Code for the paper Commonsense Knowledge Base Completion with Structural an

git《Investigating Loss Functions for Extreme Super-Resolution》(CVPR 2020) GitHub:

Investigating Loss Functions for Extreme Super-Resolution NTIRE 2020 Perceptual Extreme Super-Resolution Submission. Our method ranked first and secon

git《Joint Entity and Relation Extraction with Set Prediction Networks》(2020) GitHub:

Joint Entity and Relation Extraction with Set Prediction Networks Source code for Joint Entity and Relation Extraction with Set Prediction Networks. W

Deep learning (neural network) based remote photoplethysmography: how to extract pulse signal from video using deep learning tools

Deep-rPPG: Camera-based pulse estimation using deep learning tools Deep learning (neural network) based remote photoplethysmography: how to extract pu

Comments
  • Incorrect Colour and checkerboard artefact in Noisy images

    Incorrect Colour and checkerboard artefact in Noisy images

    Hi there. Firstly thank you for the very interesting paper! I am very interested in modeling noise profiles with your program. I have trained the model using the default settings, with DND images denoised using a DNCNN network. However, the dataset generated (using DIV2K) does not seem to have noise similar to the original DND images. There seems to be some incorrect colour shifts as well as some checkerboard artefacts.

    Did you observe this in your work and have you any advice for me with regards to settings I could change? Does training for longer help? This seems to be a problem in training PseudoISP as my training data appears to be good. I will try to train again. For now below is an example of the images produced.

    Checkerboarding

    84_clean84_noisy

    Colour artefacts 67_clean67_noisy

    Strange colour with Bayer/checkerboard artefacts? 42_clean42_noisy

    I did try to train DNCNN again using this but it made performance worse. Any suggestions are welcome

    opened by MrBled 1
  • Program randomly hangs and doesn't complete data generation with trained Psuedo ISP.

    Program randomly hangs and doesn't complete data generation with trained Psuedo ISP.

    I do not know why but I could not run Stage 2 train, specifically 'Generate_Synthesis_Dataset()'.

    I solved this by adding a 'train' flag to the three models and disabling weight initialization when the train flag was false. Without this the program randomly crashes and needs to be killed in htop/nvtop.

    Simply as follows:

    
    class RGB2PACK(nn.Module):
        def __init__(self, channels=3, filters_num = 128, filters_pack = 4, train=True):
            super(RGB2PACK, self).__init__()
    
            # RGB2RAW Network
            self.RGB2RAW = nn.Sequential(
                nn.Conv2d(channels, filters_num, 3, 1, 1),
                nn.ReLU(True),
                nn.Conv2d(filters_num, filters_num, 3, 1, 1),
                nn.ReLU(True),
                nn.Conv2d(filters_num, filters_num, 3, 1, 1),
                nn.ReLU(True),
                nn.Conv2d(filters_num, filters_num, 3, 1, 1),
                nn.ReLU(True),
                nn.Conv2d(filters_num, filters_num, 3, 1, 1),
                nn.ReLU(True),
                nn.Conv2d(filters_num, channels, 3, 1, 1),
                nn.ReLU(True))
    
            # Mosaic
            self.mosaic = Mosaic_Operation()
            if train:
                self._initialize_weights()
    

    Repeat for the other two networks.

    opened by MrBled 1
  • Nice work! Questions on some results.

    Nice work! Questions on some results.

    Three questions.

    1/ According to your paper, you perform evalutation on SIDD benchmark and DND benchmark. I saw results about the PSNR on two datasets. Can you provide both the PSNR and SSIM on two datasets? I only find results on sRGB of SIDD on that website. I need specific results for comparison.

    2/ There are two results of PseudoISP on DND leaderboard. It seems that the second one is illustrated on the paper. What do the two methods represent?

    3/ From my opinion, PseudoISP also need extra data for training, just like CycleISP, but not the same.

    Thanks a lot! Im looking forward to your replies.

    opened by leonmakise 3
  • Using Pseudo-ISP (Demo)

    Using Pseudo-ISP (Demo)

    Hi,

    Thank you for this wonderful work. I m hoping to use this for my project since I do not have the ground truth for the set of ultrasound medical images I am working with. I would really appreciate it if you can share a quick demo of how I can use the pre-trained denoising models along with the Pseudo-isp to generate clean data for the medical images I have. I am attaching a sample image to this post: frame1

    I really appreciate your work. Thanks in advance!

    Yusuf

    opened by ansariyusuf 1
Owner
Yue Cao
Interested in low-level vision problem. First-year PhD candidate at HIT-VPC.
Yue Cao
git git《Transformer Meets Tracker: Exploiting Temporal Context for Robust Visual Tracking》(CVPR 2021) GitHub:git2] 《Masksembles for Uncertainty Estimation》(CVPR 2021) GitHub:git3]

Transformer Meets Tracker: Exploiting Temporal Context for Robust Visual Tracking Ning Wang, Wengang Zhou, Jie Wang, and Houqiang Li Accepted by CVPR

NingWang 236 Dec 22, 2022
Beyond a Gaussian Denoiser: Residual Learning of Deep CNN for Image Denoising

Beyond a Gaussian Denoiser: Residual Learning of Deep CNN for Image Denoising

Kai Zhang 1.2k Dec 29, 2022
Gradient Step Denoiser for convergent Plug-and-Play

Source code for the paper "Gradient Step Denoiser for convergent Plug-and-Play"

Samuel Hurault 11 Sep 17, 2022
Adversarial Color Enhancement: Generating Unrestricted Adversarial Images by Optimizing a Color Filter

ACE Please find the preliminary version published at BMVC 2020 in the folder BMVC_version, and its extended journal version in Journal_version. Datase

null 28 Dec 25, 2022
[CVPR2021] Invertible Image Signal Processing

Invertible Image Signal Processing This repository includes official codes for "Invertible Image Signal Processing (CVPR2021)". Figure: Our framework

Yazhou XING 281 Dec 31, 2022
A minimal solution to hand motion capture from a single color camera at over 100fps. Easy to use, plug to run.

Minimal Hand A minimal solution to hand motion capture from a single color camera at over 100fps. Easy to use, plug to run. This project provides the

Yuxiao Zhou 824 Jan 7, 2023
git《Tangent Space Backpropogation for 3D Transformation Groups》(CVPR 2021) GitHub:1]

LieTorch: Tangent Space Backpropagation Introduction The LieTorch library generalizes PyTorch to 3D transformation groups. Just as torch.Tensor is a m

Princeton Vision & Learning Lab 482 Jan 6, 2023
git《Self-Attention Attribution: Interpreting Information Interactions Inside Transformer》(AAAI 2021) GitHub:

Self-Attention Attribution This repository contains the implementation for AAAI-2021 paper Self-Attention Attribution: Interpreting Information Intera

null 60 Dec 29, 2022
git《FSCE: Few-Shot Object Detection via Contrastive Proposal Encoding》(CVPR 2021) GitHub: [fig8]

FSCE: Few-Shot Object Detection via Contrastive Proposal Encoding (CVPR 2021) This repo contains the implementation of our state-of-the-art fewshot ob

null 233 Dec 29, 2022
Data manipulation and transformation for audio signal processing, powered by PyTorch

torchaudio: an audio library for PyTorch The aim of torchaudio is to apply PyTorch to the audio domain. By supporting PyTorch, torchaudio follows the

null 1.9k Dec 28, 2022