Methodology & Accuracy Disclosure

App: 刷脸测心率 (PulseRPPG) · Bundle ID: com.rppg.pulse
Document version: 1.1 · Date: 7 July 2026 · For App Store Review (Guideline 1.4.1)
App version: 1.07 (12) · Face rPPG only Developer: Zibo Tongzhe Information Technology Co., Ltd · Contact: 94722424@qq.com

Regulatory status: This app is a wellness and entertainment utility, not a medical device. It is not cleared or approved by the FDA, NMPA, or CE as a medical product. All outputs are reference estimates for personal wellness tracking and must not be used for diagnosis, treatment, or medication decisions.

1. Purpose of This Document

Apple App Review Guideline 1.4.1 requires clear disclosure of data, methodology, and the basis for accuracy-related statements when an app presents health-related measurements from device sensors.

This document describes:

Companion document: Internal Validation Summary.

2. Product Scope & Accuracy Claims Summary

OutputClaim typeWhat we disclose
Heart rate (BPM) Wellness reference estimate Derived from camera rPPG using published POS + spectral peak detection. Expected error vs. contact reference under recommended conditions: typically MAE 2–8 BPM (face) — see §8.
HRV (RMSSD, ms) Trend reference only Computed from inter-beat intervals (IBI) after peak detection. Higher variance than HR; suitable for personal trend comparison, not clinical HRV diagnosis.
Wellness state index (状态) Derived wellness index Monotonic mapping from normalized RMSSD (inverse relationship). Shown as trend reference only. Not a validated clinical stress or cortisol measure.
Respiration (breaths/min) Algorithm retained; hidden from UI in v1.07+ RIIV pipeline exists in code but is not shown to users (unvalidated secondary vital).
SpO₂, blood pressure Removed from app UI Experimental features removed in v1.05+; not offered to users.

3. System Architecture (On-Device Only)

All processing occurs locally on the user’s iPhone. No camera frames, face images, or measurement values are uploaded to developer servers.

  1. Capture: AVCaptureSession video at ~30 fps (front camera, face rPPG mode).
  2. ROI extraction: Apple Vision VNDetectFaceLandmarksRequest → forehead + bilateral cheek ROIs with YCbCr skin mask.
  3. Signal construction: Mean RGB (skin pixels) per frame → time series.
  4. Analysis: RPPGProcessor — POS → bandpass → FFT / peak detection.
  5. Quality gating: SNR-based quality level (1=weak, 2=good, 3=excellent). Beat-interval (HRV) and wellness state index shown only when quality ≥ 2. Respiration hidden from UI in v1.07+.
  6. Smoothing: Exponential smoothing on BPM/HRV for display stability.
  7. Video import (导入视频本地检测): Offline frame extraction (AVAssetReader) + Vision face ROI + same RPPGProcessor pipeline every 3 s. Presented as local on-device wellness trend reference, not accurate heart-rate measurement.

4. Theoretical Basis — Remote Photoplethysmography (rPPG)

Each cardiac cycle changes blood volume in superficial vessels, modulating reflected/transmitted light. A standard camera records subtle per-frame RGB changes. After spatial averaging over skin ROIs and temporal filtering, the pulse frequency can be estimated.

This principle is established in peer-reviewed literature, e.g.:

5. Implemented Algorithms (Matches Source Code)

5.1 Sampling & Windowing

Effective sample rate30 Hz (camera frame timestamps)
Analysis window12 s sliding window
Minimum data before output6 s
ResamplingLinear interpolation to uniform 30 Hz grid

5.2 Face Mode — POS Pulse Signal

We implement the Plane-Orthogonal-to-Skin (POS) method (Wang et al., 2017). For each sliding sub-window of length 1.6 × fs samples:

  1. Normalize R, G, B by temporal mean in the window.
  2. Construct S₁ = Gₙ − Bₙ, S₂ = −2Rₙ + Gₙ + Bₙ.
  3. Compute α = std(S₁) / std(S₂), pulse signal H = S₁ + α·S₂, mean-centered.
  4. Overlap-add across windows to form pulse waveform.

5.3 Heart Rate Estimation

5.4 HRV (RMSSD)

From consecutive IBIs (300–1500 ms valid range):

RMSSD = sqrt( mean( (IBIᵢ − IBIᵢ₋₁)² ) ) with ectopic beats excluded (|ΔIBI| > 250 ms).

Displayed only when quality ≥ 2 and ≥ 3 valid IBIs.

5.5 Respiration Rate

Respiratory Induced Intensity Variation (RIIV): green channel bandpassed 0.1–0.45 Hz; FFT peak converted to breaths/min. Valid range: 6–40/min.

5.6 Wellness State Index (状态)

hrvNorm = clamp((RMSSD − 10) / 70, 0, 1)
stateIndex = round((1 − hrvNorm) × 85 + 10) → range ~10–95.

This is a derived wellness trend index, not a psychometric or clinical stress test. UI labels use「Wellness 参考」/「趋势参考」only — no slow/fast/normal clinical judgments.

5.7 Face ROI (Vision Framework)

Landmark-based forehead + cheek regions; YCbCr skin threshold (Y 40–245, Cb 77–127, Cr 133–173) with subsampled pixels. Minimum 50 skin pixels required per frame.

6. Required Measurement Conditions (User Guidance)

ModeDurationConditions
Face rPPG ~15 s recommended Even front lighting; face centered; minimize head motion and speech; no strong backlight or flicker.
Video import ≤ 5 min local video On-device trend reference only; lower accuracy than live face rPPG

7. Factors That Degrade Accuracy

8. Disclosed Accuracy Ranges (Conservative)

The table below summarizes expected performance for an implementation of this algorithm class (POS + spectral HR), based on published benchmarks and our internal reference-comparison protocol (see companion validation document). These are wellness-reference bounds, not clinical device specifications.

MetricTest conditionReference standardDisclosed rangeLiterature / basis
Heart rate Face, resting, quality ≥ 2, 15 s Contact PPG / chest strap MAE typically 2–8 BPM; r often > 0.85 in controlled rest Poh 2010; UBFC-rPPG benchmarks; de Haan 2013
HRV (RMSSD) Rest, quality ≥ 2, ≥ 12 s IBI data ECG or chest strap RMSSD Relative trend useful; absolute error often ±15–30% vs clinical ECG in mobile conditions Camera sampling & peak-detection limits; trend-only claim
Respiration Hidden from UI v1.07+ N/A — not offered to users No user-facing claim Algorithm retained only; unvalidated secondary vital
Wellness state index Derived from RMSSD N/A (no clinical gold standard) No accuracy claim — ordinal wellness trend only Disclosed as non-clinical index
Important: We instruct users that results are for wellness/entertainment reference only. The app displays persistent non-diagnostic disclaimers in the measurement UI and App Store metadata.

9. What We Do NOT Claim

10. Data Privacy (Relevant to Methodology)

11. References

  1. Poh, M. Z., McDuff, D. J., & Picard, R. W. (2010). Non-contact, automated cardiac pulse measurements using video imaging and blind source separation. IEEE TBME, 58(1), 7–11.
  2. de Haan, G., & Jeanne, V. (2013). Robust pulse rate from chrominance-based rPPG. IEEE TBME, 60(10), 2878–2886.
  3. Wang, W., den Brinker, A. C., Stuijk, S., & de Haan, G. (2017). Algorithmic principles of remote PPG. IEEE TBMS, 64(7), 1479–1491. (POS method)
  4. Verkruysse, W., et al. (2008). Remote plethysmographic imaging using ambient light. Optics Express, 16(26), 21434–21445.
  5. Bobbia, S., et al. (2019). Unsupervised skin tissue segmentation for remote photoplethysmography. Pattern Recognition Letters — UBFC-rPPG dataset.
  6. Schäfer, A., & Vagedes, J. (2013). How accurate is pulse rate variability as an estimate of heart rate variability? International Journal of Cardiology, 166(1), 15–29.

12. App Review Contact

For questions regarding this disclosure: 94722424@qq.com
Submitted with App version 1.07 (12) for Guideline 1.4.1 review.