Case study · M.E. dissertation · Web deployment

Skin disease detection using deep learning

This M.E. dissertation project does skin disease detection using deep learning: it trains a compact EfficientNet-B0 to recognise 22 skin conditions from ordinary photos, then exports it to ONNX so every prediction runs inside the web browser, with no server and no upload.

Last updated

Results chapter page from the M.E. skin disease detection dissertation: training and validation loss and accuracy curves across the two training phases.
Dissertation page
DermaAI skin disease detection web app home screen: upload a skin photo and get a deep learning prediction that runs entirely in the browser.
Web app
Bar chart of the skin disease classifier’s held-out test performance on 1,546 images: 58.9% top-1 and 83.3% top-3 accuracy against a 4.5% random baseline.
Results

From a delivered M.E. dissertation project, shown with names and institute details removed. Select an image to zoom.

On 1,546 held-out test images it reached 58.9% top-1 and 83.3% top-3 accuracy, against a 4.5% random baseline. The student received the dissertation report, seminar slides, the web app and the training code.

What is this project, at a glance?

A skin disease detection project using a CNN (EfficientNet-B0), trained in PyTorch and shipped as a static website, so the model runs on the visitor’s own device. The research angle is deployment: a useful model that is small, fast and private.

At a glance
ItemDetails
LevelM.E. (Dissertation Stage-I)
DomainMedical image analysis, web deployment
Problem type22-class image classification of everyday skin photos, with uneven class sizes
Core methodsTwo-phase transfer learning on EfficientNet-B0, weighted random sampling, augmentation, top-1 and top-3 evaluation, ONNX export and INT8 quantization
StackPython, PyTorch, torchvision, ONNX, ONNX Runtime Web (WebAssembly), HTML/CSS/JavaScript, optional Flask
DeliverablesDissertation Stage-I report, extended results chapters, seminar slide deck, static web app, training and export code

What problem does the project solve?

Skin conditions are common, and seeing a dermatologist can be slow or expensive. Because skin problems are visible, a photo-based classifier can help as a first screening step.

Most published tools, though, send the photo to a remote GPU server, which raises privacy questions and costs money to host. Many also use small dermoscopy benchmarks rather than the everyday photos people take. The goal was a many-class classifier for ordinary photos that runs entirely on the user’s device and offers ranked possibilities, not a diagnosis.

How does the training and deployment pipeline work?

Two halves: train a compact model well, then make it light enough to run in a browser tab.

Two-column flowchart. Training: dataset, preprocessing, augmentation, EfficientNet-B0, phase 1 with the backbone frozen, phase 2 fine-tuning, evaluation. Deployment: ONNX export, INT8 quantization, ONNX Runtime Web, browser, upload, preprocessing, inference, top-5 predictions.
Pipeline flowchartEnd-to-end flowchart: two-phase EfficientNet-B0 training pipeline and the ONNX/WebAssembly in-browser deployment pipeline.
  • Preprocessing: resize and normalise; random crops, flips, small rotations and colour jitter during training only.
  • Model: ImageNet-pre-trained EfficientNet-B0, chosen for its small size, with a new dropout-regularised head for the 22 classes.
  • Two-phase training: first only the head learns on a frozen backbone; then the top backbone blocks are fine-tuned at a lower learning rate (AdamW, cosine schedule).
  • Imbalance: a weighted random sampler keeps mini-batches roughly class-balanced.
  • Deployment: export to ONNX, confirm it matches the PyTorch model, make a smaller INT8-quantized copy for lighter downloads, and run it with ONNX Runtime Web on WebAssembly, using the same preprocessing in JavaScript.
Bar chart of training images per class for 22 skin conditions, sorted from the largest class to the smallest, with a dashed line marking the mean.
Results · class balanceTraining-set class distribution across 22 skin conditions (13,893 images), used to plan class-imbalance handling.

How does skin disease classification in the browser work for the user?

DermaAI is a single-page app. The model downloads once, the browser caches it, and every prediction happens on the device.

  • Home screen: an upload panel, a “model ready” status and a clear “not a diagnosis” notice, with the 22 recognised conditions listed below.
  • Prediction panel: the top condition with confidence and a severity tag, four ranked alternatives and the measured inference time.
  • Hosting: only static files, so any free host such as Vercel, Netlify or GitHub Pages can serve it. An optional Flask version runs the same model locally.
Dark-themed DermaAI home screen with an upload box, an empty prediction panel and a not-a-diagnosis notice.
Web app · home screenDermaAI web app home screen: upload a skin photo and get an AI prediction that runs entirely in the browser.
Prediction panel listing the top condition with a confidence percentage and a severity tag, followed by four other possibilities with confidence bars.
Web app · predictionPrediction panel showing the top result with confidence and severity, ranked alternatives and an 87 ms inference time.

What were the results?

On 1,546 held-out test images the model reached 58.9% top-1 and 83.3% top-3 accuracy, against 4.5% for random guessing. So the correct condition is among the top three suggestions in more than four cases out of five.

Three bars: random baseline 4.5%, test top-1 accuracy 58.9% and test top-3 accuracy 83.3%.
Results · test accuracyHeld-out test performance on 1,546 images: 58.9% top-1 and 83.3% top-3 accuracy vs a 4.5% random baseline.

The training curves show why two phases matter: accuracy jumps once the top backbone blocks are unfrozen, and validation loss keeps falling. The dissertation is frank about the limits: look-alike conditions such as eczema, psoriasis and tinea cause many errors, photo quality varies, and the compact backbone trades some accuracy for a small download.

Dissertation page with a loss chart and an accuracy chart, each marking the switch from phase 1 to phase 2, followed by the test-set performance section.
Report · results chapterDissertation results chapter page with training/validation loss and accuracy curves across the two training phases.

Shown with student, guide and institute details removed. No patient photos are shown.

What did the student receive?

What was delivered
DeliverableFormatWhat it covers
Dissertation Stage-I reportPDF + DOCXLiterature review, research gap, objectives, proposed method
Extended chaptersPDF + DOCXImplementation, in-browser inference, results, limitations, future scope
Seminar slide deckPDF + PPTXProblem, gap, method, results and conclusion
Web appStatic HTML/CSS/JS + ONNX modelUpload, in-browser prediction, top-5 results, list of conditions
CodePython (PyTorch)Two-phase training, ONNX export, optional Flask server

The brief was the M.E. dissertation and seminar, so there is no paper here. For a project that shipped with an IEEE-format paper, see skin lesion classification using a Vision Transformer; for write-up help alone, see our dissertation writing services.

How is it different from the Vision Transformer skin project?

  • Images: everyday photos of 22 conditions here, dermoscopic images of 7 lesion types there.
  • Focus: private, server-free deployment here; a transformer versus CNN research comparison there.
  • Model: one compact EfficientNet-B0 here; four larger models compared there.
  • Write-up: an M.E. dissertation and seminar here; an M.Tech thesis and IEEE-format paper there.

How could you adapt this project?

The browser-first design leaves room for a clear, testable extension. Directions to discuss with your guide, alongside the deployment ideas in our list of machine learning projects for final year and M.Tech:

Topic ideas, not delivered projects

These are suggestions for your own topic. The delivered work is the project above.

  • Topic ideaGrad-CAM in the browserShow a heatmap of the region behind each prediction, computed on the device.
  • Topic ideaBigger model on WebGPUTry a larger backbone with WebGPU and measure the accuracy and speed trade-off.
  • Topic ideaOffline phone app (PWA)Package the site as an installable app that works offline after the first visit.
  • Topic ideaFairness across skin tonesTest on a skin-tone-annotated public dataset and report where accuracy drops.

Frequently asked questions

Can I get a similar skin disease detection project?

Yes. Share your degree, deadline and your college’s report format. We scope a version with its own contribution, such as a different backbone, dataset or deployment target, and deliver the code, dissertation chapters and seminar slides.

Which dataset does it use?

A public 22-class skin disease photo dataset from Kaggle: 13,893 training images and a separate 1,546-image test set. Class sizes are uneven, so training uses weighted sampling.

Why run the model in the browser instead of on a server?

Privacy and cost. The photo never leaves the device, and a free static host can serve the app with no GPU server to pay for. The trade-off is a smaller model to keep the download light.

Is 58.9% top-1 accuracy good enough?

For 22 look-alike conditions it is far above the 4.5% random baseline, and the right answer is in the top three 83.3% of the time. It is not enough for diagnosis, which is why the app shows ranked possibilities and a “not a diagnosis” notice. Expect this question in the viva.

What will I need to explain in the viva?

Why EfficientNet-B0, how the two training phases work, how weighted sampling handles imbalance, what top-1 and top-3 accuracy mean, how ONNX export and quantization work, and how the browser preprocessing matches training. The handover walkthrough covers each one.

A screening aid, and your institution’s rules apply

DermaAI is an educational tool, not a medical device. Our work is building, writing support, guidance and explanation, so check what your university allows before you submit.

Delivered work

Related case studies

Other projects we delivered, shown with names and institute details removed.

Have a dissertation topic in mind? Let’s scope it together.

Share your degree, topic and deadline. You get a written plan and a fixed quote, and the consultation is free.

B.Tech · M.Tech · PhD · Projects · Papers · Thesis · Reports

WhatsApp Free consultation