Skip to content

Repository files navigation

🖐️ ParkScreen

Hand Tremor Screening Tool for Early Parkinson's Indicators

ابزار غربالگری اولیه نشانه‌های پارکینسون از طریق تحلیل لرزش دست

فارسی  |  🇬🇧 English



فارسی

چرا ParkScreen؟

پارکینسون یکی از شایع‌ترین بیماری‌های عصبیه و اغلب دیر تشخیص داده میشه. یکی از اولین نشانه‌هاش یه لرزش خاص دست در حالت استراحته، با فرکانس ۴ تا ۶ هرتز.

ParkScreen یه سوال ساده داره:

آیا میشه با دوربین لپ‌تاپ معمولی، قبل از مراجعه به پزشک، یه هشدار اولیه داد؟

جواب: بله.

این پروژه یه ابزار غربالگری اولیه‌ست که مستقیم از دوربین سیستم کار می‌کنه، بدون GPU، بدون دستگاه پزشکی خاص.

⚠️ این سیستم جایگزین پزشک نیست. اگه نتیجه نگران‌کننده بود حتماً با متخصص مغز و اعصاب مشورت کن.


ایده اصلی

بیشتر ابزارهای مشابه فقط لرزش دست رو اندازه می‌گیرن. ParkScreen یه قدم جلوتر میره.

از یه پدیده بالینی شناخته‌شده استفاده می‌کنیم: وقتی ذهن مشغول یه کار شناختیه، لرزش پارکینسونی تشدید میشه اما لرزش استرس یا خستگی معمولاً کاهش پیدا میکنه. به این پدیده Re-emergent Tremor می‌گن که در معیار استاندارد بالینی MDS-UPDRS مستنده.


سه کلاس خروجی

کلاس توضیح فرکانس
🟢 نرمال لرزش فیزیولوژیک طبیعی، دامنه ناچیز ۸–۱۲ هرتز
🟡 استرس / خستگی لرزش تقویت‌شده، با زمان کاهش می‌یابد ۸–۱۳ هرتز
🔴 نشانگر احتمالی پارکینسون لرزش پایدار، زیر بار ذهنی تشدید می‌شود ۴–۶ هرتز

نصب

پیش‌نیاز: Python 3.10+، Ubuntu 22 — بدون GPU

git clone https://github.com/yasnaask/parkscreen.git
cd parkscreen

python3 -m venv venv
source venv/bin/activate

pip install -r requirements.txt

اولین اجرا مدل MediaPipe (~۹MB) رو خودکار دانلود می‌کنه.


اجرا

source venv/bin/activate
python main.py
python main.py --camera 1   # دوربین دیگه
python main.py --train      # آموزش مجدد مدل

طریقه استفاده

① پنجره باز میشه — SPACE بزن تا شروع بشه
② فاز ۱  (۱۰ ثانیه)  —  دستت رو آروم جلوی دوربین نگه دار
③ ۴ ثانیه مکث
④ فاز ۲  (۱۰ ثانیه)  —  دست ثابت + از ۳۰ معکوس ۳تا۳تا بشمار
⑤ نمودار نتیجه نمایش داده میشه + result.png ذخیره میشه

برای نتیجه بهتر:

  • نور کافی روی دست داشته باش
  • دستت حدود ۳۰–۵۰ سانتی از دوربین باشه
  • دوربین رو ثابت نگه دار

محدودیت‌ها

  • داده آموزشی شبیه‌سازی‌شده‌ست، نه بالینی واقعی
  • Essential Tremor ممکنه با کلاس استرس اشتباه گرفته بشه
  • حساس به نور ضعیف و لرزش دوربین

پایه علمی

بر اساس معیار MDS-UPDRS — آیتم ۳.۱۷ (لرزش استراحتی) و پدیده Re-emergent Tremor.

  • Helmich et al., Parkinson's tremor and voluntary movement, J Neurosci, 2009
  • MDS Task Force on Rating Scales for Parkinson's Disease, 2008

GitHub



🇬🇧 English

Why ParkScreen?

Parkinson's disease is one of the most common neurological disorders worldwide — and it's often diagnosed too late. One of its earliest signs is a specific resting hand tremor at 4–6 Hz.

ParkScreen asks one question:

Can a regular laptop camera provide an early warning signal — before a clinic visit?

Answer: yes — if designed thoughtfully.

This is a desktop screening tool that runs directly from your webcam, with no GPU and no special hardware.

⚠️ This is not a replacement for a neurologist. If results look concerning, please consult a specialist.


The Core Idea — Two-Phase Protocol

Most similar tools just measure tremor amplitude. ParkScreen goes further.

We exploit a well-documented clinical phenomenon: when the mind is engaged in a cognitive task, Parkinsonian tremor amplifies — while stress or fatigue tremor typically decreases. This is called Re-emergent Tremor, documented in the MDS-UPDRS clinical standard.

┌──────────────────────────────────────────────────────────────┐
│                    ParkScreen Test Protocol                  │
├─────────────────────────┬────────────────────────────────────┤
│   Phase 1  —  10 sec   │   Phase 2  —  10 sec              │
│   Hand still, relaxed  │   Hand still + count down          │
│                        │   from 30 by 3s                    │
│                        │   ( 30, 27, 24, 21, ... )          │
└─────────────────────────┴────────────────────────────────────┘
        ↓                               ↓
   Baseline tremor          Amplification ratio = Phase2 / Phase1
                                > 1.3  →  Possible Parkinson indicator

Three Output Classes

Class What it means Frequency
🟢 Normal Physiological tremor, negligible amplitude 8–12 Hz
🟡 Stress / Fatigue Enhanced tremor, decays over time 8–13 Hz
🔴 Possible Parkinson Indicator Stable tremor, amplifies under cognitive load 4–6 Hz

Installation

Prerequisites: Python 3.10+, Ubuntu 22 — CPU only, no GPU needed

git clone https://github.com/yasnaask/parkscreen.git
cd parkscreen

python3 -m venv venv
source venv/bin/activate      # Windows: venv\Scripts\activate

pip install -r requirements.txt

First run auto-downloads the MediaPipe model (~9 MB).


Run

source venv/bin/activate
python main.py
python main.py --camera 1   # alternate camera
python main.py --train      # retrain model

How to Use

① Window opens — press SPACE to begin
② Phase 1  (10s)  —  hold your hand still in front of the camera
③ 4s pause
④ Phase 2  (10s)  —  hand still + count down from 30 by 3s
⑤ Result chart appears + result.png saved

Tips for best results:

  • Good lighting on your hand
  • Hand ~30–50 cm from camera
  • Keep camera steady

Project Structure

parkscreen/
├── main.py                # entry point — protocol & UI
├── tracker.py             # MediaPipe Tasks API
├── signal_processing.py   # filter · FFT · Hilbert
├── features.py            # 11-feature vector
├── classifier.py          # SVM · K-Fold
├── simulate_data.py       # synthetic training data
├── visualizer.py          # result chart
└── requirements.txt

Honest Limitations

  • Trained on simulated data, not clinical datasets
  • Essential Tremor (8–12 Hz) may overlap with stress class
  • Sensitive to uneven lighting and camera shake

Scientific Basis

Grounded in MDS-UPDRS item 3.17 (rest tremor amplitude) and the Re-emergent Tremor phenomenon under dual-task cognitive loading.

  • Helmich et al., Parkinson's tremor and voluntary movement, J Neurosci, 2009
  • MDS Task Force on Rating Scales for Parkinson's Disease, 2008

GitHub

About

Hand tremor screening tool for early Parkinson's indicators — browser-based, Docker-ready

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages