UNPKG

bowling-analysis-system

Version:

A comprehensive system for analyzing bowling techniques using video processing and metrics calculation

95 lines (85 loc) 3.99 kB
/** * @module types/MetricsTypes * @description Type definitions for the three-phase metrics system */ /** * @typedef {Object} Frame * @property {number} frameIndex - Index of the frame * @property {number} timestamp - Timestamp of the frame * @property {Object} keypoints - Keypoints data for the frame * @property {number} confidence - Confidence score for the frame * @property {boolean} isValid - Whether the frame is valid for analysis * @property {Object} metadata - Additional metadata for the frame */ /** * @typedef {Object} MetricsInput * @property {Array<Frame>} frames - All frames in the sequence * @property {Array<Frame>} validFrames - Valid frames for calculation * @property {Object} metadata - Metadata about the input */ /** * @typedef {Object} PhaseOneResult * @property {Object} angles - Angle measurements that don't depend on events * @property {Object} velocity - Velocity measurements that don't depend on events * @property {Object} position - Position measurements that don't depend on events * @property {Object} acceleration - Acceleration measurements that don't depend on events * @property {Object} balance - Balance measurements that don't depend on events * @property {Object} power - Power measurements that don't depend on events * @property {Object} timeSeries - All time series data for biomechanical metrics * @property {Object} metadata - Metadata about the metrics */ /** * @typedef {Object} Bias * @property {Object} events - Event biases (frame index differences) * @property {Object} timeSeries - Time series adjustments * @property {Object} valueRanges - Value range adjustments * @property {Object} correlationFactors - Correlation factors between metrics * @property {Object} metadata - Metadata about the biases */ /** * @typedef {Object} BiasInput * @property {PhaseOneResult} phaseOneMetrics - Phase one metrics * @property {Object} referenceData - Reference data from moments.json */ /** * @typedef {Object} EventTimings * @property {Object} frontFootLanding - Front foot landing event * @property {Object} backFootLanding - Back foot landing event * @property {Object} releasePoint - Ball release event * @property {Object} followThrough - Follow through event */ /** * @typedef {Object} PhaseTwoInput * @property {PhaseOneResult} phaseOneMetrics - Phase one metrics * @property {EventTimings} events - Detected events * @property {Array<Frame>} frames - All frames in the sequence * @property {Array<Frame>} validFrames - Valid frames for calculation */ /** * @typedef {Object} PhaseTwoResult * @property {Object} timing - Timing measurements that depend on events * @property {Object} technique - Technique measurements that depend on events * @property {Object} efficiency - Efficiency measurements that depend on events * @property {Object} consistency - Consistency measurements that depend on events * @property {Object} metadata - Metadata about the metrics */ /** * @typedef {Object} FullMetricsResult * @property {Object} angles - All angle measurements * @property {Object} velocity - All velocity measurements * @property {Object} position - All position measurements * @property {Object} acceleration - All acceleration measurements * @property {Object} timing - All timing measurements * @property {Object} balance - All balance measurements * @property {Object} power - All power measurements * @property {Object} technique - All technique measurements * @property {Object} efficiency - All efficiency measurements * @property {Object} consistency - All consistency measurements * @property {Object} events - All detected events * @property {Object} timeSeries - All time series data * @property {Object} metadata - Combined metadata */ // Export all type definitions module.exports = { // These are just for JSDoc, no actual code is exported };