Edge AI / Computer Vision / Systems Engineering

and Exercise Analytics Engine

A modular C++17/OpenCV engine for real-time video processing, human-pose inference, and analytics-ready motion data on macOS and NVIDIA Jetson Orin Nano.

3 runtime pipelines 17 canonical joints 5 timed stages

On-Device Demos

Demo.

OHP / Jetson Orin Nano

Exercise Analytics

Overhead Press

16.8 FPS
589 frames 29.97 ms inference 35.47 ms estimator 40.12 ms pipeline
Full benchmark resize 2.52ms / preprocess 5.42ms / postprocess 0.06ms / analytics 0.01 / skeleton 0.41 / analytics renderer 1.71 ms
Squat / Jetson Orin Nano

Exercise Analytics

Squat

19.2 FPS
875 frames 30.95 ms inference 37.21 ms estimator 42.59 ms pipeline
Full benchmark resize 2.69ms / preprocess 6.18ms / postprocess 0.07ms / analytics 0.01ms / skeleton 0.46ms / analytics renderer 2.22 ms
Yifei's Jetson Orin Nano edge AI test setup
My Jetson Orin Nano / CUDA FP16 profile

Edge Hardware

Deployed on Jetson Orin Nano.

The production profile runs YOLO11 pose inference through CUDA FP16 while the CPU handles capture, orchestration, pose decoding, exercise analytics, rendering, and output. Both demos above were recorded on this device.

Architecture

vodeo frame processing.

InputWebcam / Video
CaptureVideoSource
Frame ContractFrameTimelineID / source time / validity
PreprocessResizeProcessor
FRAME CONTEXT
Motion PathMotionDetector
ObjectTracker
OverlayRenderer
Inference PathPoseEstimator(Yolo11n)preprocess / DNN / decode
Canonical Pose Schema
SkeletonRenderer
OutputDisplay / Annotated Video

All processors implement IFrameProcessor and exchange data through FrameContext. The model adapter translates inference output into named joints before rendering or analytics, keeping pose models separate from the video, timing, and exercise-analysis layers.

Runtime

pipelines.

motion

Foreground regions and merged bounding boxes.

tracking

Stable motion-track IDs and trajectory trails.

pose

17-joint skeleton, confidence, analytics, and stage timing.

video_engine
./build/video_engine \
  --source video_source/squat.mov \
  --pipeline pose \
  --config configs/pose.yaml

[Frame 3] FPS: 3.4
| resize:            0.40 ms
| pose_preprocess:   0.41 ms
| pose_inference:  261.56 ms
| pose_postprocess:  0.01 ms
| skeleton_renderer: 0.10 ms
| pipeline:        262.47 ms

Roadmap

Next Steps.

Optimize

TensorRT Pose Model

optimization each pipelines for a faster inference and higher frames.

Extend

Exercise Library

Extend the working squat and overhead-press analyzers to more movements with small models.

Next

Depth Camera Integration

Integration with depth cameras for improved 3D pose estimation.

Next

Primary-Person Tracking

Persistent identity through movement and temporary occlusion.