SeetaPsych Hertz
Heart rate estimation modules for SeetaPsych
Usage
This project is already included in the seetapsych-lib default configuration. Download and use it via seetapsych-manager download.
For usage, refer to SeetaPsych.
You can additionally add this algorithm module using the following methods.
Heart rate estimation requires processing video or real-time video streams to extract heart rate information.
WebUI
Run seetapsych-webui with the --files argument to use it.
seetapsych-webui --files seetapsych_hertz/modules/seeta.yml
Programmatic Usage
Add the following code in your program to use this algorithm module.
from seetapsych_lib.runtime.factory import Factory
from seetapsych_lib.runtime.pipeline import Pipeline
factory = Factory()
factory.load_file_modules("seetapsych_hertz/modules/seeta.yml")
pipeline = Pipeline(factory, ...)
pipeline.add_attributes("face/heart_rate")
Module Catalog
| Module YAML Path | Package Name |
|---|---|
seetapsych_hertz/modules/ada-chrom.yml |
HeartRate-AdaChrom |
seetapsych_hertz/modules/seeta.yml |
HeartRate-Seeta |
seetapsych_hertz/modules/tiny-hr.yml |
HeartRate-TinyHR |
AdaChrom
Model-free rPPG heart rate estimation using adaptive chrominance analysis on skin ROI.
Module config: ada-chrom.yml
| Package | Provides | Requires |
|---|---|---|
| HeartRate-AdaChrom | face/heart_rate |
face/dense_landmarks |
Description
Adaptive chrominance rPPG heart rate estimator. Accepts multiple ROI selectors; the default forehead-only adaptive skin mask (skin_b_adaptive_forehead) matches the original delivery configuration, while the preset group all runs every available region.
Usage Notes
- Supports both video streams and video files.
- For video stream mode, best results are achieved at 30 FPS or higher, which requires optimized processing logic and better hardware (with GPU).
- For stable analysis results, it is recommended to use video files with a stable frame rate of 30 FPS or higher.
Parameters
| Name | Type | Default | Description & Tuning |
|---|---|---|---|
window_samples |
integer | 300 |
Sliding window frame count for HR estimation. Larger values reduce noise but increase latency; adjust based on real-time demand. |
roi_regions |
selection[] |
["skin_b_adaptive_forehead"] |
ROI selectors to estimate heart rate on. Multiple selectors are evaluated independently, with valid results merged into the fused hr_bpm and the per-region roi_hr_bpm map. |
Models
(None)
Output Attributes
face/heart_rate— spec.
The per-region results requested via roi_regions are returned inside roi_hr_bpm: each key corresponds to one selected ROI and the value is that region's heart rate in BPM for the current window.
TinyHR
Lightweight neural network for fast heart rate estimation directly from face video frames.
Module config: tiny-hr.yml
| Package | Provides | Requires |
|---|---|---|
| HeartRate-TinyHR | face/heart_rate |
face/detection |
Description
Fast RhythmFormer heart rate estimator using buffered face crops + Welch spectral analysis.
Usage Notes
- Supports both video streams and video files.
- For video stream processing, frame rates close to 30 or 25 FPS yield the best results.
- For stable analysis results, it is recommended to use video files with a frame rate of 30 FPS or 25 FPS.
Parameters
| Name | Type | Default | Description & Tuning |
|---|---|---|---|
fps |
number | 30 |
Expected camera/video FPS used for spectral analysis windowing. Mismatch with actual source FPS degrades HR accuracy. |
interval |
number | 1 |
Seconds between consecutive HR estimates. Smaller intervals yield more updates with higher jitter; larger intervals are smoother but slower. |
Models
| Model | Recommended |
|---|---|
seeta-hertz-tinyhr.onnx |
✓ |
Output Attributes
face/heart_rate— spec.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file seetapsych_hertz-0.0.3.post1.tar.gz.
File metadata
- Download URL: seetapsych_hertz-0.0.3.post1.tar.gz
- Upload date:
- Size: 208.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5905a8eefe142d3b891c3783b25d002be0bd94b67ba1f78d1a8def51bf90f56d
|
|
| MD5 |
372d16675349853b9cd7b338c999fa1b
|
|
| BLAKE2b-256 |
74d5157cddade3ed7cd5b182bd6ed87cbf716e27c9750d65b2234aad1a659d47
|
Provenance
The following attestation bundles were made for seetapsych_hertz-0.0.3.post1.tar.gz:
Publisher:
publish.yml on seetapsych/seetapsych-hertz
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
seetapsych_hertz-0.0.3.post1.tar.gz -
Subject digest:
5905a8eefe142d3b891c3783b25d002be0bd94b67ba1f78d1a8def51bf90f56d - Sigstore transparency entry: 2698327810
- Sigstore integration time:
-
Permalink:
seetapsych/seetapsych-hertz@d57f323cb58d2ead397a508b89bb5fe3e547b204 -
Branch / Tag:
refs/tags/r0.0.3.post1 - Owner: https://github.com/seetapsych
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@d57f323cb58d2ead397a508b89bb5fe3e547b204 -
Trigger Event:
push
-
Statement type:
File details
Details for the file seetapsych_hertz-0.0.3.post1-py3-none-any.whl.
File metadata
- Download URL: seetapsych_hertz-0.0.3.post1-py3-none-any.whl
- Upload date:
- Size: 84.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bfcf4206740fa78a6c63dd9d7d02d564058fb1769b7931baa360c4518a7354cb
|
|
| MD5 |
000003237d739878c64dc03355f039ed
|
|
| BLAKE2b-256 |
3a3c591c0f88e9390fad37257d2c9e14e95a999ac07ce6e0d267142d13ee82e4
|
Provenance
The following attestation bundles were made for seetapsych_hertz-0.0.3.post1-py3-none-any.whl:
Publisher:
publish.yml on seetapsych/seetapsych-hertz
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
seetapsych_hertz-0.0.3.post1-py3-none-any.whl -
Subject digest:
bfcf4206740fa78a6c63dd9d7d02d564058fb1769b7931baa360c4518a7354cb - Sigstore transparency entry: 2698327830
- Sigstore integration time:
-
Permalink:
seetapsych/seetapsych-hertz@d57f323cb58d2ead397a508b89bb5fe3e547b204 -
Branch / Tag:
refs/tags/r0.0.3.post1 - Owner: https://github.com/seetapsych
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@d57f323cb58d2ead397a508b89bb5fe3e547b204 -
Trigger Event:
push
-
Statement type: