FIELD NOTES / COMPUTER VISION & EDGE AI

Movement assessment.
Counted on-device.

RepSense uses real-time pose estimation, joint-angle geometry, and a camera-normalization layer to count push-ups against a defined depth-and-lockout standard—without wearables, cloud video, or an observer tallying every repetition.

COMPUTER VISION CASE STUDY

RepSense

Pose-based assessment.
Private edge inference.

Working analysis engine
RepSense / Live assessmentMOBILE PRODUCT CONCEPT
RepSense live push-up capture with pose landmarks and rep validation
VISIBLE DECISION LOGICThe system shows why a rep counted.

Live landmarks, elbow angle, gate state, rejection reasons, and rep history make the assessment inspectable.

Follow the measurement ↗
CaptureEstimate poseNormalize geometryValidate rep
DOMAIN

Movement assessment

WHAT WE BUILT

Camera-only rep counter

OUR ROLE

Computer vision & product engineering

01 / THE ASSESSMENT PROBLEM

Counting is simple.
Consistency is not.

Human assessors cost time, apply standards differently, and usually leave behind only a final number. Wearables may count motion, but they do not verify whether the movement met the required form.

A camera can observe the body directly. The difficulty is that raw landmark coordinates change when the camera moves—so a counter tuned to one angle often fails from another.

RepSense separates measurement from judgement: it re-projects the detected body into a canonical reference frame before any counting rule runs.

01

Assessment capacity depended on staff

One observer had to watch, judge, and count one athlete for the duration of the set.

02

The standard drifted between observers

“Deep enough” remained a judgement instead of an explicit, repeatable geometric rule.

03

Camera placement broke naive rules

Raw image coordinates changed with angle, distance, tilt, and the side from which the athlete was filmed.

02 / INSIDE THE PRODUCT CONCEPT

Live feedback.
Session-level evidence.

The supplied mobile concepts show how the analysis engine can become a usable assessment product for operators, coaches, and athletes.

RepSense live capture

Feedback while the movement can still change.

The live view exposes body landmarks, elbow angle, gate state, valid and rejected reps, confidence, and a rep-by-rep timeline.

RepSense live capture
THE PER-FRAME DECISION LOOP

CaptureResizePose inferenceMeasureNormalizeGateRender

03 / THE PORTABILITY BREAKTHROUGH

Normalize the body.
Then apply the standard.

The shoulder-to-ankle line becomes a reference axis. Landmarks are rotated, uniformly scaled, translated to a fixed anchor, and clamped inside the frame. Only then does the deterministic rep logic evaluate posture and elbow angle.

Look under the hood ↘
01

Detect seventeen landmarks

YOLOv8n-Pose returns the body points required for measurement and orientation.

ANGLE < 95° + VALID ORIENTATION

Enter the down state

A bent arm alone is not enough; posture must also satisfy the normalized geometry rule.

95°–130°

Hold the current state

A 35-degree dead band prevents jitter and double-counting around one threshold.

02

Cross the lockout gate

Only an angle above 130 degrees after a valid descent increments the count.

03

Render the basis of the decision

Show skeleton, normalized geometry, angle, progress, count, and rejection reason.

One threshold set. Three camera positions.

The same parameterized pipeline serves left, right, and front-facing footage. Landmark sets, skeleton connections, anchors, and reference points change as inputs—not as copied implementations.

DOWN < 95°dead bandUP > 130°
04 / THE TECHNOLOGY & THE REASON

Four load-bearing tools.
No framework sprawl.

The focused stack keeps capture, inference, geometry, decision, and rendering inside one local process—reducing latency, dependencies, and privacy exposure.

APPLICATION CORE

Python 3

Session control, geometry, state transitions, and rendering orchestration live in one readable runtime.

Why Python?

It provides the strongest route from vision research to a maintainable real-time application.

VIDEO RUNTIME

OpenCV

Capture, resizing, overlays, display, and kiosk keyboard controls stay in the same frame loop.

Why local video I/O?

No cloud round-trip sits between movement and feedback, and no footage needs to leave the device.

HUMAN POSE

YOLOv8n-Pose

The compact model estimates seventeen anatomical landmarks under a confidence floor.

Why the nano model?

The assessment needs a small set of reliable joints, making latency and ordinary-hardware execution the better trade.

NUMERICAL GEOMETRY

NumPy + math

Normalized vectors, dot products, rotation, scaling, and clamping turn landmarks into stable measurements.

Why deterministic geometry?

The system can explain exactly which measurement and threshold produced every count.

PRIVACY

On-device inference

Frames, landmarks, decisions, and overlays stay on the machine attached to the camera.

Why edge-first?

It removes network dependency from the loop and avoids transmitting sensitive footage.

VALIDATION LOGIC

Hysteresis state machine

Ordered down-then-up transitions replace the fragile single-threshold counter.

Why two gates?

The dead band suppresses landmark jitter and prevents hovering near one value from inflating results.

01 / VIDEO

Capture & resize

Standardize each frame to a known working space.

02 / INFERENCE

17 landmarks

Confidence-filter the detected human pose.

03 / GEOMETRY

Rotate · scale · shift

Re-project the body onto a canonical reference axis.

04 / DECISION

Depth + posture gates

Evaluate objective rules through an ordered state machine.

05 / FEEDBACK

Explain the count

Render landmarks, angle, state, progress, and total.

Product screens are supplied interface concepts. The verified build is a focused single-process analysis engine. No accuracy percentage, FPS, latency, deployment, user count, or clinical validation is claimed.

Explore the documented implementation

Language
Python 3 · application logic · geometry · session control
Vision
OpenCV · 1280×720 frame normalization · video capture · overlays · HighGUI
Pose
Ultralytics YOLOv8n-Pose · COCO seventeen-keypoint output · confidence filtering
Geometry
NumPy · Python math · vector angle · rotate · scale · translate · clamp
Runtime
single process · CPU or CUDA device resolution · no network call in the counting loop
Assets
local pose weights · sample footage across left, right, and front views · standalone geometry demonstrators
Current scope and next production step

The existing build counts one subject, does not persist sessions, and is not positioned as production-ready or clinically validated. Operational hardening would add detection-gap handling, multi-person tracking, pinned packaging, regression tests, telemetry, and externalized configuration before unattended deployment.

Technology names identify the documented implementation, not partnerships or endorsements.

A CONVERSATION ABOUT YOUR VISION PRODUCT

Where does your camera prototype
stop behaving like a product?

Bring one movement, inspection, measurement, or edge-inference workflow. In 20 minutes, we’ll map the geometry, failure modes, privacy boundary, and a practical engineering next step.

20 minutes · Your use case, constraints, and next step

20 minutes · Your use case, constraints, and next step

CONTACT PREVIEW

Contact destination

No message has been sent. The destination will be connected before outreach.