You need to agree to share your contact information to access this model

This repository is publicly accessible, but you have to accept the conditions to access its files and content.

Log in or Sign Up to review the conditions and access this model content.

Reliable Wrist PPG Monitoring by Mitigating Poor Skin-Sensor Contact
Hung Manh PhamMatthew Yiwen HoYiming ZhangDimitris SpathisAaqib SaeedDong Ma


Overview

Photoplethysmography (PPG) is a widely used non-invasive technique for monitoring cardiovascular health and various physiological parameters on consumer and medical devices. While motion artifacts are well-known challenges in dynamic settings, suboptimal skin-sensor contact in sedentary conditions - an important issue often overlooked in existing literature - can distort PPG signal morphology, leading to the loss or shift of essential waveform features and therefore degrading sensing performance. In this work, we propose a deep learning-based framework that transforms contact pressure-distorted PPG signals into ones with the ideal morphology, known as CP-PPG. CP-PPG incorporates a well-crafted data processing pipeline and an adversarially trained deep generative model, together with a custom PPG-aware loss function. We validated CP-PPG through comprehensive evaluations, including 1) morphology transformation performance, 2) downstream physiological monitoring performance on public datasets, and 3) in-the-wild performance, which together demonstrate substantial and consistent improvements in signal fidelity.


Usage

Installation

pip install transformers torch

Signal Reconstruction

from transformers import AutoModel
import torch

model = AutoModel.from_pretrained("Manhph2211/CP-PPG", trust_remote_code=True)
model.eval()

x = torch.randn(1, 1, 1024)

with torch.no_grad():
    out = model(x)

print(out.reconstruction.shape)  # torch.Size([1, 1, 1024])

PPG Embedding Extraction

with torch.no_grad():
    out = model(x, output_hidden_states=True)

print(out.last_hidden_state.shape) 
print(out.pooler_output.shape)      # torch.Size([1, 128])

Citation

@article{pham2025reliable,
  title={Reliable wrist PPG monitoring by mitigating poor skin sensor contact},
  author={Pham, Hung Manh and Ho, Matthew Yiwen and Zhang, Yiming and Spathis, Dimitris and Saeed, Aaqib and Ma, Dong},
  journal={Scientific Reports},
  year={2025},
  publisher={Nature Publishing Group UK London}
}

@article{ho2025wf,
  title={WF-PPG: A wrist-finger dual-channel dataset for studying the impact of contact pressure on PPG morphology},
  author={Ho, Matthew Yiwen and Pham, Hung Manh and Saeed, Aaqib and Ma, Dong},
  journal={Scientific Data},
  volume={12},
  number={1},
  pages={200},
  year={2025},
  publisher={Nature Publishing Group UK London}
}

Acknowledgements

This research was supported by the Singapore Ministry of Education (MOE) Academic Research Fund (AcRF) Tier 2 grant (Grant ID: T2EP20124-0046).

Downloads last month
677
Safetensors
Model size
1.12M params
Tensor type
F32
Inference Providers NEW
This model isn't deployed by any Inference Provider. 馃檵 Ask for provider support