Microwave wound monitoring system

Project 01 - Research

Deep Learning
Wound
Monitoring and
Classification

RoleResearch Engineer
Duration2024 - 2026
ContextUTeM Research Lab
StatusActive / Ongoing
PythonTensorFlowNanoVNA Raspberry PiCWT / Scalogrammicrowave Sensing S-ParameterDeep Learning

Overview

What This Project Solves

Traditional wound assessment is manual, subjective, and requires clinical expertise. This system uses microwave sensing combined with deep learning to classify wound severity automatically - healthy, mild, or severe - using non-invasive S-parameter measurements captured by a NanoVNA controlled via Raspberry Pi.

The Problem

Wound severity assessment is time-consuming and varies between clinicians. Remote or automated monitoring is impossible with traditional visual methods.

The Approach

Microwave signals interact differently with tissue depending on moisture and composition. S11 reflection parameters capture this behavior and feed a CNN trained on CWT scalogram images.

The Hardware

NanoVNA swept across microwave frequencies, Raspberry Pi 5 for automation and control, custom Python acquisition scripts, real-time data logging and preprocessing.

The Output

A real-time classification GUI that receives live S11 sweeps and outputs wound severity labels with confidence scores using a trained Keras CNN model.

System Architecture

End-to-End Pipeline

From physical microwave sweep to AI classification - a fully automated data flow designed for real-time operation.

Step 01

Microwave Signal Acquisition

NanoVNA connected to Raspberry Pi via USB. Custom Python scripts automate frequency sweeps across the target range, capturing S11 magnitude and phase data into structured CSV files for each measurement session.

NanoVNARaspberry PiPythonUSB SerialCSV Output

Step 02

Preprocessing & CWT Transform

Raw S11 sweep data undergoes signal preprocessing - normalization and noise filtering - then a Continuous Wavelet Transform (CWT) converts the 1D signal into a 2D time-frequency scalogram image (224x224, jet colormap). This becomes the CNN input.

pywt.cwt()MatplotlibNumPy224x224 ImageJet Colormap

Step 03

Deep Learning Model Training

A CNN trained on the scalogram image dataset using TensorFlow/Keras. The model learns to differentiate tissue conditions from microwave spectral signatures. Training conducted on Google Colab with augmentation for class balance.

TensorFlow / KerasCNNGoogle ColabData Augmentation.keras Model

Step 04

Real-Time GUI Classification

A PyQt5 desktop GUI application on Raspberry Pi loads the trained Keras model and performs live classification on incoming sweeps. Features dual Y-axis plotting, sweep navigation, batch classification, and tabular multi-sweep data display.

PyQt5MatplotlibKeras InferenceReal-TimeBatch Mode

Documentation

Images & Diagrams

Screenshots, hardware photos, scalogram examples, confusion matrices, and interface captures from the end-to-end wound monitoring workflow.

Deep Dive

Technical Details

Challenges Solved

  • Built a stable end-to-end wound monitoring pipeline integrating NanoVNA signal acquisition, preprocessing, scalogram generation, and AI-based wound classification
  • Resolved PyQt5 and Matplotlib rendering conflicts to enable reliable real-time visualization inside the GUI application
  • Improved preprocessing consistency between training and inference pipelines to increase classification reliability and reduce prediction mismatch
  • Optimized Continuous Wavelet Transform (CWT) generation using pywt.cwt() to produce sharper and more informative scalogram images for deep learning
  • Fixed pipeline instability caused by inconsistent function return structures and parameter conflicts during automated data processing
  • Designed a scalable data-processing architecture capable of handling continuous NanoVNA signal collection and automated feature extraction
  • Integrated Raspberry Pi, NanoVNA, and GUI-based monitoring into a unified low-cost embedded wound assessment system

Key Design Decisions

  • Chose CWT over STFT for better time-frequency resolution on short microwave sweeps
  • 224x224 pre-processed scalogram images chosen for compatibility with pretrained CNN backbones
  • PyQt5 selected for responsive GUI on Raspberry Pi 5 with Debian Bookworm
  • Batch CLI mode added to scalogram_pipeline.py for large dataset processing
  • MongoDB considered for sweep logging - Google Colab used for training iterations

What I'd Add Next

  • Improved microwave sensing technique with advanced microwave sensor and VNA
  • Transfer learning with MobileNet or EfficientNet backbone
  • Edge deployment optimization for Raspberry Pi inference speed
  • Expanded dataset across more wound types and conditions

Outcomes

Results & Impact

3 Classification
Categories
-% Model Accuracy
(Pending final benchmark)
RT Real-Time
Inference
← All Projects Next Project -> Wound Image Classification