Modular Machine Learning and Classification Toolbox for ImageJ

Welcome to the GSOC'18 blog of Sanjeev Dubey

Introduction

What the project is all about?

ImageJ is an open source Java image processing library extensively used in life and material sciences. The Active segmentation ImageJ plugin provides a general-purpose interface that allows biologists and other domain experts to use state of the art techniques in Machine Learning to improve their image segmentation and classification results. The project aims to be an alternative and extended form of existing tools like Trainable Weka Segmentation. The project has been developed during GSOC'16 and GSOC'17. The basic architecture of project has already been setup during this period. Further development needed to be done in the direction of addition of filters, UI improvements, Plugin testing & Bug Fixes.


My contribution

Google Summer of Code 2018

1. Implementation of Legendre Filter
Application of moments in Image Procesing is well established. Two-dimensional orthogonal moments are very useful for object identification and image analysis. Legendre moments are one of these orthogonal moments. The set of Legendre polynomials are the basis for calculation of Legendre Moments. I have added two different implementations (Zero order approximation and exact Legendre calculation) of the same and ported them to a filter which can be used in the Active Segmentation toolbox.
2. Implementation of Texture Descriptors
Texture Descriptors are very useful for classification of images, speacially medical images. I have added an implementation of GLCM based feature descriptors like dissimilarity, entropy, angular moment, contrast, energy, homogeneity and correlation.
3. Feature Addition of Classification setting in plugin
Added the functionality to display class membership of various ROIs on the screen, based on classification result.
4. Issues created
One of the prime demands of the project is to test the plugin and raise issues related to bugs and possible improvements.
5. Bug Fixes
6. Documentation
I along with my mentor have created a well documented tutorial to demonstrate the use case of this toolbox. It covers every aspect of it- from installation to segmentation and classification of images.

What Got Merged?
Both the filters have been merged into ActiveSegemntation Toolbox. We initially started with developing the plugin standalone. The idea is to use Jar of CustomPlugin to get the same functionality without merging new filters into ActiveSegmentation Toolbox. But for now we have added the filters to the toolbox itself.
CustomPlugin remains to be a standalone thing, with testcodes for value and encoding checking.


USEFUL LINKS

My commits in CustomPlugin

Custom Plugin

Commits in ActiveSegmentation

Issues Raised

Official Link to working bundle of project (Future)

Currently Developed Bundle of ActiveSegmentation Project+IJ

Currently Developed Bundle of ActiveSegmentation

USE THE SO FAR DEVELOPED TOOL - DEMO

Blog Post

Future Improvements

Those who want to start/continue contributing to the project

The addition of new filters, parallelisation of feature extraction and GUI improvements are some of the prime things that we are aiming next. One can also take up these as the task.

1. Addition of resampling techniques, to tackle imbalanced sampling issue.
2. Addition of visualizations
3. Shift Project to Maven/Gradle based system as currently we have a number of Jars that need to be downloaded manually
4. Addition of new Filters (to be discussed)

Details

Project : Active Segmentation

Organisation : INCF
Mentors : Dimiter Prodanov (INCF, Belgium Node), Sumit Vohra (ZIB, Germany)