I just got a great question asking why there is a discrepancy in the accuracy reported in our two works:
[ISBI paper, we report 81.8% accuracy over 10 classes] Kawahara, J., BenTaieb, A., & Hamarneh, G. (2016). Deep features to classify skin lesions. In IEEE ISBI (pp. 1397–1400). Summary and slides here.
[MICCAI MLMI paper, we report 74.1% accuracy over 10 classes] Kawahara, J., & Hamarneh, G. (2016). Multi-Resolution-Tract CNN with Hybrid Pretrained and Skin-Lesion Trained Layers. In MLMI. Summary and slides here.
In this work, we used a convolutional neural network (CNN) to classify 10 different types of skin lesions, including melanoma and non-melanoma types.
The key technical contribution was to use multiple tracts (or paths) within the neural network, to train (and test) the network on an image using multiple image resolutions simultaneously. Additionally, we extended a CNN pretrained on a single image resolution to work for multiple image resolutions.
In this work, we looked at how to classify skin lesions from images captured with a digital camera (i.e., non-dermoscopy). Our approach was able to distinguish among 10 different types of skin diseases over 1300 images and achieved an accuracy higher than what was previously reported over the same dataset. We did this by applying deep learning (i.e., pretrained convolutional neural networks) to melanoma and non-melanoma skin images.
So I have officially finished my Master’s work 🙂 and I’ve written up a more extended abstract of the thesis with less technical terms below. This hopefully can give you some concise intuition on the work without the technical details. This page is meant to be a summary of all things related to this work and links to other relevant articles that I wrote.
This thesis examines a) how to segment the spinal cord from 3D magnetic resonance images (MRI) using computer-aided methods, and b) how to predict the level of clinical disability in multiple sclerosis (MS) patients using spinal cord segmentations and corresponding MRIs.
Globally Optimal Spinal Cord Segmentation Using a Minimal Path in High Dimensions
I think the title really summarizes the work pretty nicely so I’ll break down each part of the title to give you a brief overview of the paper.
“Spinal Cord Segmentation” = this is the goal of the work. Given a 3D MRI, we want a method that can mark those voxels that belong to the spinal cord. Segmentation means to label the voxels as spinal cord or background.
“High Dimensions” = we represented the segmented spinal cord by a list of 6 numbers. I’ll explain this a bit more since this a bit tricky to understand. We used principle component analysis (PCA) to represent the “shape” of a 2D slice of the spinal cord. PCA allows us to represent each shape by its center point (x,y,z) and three principle components (giving us a total of 6 numbers per 2D slice). We can represent our spinal cord as a stack of these 2D shapes, or equivalently, a list of 6 numbers.
Now the question is, how to find this list of 6 numbers? Well we can search for them. This is similar to finding the shortest path in between 2 points, but instead of searching over 2 or 3 (spatial) dimensions, we search over the 6 dimensions (3 spatial and 3 shape).
“Minimal Path” = a minimal path finds the shortest path in between two points. In our methods, a user enters the start and end point of the spinal cord, and we find the minimal path in 6D between these two points. We use a slightly modified version of the A* search to find this minimal path. A path is defined to be “short” if the shapes “fits” well (e.g. the borders match) with what is in the MRI.