prithivMLmods/Gym-Exercise-Video-Analysis
Gym-Exercise-Video-Analysis Gym-Exercise-Video-Analysis is a specialized multimodal video understanding dataset comprising 500 annotated gym workout and exercise clips. It is designed for fine-tuning and evaluating Video-Language Models (Video-LLMs), visual fitness coaches, and temporal exercise analysis systems. Each entry pairs exercise videos and extracted frame sequences with in-depth textual descriptions, biomechanical observations, form evaluations, and routine tracking.… See the full description on the dataset page: https://huggingface.co/datasets/prithivMLmods/Gym-Exercise-Video-Analysis.
Gym-Exercise-Video-Analysis
Gym-Exercise-Video-Analysis is a specialized multimodal video understanding dataset comprising 500 annotated gym workout and exercise clips. It is designed for fine-tuning and evaluating Video-Language Models (Video-LLMs), visual fitness coaches, and temporal exercise analysis systems. Each entry pairs exercise videos and extracted frame sequences with in-depth textual descriptions, biomechanical observations, form evaluations, and routine tracking.
- Curator: prithivMLmods
- Total Samples: 500 rows
- Total Size: ~1.93 GB
- Format: Parquet (
video,sliced_frames,frames_response) - Modalities: Image, Video, Text
- Split: Train (500 rows)
Dataset Structure & Schema
Each record contains raw video data, sampled/sliced temporal frames, and comprehensive step-by-step descriptive analysis.
Feature Fields
Example Analysis Text
"The video captures an individual performing a seated workout routine... As you monitor your fitness routine, I can clearly see that the movement maintains steady tempo, targeted engagement of the upper body muscles, and controlled eccentric extension."
How to Use
Loading with datasets
from datasets import load_dataset
# Load dataset
dataset = load_dataset("prithivMLmods/Gym-Exercise-Video-Analysis", split="train")
# Access a single record
sample = dataset[0]
sliced_frames = sample["sliced_frames"] # List of PIL Images
analysis = sample["frames_response"] # Text analysis
print("Analysis preview:", analysis[:200])
print(f"Extracted keyframes: {len(sliced_frames)}")Video-LLM Fine-Tuning Format Example
Convert records into multi-image or video prompt conversations for models like Qwen2-VL, Video-LLaVA, or LLaVA-OneVision:
def format_for_video_llm(example):
return {
"images": example["sliced_frames"],
"prompt": "Analyze this gym exercise sequence. Identify the movement, assess form, and describe the physical execution in detail.",
"response": example["frames_response"]
}
formatted_sample = format_for_video_llm(dataset[0])Intended Uses
- Video-LLM Alignment: Instruction tuning multimodal models on multi-frame sequential reasoning and dense video captioning.
- AI Fitness & Coaching Assistants: Training automated gym form-checkers, exercise counters, and workout logging models.
- Action & Movement Recognition: Temporal motion understanding across diverse gym environments, lighting conditions, and workout equipment.
License
This dataset is distributed under the Apache-2.0 License.
