Making the first step toward skin-cancer detection more accessible
During my studies in computer vision, one of the areas that interested me most was the use of visual AI in healthcare.
A camera image is very different from the street scenes and everyday objects that computer vision is often demonstrated on, but the underlying idea is surprisingly similar: extracting useful information from visual data and turning it into something that can support a decision.
I had already started exploring this area by building a CNN for skin-lesion classification. That project gave me a first experience with the problem of distinguishing different types of skin lesions from images, but it also made me realize that simply focusing on classification leaves out an important part of the problem. I also felt that porting such an application onto an edge device could improve patient privacy and make the system more widely usable in real-world settings, where sending medical images to external servers may not always be appropriate or practical.
And more importantly, a prediction by itself doesn't solve the accessibility problem surrounding cancer detection.
According to the World Health Organization, early cancer diagnosis depends on people being able to recognize potential symptoms, access clinical evaluation and diagnostic services, and receive timely referral and treatment. Financial, geographical and logistical barriers can all contribute to delays.
This is where I want to take my previous work further.
The idea
DermaCheck is a prototype for an AI-assisted melanoma triage system that could be used by pharmacists as an accessible first point of contact.
The idea is not to create an AI dermatologist.
Instead, I want to explore a much more realistic role for computer vision:
help decide which lesions deserve professional attention.
A pharmacist could capture an image of a suspicious lesion and run it through the system.
The AI would:
locate the lesion → analyze its appearance → estimate its level of suspicion → recommend whether professional evaluation should be considered.
The final diagnosis would still belong to a dermatologist.
This creates a simple division of responsibility:
| Role | Responsibility |
| Camera | Capture the lesion |
| Computer vision | Analyze the image |
| Pharmacist | Act as the accessible human point of contact |
| Dermatologist | Provide definitive clinical diagnosis |
The technology therefore isn't trying to remove a healthcare professional from the process.
It is trying to make it easier for someone to reach one.
From a classifier to a complete vision system
My previous work with a pretrained CNN focused primarily on classification.
For this project, I want to add another computer-vision problem:
Where exactly is the lesion?
This leads to a two-part architecture using the cascade integration available inside the Voyager SDK.
01 : Segmentation
A segmentation model receives the original photograph and produces a mask identifying the lesion.
Instead of treating the entire photograph as equally important, the system can isolate the region that actually matters.
02 : Classification
The segmented lesion is then passed to a classification model.
The classifier estimates whether the lesion is suspicious for melanoma.
This creates a pipeline where each model has a clear purpose:
The result can then be transformed into a simpler triage output : lower concern, uncertain, suspicious
Measuring whether it actually works
I don't want to evaluate the project using one number such as accuracy.
There are several different questions to answer.
Can the model find the lesion?
For segmentation, I'll measure metrics such as:
- Dice score
- Intersection over Union
Can it run on Metis?
I'll also measure:
- inference latency
- throughput
- resource usage
- model size
- quantization effects
And there is one metric that matters particularly for this application:
False negatives
A system intended to support early detection should not be evaluated as though every mistake has the same consequence.
A false positive may result in someone being encouraged to seek professional evaluation unnecessarily.
A false negative could mean that someone with a potentially concerning lesion receives false reassurance.
For that reason, I'll pay particular attention to sensitivity and false-negative cases when deciding how the final triage thresholds should behave.
What I will actually build
The final prototype will consist of three main components.
1. The perception pipeline
A Metis-based pipeline containing:
- lesion segmentation
- lesion extraction
- melanoma classification
2. The host application
A Python application responsible for:
- image input
- communication with the Metis pipeline
- post-processing
- confidence thresholds
- result generation
- visualization
3. The pharmacist interface
A simple interface showing:
image → lesion → assessment → suggested action
The three components will remain separated so that the AI models can be changed without rebuilding the entire application.
Development plan
I want to approach the implementation as a sequence of experiments rather than trying to build everything simultaneously.
Experiment 1 : Establish the existing CNN baseline
I'll take the pretrained CNN from my previous work and evaluate it properly on the ISIC data.
This gives me a reference point for everything that follows.
Experiment 2 : Add segmentation
I'll train a lightweight segmentation model using available ISIC lesion masks.
The first goal is simply to obtain reliable lesion boundaries.
Experiment 3 : Optimize for Metis
I'll export the models and work with Voyager Wingman to get them running on Metis.
If an architecture is difficult to compile, I'll investigate alternatives rather than compromising the whole pipeline.
Experiment 4 : Build the complete application
I'll connect the Metis inference outputs to a Python application and create the pharmacist-facing result.
Experiment 5 : Stress-test the system
I'll deliberately test difficult examples and investigate false positives, false negatives and poor segmentation cases.
Beyond the prototype
If this works, there are several directions the project could eventually take.
The most obvious would be improving the model using larger and more diverse datasets and the same general concept could potentially be applied to other visual health problems.
The prompts
I want to use Voyager Wingman in two main stages: first to develop and deploy the perception models, and then to build the application around their outputs.
Prompt 1 : Develop the Metis skin-lesion pipeline
Wingman, I want to develop a computer-vision pipeline for AI-assisted melanoma triage using an Axelera Metis PCIe card.
I have previously built a pretrained CNN for skin-lesion classification and want to use this as the starting point for the classification component.
The project will use the ISIC skin-lesion dataset for training and evaluation.
I want to build a two-stage perception pipeline:
1. Lesion segmentation
Given a skin-lesion image, produce a pixel-level mask identifying the lesion.
2. Melanoma classification
Use the lesion to estimate whether it is suspicious for melanoma.
Please start by helping me prepare the ISIC data correctly.
Use the available diagnostic labels for classification and segmentation masks where available.
Make sure that the train, validation and test splits do not contain patient-level leakage.
Handle class imbalance appropriately and document the preprocessing and augmentation pipeline.
For segmentation, investigate a lightweight architecture such as U-Net that can be realistically deployed on Metis.
For classification, first evaluate my existing pretrained CNN.
Then compare it against an appropriate compact architecture if there is a strong reason to do so, such as a better accuracy/performance trade-off or better compatibility with Metis.
I want to compare classification using:
original image → classifier
against:
original image → segmentation → lesion extraction → classifier
where practical.
Evaluate segmentation using Dice and IoU.
Evaluate classification using sensitivity, specificity, precision, recall, F1 and ROC-AUC.
Pay particular attention to sensitivity and false-negative cases.
Once the models are working in the development environment, export them and compile them for Metis using the appropriate Voyager tools.
Measure:
- inference latency
- throughput
- model size
- resource usage
- quantization effects
- accuracy differences between the original and Metis versions
If a model is not practical to compile or deploy on Metis, identify why and suggest a suitable alternative.
Keep the segmentation and classification components modular.
The final outputs should be accessible to a host-side Python application.
Please keep the project reproducible and document the model configurations, preprocessing, exported models, Metis configuration and any adaptations made during deployment.
Prompt 2 : Build the DermaCheck application
Wingman, I now have a skin-lesion perception pipeline running on Metis.
It provides:
- a lesion segmentation mask
- an isolated or masked lesion
- a melanoma classification result
- a classification confidence
I want to build a small Python application called DermaCheck around these outputs.
The application is intended as a prototype of a pharmacist-facing AI-assisted melanoma triage tool.
The application should:
- Accept a skin-lesion image.
- Send the image through the Metis segmentation pipeline.
- Display the original image and predicted lesion mask.
- Extract the lesion using the segmentation result.
- Run the classification model.
- Display the classification output and confidence.
- Convert the model output into a configurable triage category:
- lower suspicion
- uncertain
- higher suspicion
- When appropriate, display:
"Professional dermatological evaluation recommended." - Clearly state that the system is an AI-assisted triage tool and does not provide a definitive medical diagnosis.
- Keep the interface simple enough for a pharmacist to understand without needing knowledge of machine learning.
Separate the application logic from the Metis inference code.
I want to be able to replace the segmentation or classification models without rewriting the user interface.
Make the confidence thresholds configurable so that I can experiment with different sensitivity/false-positive trade-offs.
Do not optimize the triage logic only for overall classification accuracy.
I want the system to be conservative about potentially suspicious lesions and pay particular attention to false negatives.
Where possible, keep image processing local to the device and avoid unnecessary storage of patient-identifying information.
The final application should clearly demonstrate:
skin image → lesion segmentation → classification → triage recommendation
Please provide the Python application, configuration, model-integration code and instructions required to reproduce the complete demonstration on Metis.
