GitXplorerGitXplorer
h

maskflow-fiji

public
8 stars
0 forks
0 issues

Commits

List of commits on branch master.
Unverified
9740df99e7b36ba40d63655da82eca5984b508b0

tweak readme gpu

hhadim committed 6 years ago
Unverified
0d4a1b56123edc87708a19e5e629db243e516151

Add note to README

hhadim committed 6 years ago
Unverified
634c1b75276ae4cc20e8e72f94a2701df3a75654

Bump to next development cycle

hhadim committed 6 years ago
Unverified
30b98564a76524850b960a17819ffe572f13aa5c

fix mode

hhadim committed 6 years ago
Unverified
f9b5df3059fbfafc1ec71e53aee2c925561b6b74

Update to new Scijava + fix Table API

hhadim committed 6 years ago
Unverified
8b8905a6bcbdda29ae8083dba5b5f32c761508b7

bump scijava

hhadim committed 6 years ago

README

The README file for this repository.

maskflow-fiji: Object Detection and Segmentation

A Fiji plugin for object detection and tracking based on Mask RCNN.

It allows object detection, segmentation and tracking using a pre-trained model with the associated maskflow Python package.

IMPORTANT: This plugin is a proof of concept and in a very early stage. At the moment only a simple model to detect microtubules is provided. I hope to be able to continue the development at some point.

Usage

  • Start Fiji.
  • Click on Help ▶ Update....
  • In the new window, click on Manage update sites.
  • Scroll to find Maskflow in the column Name. Click on it.
  • Click Close and then Apply changes.
  • Restart Fiji.
  • Open your image.
  • Run the commands at Plugins ► Maskflow.

Screenshots

Output of the microtubule model.

Scripting

Here is an example script:

# @Dataset data
# @CommandService cs
# @ModuleService ms

from sc.fiji.maskflow import ObjectDetector

inputs = {"model": None,
          "modelName": "Microtubule",
          "dataset": data,
          "fillROIManager": True}}
module = ms.waitFor(cs.run(ObjectDetector, True, inputs))

table = module.getOutput("table")
masks = module.getOutput("masks")

The plugin also comes with an object tracker based on the centroid of the detected masks:

# @Dataset data
# @CommandService cs
# @ModuleService ms

from sc.fiji.maskflow import ObjectDetector
from sc.fiji.maskflow import ObjectTracker

inputs = {"model": None,
          "modelName": "Microtubule",
          "dataset": data,
          "fillROIManager": True}
module = ms.waitFor(cs.run(ObjectDetector, True, inputs))

table = module.getOutput("table")
masks = module.getOutput("masks")

inputs = {"masks": masks,
          "table": table,
          "linkingMaxDistance": 10,
          "gapClosingMaxDistance": 10,
          "maxFrameGap": 5,
          "fillROIManager": True}
          
module = ms.waitFor(cs.run(ObjectTracker, True, inputs))
table = module.getOutput("resultTable")

There is also a command that combine both detection and tracking:

# @Dataset data
# @CommandService cs
# @ModuleService ms

from sc.fiji.maskflow import ObjectDetectAndTrack

inputs = {"model": None,
          "modelName": "Microtubule",
          "dataset": data,
          "linkingMaxDistance": 10,
          "gapClosingMaxDistance": 10,
          "maxFrameGap": 5,
          "fillROIManager": True}
module = ms.waitFor(cs.run(ObjectDetectAndTrack, True, inputs))

table = module.getOutput("resultsTable")
masks = module.getOutput("masks")

Available Models

Objects Version Description Image Size URL
Microtubule 0.1 WIP 1280x1280 https://storage.googleapis.com/nn-models/microtubule-v0.1.zip

GPU Support

This type of neural networks are much more faster on GPU than CPU. To enable GPU support you need to manually replace libtensorflow_jni.jar to libtensorflow_jni_gpu.jar in your Fiji jars/ folder.

Authors

maskflow-fiji has been created by Hadrien Mary.

License

MIT. See LICENSE.txt