Skip to content

A mobile application for skin deseases detection

License

Notifications You must be signed in to change notification settings

mattianeroni/derma

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Stargazers Issues


Derma

Logo

Derma is a mobile application for Android and iOS for detection and recognition of skin deseases. This repository contains both the mobile application written in React Native, and the server code to manage the database and the ML model.

The application is able to detect from a picture 9 different kinds of skin desease, and the classification is carried out through a fine tuned EfficientNet model. The application is therefore making use of Artificial Intelligence (AI) to identify an eventual skin illness. It is designed to be simple and easy-to-use.

@inproceedings{tan2019efficientnet,
	title={Efficientnet: Rethinking model scaling for convolutional neural networks},
	author={Tan, Mingxing and Le, Quoc},
	booktitle={International conference on machine learning},
	pages={6105--6114},
	year={2019},
	organization={PMLR}
}

Table of contents

Screens

Derma application is essentially made of 5 simple screens. A quick overview is reported below.

Home page

Once arrived to the home page, just click the button Take picture to open the camera.

Camera

After requiring the permissions needed, the app will open the camera, where the user has the possibility to switch on the flash and use both front and back cameras. Just take a picture to the interested area of the skin.

Confirmation

Once token the picture, the user will have the possibility take a new one (in case the first picture was not satisfactory) or send the image to the server for the diagnosis.

Diagnosis

The server executes the above mentioned Convolutional Neural Network (CNN) model (i.e., EfficientNet) and provides a response.

Experts

Finally, in the last page, the application provides a dynamic overview of the associated doctors and dermatologists in close proximity to the user, so that he/she can go and seek more reliable and trustworthy consultancy.

Built With

(back to top)

Architecture

The application has a classic server side model architecture, and, as visible in this very nice draw, it is made of a mobile application that is communicating with a server where a database and the machine learning model can be found.

Architecture

Every time a request is sent to the server, the request headers must contain an authorization code that is verified by the server middleware. For important changes that affect the database an admin token should also be provided. Once provided, the authorization and admin tokens are encrypted using the SALT and compared with the ones stored in the ENCODED_AUTHORIZATION, i.e., a dictionary encoded using the PRIVATE KEY.

The database currently contains a single table where are stored the dermatologists to consult with their respective contacts and coordinates.

(back to top)

Todo Before Usage

  • Update the variables in the .env files both in the application and in the server: be sure that the authorization token and the server URL in the mobile application correspond to the ones encrypted into the server ENCODED_AUTHORIZATION generated using the PRIVATE KEY (yes, the security is eccessive for this kind of application). The current admin authorization token to modify the database is FuckYou.

(back to top)

Todo Development

  • Test on iOS
  • The middleware is currently not working, probably because the SQLAlchemy Async Session doesn't work well with aiosqlite. An issue is currently open on Stackoverflow.

(back to top)

Contact

Mattia Neroni, Ph.D., Eng. - mattianeroni@yahoo.it - LinkedIn: mylinkedin

Website: https://mattianeroni.github.io

Project Link: https://github.com/mattianeroni/derma

Github Account: https://github.com/mattianeroni/

(back to top)

About

A mobile application for skin deseases detection

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published