====== Just Another Noise 2 Noise Implementation (JANNI) ======
JANNI implements a neural network denoising tool described in NVIDIA's noise2noise paper: [[https://arxiv.org/abs/1803.04189|Noise2Noise: Learning Image Restoration without Clean Data - arXiv]]
It can be trained on your data without the need of ground truth images. It supports MRC and TIFF format.
JANNI can be used a command line tool but also provides an simple interface to integrate into other programs (see [[:janni_tutorial#developer_information|developer information]]).
* **License**: MIT
* **GitHub repository**: [[https://github.com/thorstenwagner/sphire-janni|https://github.com/thorstenwagner/sphire-janni]]
This is an example where we applied JANNI:
{{ :results_denoising_trpc4.jpg?800 }}
The denoised micrographs are likely bad to use for further processing besides picking.
==== Download ====
=== JANNI ===
Version: 0.3.1
Uploaded: 25. July 2022
[[https://pypi.org/project/janni/#files|DOWNLOAD]]
=== JANNI General Model ===
Version: 20190703 (Trained on 1xFalcon 2, 3x Falcon 3, 7xK2 datasets from Arctica / Krios)
Uploaded: 03. July 2019
[[https://github.com/MPI-Dortmund/sphire-janni/raw/master/janni_general_models/gmodel_janni_20190703.h5|DOWNLOAD]]
==== Known Issues ====
- Issue 0 (Version 0.0.1): On some machines (maybe related to ubuntu 16.04) JANNI complains that imagecodecs module (module for tiff files) cannot be found. However, imagecodecs-lite is installed and the error also occurs if you try to denoise MRC. pip uninstall imagecodecs-lite helps.
==== Installation ====
The following instructions assume that pip and anaconda or miniconda are available.
1. In case you have a old JANNI environment installed, you might want to remove the old one with:
conda env remove --name janni
2. After that, create a new virtual environment:
conda create -n janni -c conda-forge -c anaconda pyqt=5 python=3.7 cudatoolkit=10.0.130 cudnn=7.6.5 numpy==1.18.5 libtiff wxPython=4.1.1 adwaita-icon-theme
3. Activate the environment:
source activate janni
Now can install JANNI either for GPUs **or** for CPUs:
4a. **For GPU:** Install JANNI form PyPi for a GPU machine:
pip install janni[gpu]
4b. **For CPU:** Install JANNI form PyPi for a CPU machine:
pip install janni[cpu]
==== Getting started ====
[[:janni_tutorial|Here you can find a tutorial how to denoise your micrographs with JANNI]]
==== How to cite ====
You can cite JANNI using the Zenodo DOI:
==== Changelog ====
**JANNI 0.3.1:**
* Fix dependency issue with protobuf (Thanks to Tapu Shaikh)
**JANNI 0.3:**
* Update dependencies and fix setup.
**JANNI 0.2.2:**
* Fix an issue that JANNI can't denoise a single image (it only worked for folders) (Thanks to Sony Malhotra)
**JANNI 0.2.1:**
* Because of an libary update, JANNI was not working anymore (No supported model) (Thanks to
Sony Malhotra) .
**JANNI 0.2**
* Added support for binning. In case you recorded your movies in super resolution mode, but later want to apply JANNI to binned images, you need to bin your images during training. This now happens when 'bin.txt' file is available in the directory that contains the super resolution movies. The file 'bin.txt' simply contains the binning factor (like 2 for 2x binning).
* JANNI now allows to choose between two loss functions: mean squared error (mse) or mean absolute error (mae). The latter is the new default.
**JANNI 0.1.2**
* Fix installation procedure.
**JANNI 0.1.0**
* Add GUI
* API changes for crYOLO 1.5
**JANNI 0.0.5**
* Downgrade tensorflow and numpy again as it leads to long initialization times for some users.
*
**JANNI 0.0.4**
* Improved selection of validation data
* Add more data augmentation
* Updated libraries (To Tensorflow 1.12.3 and numpy 1.15.4) to make it compatible with crYOLO