Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feedback specificity #2

Open
yashishandilya opened this issue Feb 18, 2025 · 1 comment
Open

Feedback specificity #2

yashishandilya opened this issue Feb 18, 2025 · 1 comment
Assignees

Comments

@yashishandilya
Copy link
Contributor

Deciding what do we want to say, once we get distances between different points on te body

@nathanScout nathanScout self-assigned this Feb 18, 2025
@yashishandilya yashishandilya changed the title Feedback specificity [Delayed] Feedback specificity Feb 25, 2025
@yashishandilya yashishandilya changed the title [Delayed] Feedback specificity Feedback specificity Feb 25, 2025
@sammypatel06
Copy link
Contributor

Side note: There's two different standards for "good" posture; static and dynamic. Dynamic is posture when moving, static is posture when still. We are most likely only dealing with static posture, so all data should be recorded relative to a rating with a standard for a static posture in mind. (i.e. don't research dynamic posture). This does also mean we have to decide if we are rating a standing or sitting posture (or maybe have a toggle, or maybe detect automatically).

What is the "Data"

  • MediaPipe gives us tracked body joints, so coordinate positions on a body
  • Will also have angles between coordinates, distances, possibly curvature of parts such as the spine

Objective Feedback (Quantitative)

  • Height
  • Weight (guessing)
  • Age (also guessing)
  • Angles, distances

Subjective Feedback (Qualitative)

  • The following is "good posture" and ratings/feedback should be made based on how well the user aligns to each characteristic
  • Neutral spine alignment
    • Spine has 3 main curves: cervical (neck), thoracic (upper back), and lumbar (lower back)
    • Good posture maintains these curves and doesn't flatten or exaggerate them
    • Head should be balanced so ears line up roughly over shoulders
  • Relaxed, level shoulders
    • Relaxed as in not hunched or pulled up toward ears
    • Open, rather than rounded forward
    • Level as in one isn't significantly higher than the other
  • Aligned Hips and Pelvis
    • Not overly arched forward or tucked under
    • Standing: hips are level with spine, weight evenly distributed across both legs
    • Sitting: Thighs parallel to floor, both feet planted
  • Balanced Weight Distribution
    • Standing
      • feet shoulder-width apart, knees soft (not locked), weight evenly distributed across feet
      • Chest open, chin parallel to floor
    • Sitting
      • Feet flat on floor (or footrest), knees at about 90 degrees
      • Lower back supported
  • Minimal Muscle Tension
    • Not sure if we can "measure" this one
    • No excessive strain
    • Abs and back muscles aren't overworking to support, or being tensed aggressively
  • Symmetry
    • Probably the easiest to start with
    • Not excessively twisting or leaning to one side, esp. in shoulders or hips
    • Not crossing legs (could probably just give an on-screen warning)

How much Data we need

  • Simple
    • 1000+ frames labeled "good"
    • 1000+ frames labeled "bad"
    • ~30-50 people, multiple postures
  • Moderate
    • Numerical score of posture
    • ~500 frames that are "good" or "bad" in each specific category
    • Multiple posture conditions, several more people
  • High
    • 10s of thousands of frames with several levels of variability
    • Not realistic for our scale
  • Too few samples => model doesn't generalize
  • Too many samples => unbalanced data if samples aren't diverse
  • Generally better to have lots of diverse data than not much of redundant data.

Specifying the Data

  • Binary labeling (good vs. bad)
    • Easy to collect, less nuanced feedback
  • Categorical (Good, slight slouch, severe slouch, etc)
    • More specific feedback, requires more data and more precision in training
    • Can easily be humanized into a small summary output
  • Numerical Rating (1-10)
    • Tricky to label consistently, will require well-defined guidelines
    • Requires the most data

Outputting the Data

  • Can output quantitative data so the user has numbers to attach to the output
  • Can provide a small summary of large issues
  • Can provide a small second paragraph of ways to fix the issues identified
  • Can provide a rating of which issues are more severe and which ones are not
  • Separate data by category (spine, shoulder, slouch, etc)
  • Can record the user for about 5-10 seconds (or maybe even 30) to score posture over time; after the time period, the camera shuts off and the user is presented with a screen of feedback
  • Another approach is giving the user a graph of "issues" that updates in real time as they adjust their posture

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants