IMAGE PROCESSING FOR HEALTHCARE INDUSTRYBack Case Studies
Client: Healthcare company specialized in human reproduction and embryology
Length: 2 months
Goal: Based on videos decide whether insemination is successful or not in early stages
Tech: Python, TensorFlow, Deep Learning, Neural Networks, OpenCV
We got labeled videos of embryos as data set. The goal of this project is to make machine learning model that would classify videos of embryos into 3 groups:
- Liveborn - embryo will result in live born
- No implantation - embryo will not implant
- Miscarriage - embryo will result in miscarriage
This machine learning model would help doctors to decide which embryo has the highest probability to result in successful pregnancy.
The idea is to make vector embedding of video frames, and to use those vectors as sequence to make final prediction for video. Generally, we can this split approach into 3 phases:
- Dimensionality reduction (embedding)
- Video classification
The first stage of solution is preprocessing of data set. Data set consists of video files, where each video has embryo develop process in first 140h. The video files are converted to set of images (frames) using OpenCV. For each image we applied various transformation to extract embryo. After that we applied data augmentation to increase our train set with slightly rotated, translated and flipped images. In order to classify whole video (sequence of frame images) we decided to use semi-supervised learning. The unsupervised learning is applied on single image in order to build lower space representation as vector embedding. We tried 2 convolutional neural network architectures that can extract features from images: Variational Autoencoder, Stacked Denoising Autoencoder. After our neural network learned to extract features from image we applied various classification algorithms at the top of embedding. We tried single image classification using Support Vector Machine, and whole video classification as sequence with Long Short Term Memory.
Our approach achieved solid results in classification of images and videos on test set. The next step is to extend our model with greater video data set. Also, we plan to combine results given from images and metadata describing every video in order to get even better results.