Giter Site home page Giter Site logo

marrlab / instantdl Goto Github PK

View Code? Open in Web Editor NEW
40.0 5.0 8.0 129.53 MB

InstantDL: An easy and convenient deep learning pipeline for image segmentation and classification

Home Page: https://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-021-04037-3

License: MIT License

Python 99.51% Dockerfile 0.31% Shell 0.18%
deep-learning semantic-segmentation instance-segmentation pixel-wise-regression classification gpu docker image-segmentation regression

instantdl's Introduction

InstandDL: An easy and convenient deep learning pipeline for image segmentation and classification

Build Status

InstantDL enables experts and non-experts to use state-of-the art deep learning methods on biomedical image data. InstantDL offers the four most common tasks in medical image processing: Semantic segmentation, instance segmentation, pixel-wise regression and classification. For more in depth discussion on the methods, as well as comparing the results and bechmarks using this package, please refer to our preprint on bioRxiv here


Documentation

For documentation please refere to docs

For a short video introducing InstantDL please see:

Contributing

We are happy about any contributions. For any suggested changes, please send a pull request to the develop branch.

Citation

If you use InstantDL, please cite this paper:

@article {
author = {Waibel, Dominik Jens Elias and Shetab Boushehri, Sayedali and Marr, Carsten},
title = {InstantDL - An easy-to-use deep learning pipeline for image segmentation and classification},
year = {2021},
doi = {10.1186/s12859-021-04037-3},
URL = {https://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-021-04037-3#article-info},
eprint = {https://doi.org/10.1186/s12859-021-04037-3},
journal = {BMC Bioinformatics}
}

instantdl's People

Contributors

aliechoes avatar ccmarr avatar dependabot[bot] avatar dlmldw avatar niklaskiermeyer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

instantdl's Issues

GetPipeline error

When I run InstantDL with:

from instantdl import GetPipeLine

configs = {"use_algorithm": "SemanticSegmentation","path": "/home/dominik/Documents/InstantDL_dev_lsd/Vessel12_small2/","batchsize": 1,"iterations_over_dataset": 10,"data_gen_args": {},"loss_function": "mse"}

pipeline = GetPipeLine(configs)

I get the following error:
TypeError: GetPipeLine() missing 10 required positional arguments: 'path', 'pretrained_weights', 'batchsize', 'iterations_over_dataset', 'data_gen_args', 'loss_function', 'num_classes', 'image_size', 'calculate_uncertainty', and 'evaluation'

Running it in PyCharm is no problem at all

Bug in image resize

In SemanticSegmentation.py
Line 46 should be:
if self.image_size == False:

pattern design and documentation

We should follow a better pattern design and documentation. My suggestion would be to follow for example skimage as an example

CPU multiprocessing on Windows

In the code comments (here) the issue of multiprocessing on windows is already described. However, the workers are never passed to keras_model.fit_generator (see here).

Uncommenting the line 2385 in the RCNNmodel solved the issue for me.

Produced Errors:
Exception in thread Thread-9: Traceback (most recent call last): File "C:\ProgramData\Anaconda3\lib\threading.py", line 926, in _bootstrap_inner self.run() File "C:\ProgramData\Anaconda3\lib\threading.py", line 870, in run self._target(*self._args, **self._kwargs) File "C:\ProgramData\Anaconda3\lib\site-packages\keras\utils\data_utils.py", line 666, in _run with closing(self.executor_fn(_SHARED_SEQUENCES)) as executor: File "C:\ProgramData\Anaconda3\lib\site-packages\keras\utils\data_utils.py", line 661, in <lambda> initargs=(seqs, self.random_seed)) File "C:\ProgramData\Anaconda3\lib\multiprocessing\context.py", line 119, in Pool context=self.get_context()) File "C:\ProgramData\Anaconda3\lib\multiprocessing\pool.py", line 176, in __init__ self._repopulate_pool() File "C:\ProgramData\Anaconda3\lib\multiprocessing\pool.py", line 241, in _repopulate_pool w.start() File "C:\ProgramData\Anaconda3\lib\multiprocessing\process.py", line 112, in start self._popen = self._Popen(self) File "C:\ProgramData\Anaconda3\lib\multiprocessing\context.py", line 322, in _Popen return Popen(process_obj) File "C:\ProgramData\Anaconda3\lib\multiprocessing\popen_spawn_win32.py", line 89, in __init__ reduction.dump(process_obj, to_child) File "C:\ProgramData\Anaconda3\lib\multiprocessing\reduction.py", line 60, in dump ForkingPickler(file, protocol).dump(obj) TypeError: can't pickle generator objects

Relevant warnings:
INFO:numexpr.utils:Note: NumExpr detected 16 cores but "NUMEXPR_MAX_THREADS" not set, so enforcing safe limit of 8. INFO:numexpr.utils:NumExpr defaulting to 8 threads.

Environment info:

  • Windows 10
  • keras==2.2.4
  • tensorflow==1.14
  • Processor: intel(R) core(tm) i9โ€‘9900k CPU @ 3.10 ghz

testing with pre-trained model

Hello,

I'm interested in testing out the InstantDL workflow using images of fluorescent nuclei from the 2018 DSB stage 1 test dataset (https://bbbc.broadinstitute.org/BBBC038) before training my own model. I'd love to try out the model that you've trained on this data for your paper on biorxiv (Fig. 3A). Is it possible to do so with the current InstantDL workflow?

Thanks! Looks like a cool resource and I'm excited to check it out.
Pearl

Malis Loss default settings

As Malis Loss can only be used with batch size = 1 this should be the default setting overwriting other batch sizes set by the user when using Malis Loss (Malis branch).

Logs folder in UNet

The /logs folder seems not to be created in the right directory if used the first time with the UNet

InstanceSegmentation import of data_augmentation

I get a ModuleNotFoundError: No module named 'data_generator' when running RCNNmodel.load_image_gt.

Import is done as (here):
from data_generator.data_augmentation import data_augentation

Shouldn't it be:
from instantdl.data_generator.data_augmentation import data_augentation ?

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.