Giter VIP home page Giter VIP logo

detect-diagnose-tumours's People

Contributors

dependabot[bot] avatar marleysudbury avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

nishan-charlie

detect-diagnose-tumours's Issues

Code refactor

The code right now is a mess with lots of redundancy. To make everything clearer I will be transforming it to be object oriented.

LinAlgError: Eigenvalues did not converge

This error occurs many times while attempting to normalise patches. Perhaps it could be patches that are completely blank? In any case, many patches are being missed due to this error.

H&E stain normalisation

As a pre-processing step / part of the image processing pipeline, the stains on WSIs should be normalised so that any variation does not affect the training and classification processes.

Cam16 dataset not cropped

The training data (H&N5000) has been cropped to only include the important areas. I believe this was done automatically by the microscope scanning the slides. The evaluate dataset (Cam16) is not cropped at all. This means that the model receives a lot less detail from the evaluation dataset, causing it to be less effective in diagnosis.

This could be resolved by cropping the images based on the annotation data available, or by switching to a patch based approach where this doesn't matter.

Pyvips and Openslide are incompatible

Both modules cannot be imported at the same time. This is a problem now that I am doing the patch-based approach, and using Openslide to do it. I will work around it for the moment by fudging the code, but perhaps Pyvips can be completely replaced with Openslide, which would have the benefit of cutting down on dependencies.

Model not able to classify images from another data set

If the model is trained on the compressed H&N5000 data set, it can achieve an acceptable level of accuracy. However, this accuracy does not transfer to the Cam16 dataset. Possible causes:

  • The dataset have a different order of images within the files
  • The model has too small of an input layer
  • The stains need to be normalised (#2)

Pyvips precompiled binaries not available for Linux

To use Pyvips for the image pipeline requires the Libvips binaries to be present on the computer. These binary files are available for download on Windows, but on Linux they need to be installed with a packages manager, e.g.:

sudo apt-get install libvips42

The problem with this when it comes to my project is that I'm executing the code on lab PCs for which I don't have admin rights. I have tried copying across the files from my Linux machine to the lab machine, but there are so many dependencies that doing this manually is impractical and a waste of time (I have already wasted 3 or 4 days).

For now, either I will need to continue with a parallel work flow, or I can ask IT Support if it's possible to install the package. They will probably say no.

Implement patch-based learning and classification

Using the annotations on the data, it should be possible to go through each slide by a small region at a time. If that region is within the annotated area, the annotation label is applied to the patch. If it outside or on the border of an annotated area, it could be discarded or put into a neutral class.

If these patches are then exported and used to train a neural network, a new slide could be analysed by cutting it into patches and running each one through the neural network. This approach has been shown to be effective by previous research.

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.