| Literature DB >> 35853440 |
Peter H Charlton1,2, Kevin Kotzen3, Elisa Mejía-Mejía2, Philip J Aston4, Karthik Budidha2, Jonathan Mant1, Callum Pettit4, Joachim A Behar3, Panicos A Kyriacou2.
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 theF1score, which combines sensitivity and positive predictive value.Main results:Eight beat detectors performed well in the absence of movement withF1scores of ≥90% on hospital data and wearable data collected at rest. Their performance was poorer during exercise withF1scores of 55%-91%; poorer in neonates than adults withF1scores of 84%-96% in neonates compared to 98%-99% in adults; and poorer in atrial fibrillation (AF) withF1scores 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. Creative Commons Attribution license.Entities:
Keywords: atrial fibrillation; beat detection; electrocardiogram; heartbeat; photoplethysmography; pulse wave
Mesh:
Year: 2022 PMID: 35853440 PMCID: PMC9393905 DOI: 10.1088/1361-6579/ac826d
Source DB: PubMed Journal: Physiol Meas ISSN: 0967-3334 Impact factor: 2.688
Datasets used to assess the performance of PPG beat detectors.
| Dataset | Subjects | PPG equipment | Reference beats | Duration (mins): | Total beats |
|---|---|---|---|---|---|
| med (quartiles) | |||||
|
| |||||
|
| |||||
| CapnoBase | 42 patients undergoing elective surgery and routine anaesthesia (Karlen | Pulse oximeter at 300 Hz (upsampled from 100 Hz during acquisition) | Manual annotations of ECG (300 Hz) | 7.7 (7.0–7.8) | 24,945 |
| BIDMC | 53 critically-ill adult patients, a subset of the MIMIC II dataset (Pimentel | Bedside monitor at 125Hz (mostly finger PPG recordings) | ECG-derived QRS detections (125 Hz) | 7.4 (6.9-7.7) | 32,484 |
|
| |||||
|
| |||||
|
| |||||
| MIMIC PERform Training Dataset | 200 critically-ill patients during routine clinical care (100 adults, 100 neonates). | Bedside monitor at 125 Hz (mostly finger PPG recordings) | ECG-derived QRS detections (125 Hz) | 5.7 (3.6-7.8) | 115,941 |
| MIMIC PERform Testing Dataset | 200 critically-ill patients during routine clinical care (100 adults, 100 neonates). | Bedside monitor at 125 Hz (mostly finger PPG recordings) | ECG-derived QRS detections (125 Hz) | All: 5.2 (3.4-7.9); Adults: 7.7 (5.1-8.7); Neonates: 4.0 (2.6-5.3) | All: 116,585; Adults: 57,013; Neonates: 59,572 |
| MIMIC PERform AF Dataset | 35 critically-ill adults during routine clinical care (19 in AF, 16 not in AF), using AF labels provided by cardiologists (Bashar | Bedside monitor at 125Hz (mostly finger PPG recordings) | ECG-derived QRS detections (125 Hz) | AF: 17.8 (15.2-19.6); non-AF: 18.6 (17.3-19.4) | AF: 29,592; non-AF: 22,477 |
| MIMIC PERform Ethnicity Dataset | 200 critically-ill adults during routine clinical care (100 of Black ethnicity, 100 of White). | Bedside monitor at 125 Hz (mostly finger PPG recordings) | ECG-derived QRS detections (125 Hz) | Black: 8.0 (5.6-9.3); White: 7.0 (3.4-8.8) | Black: 61,756; White: 51,230 |
|
| |||||
|
| |||||
|
| |||||
| WESAD | 15 subjects during a laboratory-based protocol designed to induce different emotions (Schmidt | Wristband (Empatica E4) at 64Hz. | ECG-derived QRS detections (700 Hz) | Baseline: 19.1 (18.9-19.3); Amusement: 5.8 (5.8-5.8); Meditation: 6.3 (6.1-6.3); Stress: 10.3 (10.1-10.8) | Baseline: 20,519; Amusement: 6,213; Meditation: 6,395; Stress: 15,282 |
|
| |||||
|
| |||||
|
| |||||
| PPG-DaLiA | 15 subjects during a protocol of activities of daily living (Reiss | Wristband (Empatica E4) at 64Hz. | Manual annotations of ECG (700 Hz) | Sitting: 9.8 (9.7–0.0); Working: 19.9 (19.7–20.5); Cycling: 7.8 (6.7–8.2); Walking: 10.8 (9.5–11.5); Lunch break: 32.4 (28.7–37.2); Car driving: 15.0 (14.1–15.8); Stair climbing: 7.5 (6.8–7.7); Table soccer: 4.8 (4.5–5.2) | Sitting: 9,022; Working: 21,272; Cycling: 13,956; Walking: 15,062; Lunch break: 37,247; Car driving: 18,883; Stair climbing: 12,466; Table soccer: 6,625 |
Figure 1.Detecting beats in the photoplethysmogram (PPG): PPG pulse peaks detected by two beat detectors. (a) shows a high quality segment in which beats were accurately detected by both beat detectors; (b) includes a period of low quality between 1 and 7 s in which the two beat detectors disagreed. au—arbitrary units.
PPG Beat Detectors.
| Beat Detector | Implementing Author | Original Author | Description |
|---|---|---|---|
|
| P. Charlton | M. Aboy | The PPG is strongly filtered to retain frequencies around an initial heart rate estimate, differentiated, and peaks are detected above the 75th percentile. Beats are identified as peaks in a weakly filtered PPG immediately following each peak identified in the differentiated signal. |
|
| P. Charlton | F. Scholkmann | The PPG is detrended and segmented into 6s windows. A local maxima scalogram (LMS) is calculated: a matrix of random numbers, where the rows correspond to different scales (ranging from one sample to half the window duration), and the columns indicate PPG samples. The LMS values are set to zero when a PPG sample is higher than its neighbours at that particular scale. The LMS is truncated to only include scales smaller than the scale at which the most local maxima were identified. Beats are identified as samples which are deemed to be local maxima at all remaining scales. |
|
| D. Han | H. Shin | The PPG is bandpass filtered between 0.5 and 20 Hz. Troughs are identified as local minima which are below an adaptive threshold. The adaptive threshold increases from the value of the previous trough, at a rate related to the PPG amplitude. Any troughs occuring within a period of 0.6 times the previous inter-beat-interval are excluded. The ‘Vmin’ implementation of this beat detector was used, as it performed slightly better than the ‘Vmax’ implementation in initial testing. |
|
| P. Charlton, C. Orphanidou, A. Darrell | C. Orphanidou | In each 10 s PPG segment, beats are identified as peaks which are sufficiently close to (or above) the 90th percentile of the PPG signal, using adaptive filtering. |
|
| E. Mejía-Mejía | M. Elgendi | The PPG is bandpass filtered between 0.5 and 8Hz, rectified to eliminate values below zero, and squared. Two moving averages are calculated: (i) MApeak, a moving average of period 111 ms, emphasising systolic peaks; and (ii) MAbeat, a moving average of period 667 ms, emphasising individual beats. Beats are identified as maxima within periods lasting ≥111 ms where MApeak
|
|
| P. Charlton | P. van Gent | The PPG is squared and normalised. Peaks are detected as maxima above a moving average (of period 0.75s). This is repeated for moving averages of different amplitudes, producing a set of peaks for each amplitude. The set of peaks which produces a plausible HR and the lowest variability in inter-beat intervals (IBIs) is selected as the set of beats. Beats which result in outlying IBIs are eliminated. |
|
| M. Pimentel | W. Karlen | Beats are detected at the end of continuous positive gradient segments (systolic upslopes) with an acceptable amplitude and duration, where the amplitude thresholds are adaptively calculated. |
|
| S. Bishop | S. Bishop & A. Ercole | A modification of AMPD in which LMS matrices are calculated for both local maxima and local minima, so the algorithm detects both peaks and onsets. MSPTD also contains some optimisations to improve computational efficiency. |
|
| E. Mejía-Mejía | E.J. Argüello Prada & R.D. Serna Maldonado | Systolic peaks are identified as peaks which follow an upslope (i.e., period of positive gradient) lasting ≥60% of the duration of the upslope leading to the previously detected systolic peak. |
|
| B.N. Li | B.N. Li | Pulse onsets and pulse peaks are identified from zero-crossing points in the first derivative of the PPG: onsets are identified as zero-crossing points before a maximal deflection, and peaks are identified as zero-crossing points immediately following maximal deflections. |
|
| J. Lazaro, M. Llamedo Soria | J. Lazaro | Peaks are identified in the differentiated PPG using an adaptive filter set to the amplitude of the previous peak, and decreases for a period after that peak at a rate dependent on previous inter-beat intervals. Beats are identified as maxima in the PPG within 300ms of each peak in the differentiated PPG. |
|
| W. Zong, G. Moody, Q. Li | W. Zong | Systolic upslopes are detected from a signal generated with a slope sum function, which sums the magnitudes of the PPG upslopes in the previous 0.17 s. Adaptive thresholding is used to identify systolic upslopes in this signal. The ’qppgfast’ implementation of this beat detector was used, after testing showed it performed similarly to the original ’qppg’ implementation. |
|
| C. Pettit & P.J. Aston | C. Pettit | The PPG is segmented into 20 s windows and time delay coordinates are used to represent it in 7-dimensional phase space with the time delay set to one seventh of the average inter-beat interval. The Symmetric Projection Attractor Reconstruction method is then used to construct an appropriate 2-dimensional projection of the phase space (Aston |
|
| D. Han | S. Vadrevu & M. Sabarimalai Manikandan | The PPG is decomposed using the Stationary Wavelet Transform. Multi-scale sum and products of selected detail subbands are calculated to emphasise systolic upslopes. An envelope is then extracted by: adaptive thresholding to reduce the influence of noise; calculating the Shannon entropy; and smoothing the result. Finally, beats are identified in the envelope using a Gaussian derivative filter. |
|
| E. Mejía-Mejía | N. Conn & D. Borkholder | The PPG is bandpass filtered between 0.5 and 8 Hz, and interpolated to 250 Hz. It is decomposed using a wavelet transform, retaining the fifth wavelet scale for analysis. This signal is rectified and squared to eliminate values below zero. Regions containing beats are identified as those where the signal exceeds a low-pass filtered version of the signal. The timing of the beat within each region is identified as the first zero-crossing of the third derivative, or failing that, the maximum in the second derivative. |
Figure 2.Comparing PPG-derived beats with reference beats: (a) Time-alignment of electrocardiogram (ECG) and photoplethysmogram (PPG) signals. The time lag between ECG and PPG signals (0.68 s in this case) was automatically identified from ECG and PPG beat timings. (b) Assessing the ability of a beat detector to detect beats in the PPG. Those beats detected in the PPG (red circles) which occured within ± 150ms of time-aligned reference ECG beats were deemed to be correct.
The performance of beat detectors in different use cases.
| Dataset | median | median HR MAPE (%) | ||||
|---|---|---|---|---|---|---|
| MSPTD | qppg | All (min—max) | MSPTD | qppg | All (min—max) | |
|
| ||||||
|
| ||||||
| CapnoBase | 99.9 | 99.9 | 97.1-99.9 | 0.2 | 0.2 | 0.2-3.7 |
| BIDMC | 99.7 | 99.6 | 93.4-99.7 | 0.5 | 0.7 | 0.5-6.5 |
|
| ||||||
|
| ||||||
|
| ||||||
| MIMIC PERform Training Dataset | 97.2 | 96.5 | 59.0-97.2 | 2.1 | 3.7 | 2.1-49.1 |
| MIMIC PERform Testing Dataset | 97.5 | 96.9 | 59.0-97.5 | 2.4 | 3.5 | 2.4-51.0 |
| MIMIC PERform Testing Dataset (adults) | 98.5 | 98.0 | 91.9-98.5 | 1.1 | 2.2 | 1.1-13.5 |
| MIMIC PERform Testing Dataset (neonates) | 95.9 | 95.2 | 50.7-95.9 | 4.9 | 5.5 | 4.8-59.7 |
| MIMIC PERform AF Dataset (AF) | 96.7 | 97.1 | 75.3-97.1 | 4.3 | 3.3 | 3.3-34.9 |
| MIMIC PERform AF Dataset (non-AF) | 99.7 | 99.6 | 91.3-99.7 | 0.4 | 0.6 | 0.4-6.9 |
| MIMIC PERform Ethnicity Dataset (Black) | 98.5 | 98.2 | 91.2-98.5 | 1.4 | 2.3 | 1.4-9.9 |
| MIMIC PERform Ethnicity Dataset (White) | 97.5 | 97.3 | 86.6-97.5 | 2.1 | 3.5 | 2.1-14.6 |
|
| ||||||
|
| ||||||
|
| ||||||
| WESAD (meditation) | 98.2 | 98.3 | 71.5-98.3 | 0.6 | 1.5 | 0.6-27.8 |
| WESAD (amusement) | 95.6 | 92.8 | 43.6-95.6 | 2.0 | 4.4 | 2.0-44.8 |
| WESAD (baseline) | 80.1 | 74.2 | 37.0-80.1 | 3.8 | 8.6 | 3.8-41.8 |
| WESAD (stress) | 70.1 | 68.7 | 17.9-70.1 | 13.2 | 15.5 | 13.2-67.7 |
|
| ||||||
|
| ||||||
|
| ||||||
| PPG-DaLiA (sitting) | 95.1 | 95.1 | 63.1-95.5 | 2.5 | 4.1 | 2.5-29.9 |
| PPG-DaLiA (working) | 81.2 | 80.0 | 40.3-81.4 | 4.3 | 8.0 | 4.3-48.6 |
| PPG-DaLiA (cycling) | 87.1 | 90.6 | 33.6-90.6 | 13.0 | 7.0 | 7.0-69.0 |
| PPG-DaLiA (walking) | 72.1 | 76.9 | 31.2-76.9 | 19.1 | 13.7 | 13.7-63.2 |
| PPG-DaLiA (lunch break) | 66.0 | 66.8 | 22.8-66.8 | 6.7 | 8.2 | 6.7-59.7 |
| PPG-DaLiA (car driving) | 83.1 | 80.2 | 30.5-83.1 | 5.7 | 7.8 | 5.7-61.0 |
| PPG-DaLiA (stair climbing) | 71.3 | 71.9 | 27.9-71.9 | 20.1 | 15.1 | 15.1-71.9 |
| PPG-DaLiA (table soccer) | 65.3 | 61.0 | 19.8-65.3 | 13.9 | 19.1 | 13.3-65.7 |
Figure 3.Box plots showing the performance of beat detectors, expressed as the F 1 score. Each graph shows the results for each of the beat detectors on a particular dataset. Performance is shown as the median (circles), inter-quartile range (boxes), and 10th and 90th percentiles (whiskers) across subjects. See table 2 for definitions of beat detectors.
Figure 4.Box plots showing the performance of beat detectors, expressed as the heart rate mean absolute percentage error (MAPE). Each graph shows the results for each of the beat detectors on a particular dataset. Performance is shown as the median (circles), inter-quartile range (boxes), and 10th and 90th percentiles (whiskers) across subjects. Dashed red lines indicate the acceptable performance of 10% MAPE. See table 2 for definitions of beat detectors.
Figure A1.Box plots showing the performance of beat detectors, expressed as the sensitivity. Each graph shows the results for each of the beat detectors on a particular dataset. Performance is shown as the median (circles), inter-quartile range (boxes), and 10th and 90th percentiles (whiskers) across subjects. See table 2 in the main text for definitions of beat detectors.
Figure A2.Box plots showing the performance of beat detectors, expressed as the positive predictive value. Each graph shows the results for each of the beat detectors on a particular dataset. Performance is shown as the median (circles), inter-quartile range (boxes), and 10th and 90th percentiles (whiskers) across subjects. See table 2 in the main text for definitions of beat detectors.
Figure 5.PPG beat detection during different activities: PPG signals are shown for different activities of daily living from the PPG-DaLiA dataset. Beats detected by two PPG beat detectors are shown alongside reference ECG beats. au—arbitrary units.
Figure 6.Box plots showing the associations between beat detector performance and patient physiology and demographics. (a) comparison of subjects without and with atrial fibrillation (non-AF and AF); (b) adults compared to neonates; (c) Black compared to White subjects. Performance is shown as the median (circles), inter-quartile range (boxes), and 10th and 90th percentiles (whiskers) across subjects. See table 2 for definitions of beat detectors.
Figure A3.Box plots showing the associations between beat detector performance and patient physiology and demographics, expressed as the sensitivity. Each graph shows the results for each of the beat detectors on a particular dataset. Performance is shown as the median (circles), inter-quartile range (boxes), and 10th and 90th percentiles (whiskers) across subjects. See table 2 in the main text for definitions of beat detectors.
Figure A4.Box plots showing the associations between beat detector performance and patient physiology and demographics, expressed as the positive predictive value. Each graph shows the results for each of the beat detectors on a particular dataset. Performance is shown as the median (circles), inter-quartile range (boxes), and 10th and 90th percentiles (whiskers) across subjects. See table 2 in the main text for definitions of beat detectors.
The proposed assessment framework.
| Purpose | Dataset | Data access |
|---|---|---|
|
| ||
|
| ||
| Preliminary design | CapnoBase | Available in Matlab format after completing an agreement. |
| Preliminary design | BIDMC | Available in CSV, WaveForm DataBase, and Matlab format, under an OCD-By licence. |
| Design with critical care data, and compare performance in adults and neonates | MIMIC PERform Training Dataset | Available in Matlab, CSV and WaveForm DataBase formats, under an ODb licence. |
| Design with wearable data | WESAD | Available in Python’s PKL format, for non-commercial purposes. |
| Investigate impact of atrial fibrillation | MIMIC PERform AF Dataset | Available in Matlab, CSV and WaveForm DataBase formats, under an ODb licence. |
|
| ||
|
| ||
|
| ||
| Testing with critical care data | MIMIC PERform Testing Dataset | Available in Matlab, CSV and WaveForm DataBase formats, under an ODb licence. |
| Testing in activities of daily living | PPG-DaLiA | Available in Python’s PKL format, for non-commercial purposes. |