An educational robotics and AI demonstration project that combines the NAO humanoid robot, a web-based dermatology interface, and a pre-trained skin lesion classification model to create an interactive assistant for skin lesion image analysis.
This project was developed as a demonstration-oriented academic prototype showing how robotics, computer vision, and medical AI can be integrated into a single interactive workflow.
Dr. Nao - Dermatology Assistant allows a user to:
- upload a skin lesion image through a web interface
- capture an image from a laptop camera
- capture an image from a NAO-connected camera pipeline
- run image classification using a pre-trained dermatology model
- display the predicted lesion class with confidence scores
- present the result visually in the interface
- generate a spoken-style explanation through the NAO interaction flow
The system is designed for educational demonstration purposes only and is intended to showcase human-robot interaction combined with AI-based image analysis.
- Interactive web-based diagnosis interface
- Support for uploaded skin lesion images
- Laptop camera capture workflow
- NAO camera capture workflow
- Skin lesion prediction with top-ranked class probabilities
- NAO-oriented interaction and speech pipeline
- Clean demonstration flow for academic presentations and exhibitions
.
├── nao.py
├── nao_camera_server/
│ └── server.py
├── skin_nao_demo/
│ ├── inference.py
│ ├── labels.json
│ ├── main.py
│ ├── model.py
│ ├── nao_speaker.py
│ ├── predictor.py
│ └── test_predictor.py
├── skinnaoweb/
│ ├── index.html
│ └── other frontend assets
├── assets/
│ └── screenshots/
│ ├── home-interface.png
│ ├── upload-and-camera-view.png
│ ├── nao-camera-capture-view.jpeg
│ ├── nao-camera-result-nevus.jpeg
│ └── diagnosis-result-bcc.jpeg
├── requirements.txt
├── .gitignore
└── README.md
-
The user opens the web interface.
-
The user either:
- uploads a skin lesion image, or
- captures an image from the laptop camera, or
- captures an image from the NAO camera workflow.
-
The backend processes the image.
-
The image is passed to the pre-trained skin lesion classification model.
-
The predicted class and confidence scores are returned.
-
The result is displayed on the web interface.
-
A NAO-compatible explanation or speech output can be triggered as part of the demo flow.
- Python
- FastAPI / backend serving components
- HTML / CSS / JavaScript
- PyTorch
- NAOqi / NAO integration workflow
- Computer vision and image preprocessing
- Web-based interaction interface
This project uses a pre-trained skin lesion classification model from:
iamhmh / derm-cnn-ham10000 https://huggingface.co/iamhmh/derm-cnn-ham10000
The project uses that model as part of an educational demonstration workflow for skin lesion image analysis. The original model page states that the model weights are licensed under CC BY-NC 4.0 and the code is licensed under MIT. Please review the original source and its license terms before reuse or redistribution.
This repository is shared in a clean academic/demo form.
- The pre-trained model file is not included in this repository.
- Users should download the model from the original upstream source when needed.
- The upstream model weights are marked for non-commercial use on the source page.
Accordingly, this project should be treated as:
- educational
- academic
- demonstration-oriented
- non-commercial
This project is intended for educational and demonstration purposes only.
It is not a medical device and must not be used for:
- medical diagnosis
- treatment decisions
- clinical decision-making
- professional dermatological judgment
The upstream model page also includes a diagnostic-use disclaimer, so any use of this system should remain strictly within safe educational/demo boundaries.
git clone https://github.com/ghayda-njaafreh/skin_nao_demo.git
cd skin_nao_demopython -m venv .venv
.venv\Scripts\activatepython3 -m venv .venv
source .venv/bin/activatepip install -r requirements.txtDownload the required trained model weights from the original source:
https://huggingface.co/iamhmh/derm-cnn-ham10000
Then place the downloaded model file in the local path expected by the prediction code, and update the path in the source code if needed for your environment.
Note: the model file is intentionally not included in this repository.
Before running the project, update local configuration values inside the code such as:
NAO_IPPYTHON2_PATHNAO_CAMERA_SERVER_URLYOUR_BACKEND_IP- any local SDK or runtime paths
Example placeholders:
NAO_IP = "YOUR_NAO_IP"
PYTHON2_PATH = r"C:\Path\To\Python27\python.exe"
NAO_CAMERA_SERVER_URL = "http://YOUR_NAO_CAMERA_SERVER_IP:5000/snapshot"From the project directory, run the backend server:
uvicorn skin_nao_demo.main:app --reloadOpen the frontend file from the skinnaoweb folder in your browser, or serve it locally using a simple static server if needed.
This project includes a NAO-oriented interaction pipeline. To use it correctly, you may need:
- a configured NAO robot or virtual environment
- compatible Python / SDK setup for NAO communication
- correct network IP configuration
- proper local runtime paths for robot communication scripts
Because NAO environments differ between machines, some paths and settings must be adjusted manually for your device.
Included:
- source code
- frontend interface
- backend logic
- prediction pipeline code
- NAO interaction scripts
- screenshots
- documentation
Not included:
- pre-trained model weights
- runtime logs
- temporary uploads
- captured user images
- private environment files
This project was developed by:
- ghayda-njaafreh
- shadarawa
This project was developed as an academic-style prototype demonstrating how:
- humanoid robotics
- AI-based image classification
- interactive web systems
- medical-themed assistive interfaces
can be combined into one integrated demonstration platform.
It is especially suitable for:
- university demos
- academic exhibitions
- robotics presentations
- AI demonstration events
Possible future directions include:
- improved UI/UX design
- live NAO voice interaction enhancements
- better deployment packaging
- configurable model loading
- multi-model comparison
- safer and more modular medical-AI demo workflows
- stronger environment configuration handling
If you use or adapt this project for an academic demonstration, please also acknowledge the original upstream model source:
iamhmh / derm-cnn-ham10000 https://huggingface.co/iamhmh/derm-cnn-ham10000
For academic/demo collaboration or project discussion, please use the repository issues section or your preferred GitHub contact method.




