volfiros commited on
Commit
ef2ebbc
Β·
1 Parent(s): ec0371b

docs: refine README and Hugging Face configuration

Browse files
Files changed (2) hide show
  1. .github/README.md +64 -0
  2. README.md +2 -1
.github/README.md ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div align="center">
2
+ <img src="../assets/banner.svg" alt="PulseCam Banner" width="100%" />
3
+
4
+ [![Hugging Face Space](https://img.shields.io/badge/πŸ€—%20Hugging%20Face-Space-yellow.svg)](https://huggingface.co/spaces/agaroth/pulsecam)
5
+ [![License](https://img.shields.io/badge/license-MIT-blue.svg)](../LICENSE)
6
+ </div>
7
+
8
+ ## 🎯 The Problem
9
+ Measuring heart rate traditionally requires dedicated hardware like smartwatches, chest straps, or pulse oximeters. This limits accessibility for quick, everyday health monitoring, especially for telehealth integrations or fitness apps where users might not have specialized devices on hand.
10
+
11
+ ## ✨ What PulseCam Does
12
+ PulseCam turns your standard webcam into a contactless heart rate monitor. Using remote photoplethysmography (rPPG), it detects micro-variations in skin color caused by blood flow with each heartbeat.
13
+
14
+ Simply sit in front of your camera, and PulseCam tracks your face, isolates the optimal regions of interest (cheeks), and processes the subtle color changes in real-time to calculate your heart rate (BPM).
15
+
16
+ ## πŸ› οΈ Tech Stack & Core Libraries
17
+ - **Frontend:** React, TypeScript, Vite, Framer Motion, WebGL (for stunning shader backgrounds)
18
+ - **Backend:** Python, FastAPI, WebSockets
19
+ - **Core Models & Algorithms:**
20
+ - **MediaPipe FaceLandmarker:** Real-time facial landmark detection to isolate stable regions of interest (ROI).
21
+ - **SciPy & NumPy:** Advanced signal processing, bandpass filtering, Welch's method, and autocorrelation to extract the heart rate signal from noisy RGB data.
22
+
23
+ ## πŸš€ Live Demo
24
+ Try it out directly in your browser without installing anything!
25
+ πŸ‘‰ **[PulseCam on Hugging Face](https://agaroth-pulsecam.hf.space)** (or [view the Space](https://huggingface.co/spaces/agaroth/pulsecam))
26
+
27
+ ## βš™οΈ Installation & Local Setup
28
+
29
+ ### Prerequisites
30
+ - Node.js (via Bun or npm)
31
+ - Python 3.11+
32
+
33
+ ### Steps
34
+ 1. **Clone the repository:**
35
+ ```bash
36
+ git clone git@github.com:volfiros/pulsecam.git
37
+ cd pulsecam
38
+ ```
39
+
40
+ 2. **Start the Backend:**
41
+ ```bash
42
+ cd backend
43
+ python -m venv .venv
44
+ source .venv/bin/activate
45
+ pip install -r requirements.txt
46
+ uvicorn main:app --reload
47
+ ```
48
+
49
+ 3. **Start the Frontend:**
50
+ ```bash
51
+ cd frontend
52
+ bun install
53
+ bun run dev
54
+ ```
55
+
56
+ 4. Open `http://localhost:5173` in your browser.
57
+
58
+ ## πŸ“ˆ Future Improvements
59
+ - **Lighting Compensation:** Improve robustness against uneven or flickering lighting conditions.
60
+ - **Motion Artifact Reduction:** Implement better independent component analysis (ICA) to separate motion from the pulse signal.
61
+ - **Mobile Optimization:** Enhance camera access and processing efficiency on mobile devices.
62
+ - **HRV (Heart Rate Variability):** Extract inter-beat intervals to measure stress levels.
63
+
64
+ See the [Architecture Document](../ARCHITECTURE.md) for a deep dive into how the signal processing pipeline works.
README.md CHANGED
@@ -1,11 +1,12 @@
1
  ---
2
- title: Pulsecam
3
  emoji: πŸ’“
4
  colorFrom: indigo
5
  colorTo: purple
6
  sdk: docker
7
  pinned: false
8
  license: mit
 
9
  ---
10
 
11
  <div align="center">
 
1
  ---
2
+ title: PulseCam
3
  emoji: πŸ’“
4
  colorFrom: indigo
5
  colorTo: purple
6
  sdk: docker
7
  pinned: false
8
  license: mit
9
+ short_description: Contactless heart rate monitoring via webcam
10
  ---
11
 
12
  <div align="center">