Command Palette
Search for a command to run...
Detecting beats in the photoplethysmogram: benchmarking open-source algorithms
{Joachim A Behar and Panayiotis A Kyriacou Callum Pettit Jonathan Mant Karthik Budidha Philip J Aston Elisa Mejía-Mejía Kevin Kotzen Peter H Charlton}
Abstract
The photoplethysmogram (PPG) signal is widely used in pulse oximeters and smartwatches. A fundamental step in analysing the PPG is the detection of heartbeats. Several PPG beat detection algorithms have been proposed, although it is not clear which performs best. Objective: This study aimed to: (i) develop a framework with which to design and test PPG beat detectors; (ii) assess the performance of PPG beat detectors in different use cases; and (iii) investigate how their performance is affected by patient demographics and physiology. Approach: Fifteen beat detectors were assessed against electrocardiogram-derived heartbeats using data from eight datasets. Performance was assessed using the F1 score, which combines sensitivity and positive predictive value. Main results: Eight beat detectors performed well in the absence of movement, with F1 scores of ≥90% on hospital data and wearable data collected at rest. Their performance was poorer during exercise, with F1 scores of 55-91%; poorer in neonates than adults with F1 scores of 84-96% in neonates compared to 98-99% in adults; and poorer in atrial fibrillation (AF), with F1 scores of 92-97% in AF, compared to 99-100% in normal sinus rhythm. Significance: Two PPG beat detectors denoted 'MSPTD' and 'qppg' performed best, with complementary performance characteristics. This evidence can be used to inform the choice of PPG beat detector algorithm. The algorithms, datasets, and assessment framework are freely available.
Benchmarks
| Benchmark | Methodology | Metrics |
|---|---|---|
| photoplethysmography-ppg-beat-detection-on | WFD: Wavelet Foot Delineation | F1 score: 86.5 |
| photoplethysmography-ppg-beat-detection-on | ATM: Adaptive Threshold Method | F1 score: 71.1 |
| photoplethysmography-ppg-beat-detection-on | MSPTD: MultiScale Peak & Trough Detection | F1 score: 97.5 |
| photoplethysmography-ppg-beat-detection-on | Pulses | F1 score: 96.6 |
| photoplethysmography-ppg-beat-detection-on | qppg: Adapted Onset Detector | F1 score: 96.9 |
| photoplethysmography-ppg-beat-detection-on | AMPD: Automatic Multiscale Peak Detection | F1 score: 97.2 |
| photoplethysmography-ppg-beat-detection-on | PWD: Pulse Wave Delineator | F1 score: 92.9 |
| photoplethysmography-ppg-beat-detection-on | ERMA: EventRelated Moving Averages | F1 score: 93.6 |
| photoplethysmography-ppg-beat-detection-on | IMS: Incremental Merge Segmentation | F1 score: 93.6 |
| photoplethysmography-ppg-beat-detection-on | PDA: Peak Detection Algorithm | F1 score: 92.2 |
| photoplethysmography-ppg-beat-detection-on | ABD: Automatic Beat Detection | F1 score: 96.8 |
| photoplethysmography-ppg-beat-detection-on | HeartPy | F1 score: 95.6 |
| photoplethysmography-ppg-beat-detection-on | SPAR: Symmetric Projection Attractor Reconstruction | F1 score: 95.3 |
| photoplethysmography-ppg-beat-detection-on | SWT: Stationary Wavelet Transform | F1 score: 59.0 |
| photoplethysmography-ppg-beat-detection-on | COppg: Percentile Peak Detector | F1 score: 92.4 |
| photoplethysmography-ppg-heart-rate | PWD: Pulse Wave Delineator | MAPE: 8.4 |
| photoplethysmography-ppg-heart-rate | SWT: Stationary Wavelet Transform | MAPE: 51.0 |
| photoplethysmography-ppg-heart-rate | ABD: Automatic Beat Detection | MAPE: 3.3 |
| photoplethysmography-ppg-heart-rate | ERMA: EventRelated Moving Averages | MAPE: 7.9 |
| photoplethysmography-ppg-heart-rate | IMS: Incremental Merge Segmentation | MAPE: 7.7 |
| photoplethysmography-ppg-heart-rate | HeartPy | MAPE: 4.9 |
| photoplethysmography-ppg-heart-rate | COppg: Percentile Peak Detector | MAPE: 9.6 |
| photoplethysmography-ppg-heart-rate | PDA: Peak Detection Algorithm | MAPE: 7.8 |
| photoplethysmography-ppg-heart-rate | MSPTD: MultiScale Peak & Trough Detection | MAPE: 2.4 |
| photoplethysmography-ppg-heart-rate | Pulses | MAPE: 3.3 |
| photoplethysmography-ppg-heart-rate | WFD: Wavelet Foot Delineation | MAPE: 17.5 |
| photoplethysmography-ppg-heart-rate | ATM: Adaptive Threshold Method | MAPE: 38.5 |
| photoplethysmography-ppg-heart-rate | AMPD: Automatic Multiscale Peak Detection | MAPE: 2.9 |
| photoplethysmography-ppg-heart-rate | qppg: Adapted Onset Detector | MAPE: 3.5 |
| photoplethysmography-ppg-heart-rate | SPAR: Symmetric Projection Attractor Reconstruction | MAPE: 4.6 |
Build AI with AI
From idea to launch — accelerate your AI development with free AI co-coding, out-of-the-box environment and best price of GPUs.