Jamorham
Nightscout용 xDrip+ 버전
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기IoT-Based Smart Yoga Posture Correction System with Real-Time Audio Guidance (RCC IIT Kolkata Final Year Project P05)
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
title: Yoga Posture Correction System emoji: 🧘 colorFrom: indigo colorTo: purple sdk: gradio sdk_version: "6.20.0" app_file: app.py python_version: "3.10" pinned: false AsanaAI — Smart Yoga Posture Correction System A yoga coach that watches your form through the camera, recognises the pose you are in, scores your alignment, and tells you — in English, हिन्दी or বাংলা, on screen and aloud — what to adjust. Final-year project (P05), RCC Institute of Information Technology, Kolkata, Department of CSE-AIML.README 전문 보기 ↗
A yoga coach that watches your form through the camera, recognises the pose you are in, scores your alignment, and tells you — in English, हिन्दी or বাংলা, on screen and aloud — what to adjust. Final-year project (P05), RCC Institute of Information Technology, Kolkata, Department of CSE-AIML.
/landing)/docs for the interactive reference)camera ─▶ MediaPipe Pose (in the browser) ─▶ 33 landmarks ─▶ 15 joint angles (+ body orientation, used only by the rule engine in basic mode / the non-cascade path)
│
┌─────────────────────────────────────────┴──────────────────────────────┐
▼ every ~1.5 s ▼ every ~10 s
per-frame coach sequence model (ST-GCN)
server: 3-head ResMLP names the pose, a second MLP "gate" 60-frame window at 25 fps,
screens out poses we do not know and supplies the form score, shown as a second opinion
angle bands give per-joint deviations ("Flow check"), never overrides
on device (offline / server asleep): the same rule engine,
ported line for line, answers instantly ("basic mode")
│
▼
visibility-aware scoring: joints the camera cannot see are neither scored nor coached
│
▼
coaching: reviewed templates (+ optional LLM paraphrase behind safety filters) ─▶ screen + speech
docs/CASCADE.md) and sequence model (docs/SEQUENCE_MODEL.md): rollout flags, rollback and design notes.frontend/src/utils/offlineCoach.ts): generated from the backend rule engine and verified identical to it on 12,500 generated cases (python3 backend/tools/offline_parity.py).docs/BENCHMARKS.md section 11.backend/app/services/occlusion.py only as an optional hook (nothing sends it CLIFF data and no CLIFF model is deployed). The live system is visibility-aware instead: it declines to score a joint it cannot see. An offline experiment comparing CLIFF with the old mirror fallback is written up in docs/BENCHMARKS.md section 10 (CLIFF needs the camera image, which the app never uploads).Training/validation accuracies printed by the trainers come from a random frame split and are not reported as results. Honest numbers (held-out videos, held-out public photos) are in docs/BENCHMARKS.md. Headlines:
| Before | Now | |
|---|---|---|
| Held-out public photos: pose accuracy | 36.9% | 78.9% (pose cascade) |
| Photos of poses we do NOT cover wrongly named as ours (lower is better) | 78.3% | 20.8% |
| Poses with recall and precision >= 0.70 on held-out photos | 0 | 7 |
| ST-GCN on held-out videos | live model: macro recall 0.19 | new model: macro recall 0.82, 3 poses pass the bar (4 with a cross-fitted threshold) |
| Live correctness check (one joint broken by 45 degrees) | - | form score 0.94 -> 0.25 for a leg joint; arm joints are barely detected |
Standard methods (k-NN, SVM, random forest, plain MLP) trained on the same data and scored on the same photos are in section 13 of docs/BENCHMARKS.md: a random forest beats the cascade on photos from the training sources (85.3% vs 78.9%) but is the weakest method on a wild photo set from another source (35.0% vs 55.3%), so no single method wins everywhere.
Known limits are listed in section 7 of docs/BENCHMARKS.md and in docs/REPO_AUDIT_2026-10-07.md (Tree and Lunge have no angle bands, so their per-joint colours come from the learned deviation head, which is near chance).
| Path | What |
|---|---|
backend/ | FastAPI service (also the Hugging Face Space): models, rule engine, cascade, coaching, tests (backend/tests), tools (backend/tools) |
frontend/ | Next.js PWA (app at /, website at /landing) and the Capacitor Android project (frontend/android) |
mobile/ | Separate Expo (React Native) client |
modal/ | Data and training pipeline scripts (cue-verified relabelling, windows, training); index in modal/README.md |
planning/ | Experiments, Kaggle harnesses (planning/kaggle_transfer), rescued checkpoints (planning/modal_rescue), archive of superseded files; index in planning/README.md |
docs/ | Benchmarks, cascade and sequence-model notes, training lessons, live-test clips, repository audit |
paper/ | The research paper for the conference (LaTeX + PDF, paper/asanaai_research_paper.pdf), figures, verified bibliography |
report/ | The project report (LaTeX + PDF, report/asanaai_project_report.pdf): design, deployment, verification, audit, operations |
backup/ | Resume/handoff notes (start with backup/RESUME_HERE_2026-10-05.md) and dated copies of key docs |
# backend (needs the model files from the Hugging Face repo; set HF_TOKEN if the repo is private)
pip install -r backend/requirements.txt
cd backend && uvicorn app.main:app --port 7860 # API docs at /docs
cd backend && python3 -m pytest tests -q # 72 tests
# frontend
cd frontend && npm install && npm run dev # http://localhost:3000 (set NEXT_PUBLIC_YOGA_API_URL)
# live smoke test of the DEPLOYED backend (assertions; see backup/verify_live.sh)
bash backup/verify_live.sh
# on-device coach parity check (Python original vs TypeScript port)
python3 backend/tools/offline_parity.py
main with changes under backend/ syncs the Space (.github/workflows/hf_sync.yml). Defaults equal the benchmarked configuration (pose cascade on, stgcn_target_v1); roll back with the Space variables ENABLE_POSE_CASCADE=0 and STGCN_MODEL_FILE / STGCN_ENCODER_FILE set to the stgcn_transitions_v1* files. GROQ_API_KEY (secret) enables the optional LLM paraphrase.main (production) and every other branch (preview URL)..github/workflows/android_build.yml.AsanaAI gives general guidance and is not medical advice. Cues are built from reviewed templates and never ask you to push further. If the optional LLM paraphrase is enabled, a post-generation screen rejects English wording such as "push", "force", "pain" or "further"; that screen is a list of English words, so Hindi and Bengali paraphrases are not covered by it (known gap, see docs/REPO_AUDIT_2026-10-07.md).
See LICENSE. Pose reference photographs in frontend/public/pose-images are CC BY / CC BY-SA from Wikimedia Commons; credits are shown beside each photo in the app.