INF2064 - T2: Image preparation for Deep Neural Network.

INF2064 – T2 Image preparation for Deep Neural Network.


Atenção: Last day for emailing the code: September 23.


Motivation:

Nowadays, neural networks can detect, segment, and classify objects and people in images. Training or adapting a network to a new object requires an expert to mark that object in new images. Projects like the MIT LabelMe help but do not really solve the problem. They only deal with photos, not medical or seismic images. It also has only a straightforward segmentation tool based on the definition of a polygon that represents the object boundary. There are more effcient UI strategies to peform this segmentation. Furthermore, LabelMe is an application alone and could hardly be included in a project where several people are working collaboratively to tag images and train networks. If it were part of a portal of collaboration would be better.

This assignment aims to improve some of these deficiencies. One way would be to use SuperPixels to define object boundaries. To illustrate this idea consider the image below taken from Achanta and others article . Note that the borders of the objects in the figure coincides with the boundaries of the SuperPixels. A simple user action would be to tell which Superpixels form the object. There are also many automatic segmentation algorithms based on the SuperPixels. DBSCAN is one of these algorithms
.

SuperPixel

Assignment:

  1. Create a Python notebook that reads a DICOM file with a medical image or a SEGY file with seismic survey, according with your research interest.
  2. Segment these images using a SuperPixel algorithm and save the file and DICOM or SEGY in an image file. Save the resulting mask an image file.
  3. Write a HTML5/JavaScript program that performs corrections in the image segmentation and exports the necessary files to trains the neural network.

The idea here is that the file io and the segmentation algorithm should occur in the server. The correction in a web client.

Note:

Python has many libraries to handle images, videos and SuperPixels, in particular it has the OpenCV and the VTK libs. To handle seismic data that is little more complicated, for this reason I prepared a sample notebook that is available in this directory on the network . The directory also contains a SEGY and a DICOM file.