Code Monkey home page Code Monkey logo

actis's Introduction

ACTIS

Welcome to ACTIS - Augmentation Consistency Training for Instance Segmentation.

Feel free to checkout our method: ACTIS paper

Installation

To install the solution, follow these steps:

  1. Install conda (https://docs.conda.io/en/latest/miniconda.html)
  2. Create a new conda environment conda create -n actis python pip
  3. Activate the environment conda activate actis
  4. Clone the repository git clone https://github.com/Kainmueller-Lab/ACTIS.git
  5. Install our method pip install -e .
  6. use the help command to see how to use the method actis -h

Data

The data used in our study can be found in compressed numpy format inside this repository: data There are three datasets:

  • Flywing
  • Mouse
  • DSB2018

Each dataset has the following structure: ├── test │ └── test_data.npz └── train └── train_data.npz

Parameter file

The parameter file is a toml file that contains all the parameters needed to run an experiment. An example parameter file can be found in src/actis/utils/resources/parameters.toml The following parameters are possible.

Variable Default Value Explanation
base_dir actis The base directory where results should live.
data Flywing The dataset to train on. Can be an absolut path to the data or either of "Flywing", "Mouse", "DSB2018" if paired with setting base_dir to github root.
checkpoint_path ./experiments/myexperiment/train/checkpoints/best_model.pth Where to store your model.
experiment myexperiment Name of your experiment.
num_annotated 19 Number of annotated labels to use.
batch_size_labeled 4 Batch size of labeled data. Total btach size will be the sum of this and the batch_size_unlabeled. Make sure they fit on your GPU.
batch_size_unlabeled 8 Batch size of unlabeled data. Total btach size will be the sum of this and the batch_size_labeled. Make sure they fit on your GPU.
num_workers 4 Number of workers to use for data loading.
training_steps 50000 Number of total training steps to do.
in_channels 1 Input channels to your network architecture. Should be chosen based on your data.
num_fmaps_out 3 Number of classes to predict.
learning_rate 0.01 Learn rate to use.
seed 1 Seed used for sampling.
semi_loss_weight 1.0 Weighting factor for the QuantileLoss loss.
quantile 0.2 Used for quantile loss scheduling.
quantile_end 0.1 Used for quantile loss scheduling.
quantile_warmup_steps 5000 Used for quantile loss scheduling.
load_student_weights true Flag indicating to load student weights
warmup_steps 0 Warmup steps before momentum is used.
fast_update_slow_model false Whether to fast update teacher model.
size 128 Affects GaussianBlur kernel size for mono color augmentations.
encoder_weights imagenet Pre-trained weights used for encoder initialization
no_moco false Do not use a slow teacher model.
s 1.0 Affects mono color augmentations.

Running and evaluating experiments

Create your parameter.toml file based on your specific needs.

Then call the following command to run a supervised training experiment:

actis train_super <path_to_parameter.toml> --log-out=<path_to_log_folder>

To run a semi-supervised experiment, call the following command:

actis train_semi <path_to_parameter.toml> --log-out=<path_to_log_folder>

To evaluate any trained model call the following command:

actis evaluate <path_to_parameter.toml> --log-out=<path_to_log_folder>

Citation

Please use the citation method from the CITATION.cff file! You can copy it from the "ABOUT" section of your repository.

actis's People

Contributors

jlrumberger avatar jpalbrecht avatar

Watchers

Peter H avatar  avatar  avatar

actis's Issues

Product backlog

ICCV Bio-Image-Computing Workshop
Paper deadline (???) may be July 21st/20th, 2023?
Camera ready deadline August 11, 2023

Paper structure:
Semi-supervised learning for sample-efficient instance segmentation
Intro and literature review
Describe the pipeline
Show tables for different design choices (ablation study)
Show results vs. other publications on three benchmark datasets
Show results on two in-house domain adaptation datasets
Discussion

Necessary tasks

  • Push code from cluster (Lorenz)
  • First refactoring of the code (Lorenz)
  • Jan gets more data of cell junction dataset and wires it to Jannik
  • Lorenz wires Jannik the flywing dataset (atm it's crops of size 128²)
  • Jan proof-reads part of the cell junction dataset (4 samples)
  • Jannik proof-reads part of the fresh frozen HE tissue
  • Jannik trains cycle GAN and supplies fake datasets to Lorenz
  • Lorenz trains semi-supervised domain adaptation model
  • Lorenz trains supervised model on fake data only

Paper

  • write methods section
  • Graphical abstract
  • Ablation study: l1, l2 or cosine similarity loss, dino-head vs. other heads, trainable vs. non-trainable head, softmax vs. no softmax

Other taks

  • Second code refactoring
  • Three fold cross validation instead of single fold
  • Pypi package

Results will be stored in this google table

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.