All Projects → czbiohub → Noise2self

czbiohub / Noise2self

Licence: mit
A framework for blind denoising with self-supervision.

Projects that are alternatives of or similar to Noise2self

Dlsys Course.github.io
Deep learning system course
Stars: ✭ 207 (-1.9%)
Mutual labels:  jupyter-notebook
Machine Learning
从零基础开始机器学习之旅
Stars: ✭ 209 (-0.95%)
Mutual labels:  jupyter-notebook
Knowledge Graph Analysis Programming Exercises
Exercises for the Analysis of Knowledge Graphs
Stars: ✭ 208 (-1.42%)
Mutual labels:  jupyter-notebook
Python Bootcamp
Python Bootcamp docs and lectures (UC Berkeley)
Stars: ✭ 208 (-1.42%)
Mutual labels:  jupyter-notebook
Keypoints Of Humanpose With Mask R Cnn
Use the Mask RCNN for the human pose estimation
Stars: ✭ 209 (-0.95%)
Mutual labels:  jupyter-notebook
Exercise
exercise for nndl
Stars: ✭ 2,649 (+1155.45%)
Mutual labels:  jupyter-notebook
Visualsearch mxnet
Visual Search using Apache MXNet and gluon
Stars: ✭ 208 (-1.42%)
Mutual labels:  jupyter-notebook
Sttn
[ECCV'2020] STTN: Learning Joint Spatial-Temporal Transformations for Video Inpainting
Stars: ✭ 211 (+0%)
Mutual labels:  jupyter-notebook
Book Resources
Stars: ✭ 209 (-0.95%)
Mutual labels:  jupyter-notebook
Image manipulation detection
Paper: CVPR2018, Learning Rich Features for Image Manipulation Detection
Stars: ✭ 210 (-0.47%)
Mutual labels:  jupyter-notebook
Hardware introduction
What scientific programmers must know about CPUs and RAM to write fast code.
Stars: ✭ 209 (-0.95%)
Mutual labels:  jupyter-notebook
3d Mri Brain Tumor Segmentation Using Autoencoder Regularization
Keras implementation of the paper "3D MRI brain tumor segmentation using autoencoder regularization" by Myronenko A. (https://arxiv.org/abs/1810.11654).
Stars: ✭ 209 (-0.95%)
Mutual labels:  jupyter-notebook
Monthofjulia
Some code examples gathered during my Month of Julia.
Stars: ✭ 209 (-0.95%)
Mutual labels:  jupyter-notebook
Windrose
A Python Matplotlib, Numpy library to manage wind data, draw windrose (also known as a polar rose plot), draw probability density function and fit Weibull distribution
Stars: ✭ 208 (-1.42%)
Mutual labels:  jupyter-notebook
Cartoframes
CARTO Python package for data scientists
Stars: ✭ 208 (-1.42%)
Mutual labels:  jupyter-notebook
Workshop blog
Stars: ✭ 208 (-1.42%)
Mutual labels:  jupyter-notebook
Simplified Deeplearning
Simplified implementations of deep learning related works
Stars: ✭ 2,389 (+1032.23%)
Mutual labels:  jupyter-notebook
Academy
Ray tutorials from Anyscale
Stars: ✭ 210 (-0.47%)
Mutual labels:  jupyter-notebook
Intro Numerical Methods
Jupyter notebooks and other materials developed for the Columbia course APMA 4300
Stars: ✭ 210 (-0.47%)
Mutual labels:  jupyter-notebook
Style transfer
CNN image style transfer 🎨.
Stars: ✭ 210 (-0.47%)
Mutual labels:  jupyter-notebook

Noise2Self: Blind Denoising by Self-Supervision

This repo demonstrates a framework for blind denoising high-dimensional measurements, as described in the paper. It can be used to calibrate classical image denoisers and train deep neural nets; the same principle works on matrices of single-cell gene expression.

The result of training a U-Net to denoise a stack of noisy Chinese characters. Note that the only input is the noisy data; no ground truth is necessary.

Images

The notebook Intro to Calibration shows how to calibrate any traditional image denoising model, such as median filtering, wavelet thresholding, or non-local means. We use the excellent scikit-image implementations of these methods, and have submitted a PR to incorporate self-supervised calibration directly into the package. (Comments welcome on the PR!)

The notebook Intro to Neural Nets shows how to train a denoising neural net using a self-supervised loss, on the simple example of MNIST digits. The notebook runs in less than a minute, on CPU, on a MacBook Pro. We implement this in pytorch.

The notebook Single Shot Denoising demonstrates that there is enough information in a single 512x512 noisy image for a deep neural net to learn to denoise it, with performance better than classical blind image denoisers.

Because the self-supervised loss is much easier to implement than the data loading, GPU management, logging, and architecture design required for handling any particular dataset, we recommend that you take any existing pipeline for your data and simply modify the training loop.

Traditional Supervised Learning

for i, batch in enumerate(data_loader):
    noisy_images, clean_images = batch
    output = model(noisy_images)
    loss = loss_function(output, clean_images)

Self-Supervised Learning

from mask import Masker
masker = Masker()
for i, batch in enumerate(data_loader):
    noisy_images, _ = batch
    input, mask = masker.mask(noisy_images, i)
    output = model(input)
    loss = loss_function(output*mask, noisy_images*mask)

Dependencies are in the environment.yml file.

The remaining notebooks generate figures from the paper.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].