项目作者: jeffkinnison

项目描述 :
Flexible Learning-Free Reconstruction of Neural Circuits
高级语言: Python
项目地址: git://github.com/jeffkinnison/florin.git
创建时间: 2017-10-11T16:01:16Z
项目社区:https://github.com/jeffkinnison/florin

开源协议:MIT License

下载


florin: Flexible Learning-Free Reconstruction of Neural Circuits

FLoRIN is a framework for carrying out computer vision pipelines locally or at
scale.

Why FLoRIN?

  • Designed from the ground up for large-scale image processing (think images
    with 10^4, 10^5, 10^6+ pixels).
  • Provides the custom N-Dimensional Neighborhood Thresholding method, which has
    been shown to outperform other thresholding methods at segmenting neural
    microsopy data.
  • Out of the box serial, parallel, and distributed processing.
  • Utilizes CPU (numpy) vectorized operations and methods from scientific python
    libraries.
  • Enables pipeline reuse. Create one image processing pipeline, serialize it,
    and move it to another machine running FLoRIN.

Target Audience

FLoRIN was originally designed as a pipeline for segmenting and reconstructing
volumes of neural microscopy data, allowing neuroscientists to quickly process
large volumes of data without needing to use any machine learning.
but has since been applied to iris biometrics as well. In its
current form, FLoRIN is appropriate for any computer vision application that
seeks to scale or be reproduced in multiple locations.

Installation

FLoRIN is compatible with Python 3.4+. To install FLoRIN, run

  1. # pip
  2. pip install florin

Documentation

Full documentation of the FLoRIN pipeline may be found at https://florin.readthedocs.io

Getting Started

A simple segmentation pipeline for microCT X-Ray data that uses multiprocessing
for subsets of operations looks like:

  1. import florin
  2. import florin.classify
  3. import florin.conncomp as conncomp
  4. import florin.morphology as morphology
  5. import florin.thresholding as thresholding
  6. pipeline = florin.Serial(
  7. # Load in the data to process
  8. florin.load('/path/to/my/volume'),
  9. # Subdivide the data into sub-arrays
  10. florin.tile(shape=(10, 64, 64), stride=(5, 32, 32)),
  11. # Segment multiple tiles independently in parallel.
  12. florin.Multiprocess(
  13. # Threshold with NDNT
  14. thresholding.ndnt(shape=(10, 64, 64), threshold=0.3),
  15. # Clean up the binarized image
  16. morphology.binary_opening()
  17. ),
  18. # Find connected components ad get their properties
  19. conncomp.label(),
  20. morphology.binary_fill_holes(min_size=50),
  21. conncomp.regionprops(),
  22. # Classify the connected components concurrently.
  23. florin.Multithread(
  24. # Bin connected components based on their properties
  25. florin.classify(
  26. # If 100 <= obj.area <= 500 and 25 <= obj.width <= 55 and
  27. # 25 <= obj <= 55 and 5 <= obj.depth <= 10, consider the connected
  28. # component a cell. Otherwise, consider it vasculature.
  29. florin.bounds_classifier(
  30. 'cells',
  31. area=(100, 500),
  32. width=(25, 55),
  33. height=(25, 55),
  34. depth=(5, 10)),
  35. florin.bounds_classifier('vasculature')
  36. )
  37. ),
  38. # Save the output with class labels
  39. florin.save('segmented.tiff')
  40. )
  41. out = pipeline()

Maintainers

Contributing

To contribute, fork the main repo, add your code, and submit a pull request! FLoRIN follows PEP-8 guidelines and uses numpydoc style for documentation.

Issues

If you run across a bug, open an issue with a description, system information, and a code snippet that reprodices the error.

License

MIT License

Cite FLoRIN

The original FLoRIN paper

  1. @article{shahbazi2018flexible,
  2. title={Flexible Learning-Free Segmentation and Reconstruction of Neural Volumes},
  3. author={Shahbazi, Ali and Kinnison, Jeffery and Vescovi, Rafael and Du, Ming and Hill, Robert and J{\"o}sch, Maximilian and Takeno, Marc and Zeng, Hongkui and Da Costa, Nuno Ma{\c{c}}arico and Grutzendler, Jaime and Kasthuri, Narayanan and Scheirer, Walter},
  4. journal={Scientific reports},
  5. volume={8},
  6. number={1},
  7. pages={14247},
  8. year={2018},
  9. publisher={Nature Publishing Group}
  10. }

Special Thanks

A number of people contributed to FLoRIN’s development who deserve a shout out:

Original Concept

Early Development (Pre-Alpha)

FLoRIN Experimental Code

The code for the original FLoRIN paper can be found here.

The code for “Learning-Free Iris Segmentation Revisited: A First Step Toward Fast Volumetric Operation Over Video Samples” can be found here.

We are in the process of reimplementing these code bases using the official FLoRIN package here and will provide that code as a separate branch in each repository on completion.