Giter Site home page Giter Site logo

dsp-uga / team-huddle Goto Github PK

View Code? Open in Web Editor NEW
3.0 4.0 2.0 1.95 MB

This repository contains few Convolution based networks implemented for detecting cilia which is completed on CSCI 8360, Data Science Practicum at the University of Georgia, Spring 2018.

License: MIT License

Python 73.11% Jupyter Notebook 26.89%
fcn tiramisu cnn cilia cnn-keras keras keras-neural-networks tensorflow data-science

team-huddle's Introduction

Cilia Segmentation

License: MIT

The task is to design an algorithm that learns how to segment cilia. Cilia are microscopic hairlike structures that protrude from literally every cell in your body. They beat in regular, rhythmic patterns to perform myriad tasks, from moving nutrients in to moving irritants out to amplifying cell-cell signaling pathways to generating calcium fluid flow in early cell differentiation. Cilia, and their beating patterns, are increasingly being implicated in a wide variety of syndromes that affected multiple organs.

Getting Started

If you follow the below instructions it will allow you to install and run the training or testing.

Prerequisites

What things you need to install the software and how to install them

  • Python 3.6
  • Anaconda - Python Environment virtualization so that you dont mess up your system environment
  • Keras The best Deep Learning Tool PERIOD ;)
  • Tensorflow One of the API used as Backend of Keras

Installing

Anaconda

Anaconda is a complete Python distribution embarking automatically the most common packages, and allowing an easy installation of new packages.

Download and install Anaconda from (https://www.continuum.io/downloads). The link for Linux,Mac and Windows are in the website.Following their instruction will install the tool.

Running Environment
  • Once Anaconda is installed open anaconda prompt(Windows/PC) Command Line shell(Mac OSX or Unix)
  • Run conda env create -f environment.yml will install all packages required for all programs in this repository
To start the environment
  • For Unix like systems source activate cilia-env

  • For PC like systems activate cilia-env

Keras

You can install keras using pip on command line sudo pip install keras

The environment.yml file for conda is placed in Extra for your ease of installation this has keras

Tensorflow

Installing Tensorflow is straight forward using pip on command line

  • If CPU then sudo pip install tensorflow
  • If GPU then sudo pip install tensorflow-gpu

The environment.yml file for conda is placed in Extra for your ease of installation this has tensorflow

Downloading the dataset (Optional)

If you prefer to download the dataset rather than online The code is present in extra/downloadfiles.py

To Run python downloadfiles.py This will download the whole data set including training and testing

In Folders \Train and \Test respectively

Data

The data itself are grayscale 8-bit images taken with DIC optics of cilia biopsies published in this 2015 study. For each video, you are provided 100 subsequent frames, which is roughly equal to about 0.5 seconds of real-time video (the framerate of each video is 200 fps). Since the videos are grayscale, if you read a single frame in and notice its data structure contains three color channels, you can safely pick one and drop the other two. Same goes for the masks. Speaking of the masks: each mask is the same spatial dimensions (height, width) as the corresponding video. Each pixel, however, is colored according to what it contains in the video:

  • 2 corresponds to cilia (what you want to predict!)
  • 1 corresponds to a cell
  • 0 corresponds to background (neither a cell nor cilia)

For more information please refer to our wiki on data

Running and Training

One can run findcilia.py via regular python

$ python findcilia.py [train or Test] [Network] [optional args]

Example: python findcilia.py train FCN

  • Required Arguments

    • trainortest: This is a string either train or test

    • network: String which defines which network you want ot train or test Eg: FCN ,U-net,Tiramisu

  • Optional Arguments

    • -batch-size: The batch size if applicable (Default: 20)
    • -masks: Path to the masks directory where masks are present. (Default: train\masks)
    • -dataset: Path to the dataset directory where train dataset is present. (Default: train\)

Results

We have used multiple networks and below are the results followed by the person resonsible for that result

Method Configuration Dice (training) Dice (testing) Personnel
FCN #epochs:124, #batch:16 0.925 0.243 parya-j
FCN #epochs:134, #batch:8 0.928 0.233 parya-j
Method Configuration Dice (training) Dice (testing) Personnel
U-Net #epochs:50, #batch:8 0.79 0.247 parya-j
U-Net #epochs:100, #batch:8 0.91 0.258 parya-j
U-Net #epochs:130, #batch:8 0.934 0.276 parya-j
U-Net #epochs:150, #batch:8 0.946 0.273 parya-j
U-Net #epochs:160, #batch:8 0.948 0.264 parya-j
Method Configuration Dice (training) Dice (testing) Personnel
Optical Flow Not Applicable - - AnkitaJo

Authors

See also the list of contributors who participated in this project.

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Acknowledgments and References

  • Hat tip to anyone who's code was used
  • The project4 description used in Data Science Practicum pdf
  • An implementation of Fully Convolutional Networks with Keras link

team-huddle's People

Contributors

ankitajoshi15 avatar nihalsoans91 avatar parya-j avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

team-huddle's Issues

Loading data

Load less data to train on (each 10/5/2)
Multiple loading of mask.png in each folder => try to have one to one network

Created __main__

Created a main method that will be the backbone to call all the networks

Training takes a very long time!!

Although I'm just loading some of data for training, the process is very slow and I'm concerned wih finishing training in time.
I already decreased number of epochs to 124.

Have result page in wiki

I suggest to add a page like in wiki containing the results we got:
including network name, configuration, accuracy

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.