2 minute read

In early 2017, we started a project at LABCIN-UFES to develop a smartphone application to classify melanoma. This project was the Gabriel Ucelli’s undergraduate thesis, which you can access via this link (in Brazilian Portuguese only). Prof. Renato A. Krohling was the advisor, and I was the co-advisor of this work.

As we didn’t have our own dataset, we used a public one provided by ISIC. This dataset consists of dermoscopy images, and you can see some samples below:

The project’s goal was straightforward: to design a deep lerning model to detect melanoma and embed it in a smartphone application. We tried different CNN models in order to solve this problem.

We found that very deep models, like VGG, inception V3, GoogleNet, were not good options because the network may consume all smartphone memory. In addition, for this type of network, the connection weights become a large file to save and load, which is not suitable for a smartphone. Thus, the best option we found was the <a href=“https://ai.googleblog.com/2017/06/mobilenets-open-source-models-for.html” target=“_blank” rel=“noopener”>mobileNet</a> [1], a CNN developed specifically to work correctly on smartphones. The trained MobileNet model achieved the following performance:

Next, we deployed this model in the smartphone application. All trained models and discussion are described in the thesis.

The application was developed using Java and Kotlin. You can see some screenshots below:

First, we need to crop a region on the skin. Next, the app shows the probability of it being melanoma or something else. In this case, according to the model, this spot on my skin has a 99.5% chance of being something else.

However, we have a problem here. The network was trained using dermoscopy images, and we used the smartphone’s camera to take the picture. In this specific case, it works well. However, it’s not typical. The solution is to train the network using smartphone images. But where can we find these images? As far as we know, there is no public dataset for that. Thus, we started a new project to fill this gap that will be described soon.

Update: to learn more about this new project and how to contribute, please check this post.

In any case, this app was just a proof of concept. It works well for dermoscopy images and was developed only for Androids. You can download the .apk by clicking on this link. The source code is also available on https://github.com/gabrielucelli/Melanoma-Detector

However, it is important to note that we do not intend to release such an app for general users. As mentioned, it was just a proof of concept. Our goal now is to help clinicians to improve the skin cancer diagnosis in particular in Brazil’s countryside.


[1] Howard, Andrew G., et al. “Mobilenets: Efficient convolutional neural networks for mobile vision applications.” arXiv preprint arXiv:1704.04861(2017).