diff --git "a/Modules/PoseEstimation/pose_estimation.ipynb" "b/Modules/PoseEstimation/pose_estimation.ipynb" --- "a/Modules/PoseEstimation/pose_estimation.ipynb" +++ "b/Modules/PoseEstimation/pose_estimation.ipynb" @@ -2,9 +2,18 @@ "cells": [ { "cell_type": "code", - "execution_count": 22, + "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/theorousseaux/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", + " warnings.warn(\n" + ] + } + ], "source": [ "from ultralytics import YOLO\n", "import numpy as np" @@ -12,7 +21,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -38,13 +47,13 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "model = YOLO('yolov8n-pose.pt')\n", "\n", - "def get_keypoints_from_keypoints(model, video_path):\n", + "def get_keypoints_from_keypoints(video_path, model=YOLO('yolov8n-pose.pt')):\n", "\n", " keypoints = []\n", " results = model(video_path, save=True, show_conf=False, show_boxes=False)\n", @@ -56,7 +65,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -74,414 +83,428 @@ " boxes = r.boxes # Boxes object for bbox outputs\n", " masks = r.masks # Masks object for segment masks outputs\n", " probs = r.probs # Class probabilities for classification outputs\n", - "\n", - "video 1/1 (frame 1/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 254.3ms\n", - "video 1/1 (frame 2/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 269.2ms\n", - "video 1/1 (frame 3/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 137.3ms\n", - "video 1/1 (frame 4/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 177.4ms\n", - "video 1/1 (frame 5/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 156.0ms\n", - "video 1/1 (frame 6/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 182.3ms\n", - "video 1/1 (frame 7/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 187.9ms\n", - "video 1/1 (frame 8/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 326.9ms\n", - "video 1/1 (frame 9/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 194.0ms\n", - "video 1/1 (frame 10/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 137.3ms\n", - "video 1/1 (frame 11/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 181.8ms\n", - "video 1/1 (frame 12/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 128.6ms\n", - "video 1/1 (frame 13/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 116.1ms\n", - "video 1/1 (frame 14/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 130.4ms\n", - "video 1/1 (frame 15/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 132.2ms\n", - "video 1/1 (frame 16/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 133.5ms\n", - "video 1/1 (frame 17/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 132.5ms\n", - "video 1/1 (frame 18/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 124.4ms\n", - "video 1/1 (frame 19/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 118.6ms\n", - "video 1/1 (frame 20/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 135.1ms\n", - "video 1/1 (frame 21/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 130.3ms\n", - "video 1/1 (frame 22/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 143.8ms\n", - "video 1/1 (frame 23/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 133.1ms\n", - "video 1/1 (frame 24/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 223.9ms\n", - "video 1/1 (frame 25/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 134.5ms\n", - "video 1/1 (frame 26/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.3ms\n", - "video 1/1 (frame 27/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 134.8ms\n", - "video 1/1 (frame 28/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 156.6ms\n", - "video 1/1 (frame 29/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 115.2ms\n", - "video 1/1 (frame 30/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 131.4ms\n", - "video 1/1 (frame 31/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 135.8ms\n", - "video 1/1 (frame 32/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 132.2ms\n", - "video 1/1 (frame 33/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 129.4ms\n", - "video 1/1 (frame 34/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 135.1ms\n", - "video 1/1 (frame 35/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.2ms\n", - "video 1/1 (frame 36/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 120.7ms\n", - "video 1/1 (frame 37/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 152.7ms\n", - "video 1/1 (frame 38/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 124.5ms\n", - "video 1/1 (frame 39/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 131.0ms\n", - "video 1/1 (frame 40/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 132.0ms\n", - "video 1/1 (frame 41/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 116.9ms\n", - "video 1/1 (frame 42/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 130.1ms\n", - "video 1/1 (frame 43/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 166.0ms\n", - "video 1/1 (frame 44/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.7ms\n", - "video 1/1 (frame 45/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 114.1ms\n", - "video 1/1 (frame 46/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 136.6ms\n", - "video 1/1 (frame 47/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 154.5ms\n", - "video 1/1 (frame 48/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 161.2ms\n", - "video 1/1 (frame 49/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 210.8ms\n", - "video 1/1 (frame 50/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 211.0ms\n", - "video 1/1 (frame 51/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 176.2ms\n", - "video 1/1 (frame 52/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 146.4ms\n", - "video 1/1 (frame 53/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 148.0ms\n", - "video 1/1 (frame 54/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 157.5ms\n", - "video 1/1 (frame 55/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 130.5ms\n", - "video 1/1 (frame 56/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 134.9ms\n", - "video 1/1 (frame 57/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 131.1ms\n", - "video 1/1 (frame 58/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.5ms\n", - "video 1/1 (frame 59/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 135.9ms\n", - "video 1/1 (frame 60/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 129.5ms\n", - "video 1/1 (frame 61/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 150.3ms\n", - "video 1/1 (frame 62/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 162.3ms\n", - "video 1/1 (frame 63/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 148.8ms\n", - "video 1/1 (frame 64/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 162.5ms\n", - "video 1/1 (frame 65/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 161.3ms\n", - "video 1/1 (frame 66/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 155.9ms\n", - "video 1/1 (frame 67/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 159.1ms\n", - "video 1/1 (frame 68/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 161.8ms\n", - "video 1/1 (frame 69/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 159.5ms\n", - "video 1/1 (frame 70/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 158.4ms\n", - "video 1/1 (frame 71/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 160.5ms\n", - "video 1/1 (frame 72/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 145.9ms\n", - "video 1/1 (frame 73/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 132.6ms\n", - "video 1/1 (frame 74/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 130.0ms\n", - "video 1/1 (frame 75/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 127.0ms\n", - "video 1/1 (frame 76/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 140.6ms\n", - "video 1/1 (frame 77/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 135.5ms\n", - "video 1/1 (frame 78/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 164.7ms\n", - "video 1/1 (frame 79/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 171.5ms\n", - "video 1/1 (frame 80/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 157.1ms\n", - "video 1/1 (frame 81/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 322.1ms\n", - "video 1/1 (frame 82/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 145.6ms\n", - "video 1/1 (frame 83/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 195.0ms\n", - "video 1/1 (frame 84/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 140.5ms\n", - "video 1/1 (frame 85/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 133.6ms\n", - "video 1/1 (frame 86/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 186.5ms\n", - "video 1/1 (frame 87/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 173.6ms\n", - "video 1/1 (frame 88/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 163.2ms\n", - "video 1/1 (frame 89/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.4ms\n", - "video 1/1 (frame 90/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 125.3ms\n", - "video 1/1 (frame 91/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 124.7ms\n", - "video 1/1 (frame 92/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 133.4ms\n", - "video 1/1 (frame 93/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 128.0ms\n", - "video 1/1 (frame 94/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 135.7ms\n", - "video 1/1 (frame 95/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 158.6ms\n", - "video 1/1 (frame 96/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 143.4ms\n", - "video 1/1 (frame 97/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 136.5ms\n", - "video 1/1 (frame 98/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 127.2ms\n", - "video 1/1 (frame 99/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 124.7ms\n", - "video 1/1 (frame 100/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 156.2ms\n", - "video 1/1 (frame 101/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 138.8ms\n", - "video 1/1 (frame 102/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 139.8ms\n", - "video 1/1 (frame 103/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 132.3ms\n", - "video 1/1 (frame 104/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 190.6ms\n", - "video 1/1 (frame 105/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 254.7ms\n", - "video 1/1 (frame 106/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 150.5ms\n", - "video 1/1 (frame 107/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 134.9ms\n", - "video 1/1 (frame 108/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 150.1ms\n", - "video 1/1 (frame 109/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 140.7ms\n", - "video 1/1 (frame 110/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 133.5ms\n", - "video 1/1 (frame 111/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 159.8ms\n", - "video 1/1 (frame 112/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 166.6ms\n", - "video 1/1 (frame 113/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 144.8ms\n", - "video 1/1 (frame 114/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 210.6ms\n", - "video 1/1 (frame 115/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 166.1ms\n", - "video 1/1 (frame 116/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 132.0ms\n", - "video 1/1 (frame 117/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.5ms\n", - "video 1/1 (frame 118/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 150.0ms\n", - "video 1/1 (frame 119/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 121.0ms\n", - "video 1/1 (frame 120/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 137.7ms\n", - "video 1/1 (frame 121/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 128.9ms\n", - "video 1/1 (frame 122/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.4ms\n", - "video 1/1 (frame 123/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 128.7ms\n", - "video 1/1 (frame 124/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 143.0ms\n", - "video 1/1 (frame 125/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 141.9ms\n", - "video 1/1 (frame 126/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 128.2ms\n", - "video 1/1 (frame 127/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 133.5ms\n", - "video 1/1 (frame 128/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 138.0ms\n", - "video 1/1 (frame 129/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 135.2ms\n", - "video 1/1 (frame 130/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 130.8ms\n", - "video 1/1 (frame 131/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 159.7ms\n", - "video 1/1 (frame 132/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 273.5ms\n", - "video 1/1 (frame 133/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 193.9ms\n", - "video 1/1 (frame 134/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 130.4ms\n", - "video 1/1 (frame 135/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 150.2ms\n", - "video 1/1 (frame 136/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 144.5ms\n", - "video 1/1 (frame 137/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 142.6ms\n", - "video 1/1 (frame 138/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 146.8ms\n", - "video 1/1 (frame 139/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 162.3ms\n", - "video 1/1 (frame 140/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 160.4ms\n", - "video 1/1 (frame 141/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 136.8ms\n", - "video 1/1 (frame 142/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 177.3ms\n", - "video 1/1 (frame 143/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 136.9ms\n", - "video 1/1 (frame 144/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 143.9ms\n", - "video 1/1 (frame 145/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 140.2ms\n", - "video 1/1 (frame 146/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 151.2ms\n", - "video 1/1 (frame 147/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 134.6ms\n", - "video 1/1 (frame 148/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 144.4ms\n", - "video 1/1 (frame 149/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 138.3ms\n", - "video 1/1 (frame 150/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 131.3ms\n", - "video 1/1 (frame 151/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 143.6ms\n", - "video 1/1 (frame 152/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 160.9ms\n", - "video 1/1 (frame 153/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 256.6ms\n", - "video 1/1 (frame 154/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 213.9ms\n", - "video 1/1 (frame 155/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 228.7ms\n", - "video 1/1 (frame 156/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 140.8ms\n", - "video 1/1 (frame 157/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 150.5ms\n", - "video 1/1 (frame 158/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 137.1ms\n", - "video 1/1 (frame 159/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 157.7ms\n", - "video 1/1 (frame 160/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 184.1ms\n", - "video 1/1 (frame 161/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 161.4ms\n", - "video 1/1 (frame 162/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 129.1ms\n", - "video 1/1 (frame 163/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 132.1ms\n", - "video 1/1 (frame 164/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 162.6ms\n", - "video 1/1 (frame 165/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 179.7ms\n", - "video 1/1 (frame 166/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 134.5ms\n", - "video 1/1 (frame 167/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 128.2ms\n", - "video 1/1 (frame 168/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 147.5ms\n", - "video 1/1 (frame 169/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 138.7ms\n", - "video 1/1 (frame 170/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 133.6ms\n", - "video 1/1 (frame 171/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 144.0ms\n", - "video 1/1 (frame 172/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 142.1ms\n", - "video 1/1 (frame 173/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 146.8ms\n", - "video 1/1 (frame 174/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 131.3ms\n", - "video 1/1 (frame 175/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 127.2ms\n", - "video 1/1 (frame 176/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 149.2ms\n", - "video 1/1 (frame 177/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 157.5ms\n", - "video 1/1 (frame 178/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 144.8ms\n", - "video 1/1 (frame 179/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 132.2ms\n", - "video 1/1 (frame 180/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 149.9ms\n", - "video 1/1 (frame 181/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 163.5ms\n", - "video 1/1 (frame 182/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 169.8ms\n", - "video 1/1 (frame 183/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 133.5ms\n", - "video 1/1 (frame 184/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 145.3ms\n", - "video 1/1 (frame 185/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 136.5ms\n", - "video 1/1 (frame 186/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 150.9ms\n", - "video 1/1 (frame 187/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 160.5ms\n", - "video 1/1 (frame 188/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 141.4ms\n", - "video 1/1 (frame 189/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 193.2ms\n", - "video 1/1 (frame 190/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 314.3ms\n", - "video 1/1 (frame 191/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 149.7ms\n", - "video 1/1 (frame 192/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 139.6ms\n", - "video 1/1 (frame 193/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 130.1ms\n", - "video 1/1 (frame 194/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 150.7ms\n", - "video 1/1 (frame 195/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 141.8ms\n", - "video 1/1 (frame 196/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 131.2ms\n", - "video 1/1 (frame 197/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 131.5ms\n", - "video 1/1 (frame 198/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 138.4ms\n", - "video 1/1 (frame 199/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 124.1ms\n", - "video 1/1 (frame 200/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 168.9ms\n", - "video 1/1 (frame 201/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 145.1ms\n", - "video 1/1 (frame 202/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 120.0ms\n", - "video 1/1 (frame 203/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 144.2ms\n", - "video 1/1 (frame 204/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 160.6ms\n", - "video 1/1 (frame 205/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 142.4ms\n", - "video 1/1 (frame 206/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 147.6ms\n", - "video 1/1 (frame 207/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 123.4ms\n", - "video 1/1 (frame 208/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 135.3ms\n", - "video 1/1 (frame 209/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 150.9ms\n", - "video 1/1 (frame 210/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 121.4ms\n", - "video 1/1 (frame 211/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 163.1ms\n", - "video 1/1 (frame 212/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 157.8ms\n", - "video 1/1 (frame 213/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 210.3ms\n", - "video 1/1 (frame 214/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 181.0ms\n", - "video 1/1 (frame 215/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 132.8ms\n", - "video 1/1 (frame 216/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 184.4ms\n", - "video 1/1 (frame 217/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 170.5ms\n", - "video 1/1 (frame 218/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 130.0ms\n", - "video 1/1 (frame 219/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 134.0ms\n", - "video 1/1 (frame 220/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 133.7ms\n", - "video 1/1 (frame 221/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 160.6ms\n", - "video 1/1 (frame 222/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 176.7ms\n", - "video 1/1 (frame 223/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 222.3ms\n", - "video 1/1 (frame 224/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 152.7ms\n", - "video 1/1 (frame 225/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 152.4ms\n", - "video 1/1 (frame 226/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 164.7ms\n", - "video 1/1 (frame 227/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 161.2ms\n", - "video 1/1 (frame 228/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 159.6ms\n", - "video 1/1 (frame 229/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 165.1ms\n", - "video 1/1 (frame 230/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 170.9ms\n", - "video 1/1 (frame 231/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 157.6ms\n", - "video 1/1 (frame 232/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 147.7ms\n", - "video 1/1 (frame 233/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 145.7ms\n", - "video 1/1 (frame 234/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 179.6ms\n", - "video 1/1 (frame 235/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 161.2ms\n", - "video 1/1 (frame 236/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 153.9ms\n", - "video 1/1 (frame 237/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 161.4ms\n", - "video 1/1 (frame 238/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 189.4ms\n", - "video 1/1 (frame 239/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 183.8ms\n", - "video 1/1 (frame 240/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 183.4ms\n", - "video 1/1 (frame 241/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 153.8ms\n", - "video 1/1 (frame 242/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 170.5ms\n", - "video 1/1 (frame 243/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 224.5ms\n", - "video 1/1 (frame 244/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 214.4ms\n", - "video 1/1 (frame 245/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 170.1ms\n", - "video 1/1 (frame 246/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 171.5ms\n", - "video 1/1 (frame 247/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 216.4ms\n", - "video 1/1 (frame 248/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 195.4ms\n", - "video 1/1 (frame 249/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 154.0ms\n", - "video 1/1 (frame 250/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 423.4ms\n", - "video 1/1 (frame 251/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 223.5ms\n", - "video 1/1 (frame 252/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 212.1ms\n", - "video 1/1 (frame 253/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 193.1ms\n", - "video 1/1 (frame 254/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 198.7ms\n", - "video 1/1 (frame 255/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 183.6ms\n", - "video 1/1 (frame 256/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 163.4ms\n", - "video 1/1 (frame 257/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 150.5ms\n", - "video 1/1 (frame 258/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 218.2ms\n", - "video 1/1 (frame 259/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 543.1ms\n", - "video 1/1 (frame 260/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 244.1ms\n", - "video 1/1 (frame 261/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 150.9ms\n", - "video 1/1 (frame 262/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 190.9ms\n", - "video 1/1 (frame 263/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 144.3ms\n", - "video 1/1 (frame 264/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 216.1ms\n", - "video 1/1 (frame 265/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 211.2ms\n", - "video 1/1 (frame 266/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 209.8ms\n", - "video 1/1 (frame 267/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 204.8ms\n", - "video 1/1 (frame 268/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 173.2ms\n", - "video 1/1 (frame 269/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 172.0ms\n", - "video 1/1 (frame 270/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 153.6ms\n", - "video 1/1 (frame 271/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 154.2ms\n", - "video 1/1 (frame 272/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 164.4ms\n", - "video 1/1 (frame 273/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 146.6ms\n", - "video 1/1 (frame 274/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 192.0ms\n", - "video 1/1 (frame 275/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 221.1ms\n", - "video 1/1 (frame 276/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 298.3ms\n", - "video 1/1 (frame 277/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 166.2ms\n", - "video 1/1 (frame 278/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 186.9ms\n", - "video 1/1 (frame 279/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 329.5ms\n", - "video 1/1 (frame 280/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 205.3ms\n", - "video 1/1 (frame 281/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 132.8ms\n", - "video 1/1 (frame 282/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 136.7ms\n", - "video 1/1 (frame 283/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 152.5ms\n", - "video 1/1 (frame 284/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 186.3ms\n", - "video 1/1 (frame 285/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 138.8ms\n", - "video 1/1 (frame 286/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 123.7ms\n", - "video 1/1 (frame 287/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 132.4ms\n", - "video 1/1 (frame 288/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 132.1ms\n", - "video 1/1 (frame 289/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 128.6ms\n", - "video 1/1 (frame 290/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 153.7ms\n", - "video 1/1 (frame 291/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 115.8ms\n", - "video 1/1 (frame 292/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 127.5ms\n", - "video 1/1 (frame 293/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 131.0ms\n", - "video 1/1 (frame 294/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.9ms\n", - "video 1/1 (frame 295/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 118.4ms\n", - "video 1/1 (frame 296/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 132.0ms\n", - "video 1/1 (frame 297/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 127.7ms\n", - "video 1/1 (frame 298/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.3ms\n", - "video 1/1 (frame 299/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 116.9ms\n", - "video 1/1 (frame 300/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 116.7ms\n", - "video 1/1 (frame 301/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 118.9ms\n", - "video 1/1 (frame 302/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 129.9ms\n", - "video 1/1 (frame 303/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 128.5ms\n", - "video 1/1 (frame 304/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 158.2ms\n", - "video 1/1 (frame 305/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 191.6ms\n", - "video 1/1 (frame 306/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 132.5ms\n", - "video 1/1 (frame 307/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 128.6ms\n", - "video 1/1 (frame 308/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 120.3ms\n", - "video 1/1 (frame 309/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 118.7ms\n", - "video 1/1 (frame 310/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 117.6ms\n", - "video 1/1 (frame 311/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 117.6ms\n", - "video 1/1 (frame 312/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 129.3ms\n", - "video 1/1 (frame 313/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 123.8ms\n", - "video 1/1 (frame 314/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.1ms\n", - "video 1/1 (frame 315/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 121.0ms\n", - "video 1/1 (frame 316/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 157.6ms\n", - "video 1/1 (frame 317/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 160.1ms\n", - "video 1/1 (frame 318/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 117.9ms\n", - "video 1/1 (frame 319/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 125.7ms\n", - "video 1/1 (frame 320/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 130.2ms\n", - "video 1/1 (frame 321/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 123.2ms\n", - "video 1/1 (frame 322/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 121.3ms\n", - "video 1/1 (frame 323/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 117.6ms\n", - "video 1/1 (frame 324/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 131.6ms\n", - "video 1/1 (frame 325/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 127.0ms\n", - "video 1/1 (frame 326/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 117.3ms\n", - "video 1/1 (frame 327/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 116.3ms\n", - "video 1/1 (frame 328/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 127.7ms\n", - "video 1/1 (frame 329/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 119.9ms\n", - "video 1/1 (frame 330/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 119.8ms\n", - "video 1/1 (frame 331/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 143.5ms\n", - "video 1/1 (frame 332/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 136.8ms\n", - "video 1/1 (frame 333/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 120.7ms\n", - "video 1/1 (frame 334/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 129.6ms\n", - "video 1/1 (frame 335/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.1ms\n", - "video 1/1 (frame 336/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 121.2ms\n", - "video 1/1 (frame 337/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 121.9ms\n", - "video 1/1 (frame 338/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 129.9ms\n", - "video 1/1 (frame 339/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 127.4ms\n", - "video 1/1 (frame 340/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 117.5ms\n", - "video 1/1 (frame 341/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 116.7ms\n", - "video 1/1 (frame 342/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 128.7ms\n", - "video 1/1 (frame 343/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 124.7ms\n", - "video 1/1 (frame 344/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 124.8ms\n", - "video 1/1 (frame 345/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 134.7ms\n", - "video 1/1 (frame 346/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 131.8ms\n", - "video 1/1 (frame 347/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.4ms\n", - "video 1/1 (frame 348/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 120.9ms\n", - "video 1/1 (frame 349/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 119.7ms\n", - "video 1/1 (frame 350/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 129.7ms\n", - "video 1/1 (frame 351/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.7ms\n", - "video 1/1 (frame 352/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 124.9ms\n", - "video 1/1 (frame 353/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 119.9ms\n", - "video 1/1 (frame 354/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 130.7ms\n", - "video 1/1 (frame 355/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 253.5ms\n", - "video 1/1 (frame 356/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 129.0ms\n", - "video 1/1 (frame 357/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 147.1ms\n", - "video 1/1 (frame 358/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 164.7ms\n", - "video 1/1 (frame 359/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 149.0ms\n", - "video 1/1 (frame 360/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 118.9ms\n", - "video 1/1 (frame 361/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 137.0ms\n", - "video 1/1 (frame 362/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 157.4ms\n", - "video 1/1 (frame 363/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 166.1ms\n", - "video 1/1 (frame 364/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 186.2ms\n", - "video 1/1 (frame 365/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 229.3ms\n", - "video 1/1 (frame 366/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 230.7ms\n", - "video 1/1 (frame 367/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 229.5ms\n", - "video 1/1 (frame 368/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 203.9ms\n", - "video 1/1 (frame 369/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 160.9ms\n", - "video 1/1 (frame 370/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 187.3ms\n", - "video 1/1 (frame 371/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 188.5ms\n", - "video 1/1 (frame 372/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 218.7ms\n", - "video 1/1 (frame 373/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 194.2ms\n", - "video 1/1 (frame 374/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 211.1ms\n", - "video 1/1 (frame 375/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 228.8ms\n", - "video 1/1 (frame 376/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 184.2ms\n", - "video 1/1 (frame 377/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 248.2ms\n", - "video 1/1 (frame 378/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 169.2ms\n", - "video 1/1 (frame 379/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 200.7ms\n", - "video 1/1 (frame 380/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 179.2ms\n", - "video 1/1 (frame 381/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 184.2ms\n", - "video 1/1 (frame 382/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 164.9ms\n", - "video 1/1 (frame 383/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 187.6ms\n", - "video 1/1 (frame 384/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 178.6ms\n", - "video 1/1 (frame 385/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 201.7ms\n", - "video 1/1 (frame 386/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 168.6ms\n", - "video 1/1 (frame 387/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 210.1ms\n", - "video 1/1 (frame 388/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 156.3ms\n", - "video 1/1 (frame 389/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 135.6ms\n", - "video 1/1 (frame 390/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 125.6ms\n", - "video 1/1 (frame 391/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 132.5ms\n", - "video 1/1 (frame 392/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 129.2ms\n", - "video 1/1 (frame 393/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.2ms\n", - "video 1/1 (frame 394/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 121.9ms\n", - "video 1/1 (frame 395/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 123.4ms\n", - "video 1/1 (frame 396/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 151.9ms\n", - "video 1/1 (frame 397/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 152.0ms\n", - "video 1/1 (frame 398/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 154.4ms\n", - "video 1/1 (frame 399/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 137.4ms\n", - "video 1/1 (frame 400/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 153.6ms\n", - "video 1/1 (frame 401/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 135.8ms\n", - "video 1/1 (frame 402/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.4ms\n", - "video 1/1 (frame 403/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.4ms\n", - "video 1/1 (frame 404/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 143.5ms\n", - "video 1/1 (frame 405/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.9ms\n", - "Speed: 7.5ms preprocess, 156.2ms inference, 1.5ms postprocess per image at shape (1, 3, 640, 576)\n", - "Results saved to \u001b[1m/Users/theorousseaux/Documents/Hackathon/FitnessEquation/runs/pose/predict\u001b[0m\n" + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/theorousseaux/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", + " from .autonotebook import tqdm as notebook_tqdm\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "video 1/1 (frame 1/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 274.0ms\n", + "video 1/1 (frame 2/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 146.9ms\n", + "video 1/1 (frame 3/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 129.1ms\n", + "video 1/1 (frame 4/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 124.3ms\n", + "video 1/1 (frame 5/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 110.4ms\n", + "video 1/1 (frame 6/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 120.2ms\n", + "video 1/1 (frame 7/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 121.1ms\n", + "video 1/1 (frame 8/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.6ms\n", + "video 1/1 (frame 9/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 128.0ms\n", + "video 1/1 (frame 10/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 128.2ms\n", + "video 1/1 (frame 11/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 114.1ms\n", + "video 1/1 (frame 12/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 127.8ms\n", + "video 1/1 (frame 13/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 124.2ms\n", + "video 1/1 (frame 14/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 116.3ms\n", + "video 1/1 (frame 15/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 99.0ms\n", + "video 1/1 (frame 16/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 97.7ms\n", + "video 1/1 (frame 17/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 131.0ms\n", + "video 1/1 (frame 18/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 137.3ms\n", + "video 1/1 (frame 19/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 116.8ms\n", + "video 1/1 (frame 20/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 128.4ms\n", + "video 1/1 (frame 21/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 429.5ms\n", + "video 1/1 (frame 22/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 416.2ms\n", + "video 1/1 (frame 23/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 415.0ms\n", + "video 1/1 (frame 24/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 571.1ms\n", + "video 1/1 (frame 25/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 593.0ms\n", + "video 1/1 (frame 26/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 228.0ms\n", + "video 1/1 (frame 27/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 162.8ms\n", + "video 1/1 (frame 28/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 182.7ms\n", + "video 1/1 (frame 29/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 403.5ms\n", + "video 1/1 (frame 30/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 662.1ms\n", + "video 1/1 (frame 31/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 192.6ms\n", + "video 1/1 (frame 32/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 290.8ms\n", + "video 1/1 (frame 33/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 204.4ms\n", + "video 1/1 (frame 34/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 217.1ms\n", + "video 1/1 (frame 35/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 164.3ms\n", + "video 1/1 (frame 36/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 189.6ms\n", + "video 1/1 (frame 37/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 218.5ms\n", + "video 1/1 (frame 38/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 175.5ms\n", + "video 1/1 (frame 39/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.0ms\n", + "video 1/1 (frame 40/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 584.6ms\n", + "video 1/1 (frame 41/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 167.4ms\n", + "video 1/1 (frame 42/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 166.2ms\n", + "video 1/1 (frame 43/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 142.9ms\n", + "video 1/1 (frame 44/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 185.5ms\n", + "video 1/1 (frame 45/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 192.9ms\n", + "video 1/1 (frame 46/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 123.2ms\n", + "video 1/1 (frame 47/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 131.0ms\n", + "video 1/1 (frame 48/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 147.2ms\n", + "video 1/1 (frame 49/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 128.5ms\n", + "video 1/1 (frame 50/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 120.7ms\n", + "video 1/1 (frame 51/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 223.2ms\n", + "video 1/1 (frame 52/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 148.8ms\n", + "video 1/1 (frame 53/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 154.8ms\n", + "video 1/1 (frame 54/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.2ms\n", + "video 1/1 (frame 55/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 168.0ms\n", + "video 1/1 (frame 56/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 142.5ms\n", + "video 1/1 (frame 57/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 130.0ms\n", + "video 1/1 (frame 58/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 112.9ms\n", + "video 1/1 (frame 59/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 107.8ms\n", + "video 1/1 (frame 60/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 137.7ms\n", + "video 1/1 (frame 61/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 135.2ms\n", + "video 1/1 (frame 62/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 140.3ms\n", + "video 1/1 (frame 63/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 138.8ms\n", + "video 1/1 (frame 64/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 136.2ms\n", + "video 1/1 (frame 65/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 146.2ms\n", + "video 1/1 (frame 66/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 147.7ms\n", + "video 1/1 (frame 67/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.9ms\n", + "video 1/1 (frame 68/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 125.8ms\n", + "video 1/1 (frame 69/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 127.9ms\n", + "video 1/1 (frame 70/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 152.9ms\n", + "video 1/1 (frame 71/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 135.4ms\n", + "video 1/1 (frame 72/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 142.8ms\n", + "video 1/1 (frame 73/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 140.1ms\n", + "video 1/1 (frame 74/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 133.1ms\n", + "video 1/1 (frame 75/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 137.4ms\n", + "video 1/1 (frame 76/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 205.4ms\n", + "video 1/1 (frame 77/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 133.1ms\n", + "video 1/1 (frame 78/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 141.9ms\n", + "video 1/1 (frame 79/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 118.7ms\n", + "video 1/1 (frame 80/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 306.9ms\n", + "video 1/1 (frame 81/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 143.6ms\n", + "video 1/1 (frame 82/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.6ms\n", + "video 1/1 (frame 83/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 132.2ms\n", + "video 1/1 (frame 84/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 133.0ms\n", + "video 1/1 (frame 85/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 119.7ms\n", + "video 1/1 (frame 86/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 121.2ms\n", + "video 1/1 (frame 87/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 144.2ms\n", + "video 1/1 (frame 88/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 236.8ms\n", + "video 1/1 (frame 89/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 242.0ms\n", + "video 1/1 (frame 90/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 129.8ms\n", + "video 1/1 (frame 91/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 130.2ms\n", + "video 1/1 (frame 92/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 191.4ms\n", + "video 1/1 (frame 93/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 248.8ms\n", + "video 1/1 (frame 94/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 157.7ms\n", + "video 1/1 (frame 95/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 203.4ms\n", + "video 1/1 (frame 96/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 359.6ms\n", + "video 1/1 (frame 97/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 157.3ms\n", + "video 1/1 (frame 98/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 168.4ms\n", + "video 1/1 (frame 99/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 129.3ms\n", + "video 1/1 (frame 100/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 128.5ms\n", + "video 1/1 (frame 101/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.7ms\n", + "video 1/1 (frame 102/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 256.6ms\n", + "video 1/1 (frame 103/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.6ms\n", + "video 1/1 (frame 104/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 124.8ms\n", + "video 1/1 (frame 105/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.2ms\n", + "video 1/1 (frame 106/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 128.1ms\n", + "video 1/1 (frame 107/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 210.8ms\n", + "video 1/1 (frame 108/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 145.8ms\n", + "video 1/1 (frame 109/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 115.1ms\n", + "video 1/1 (frame 110/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 112.0ms\n", + "video 1/1 (frame 111/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 142.3ms\n", + "video 1/1 (frame 112/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 178.1ms\n", + "video 1/1 (frame 113/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 125.4ms\n", + "video 1/1 (frame 114/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 106.9ms\n", + "video 1/1 (frame 115/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 131.0ms\n", + "video 1/1 (frame 116/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 142.3ms\n", + "video 1/1 (frame 117/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 127.4ms\n", + "video 1/1 (frame 118/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 140.2ms\n", + "video 1/1 (frame 119/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.3ms\n", + "video 1/1 (frame 120/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 142.4ms\n", + "video 1/1 (frame 121/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 115.0ms\n", + "video 1/1 (frame 122/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 107.0ms\n", + "video 1/1 (frame 123/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 115.1ms\n", + "video 1/1 (frame 124/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 139.4ms\n", + "video 1/1 (frame 125/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 172.9ms\n", + "video 1/1 (frame 126/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 133.9ms\n", + "video 1/1 (frame 127/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 153.9ms\n", + "video 1/1 (frame 128/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 155.1ms\n", + "video 1/1 (frame 129/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 116.9ms\n", + "video 1/1 (frame 130/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.8ms\n", + "video 1/1 (frame 131/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 106.7ms\n", + "video 1/1 (frame 132/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 142.6ms\n", + "video 1/1 (frame 133/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 117.2ms\n", + "video 1/1 (frame 134/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 145.7ms\n", + "video 1/1 (frame 135/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 140.7ms\n", + "video 1/1 (frame 136/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 143.7ms\n", + "video 1/1 (frame 137/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 151.5ms\n", + "video 1/1 (frame 138/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 169.4ms\n", + "video 1/1 (frame 139/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 145.8ms\n", + "video 1/1 (frame 140/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 143.6ms\n", + "video 1/1 (frame 141/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 158.0ms\n", + "video 1/1 (frame 142/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 132.3ms\n", + "video 1/1 (frame 143/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 159.3ms\n", + "video 1/1 (frame 144/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 162.8ms\n", + "video 1/1 (frame 145/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 146.0ms\n", + "video 1/1 (frame 146/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 152.5ms\n", + "video 1/1 (frame 147/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 145.8ms\n", + "video 1/1 (frame 148/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 160.9ms\n", + "video 1/1 (frame 149/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 214.2ms\n", + "video 1/1 (frame 150/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 142.4ms\n", + "video 1/1 (frame 151/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 140.9ms\n", + "video 1/1 (frame 152/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 132.4ms\n", + "video 1/1 (frame 153/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 156.0ms\n", + "video 1/1 (frame 154/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 172.5ms\n", + "video 1/1 (frame 155/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 189.6ms\n", + "video 1/1 (frame 156/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 173.7ms\n", + "video 1/1 (frame 157/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 125.2ms\n", + "video 1/1 (frame 158/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.7ms\n", + "video 1/1 (frame 159/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 133.3ms\n", + "video 1/1 (frame 160/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 123.5ms\n", + "video 1/1 (frame 161/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 156.3ms\n", + "video 1/1 (frame 162/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 151.4ms\n", + "video 1/1 (frame 163/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 163.5ms\n", + "video 1/1 (frame 164/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 288.9ms\n", + "video 1/1 (frame 165/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 199.6ms\n", + "video 1/1 (frame 166/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 141.9ms\n", + "video 1/1 (frame 167/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 132.5ms\n", + "video 1/1 (frame 168/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 174.6ms\n", + "video 1/1 (frame 169/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 172.1ms\n", + "video 1/1 (frame 170/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 364.7ms\n", + "video 1/1 (frame 171/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 148.5ms\n", + "video 1/1 (frame 172/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 159.7ms\n", + "video 1/1 (frame 173/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 187.6ms\n", + "video 1/1 (frame 174/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.5ms\n", + "video 1/1 (frame 175/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 115.8ms\n", + "video 1/1 (frame 176/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 123.2ms\n", + "video 1/1 (frame 177/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 115.8ms\n", + "video 1/1 (frame 178/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 117.1ms\n", + "video 1/1 (frame 179/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 155.0ms\n", + "video 1/1 (frame 180/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 168.8ms\n", + "video 1/1 (frame 181/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 190.0ms\n", + "video 1/1 (frame 182/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 186.4ms\n", + "video 1/1 (frame 183/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 143.3ms\n", + "video 1/1 (frame 184/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 175.7ms\n", + "video 1/1 (frame 185/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 191.5ms\n", + "video 1/1 (frame 186/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 217.2ms\n", + "video 1/1 (frame 187/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 212.5ms\n", + "video 1/1 (frame 188/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 166.4ms\n", + "video 1/1 (frame 189/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 119.2ms\n", + "video 1/1 (frame 190/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 115.8ms\n", + "video 1/1 (frame 191/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 114.2ms\n", + "video 1/1 (frame 192/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 132.0ms\n", + "video 1/1 (frame 193/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 138.5ms\n", + "video 1/1 (frame 194/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.8ms\n", + "video 1/1 (frame 195/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 159.1ms\n", + "video 1/1 (frame 196/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 153.7ms\n", + "video 1/1 (frame 197/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 159.5ms\n", + "video 1/1 (frame 198/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 120.1ms\n", + "video 1/1 (frame 199/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 110.8ms\n", + "video 1/1 (frame 200/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 115.3ms\n", + "video 1/1 (frame 201/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 114.2ms\n", + "video 1/1 (frame 202/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 109.7ms\n", + "video 1/1 (frame 203/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 120.7ms\n", + "video 1/1 (frame 204/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 197.9ms\n", + "video 1/1 (frame 205/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 158.2ms\n", + "video 1/1 (frame 206/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 169.8ms\n", + "video 1/1 (frame 207/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 140.8ms\n", + "video 1/1 (frame 208/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 164.7ms\n", + "video 1/1 (frame 209/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 349.8ms\n", + "video 1/1 (frame 210/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 153.2ms\n", + "video 1/1 (frame 211/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 150.6ms\n", + "video 1/1 (frame 212/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 183.6ms\n", + "video 1/1 (frame 213/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 156.9ms\n", + "video 1/1 (frame 214/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 140.6ms\n", + "video 1/1 (frame 215/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 168.8ms\n", + "video 1/1 (frame 216/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 206.1ms\n", + "video 1/1 (frame 217/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 173.7ms\n", + "video 1/1 (frame 218/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 176.4ms\n", + "video 1/1 (frame 219/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 164.8ms\n", + "video 1/1 (frame 220/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 162.0ms\n", + "video 1/1 (frame 221/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 134.1ms\n", + "video 1/1 (frame 222/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 143.5ms\n", + "video 1/1 (frame 223/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 123.3ms\n", + "video 1/1 (frame 224/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 116.9ms\n", + "video 1/1 (frame 225/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 113.9ms\n", + "video 1/1 (frame 226/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 264.8ms\n", + "video 1/1 (frame 227/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 194.7ms\n", + "video 1/1 (frame 228/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 138.2ms\n", + "video 1/1 (frame 229/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 127.1ms\n", + "video 1/1 (frame 230/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 141.1ms\n", + "video 1/1 (frame 231/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 147.1ms\n", + "video 1/1 (frame 232/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 121.4ms\n", + "video 1/1 (frame 233/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 131.9ms\n", + "video 1/1 (frame 234/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 145.2ms\n", + "video 1/1 (frame 235/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 199.4ms\n", + "video 1/1 (frame 236/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 173.8ms\n", + "video 1/1 (frame 237/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 131.4ms\n", + "video 1/1 (frame 238/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 128.5ms\n", + "video 1/1 (frame 239/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 218.3ms\n", + "video 1/1 (frame 240/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 178.8ms\n", + "video 1/1 (frame 241/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 166.7ms\n", + "video 1/1 (frame 242/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 166.3ms\n", + "video 1/1 (frame 243/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 154.5ms\n", + "video 1/1 (frame 244/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 134.9ms\n", + "video 1/1 (frame 245/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 182.3ms\n", + "video 1/1 (frame 246/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 244.9ms\n", + "video 1/1 (frame 247/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 241.4ms\n", + "video 1/1 (frame 248/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 128.0ms\n", + "video 1/1 (frame 249/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 136.5ms\n", + "video 1/1 (frame 250/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 127.5ms\n", + "video 1/1 (frame 251/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 120.2ms\n", + "video 1/1 (frame 252/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 108.1ms\n", + "video 1/1 (frame 253/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 109.7ms\n", + "video 1/1 (frame 254/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 233.7ms\n", + "video 1/1 (frame 255/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 210.5ms\n", + "video 1/1 (frame 256/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 116.2ms\n", + "video 1/1 (frame 257/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 119.8ms\n", + "video 1/1 (frame 258/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 169.1ms\n", + "video 1/1 (frame 259/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.5ms\n", + "video 1/1 (frame 260/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 109.9ms\n", + "video 1/1 (frame 261/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 106.3ms\n", + "video 1/1 (frame 262/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 147.9ms\n", + "video 1/1 (frame 263/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 113.3ms\n", + "video 1/1 (frame 264/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 105.5ms\n", + "video 1/1 (frame 265/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 103.8ms\n", + "video 1/1 (frame 266/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 108.3ms\n", + "video 1/1 (frame 267/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 138.7ms\n", + "video 1/1 (frame 268/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 104.1ms\n", + "video 1/1 (frame 269/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 104.5ms\n", + "video 1/1 (frame 270/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 115.3ms\n", + "video 1/1 (frame 271/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 107.4ms\n", + "video 1/1 (frame 272/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 113.0ms\n", + "video 1/1 (frame 273/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 127.7ms\n", + "video 1/1 (frame 274/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 129.7ms\n", + "video 1/1 (frame 275/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.3ms\n", + "video 1/1 (frame 276/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 103.7ms\n", + "video 1/1 (frame 277/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 143.5ms\n", + "video 1/1 (frame 278/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 106.4ms\n", + "video 1/1 (frame 279/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 101.9ms\n", + "video 1/1 (frame 280/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 106.5ms\n", + "video 1/1 (frame 281/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 121.1ms\n", + "video 1/1 (frame 282/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.3ms\n", + "video 1/1 (frame 283/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 146.5ms\n", + "video 1/1 (frame 284/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 141.6ms\n", + "video 1/1 (frame 285/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 150.3ms\n", + "video 1/1 (frame 286/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 143.8ms\n", + "video 1/1 (frame 287/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 129.9ms\n", + "video 1/1 (frame 288/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 155.9ms\n", + "video 1/1 (frame 289/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 141.2ms\n", + "video 1/1 (frame 290/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 157.2ms\n", + "video 1/1 (frame 291/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 137.6ms\n", + "video 1/1 (frame 292/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 139.8ms\n", + "video 1/1 (frame 293/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 148.5ms\n", + "video 1/1 (frame 294/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 158.7ms\n", + "video 1/1 (frame 295/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 154.7ms\n", + "video 1/1 (frame 296/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 177.2ms\n", + "video 1/1 (frame 297/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 296.7ms\n", + "video 1/1 (frame 298/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 171.2ms\n", + "video 1/1 (frame 299/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 138.0ms\n", + "video 1/1 (frame 300/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.1ms\n", + "video 1/1 (frame 301/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 130.3ms\n", + "video 1/1 (frame 302/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 186.4ms\n", + "video 1/1 (frame 303/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 265.3ms\n", + "video 1/1 (frame 304/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 140.7ms\n", + "video 1/1 (frame 305/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 135.8ms\n", + "video 1/1 (frame 306/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 140.8ms\n", + "video 1/1 (frame 307/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 142.2ms\n", + "video 1/1 (frame 308/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 118.1ms\n", + "video 1/1 (frame 309/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 119.7ms\n", + "video 1/1 (frame 310/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 138.0ms\n", + "video 1/1 (frame 311/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 194.3ms\n", + "video 1/1 (frame 312/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 135.9ms\n", + "video 1/1 (frame 313/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 346.9ms\n", + "video 1/1 (frame 314/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 468.4ms\n", + "video 1/1 (frame 315/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 157.0ms\n", + "video 1/1 (frame 316/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.5ms\n", + "video 1/1 (frame 317/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 207.7ms\n", + "video 1/1 (frame 318/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 357.0ms\n", + "video 1/1 (frame 319/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 351.4ms\n", + "video 1/1 (frame 320/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 354.7ms\n", + "video 1/1 (frame 321/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 658.7ms\n", + "video 1/1 (frame 322/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 362.4ms\n", + "video 1/1 (frame 323/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 270.4ms\n", + "video 1/1 (frame 324/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 291.6ms\n", + "video 1/1 (frame 325/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 141.9ms\n", + "video 1/1 (frame 326/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 154.0ms\n", + "video 1/1 (frame 327/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 398.5ms\n", + "video 1/1 (frame 328/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 443.4ms\n", + "video 1/1 (frame 329/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 162.8ms\n", + "video 1/1 (frame 330/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 142.4ms\n", + "video 1/1 (frame 331/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 202.7ms\n", + "video 1/1 (frame 332/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 158.9ms\n", + "video 1/1 (frame 333/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 182.8ms\n", + "video 1/1 (frame 334/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 244.2ms\n", + "video 1/1 (frame 335/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 183.1ms\n", + "video 1/1 (frame 336/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 158.4ms\n", + "video 1/1 (frame 337/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 185.8ms\n", + "video 1/1 (frame 338/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 169.8ms\n", + "video 1/1 (frame 339/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 160.0ms\n", + "video 1/1 (frame 340/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 184.8ms\n", + "video 1/1 (frame 341/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 158.2ms\n", + "video 1/1 (frame 342/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 151.2ms\n", + "video 1/1 (frame 343/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 131.2ms\n", + "video 1/1 (frame 344/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 128.5ms\n", + "video 1/1 (frame 345/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 150.6ms\n", + "video 1/1 (frame 346/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 148.1ms\n", + "video 1/1 (frame 347/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 159.5ms\n", + "video 1/1 (frame 348/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 157.9ms\n", + "video 1/1 (frame 349/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 148.6ms\n", + "video 1/1 (frame 350/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 154.1ms\n", + "video 1/1 (frame 351/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 135.9ms\n", + "video 1/1 (frame 352/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 128.5ms\n", + "video 1/1 (frame 353/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 174.1ms\n", + "video 1/1 (frame 354/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 162.2ms\n", + "video 1/1 (frame 355/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 133.8ms\n", + "video 1/1 (frame 356/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 125.2ms\n", + "video 1/1 (frame 357/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 137.1ms\n", + "video 1/1 (frame 358/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 129.2ms\n", + "video 1/1 (frame 359/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 132.5ms\n", + "video 1/1 (frame 360/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 125.5ms\n", + "video 1/1 (frame 361/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 167.4ms\n", + "video 1/1 (frame 362/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 135.2ms\n", + "video 1/1 (frame 363/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 137.6ms\n", + "video 1/1 (frame 364/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 129.0ms\n", + "video 1/1 (frame 365/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.7ms\n", + "video 1/1 (frame 366/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 134.8ms\n", + "video 1/1 (frame 367/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 124.6ms\n", + "video 1/1 (frame 368/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.0ms\n", + "video 1/1 (frame 369/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 127.4ms\n", + "video 1/1 (frame 370/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 144.1ms\n", + "video 1/1 (frame 371/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.5ms\n", + "video 1/1 (frame 372/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 132.6ms\n", + "video 1/1 (frame 373/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.5ms\n", + "video 1/1 (frame 374/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 115.3ms\n", + "video 1/1 (frame 375/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 115.2ms\n", + "video 1/1 (frame 376/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 121.8ms\n", + "video 1/1 (frame 377/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 121.4ms\n", + "video 1/1 (frame 378/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 117.8ms\n", + "video 1/1 (frame 379/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.3ms\n", + "video 1/1 (frame 380/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 128.6ms\n", + "video 1/1 (frame 381/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 119.3ms\n", + "video 1/1 (frame 382/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 114.3ms\n", + "video 1/1 (frame 383/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.5ms\n", + "video 1/1 (frame 384/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 156.6ms\n", + "video 1/1 (frame 385/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 125.6ms\n", + "video 1/1 (frame 386/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 117.9ms\n", + "video 1/1 (frame 387/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 116.1ms\n", + "video 1/1 (frame 388/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.8ms\n", + "video 1/1 (frame 389/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 120.5ms\n", + "video 1/1 (frame 390/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 114.9ms\n", + "video 1/1 (frame 391/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 115.6ms\n", + "video 1/1 (frame 392/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.9ms\n", + "video 1/1 (frame 393/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 132.3ms\n", + "video 1/1 (frame 394/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 158.4ms\n", + "video 1/1 (frame 395/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 113.0ms\n", + "video 1/1 (frame 396/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 120.3ms\n", + "video 1/1 (frame 397/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 120.0ms\n", + "video 1/1 (frame 398/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 157.0ms\n", + "video 1/1 (frame 399/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 112.3ms\n", + "video 1/1 (frame 400/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 142.3ms\n", + "video 1/1 (frame 401/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 145.3ms\n", + "video 1/1 (frame 402/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.9ms\n", + "video 1/1 (frame 403/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 130.2ms\n", + "video 1/1 (frame 404/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 139.4ms\n", + "video 1/1 (frame 405/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 115.2ms\n", + "Speed: 6.9ms preprocess, 162.9ms inference, 6.5ms postprocess per image at shape (1, 3, 640, 576)\n", + "Results saved to \u001b[1m/Users/theorousseaux/Documents/Hackathon/FitnessEquation/runs/pose/predict5\u001b[0m\n" ] } ], @@ -491,7 +514,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -579,7 +602,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -593,16 +616,16 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[]" + "[]" ] }, - "execution_count": 34, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, @@ -622,6 +645,773 @@ "\n", "plt.plot(angles)" ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "AIMessage(content=\"Who's there?\\n\\n(Please provide the next line of the knock-knock joke.)\", response_metadata={'token_usage': {'prompt_tokens': 5, 'total_tokens': 26, 'completion_tokens': 21}, 'model': 'mistral-large-latest', 'finish_reason': 'stop'}, id='run-f72f8b00-6073-439e-9b82-cc50101f0809-0')" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from langchain_core.messages import HumanMessage\n", + "from langchain_mistralai.chat_models import ChatMistralAI\n", + "\n", + "# If api_key is not passed, default behavior is to use the `MISTRAL_API_KEY` environment variable.\n", + "llm = ChatMistralAI(model='mistral-large-latest', api_key=\"i5jSJkCFNGKfgIztloxTMjfckiFbYBj4\")\n", + "messages = [HumanMessage(content=\"knock knock\")]\n", + "llm.invoke(messages)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": {}, + "outputs": [], + "source": [ + "# Import things that are needed generically\n", + "from langchain.pydantic_v1 import BaseModel, Field\n", + "from langchain.tools import tool\n", + "\n", + "@tool\n", + "def compute_right_knee_angle(pose: list) -> float:\n", + "\n", + " \"\"\"\n", + " Computes the knee angle.\n", + "\n", + " Args:\n", + " pose (list): list of keypoints\n", + "\n", + " Returns:\n", + " knee_angle (float): knee angle\n", + " \"\"\"\n", + "\n", + " right_hip = pose[joints_id_dict['right_hip']]\n", + " right_knee = pose[joints_id_dict['right_knee']]\n", + " right_ankle = pose[joints_id_dict['right_ankle']]\n", + "\n", + " knee_angle = calculate_angle(right_hip, right_knee, right_ankle)\n", + "\n", + " print(knee_angle)\n", + "\n", + " return str(knee_angle)\n", + "\n", + "@tool\n", + "def get_keypoints_from_path(video_path: str):\n", + " \"\"\"\n", + " Get keypoints from a video.\n", + "\n", + " Args:\n", + " video_path (str): path to the video\n", + " model (YOLO): model to use\n", + "\n", + " Returns:\n", + " keypoints (list): list of keypoints\n", + " \"\"\"\n", + "\n", + " keypoints = []\n", + " results = model(video_path, save=True, show_conf=False, show_boxes=False)\n", + " for frame in results:\n", + " tensor = frame.keypoints.xy[0]\n", + " keypoints.append(tensor.tolist())\n", + "\n", + " return keypoints" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "WARNING ⚠️ inference results will accumulate in RAM unless `stream=True` is passed, causing potential out-of-memory\n", + "errors for large sources or long-running streams and videos. See https://docs.ultralytics.com/modes/predict/ for help.\n", + "\n", + "Example:\n", + " results = model(source=..., stream=True) # generator of Results objects\n", + " for r in results:\n", + " boxes = r.boxes # Boxes object for bbox outputs\n", + " masks = r.masks # Masks object for segment masks outputs\n", + " probs = r.probs # Class probabilities for classification outputs\n", + "\n", + "video 1/1 (frame 1/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 140.3ms\n", + "video 1/1 (frame 2/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 160.4ms\n", + "video 1/1 (frame 3/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 222.3ms\n", + "video 1/1 (frame 4/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 156.6ms\n", + "video 1/1 (frame 5/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 190.2ms\n", + "video 1/1 (frame 6/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 190.0ms\n", + "video 1/1 (frame 7/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 166.8ms\n", + "video 1/1 (frame 8/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 187.1ms\n", + "video 1/1 (frame 9/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 199.7ms\n", + "video 1/1 (frame 10/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 166.0ms\n", + "video 1/1 (frame 11/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 130.8ms\n", + "video 1/1 (frame 12/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 140.1ms\n", + "video 1/1 (frame 13/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 259.1ms\n", + "video 1/1 (frame 14/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 234.3ms\n", + "video 1/1 (frame 15/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 141.8ms\n", + "video 1/1 (frame 16/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 134.8ms\n", + "video 1/1 (frame 17/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 136.7ms\n", + "video 1/1 (frame 18/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 148.5ms\n", + "video 1/1 (frame 19/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 117.3ms\n", + "video 1/1 (frame 20/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 128.7ms\n", + "video 1/1 (frame 21/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 125.8ms\n", + "video 1/1 (frame 22/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 120.0ms\n", + "video 1/1 (frame 23/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 125.8ms\n", + "video 1/1 (frame 24/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 115.9ms\n", + "video 1/1 (frame 25/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 165.2ms\n", + "video 1/1 (frame 26/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 116.3ms\n", + "video 1/1 (frame 27/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 189.5ms\n", + "video 1/1 (frame 28/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 212.3ms\n", + "video 1/1 (frame 29/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 192.5ms\n", + "video 1/1 (frame 30/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 170.5ms\n", + "video 1/1 (frame 31/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 158.8ms\n", + "video 1/1 (frame 32/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 166.6ms\n", + "video 1/1 (frame 33/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 151.0ms\n", + "video 1/1 (frame 34/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 153.6ms\n", + "video 1/1 (frame 35/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 172.3ms\n", + "video 1/1 (frame 36/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 227.4ms\n", + "video 1/1 (frame 37/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 145.4ms\n", + "video 1/1 (frame 38/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 170.7ms\n", + "video 1/1 (frame 39/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.0ms\n", + "video 1/1 (frame 40/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 116.7ms\n", + "video 1/1 (frame 41/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 188.8ms\n", + "video 1/1 (frame 42/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 147.0ms\n", + "video 1/1 (frame 43/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 171.9ms\n", + "video 1/1 (frame 44/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 147.8ms\n", + "video 1/1 (frame 45/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 115.6ms\n", + "video 1/1 (frame 46/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 143.7ms\n", + "video 1/1 (frame 47/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 132.5ms\n", + "video 1/1 (frame 48/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 125.3ms\n", + "video 1/1 (frame 49/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 116.8ms\n", + "video 1/1 (frame 50/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 118.9ms\n", + "video 1/1 (frame 51/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 138.3ms\n", + "video 1/1 (frame 52/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 123.8ms\n", + "video 1/1 (frame 53/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.7ms\n", + "video 1/1 (frame 54/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 123.6ms\n", + "video 1/1 (frame 55/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 120.0ms\n", + "video 1/1 (frame 56/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 146.3ms\n", + "video 1/1 (frame 57/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 127.0ms\n", + "video 1/1 (frame 58/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 142.8ms\n", + "video 1/1 (frame 59/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 201.3ms\n", + "video 1/1 (frame 60/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 151.2ms\n", + "video 1/1 (frame 61/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 144.8ms\n", + "video 1/1 (frame 62/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 133.2ms\n", + "video 1/1 (frame 63/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 131.8ms\n", + "video 1/1 (frame 64/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 180.7ms\n", + "video 1/1 (frame 65/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 158.7ms\n", + "video 1/1 (frame 66/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 128.0ms\n", + "video 1/1 (frame 67/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 132.9ms\n", + "video 1/1 (frame 68/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 127.5ms\n", + "video 1/1 (frame 69/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 125.3ms\n", + "video 1/1 (frame 70/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 173.3ms\n", + "video 1/1 (frame 71/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 181.7ms\n", + "video 1/1 (frame 72/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 135.3ms\n", + "video 1/1 (frame 73/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 136.4ms\n", + "video 1/1 (frame 74/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 176.6ms\n", + "video 1/1 (frame 75/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 154.9ms\n", + "video 1/1 (frame 76/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 134.9ms\n", + "video 1/1 (frame 77/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 131.2ms\n", + "video 1/1 (frame 78/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 130.1ms\n", + "video 1/1 (frame 79/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 121.9ms\n", + "video 1/1 (frame 80/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 134.1ms\n", + "video 1/1 (frame 81/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 128.8ms\n", + "video 1/1 (frame 82/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 123.4ms\n", + "video 1/1 (frame 83/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 118.8ms\n", + "video 1/1 (frame 84/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 162.0ms\n", + "video 1/1 (frame 85/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 130.4ms\n", + "video 1/1 (frame 86/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 134.2ms\n", + "video 1/1 (frame 87/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 121.1ms\n", + "video 1/1 (frame 88/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 125.9ms\n", + "video 1/1 (frame 89/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.7ms\n", + "video 1/1 (frame 90/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 121.5ms\n", + "video 1/1 (frame 91/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 131.3ms\n", + "video 1/1 (frame 92/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 137.9ms\n", + "video 1/1 (frame 93/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 151.3ms\n", + "video 1/1 (frame 94/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 137.7ms\n", + "video 1/1 (frame 95/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 124.8ms\n", + "video 1/1 (frame 96/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 136.5ms\n", + "video 1/1 (frame 97/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 171.1ms\n", + "video 1/1 (frame 98/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 160.2ms\n", + "video 1/1 (frame 99/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.9ms\n", + "video 1/1 (frame 100/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 139.6ms\n", + "video 1/1 (frame 101/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 134.6ms\n", + "video 1/1 (frame 102/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 127.5ms\n", + "video 1/1 (frame 103/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 125.4ms\n", + "video 1/1 (frame 104/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 136.2ms\n", + "video 1/1 (frame 105/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 138.9ms\n", + "video 1/1 (frame 106/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 124.7ms\n", + "video 1/1 (frame 107/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.3ms\n", + "video 1/1 (frame 108/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 147.9ms\n", + "video 1/1 (frame 109/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 132.9ms\n", + "video 1/1 (frame 110/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 164.8ms\n", + "video 1/1 (frame 111/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 142.5ms\n", + "video 1/1 (frame 112/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 137.2ms\n", + "video 1/1 (frame 113/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 139.1ms\n", + "video 1/1 (frame 114/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 125.0ms\n", + "video 1/1 (frame 115/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.9ms\n", + "video 1/1 (frame 116/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 132.9ms\n", + "video 1/1 (frame 117/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 144.9ms\n", + "video 1/1 (frame 118/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 248.0ms\n", + "video 1/1 (frame 119/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 131.5ms\n", + "video 1/1 (frame 120/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 138.5ms\n", + "video 1/1 (frame 121/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 140.4ms\n", + "video 1/1 (frame 122/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 166.1ms\n", + "video 1/1 (frame 123/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 123.5ms\n", + "video 1/1 (frame 124/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 137.1ms\n", + "video 1/1 (frame 125/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 133.1ms\n", + "video 1/1 (frame 126/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 138.7ms\n", + "video 1/1 (frame 127/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 121.6ms\n", + "video 1/1 (frame 128/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 130.2ms\n", + "video 1/1 (frame 129/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 129.7ms\n", + "video 1/1 (frame 130/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.8ms\n", + "video 1/1 (frame 131/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 120.3ms\n", + "video 1/1 (frame 132/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 132.7ms\n", + "video 1/1 (frame 133/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 129.8ms\n", + "video 1/1 (frame 134/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 121.9ms\n", + "video 1/1 (frame 135/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 134.4ms\n", + "video 1/1 (frame 136/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 148.5ms\n", + "video 1/1 (frame 137/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 134.8ms\n", + "video 1/1 (frame 138/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 125.2ms\n", + "video 1/1 (frame 139/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.3ms\n", + "video 1/1 (frame 140/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 139.2ms\n", + "video 1/1 (frame 141/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 129.4ms\n", + "video 1/1 (frame 142/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 128.5ms\n", + "video 1/1 (frame 143/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 127.5ms\n", + "video 1/1 (frame 144/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 134.5ms\n", + "video 1/1 (frame 145/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 210.8ms\n", + "video 1/1 (frame 146/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.1ms\n", + "video 1/1 (frame 147/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 137.3ms\n", + "video 1/1 (frame 148/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 161.3ms\n", + "video 1/1 (frame 149/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 135.2ms\n", + "video 1/1 (frame 150/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 123.6ms\n", + "video 1/1 (frame 151/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 120.9ms\n", + "video 1/1 (frame 152/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 129.9ms\n", + "video 1/1 (frame 153/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.2ms\n", + "video 1/1 (frame 154/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 124.3ms\n", + "video 1/1 (frame 155/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 120.9ms\n", + "video 1/1 (frame 156/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 130.9ms\n", + "video 1/1 (frame 157/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 132.2ms\n", + "video 1/1 (frame 158/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.6ms\n", + "video 1/1 (frame 159/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 120.9ms\n", + "video 1/1 (frame 160/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 169.3ms\n", + "video 1/1 (frame 161/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 169.8ms\n", + "video 1/1 (frame 162/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 124.6ms\n", + "video 1/1 (frame 163/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 121.0ms\n", + "video 1/1 (frame 164/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 135.9ms\n", + "video 1/1 (frame 165/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.4ms\n", + "video 1/1 (frame 166/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.5ms\n", + "video 1/1 (frame 167/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 121.8ms\n", + "video 1/1 (frame 168/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 130.3ms\n", + "video 1/1 (frame 169/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 133.0ms\n", + "video 1/1 (frame 170/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 120.0ms\n", + "video 1/1 (frame 171/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 124.0ms\n", + "video 1/1 (frame 172/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 136.7ms\n", + "video 1/1 (frame 173/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 129.8ms\n", + "video 1/1 (frame 174/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 130.9ms\n", + "video 1/1 (frame 175/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 151.2ms\n", + "video 1/1 (frame 176/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 130.7ms\n", + "video 1/1 (frame 177/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.5ms\n", + "video 1/1 (frame 178/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.3ms\n", + "video 1/1 (frame 179/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 120.4ms\n", + "video 1/1 (frame 180/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 129.2ms\n", + "video 1/1 (frame 181/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 129.3ms\n", + "video 1/1 (frame 182/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 119.1ms\n", + "video 1/1 (frame 183/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 123.3ms\n", + "video 1/1 (frame 184/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 130.3ms\n", + "video 1/1 (frame 185/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 137.3ms\n", + "video 1/1 (frame 186/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 121.6ms\n", + "video 1/1 (frame 187/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.4ms\n", + "video 1/1 (frame 188/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 128.2ms\n", + "video 1/1 (frame 189/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 139.6ms\n", + "video 1/1 (frame 190/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.4ms\n", + "video 1/1 (frame 191/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 117.8ms\n", + "video 1/1 (frame 192/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 128.1ms\n", + "video 1/1 (frame 193/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.7ms\n", + "video 1/1 (frame 194/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 125.6ms\n", + "video 1/1 (frame 195/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 121.5ms\n", + "video 1/1 (frame 196/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 129.6ms\n", + "video 1/1 (frame 197/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 129.4ms\n", + "video 1/1 (frame 198/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.8ms\n", + "video 1/1 (frame 199/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 120.8ms\n", + "video 1/1 (frame 200/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 133.8ms\n", + "video 1/1 (frame 201/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 124.3ms\n", + "video 1/1 (frame 202/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 141.5ms\n", + "video 1/1 (frame 203/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 124.4ms\n", + "video 1/1 (frame 204/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 134.5ms\n", + "video 1/1 (frame 205/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 133.0ms\n", + "video 1/1 (frame 206/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 125.5ms\n", + "video 1/1 (frame 207/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 134.1ms\n", + "video 1/1 (frame 208/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 157.0ms\n", + "video 1/1 (frame 209/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 151.9ms\n", + "video 1/1 (frame 210/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 148.7ms\n", + "video 1/1 (frame 211/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 154.3ms\n", + "video 1/1 (frame 212/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 154.5ms\n", + "video 1/1 (frame 213/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 153.0ms\n", + "video 1/1 (frame 214/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 152.4ms\n", + "video 1/1 (frame 215/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 162.2ms\n", + "video 1/1 (frame 216/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 154.5ms\n", + "video 1/1 (frame 217/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 154.2ms\n", + "video 1/1 (frame 218/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 119.6ms\n", + "video 1/1 (frame 219/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.3ms\n", + "video 1/1 (frame 220/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 118.6ms\n", + "video 1/1 (frame 221/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.2ms\n", + "video 1/1 (frame 222/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 148.2ms\n", + "video 1/1 (frame 223/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 136.3ms\n", + "video 1/1 (frame 224/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 173.5ms\n", + "video 1/1 (frame 225/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 150.2ms\n", + "video 1/1 (frame 226/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 155.0ms\n", + "video 1/1 (frame 227/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 170.5ms\n", + "video 1/1 (frame 228/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.3ms\n", + "video 1/1 (frame 229/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.9ms\n", + "video 1/1 (frame 230/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 140.5ms\n", + "video 1/1 (frame 231/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 134.3ms\n", + "video 1/1 (frame 232/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 124.1ms\n", + "video 1/1 (frame 233/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 124.8ms\n", + "video 1/1 (frame 234/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 143.8ms\n", + "video 1/1 (frame 235/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 136.8ms\n", + "video 1/1 (frame 236/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.7ms\n", + "video 1/1 (frame 237/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 135.6ms\n", + "video 1/1 (frame 238/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 151.1ms\n", + "video 1/1 (frame 239/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 125.8ms\n", + "video 1/1 (frame 240/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 158.7ms\n", + "video 1/1 (frame 241/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 163.7ms\n", + "video 1/1 (frame 242/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 138.7ms\n", + "video 1/1 (frame 243/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 133.5ms\n", + "video 1/1 (frame 244/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 147.8ms\n", + "video 1/1 (frame 245/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 130.3ms\n", + "video 1/1 (frame 246/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 139.0ms\n", + "video 1/1 (frame 247/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 146.9ms\n", + "video 1/1 (frame 248/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 151.7ms\n", + "video 1/1 (frame 249/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 144.5ms\n", + "video 1/1 (frame 250/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 159.8ms\n", + "video 1/1 (frame 251/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 133.4ms\n", + "video 1/1 (frame 252/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 196.9ms\n", + "video 1/1 (frame 253/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 136.3ms\n", + "video 1/1 (frame 254/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 156.3ms\n", + "video 1/1 (frame 255/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 161.4ms\n", + "video 1/1 (frame 256/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 135.2ms\n", + "video 1/1 (frame 257/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 668.1ms\n", + "video 1/1 (frame 258/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 293.2ms\n", + "video 1/1 (frame 259/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 255.6ms\n", + "video 1/1 (frame 260/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.0ms\n", + "video 1/1 (frame 261/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 115.0ms\n", + "video 1/1 (frame 262/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 118.7ms\n", + "video 1/1 (frame 263/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 124.9ms\n", + "video 1/1 (frame 264/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 124.1ms\n", + "video 1/1 (frame 265/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 130.6ms\n", + "video 1/1 (frame 266/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 134.7ms\n", + "video 1/1 (frame 267/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 138.9ms\n", + "video 1/1 (frame 268/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 128.5ms\n", + "video 1/1 (frame 269/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 127.0ms\n", + "video 1/1 (frame 270/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 140.0ms\n", + "video 1/1 (frame 271/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 137.8ms\n", + "video 1/1 (frame 272/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 127.4ms\n", + "video 1/1 (frame 273/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 157.0ms\n", + "video 1/1 (frame 274/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 124.5ms\n", + "video 1/1 (frame 275/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 129.7ms\n", + "video 1/1 (frame 276/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 133.2ms\n", + "video 1/1 (frame 277/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 143.1ms\n", + "video 1/1 (frame 278/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.9ms\n", + "video 1/1 (frame 279/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 166.7ms\n", + "video 1/1 (frame 280/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 145.3ms\n", + "video 1/1 (frame 281/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 155.1ms\n", + "video 1/1 (frame 282/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 136.2ms\n", + "video 1/1 (frame 283/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 166.1ms\n", + "video 1/1 (frame 284/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 193.9ms\n", + "video 1/1 (frame 285/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 211.1ms\n", + "video 1/1 (frame 286/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 205.2ms\n", + "video 1/1 (frame 287/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 193.0ms\n", + "video 1/1 (frame 288/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 232.3ms\n", + "video 1/1 (frame 289/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 214.0ms\n", + "video 1/1 (frame 290/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 146.5ms\n", + "video 1/1 (frame 291/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 200.0ms\n", + "video 1/1 (frame 292/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 189.1ms\n", + "video 1/1 (frame 293/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 171.8ms\n", + "video 1/1 (frame 294/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 368.1ms\n", + "video 1/1 (frame 295/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 148.3ms\n", + "video 1/1 (frame 296/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.0ms\n", + "video 1/1 (frame 297/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 130.6ms\n", + "video 1/1 (frame 298/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 135.9ms\n", + "video 1/1 (frame 299/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 175.5ms\n", + "video 1/1 (frame 300/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 189.2ms\n", + "video 1/1 (frame 301/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 387.2ms\n", + "video 1/1 (frame 302/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 242.4ms\n", + "video 1/1 (frame 303/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 216.5ms\n", + "video 1/1 (frame 304/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 254.1ms\n", + "video 1/1 (frame 305/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 195.4ms\n", + "video 1/1 (frame 306/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 339.0ms\n", + "video 1/1 (frame 307/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 187.0ms\n", + "video 1/1 (frame 308/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 205.6ms\n", + "video 1/1 (frame 309/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 141.1ms\n", + "video 1/1 (frame 310/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 180.9ms\n", + "video 1/1 (frame 311/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 234.7ms\n", + "video 1/1 (frame 312/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 137.0ms\n", + "video 1/1 (frame 313/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 194.2ms\n", + "video 1/1 (frame 314/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 190.5ms\n", + "video 1/1 (frame 315/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 189.2ms\n", + "video 1/1 (frame 316/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 142.2ms\n", + "video 1/1 (frame 317/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 149.5ms\n", + "video 1/1 (frame 318/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 114.9ms\n", + "video 1/1 (frame 319/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 123.2ms\n", + "video 1/1 (frame 320/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 191.0ms\n", + "video 1/1 (frame 321/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 118.9ms\n", + "video 1/1 (frame 322/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 241.8ms\n", + "video 1/1 (frame 323/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 115.3ms\n", + "video 1/1 (frame 324/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.6ms\n", + "video 1/1 (frame 325/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 158.7ms\n", + "video 1/1 (frame 326/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 117.7ms\n", + "video 1/1 (frame 327/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 114.1ms\n", + "video 1/1 (frame 328/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 174.9ms\n", + "video 1/1 (frame 329/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 194.2ms\n", + "video 1/1 (frame 330/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 147.2ms\n", + "video 1/1 (frame 331/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 113.8ms\n", + "video 1/1 (frame 332/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 116.6ms\n", + "video 1/1 (frame 333/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 135.4ms\n", + "video 1/1 (frame 334/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 166.3ms\n", + "video 1/1 (frame 335/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 131.0ms\n", + "video 1/1 (frame 336/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 118.8ms\n", + "video 1/1 (frame 337/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 120.5ms\n", + "video 1/1 (frame 338/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 129.7ms\n", + "video 1/1 (frame 339/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 126.7ms\n", + "video 1/1 (frame 340/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 124.2ms\n", + "video 1/1 (frame 341/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 123.7ms\n", + "video 1/1 (frame 342/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 135.5ms\n", + "video 1/1 (frame 343/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 130.0ms\n", + "video 1/1 (frame 344/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 121.6ms\n", + "video 1/1 (frame 345/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 123.2ms\n", + "video 1/1 (frame 346/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 144.0ms\n", + "video 1/1 (frame 347/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 125.7ms\n", + "video 1/1 (frame 348/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 153.1ms\n", + "video 1/1 (frame 349/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.5ms\n", + "video 1/1 (frame 350/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 139.9ms\n", + "video 1/1 (frame 351/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 125.8ms\n", + "video 1/1 (frame 352/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 147.1ms\n", + "video 1/1 (frame 353/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 123.3ms\n", + "video 1/1 (frame 354/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 135.6ms\n", + "video 1/1 (frame 355/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 167.2ms\n", + "video 1/1 (frame 356/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 152.9ms\n", + "video 1/1 (frame 357/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 127.2ms\n", + "video 1/1 (frame 358/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 145.0ms\n", + "video 1/1 (frame 359/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 133.1ms\n", + "video 1/1 (frame 360/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 130.5ms\n", + "video 1/1 (frame 361/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 140.4ms\n", + "video 1/1 (frame 362/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 128.7ms\n", + "video 1/1 (frame 363/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 127.4ms\n", + "video 1/1 (frame 364/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.0ms\n", + "video 1/1 (frame 365/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 122.2ms\n", + "video 1/1 (frame 366/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 156.5ms\n", + "video 1/1 (frame 367/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 171.7ms\n", + "video 1/1 (frame 368/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 230.8ms\n", + "video 1/1 (frame 369/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 230.3ms\n", + "video 1/1 (frame 370/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 585.8ms\n", + "video 1/1 (frame 371/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 239.3ms\n", + "video 1/1 (frame 372/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 191.2ms\n", + "video 1/1 (frame 373/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 182.9ms\n", + "video 1/1 (frame 374/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 166.0ms\n", + "video 1/1 (frame 375/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 175.3ms\n", + "video 1/1 (frame 376/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 167.2ms\n", + "video 1/1 (frame 377/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 168.0ms\n", + "video 1/1 (frame 378/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 172.9ms\n", + "video 1/1 (frame 379/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 165.5ms\n", + "video 1/1 (frame 380/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 276.7ms\n", + "video 1/1 (frame 381/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 199.5ms\n", + "video 1/1 (frame 382/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 170.3ms\n", + "video 1/1 (frame 383/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 140.6ms\n", + "video 1/1 (frame 384/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 161.2ms\n", + "video 1/1 (frame 385/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 138.9ms\n", + "video 1/1 (frame 386/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 144.6ms\n", + "video 1/1 (frame 387/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 130.0ms\n", + "video 1/1 (frame 388/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 150.8ms\n", + "video 1/1 (frame 389/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 134.0ms\n", + "video 1/1 (frame 390/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 131.6ms\n", + "video 1/1 (frame 391/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 162.0ms\n", + "video 1/1 (frame 392/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 134.1ms\n", + "video 1/1 (frame 393/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 141.6ms\n", + "video 1/1 (frame 394/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 238.5ms\n", + "video 1/1 (frame 395/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 158.1ms\n", + "video 1/1 (frame 396/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 121.8ms\n", + "video 1/1 (frame 397/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 396.2ms\n", + "video 1/1 (frame 398/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 463.3ms\n", + "video 1/1 (frame 399/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 278.9ms\n", + "video 1/1 (frame 400/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 211.4ms\n", + "video 1/1 (frame 401/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 163.1ms\n", + "video 1/1 (frame 402/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 163.2ms\n", + "video 1/1 (frame 403/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 125.6ms\n", + "video 1/1 (frame 404/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 163.0ms\n", + "video 1/1 (frame 405/465) /Users/theorousseaux/Documents/Hackathon/FitnessEquation/Modules/PoseEstimation/../../data/pose/squat.mp4: 640x576 1 person, 162.2ms\n", + "Speed: 6.6ms preprocess, 152.9ms inference, 1.3ms postprocess per image at shape (1, 3, 640, 576)\n", + "Results saved to \u001b[1m/Users/theorousseaux/Documents/Hackathon/FitnessEquation/runs/pose/predict5\u001b[0m\n" + ] + } + ], + "source": [ + "sequence = get_keypoints_from_path('../../data/pose/squat.mp4')" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "compute_right_knee_angle\n", + "compute_right_knee_angle(pose: list) -> float - Computes the knee angle.\n", + "\n", + " Args:\n", + " pose (list): list of keypoints\n", + "\n", + " Returns:\n", + " knee_angle (float): knee angle\n", + "{'pose': {'title': 'Pose', 'type': 'array', 'items': {}}}\n", + "False\n" + ] + } + ], + "source": [ + "print(compute_right_knee_angle.name)\n", + "print(compute_right_knee_angle.description)\n", + "print(compute_right_knee_angle.args)\n", + "print(compute_right_knee_angle.return_direct)" + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": {}, + "outputs": [], + "source": [ + "from langchain.agents import AgentExecutor, create_tool_calling_agent\n", + "from langchain_community.tools.tavily_search import TavilySearchResults\n", + "from langchain_core.prompts import ChatPromptTemplate\n", + "\n", + "tools = [compute_right_knee_angle]\n", + "\n", + "prompt = ChatPromptTemplate.from_messages(\n", + " [\n", + " (\n", + " \"system\",\n", + " \"You are a helpful assistant. Make sure to use the compute_right_knee_angle tool for information.\",\n", + " ),\n", + " (\"placeholder\", \"{chat_history}\"),\n", + " (\"human\", \"{input}\"),\n", + " (\"placeholder\", \"{agent_scratchpad}\"),\n", + " ]\n", + ")\n", + "\n", + "# Construct the Tools agent\n", + "agent = create_tool_calling_agent(llm, tools, prompt)" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\u001b[1m> Entering new AgentExecutor chain...\u001b[0m\n", + "\u001b[32;1m\u001b[1;3m\n", + "Invoking: `compute_right_knee_angle` with `{'pose': [[705.0933227539062, 159.55224609375], [0.0, 0.0], [688.4795532226562, 135.9303436279297], [0.0, 0.0], [628.56689453125, 150.44094848632812], [603.4036254882812, 295.99420166015625], [619.6266479492188, 305.51202392578125], [0.0, 0.0], [629.2274780273438, 532.8370361328125], [0.0, 0.0], [665.978515625, 716.4405517578125], [634.9310302734375, 684.9545288085938], [642.503173828125, 691.6080932617188], [633.3930053710938, 1001.8157958984375], [649.4693603515625, 1014.472900390625], [601.3526611328125, 1321.026123046875], [580.6210327148438, 1337.936279296875]]}`\n", + "\n", + "\n", + "\u001b[0m166.748027626137\n", + "\u001b[36;1m\u001b[1;3m166.748027626137\u001b[0m\u001b[32;1m\u001b[1;3mThe knee angle at the beginning is approximately 166.75 degrees.\u001b[0m\n", + "\n", + "\u001b[1m> Finished chain.\u001b[0m\n" + ] + }, + { + "data": { + "text/plain": [ + "{'input': 'Compute my knee angle at the beginning: [[705.0933227539062, 159.55224609375], [0.0, 0.0], [688.4795532226562, 135.9303436279297], [0.0, 0.0], [628.56689453125, 150.44094848632812], [603.4036254882812, 295.99420166015625], [619.6266479492188, 305.51202392578125], [0.0, 0.0], [629.2274780273438, 532.8370361328125], [0.0, 0.0], [665.978515625, 716.4405517578125], [634.9310302734375, 684.9545288085938], [642.503173828125, 691.6080932617188], [633.3930053710938, 1001.8157958984375], [649.4693603515625, 1014.472900390625], [601.3526611328125, 1321.026123046875], [580.6210327148438, 1337.936279296875]]',\n", + " 'output': 'The knee angle at the beginning is approximately 166.75 degrees.'}" + ] + }, + "execution_count": 91, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Create an agent executor by passing in the agent and tools\n", + "agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)\n", + "agent_executor.invoke({\"input\": f\"Compute my knee angle at the beginning: {sequence[0]}\"})" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [], + "source": [ + "from langchain import hub\n", + "from langchain.agents import AgentExecutor, create_json_chat_agent\n", + "from langchain_community.tools.tavily_search import TavilySearchResults\n", + "\n", + "\n", + "tools = [compute_right_knee_angle]\n", + "\n", + "# Get the prompt to use - you can modify this!\n", + "prompt = hub.pull(\"hwchase17/react-chat-json\")\n", + "\n", + "# Construct the JSON agent\n", + "agent = create_json_chat_agent(llm, tools, prompt)" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [], + "source": [ + "# Create an agent executor by passing in the agent and tools\n", + "agent_executor = AgentExecutor(\n", + " agent=agent, tools=tools, verbose=True, handle_parsing_errors=False\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Parameter `stop` not yet supported (https://docs.mistral.ai/api)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\u001b[1m> Entering new AgentExecutor chain...\u001b[0m\n" + ] + }, + { + "ename": "SSEError", + "evalue": "Expected response header Content-Type to contain 'text/event-stream', got 'application/json'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mSSEError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[51], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43magent_executor\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43minvoke\u001b[49m\u001b[43m(\u001b[49m\u001b[43m{\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43minput\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43mf\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mHi, is my squat correct ? \u001b[39;49m\u001b[38;5;132;43;01m{\u001b[39;49;00m\u001b[43mkeypoints\u001b[49m\u001b[38;5;132;43;01m}\u001b[39;49;00m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m}\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain/chains/base.py:163\u001b[0m, in \u001b[0;36mChain.invoke\u001b[0;34m(self, input, config, **kwargs)\u001b[0m\n\u001b[1;32m 161\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 162\u001b[0m run_manager\u001b[38;5;241m.\u001b[39mon_chain_error(e)\n\u001b[0;32m--> 163\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m e\n\u001b[1;32m 164\u001b[0m run_manager\u001b[38;5;241m.\u001b[39mon_chain_end(outputs)\n\u001b[1;32m 166\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m include_run_info:\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain/chains/base.py:153\u001b[0m, in \u001b[0;36mChain.invoke\u001b[0;34m(self, input, config, **kwargs)\u001b[0m\n\u001b[1;32m 150\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 151\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_validate_inputs(inputs)\n\u001b[1;32m 152\u001b[0m outputs \u001b[38;5;241m=\u001b[39m (\n\u001b[0;32m--> 153\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call\u001b[49m\u001b[43m(\u001b[49m\u001b[43minputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrun_manager\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mrun_manager\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 154\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m new_arg_supported\n\u001b[1;32m 155\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_call(inputs)\n\u001b[1;32m 156\u001b[0m )\n\u001b[1;32m 158\u001b[0m final_outputs: Dict[\u001b[38;5;28mstr\u001b[39m, Any] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mprep_outputs(\n\u001b[1;32m 159\u001b[0m inputs, outputs, return_only_outputs\n\u001b[1;32m 160\u001b[0m )\n\u001b[1;32m 161\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain/agents/agent.py:1432\u001b[0m, in \u001b[0;36mAgentExecutor._call\u001b[0;34m(self, inputs, run_manager)\u001b[0m\n\u001b[1;32m 1430\u001b[0m \u001b[38;5;66;03m# We now enter the agent loop (until it returns something).\u001b[39;00m\n\u001b[1;32m 1431\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_should_continue(iterations, time_elapsed):\n\u001b[0;32m-> 1432\u001b[0m next_step_output \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_take_next_step\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1433\u001b[0m \u001b[43m \u001b[49m\u001b[43mname_to_tool_map\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1434\u001b[0m \u001b[43m \u001b[49m\u001b[43mcolor_mapping\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1435\u001b[0m \u001b[43m \u001b[49m\u001b[43minputs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1436\u001b[0m \u001b[43m \u001b[49m\u001b[43mintermediate_steps\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1437\u001b[0m \u001b[43m \u001b[49m\u001b[43mrun_manager\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mrun_manager\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1438\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1439\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(next_step_output, AgentFinish):\n\u001b[1;32m 1440\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_return(\n\u001b[1;32m 1441\u001b[0m next_step_output, intermediate_steps, run_manager\u001b[38;5;241m=\u001b[39mrun_manager\n\u001b[1;32m 1442\u001b[0m )\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain/agents/agent.py:1138\u001b[0m, in \u001b[0;36mAgentExecutor._take_next_step\u001b[0;34m(self, name_to_tool_map, color_mapping, inputs, intermediate_steps, run_manager)\u001b[0m\n\u001b[1;32m 1129\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_take_next_step\u001b[39m(\n\u001b[1;32m 1130\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 1131\u001b[0m name_to_tool_map: Dict[\u001b[38;5;28mstr\u001b[39m, BaseTool],\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 1135\u001b[0m run_manager: Optional[CallbackManagerForChainRun] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 1136\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Union[AgentFinish, List[Tuple[AgentAction, \u001b[38;5;28mstr\u001b[39m]]]:\n\u001b[1;32m 1137\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_consume_next_step(\n\u001b[0;32m-> 1138\u001b[0m [\n\u001b[1;32m 1139\u001b[0m a\n\u001b[1;32m 1140\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_iter_next_step(\n\u001b[1;32m 1141\u001b[0m name_to_tool_map,\n\u001b[1;32m 1142\u001b[0m color_mapping,\n\u001b[1;32m 1143\u001b[0m inputs,\n\u001b[1;32m 1144\u001b[0m intermediate_steps,\n\u001b[1;32m 1145\u001b[0m run_manager,\n\u001b[1;32m 1146\u001b[0m )\n\u001b[1;32m 1147\u001b[0m ]\n\u001b[1;32m 1148\u001b[0m )\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain/agents/agent.py:1138\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 1129\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_take_next_step\u001b[39m(\n\u001b[1;32m 1130\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 1131\u001b[0m name_to_tool_map: Dict[\u001b[38;5;28mstr\u001b[39m, BaseTool],\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 1135\u001b[0m run_manager: Optional[CallbackManagerForChainRun] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 1136\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Union[AgentFinish, List[Tuple[AgentAction, \u001b[38;5;28mstr\u001b[39m]]]:\n\u001b[1;32m 1137\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_consume_next_step(\n\u001b[0;32m-> 1138\u001b[0m [\n\u001b[1;32m 1139\u001b[0m a\n\u001b[1;32m 1140\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_iter_next_step(\n\u001b[1;32m 1141\u001b[0m name_to_tool_map,\n\u001b[1;32m 1142\u001b[0m color_mapping,\n\u001b[1;32m 1143\u001b[0m inputs,\n\u001b[1;32m 1144\u001b[0m intermediate_steps,\n\u001b[1;32m 1145\u001b[0m run_manager,\n\u001b[1;32m 1146\u001b[0m )\n\u001b[1;32m 1147\u001b[0m ]\n\u001b[1;32m 1148\u001b[0m )\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain/agents/agent.py:1166\u001b[0m, in \u001b[0;36mAgentExecutor._iter_next_step\u001b[0;34m(self, name_to_tool_map, color_mapping, inputs, intermediate_steps, run_manager)\u001b[0m\n\u001b[1;32m 1163\u001b[0m intermediate_steps \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_prepare_intermediate_steps(intermediate_steps)\n\u001b[1;32m 1165\u001b[0m \u001b[38;5;66;03m# Call the LLM to see what to do.\u001b[39;00m\n\u001b[0;32m-> 1166\u001b[0m output \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43magent\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mplan\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1167\u001b[0m \u001b[43m \u001b[49m\u001b[43mintermediate_steps\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1168\u001b[0m \u001b[43m \u001b[49m\u001b[43mcallbacks\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mrun_manager\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_child\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mrun_manager\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01melse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 1169\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43minputs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1170\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1171\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m OutputParserException \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 1172\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandle_parsing_errors, \u001b[38;5;28mbool\u001b[39m):\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain/agents/agent.py:397\u001b[0m, in \u001b[0;36mRunnableAgent.plan\u001b[0;34m(self, intermediate_steps, callbacks, **kwargs)\u001b[0m\n\u001b[1;32m 389\u001b[0m final_output: Any \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 390\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstream_runnable:\n\u001b[1;32m 391\u001b[0m \u001b[38;5;66;03m# Use streaming to make sure that the underlying LLM is invoked in a\u001b[39;00m\n\u001b[1;32m 392\u001b[0m \u001b[38;5;66;03m# streaming\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 395\u001b[0m \u001b[38;5;66;03m# Because the response from the plan is not a generator, we need to\u001b[39;00m\n\u001b[1;32m 396\u001b[0m \u001b[38;5;66;03m# accumulate the output into final output and return that.\u001b[39;00m\n\u001b[0;32m--> 397\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m chunk \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mrunnable\u001b[38;5;241m.\u001b[39mstream(inputs, config\u001b[38;5;241m=\u001b[39m{\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcallbacks\u001b[39m\u001b[38;5;124m\"\u001b[39m: callbacks}):\n\u001b[1;32m 398\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m final_output \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 399\u001b[0m final_output \u001b[38;5;241m=\u001b[39m chunk\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain_core/runnables/base.py:2875\u001b[0m, in \u001b[0;36mRunnableSequence.stream\u001b[0;34m(self, input, config, **kwargs)\u001b[0m\n\u001b[1;32m 2869\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mstream\u001b[39m(\n\u001b[1;32m 2870\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 2871\u001b[0m \u001b[38;5;28minput\u001b[39m: Input,\n\u001b[1;32m 2872\u001b[0m config: Optional[RunnableConfig] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 2873\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs: Optional[Any],\n\u001b[1;32m 2874\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Iterator[Output]:\n\u001b[0;32m-> 2875\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtransform(\u001b[38;5;28miter\u001b[39m([\u001b[38;5;28minput\u001b[39m]), config, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain_core/runnables/base.py:2862\u001b[0m, in \u001b[0;36mRunnableSequence.transform\u001b[0;34m(self, input, config, **kwargs)\u001b[0m\n\u001b[1;32m 2856\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mtransform\u001b[39m(\n\u001b[1;32m 2857\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 2858\u001b[0m \u001b[38;5;28minput\u001b[39m: Iterator[Input],\n\u001b[1;32m 2859\u001b[0m config: Optional[RunnableConfig] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 2860\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs: Optional[Any],\n\u001b[1;32m 2861\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Iterator[Output]:\n\u001b[0;32m-> 2862\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_transform_stream_with_config(\n\u001b[1;32m 2863\u001b[0m \u001b[38;5;28minput\u001b[39m,\n\u001b[1;32m 2864\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_transform,\n\u001b[1;32m 2865\u001b[0m patch_config(config, run_name\u001b[38;5;241m=\u001b[39m(config \u001b[38;5;129;01mor\u001b[39;00m {})\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mrun_name\u001b[39m\u001b[38;5;124m\"\u001b[39m) \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mname),\n\u001b[1;32m 2866\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs,\n\u001b[1;32m 2867\u001b[0m )\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain_core/runnables/base.py:1880\u001b[0m, in \u001b[0;36mRunnable._transform_stream_with_config\u001b[0;34m(self, input, transformer, config, run_type, **kwargs)\u001b[0m\n\u001b[1;32m 1878\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 1879\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m \u001b[38;5;28;01mTrue\u001b[39;00m:\n\u001b[0;32m-> 1880\u001b[0m chunk: Output \u001b[38;5;241m=\u001b[39m \u001b[43mcontext\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrun\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mnext\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43miterator\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n\u001b[1;32m 1881\u001b[0m \u001b[38;5;28;01myield\u001b[39;00m chunk\n\u001b[1;32m 1882\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m final_output_supported:\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain_core/runnables/base.py:2826\u001b[0m, in \u001b[0;36mRunnableSequence._transform\u001b[0;34m(self, input, run_manager, config)\u001b[0m\n\u001b[1;32m 2817\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m step \u001b[38;5;129;01min\u001b[39;00m steps:\n\u001b[1;32m 2818\u001b[0m final_pipeline \u001b[38;5;241m=\u001b[39m step\u001b[38;5;241m.\u001b[39mtransform(\n\u001b[1;32m 2819\u001b[0m final_pipeline,\n\u001b[1;32m 2820\u001b[0m patch_config(\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2823\u001b[0m ),\n\u001b[1;32m 2824\u001b[0m )\n\u001b[0;32m-> 2826\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m output \u001b[38;5;129;01min\u001b[39;00m final_pipeline:\n\u001b[1;32m 2827\u001b[0m \u001b[38;5;28;01myield\u001b[39;00m output\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain_core/runnables/base.py:1283\u001b[0m, in \u001b[0;36mRunnable.transform\u001b[0;34m(self, input, config, **kwargs)\u001b[0m\n\u001b[1;32m 1280\u001b[0m final: Input\n\u001b[1;32m 1281\u001b[0m got_first_val \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[0;32m-> 1283\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m chunk \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28minput\u001b[39m:\n\u001b[1;32m 1284\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m got_first_val:\n\u001b[1;32m 1285\u001b[0m final \u001b[38;5;241m=\u001b[39m adapt_first_streaming_chunk(chunk) \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain_core/runnables/base.py:4728\u001b[0m, in \u001b[0;36mRunnableBindingBase.transform\u001b[0;34m(self, input, config, **kwargs)\u001b[0m\n\u001b[1;32m 4722\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mtransform\u001b[39m(\n\u001b[1;32m 4723\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 4724\u001b[0m \u001b[38;5;28minput\u001b[39m: Iterator[Input],\n\u001b[1;32m 4725\u001b[0m config: Optional[RunnableConfig] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 4726\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs: Any,\n\u001b[1;32m 4727\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Iterator[Output]:\n\u001b[0;32m-> 4728\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbound\u001b[38;5;241m.\u001b[39mtransform(\n\u001b[1;32m 4729\u001b[0m \u001b[38;5;28minput\u001b[39m,\n\u001b[1;32m 4730\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_merge_configs(config),\n\u001b[1;32m 4731\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m{\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mkwargs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs},\n\u001b[1;32m 4732\u001b[0m )\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain_core/runnables/base.py:1300\u001b[0m, in \u001b[0;36mRunnable.transform\u001b[0;34m(self, input, config, **kwargs)\u001b[0m\n\u001b[1;32m 1293\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\n\u001b[1;32m 1294\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mFailed while trying to add together \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 1295\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtype \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mtype\u001b[39m(final)\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m and \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mtype\u001b[39m(chunk)\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 1296\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mThese types should be addable for transform to work.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 1297\u001b[0m )\n\u001b[1;32m 1299\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m got_first_val:\n\u001b[0;32m-> 1300\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstream(final, config, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain_core/language_models/chat_models.py:249\u001b[0m, in \u001b[0;36mBaseChatModel.stream\u001b[0;34m(self, input, config, stop, **kwargs)\u001b[0m\n\u001b[1;32m 242\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 243\u001b[0m run_manager\u001b[38;5;241m.\u001b[39mon_llm_error(\n\u001b[1;32m 244\u001b[0m e,\n\u001b[1;32m 245\u001b[0m response\u001b[38;5;241m=\u001b[39mLLMResult(\n\u001b[1;32m 246\u001b[0m generations\u001b[38;5;241m=\u001b[39m[[generation]] \u001b[38;5;28;01mif\u001b[39;00m generation \u001b[38;5;28;01melse\u001b[39;00m []\n\u001b[1;32m 247\u001b[0m ),\n\u001b[1;32m 248\u001b[0m )\n\u001b[0;32m--> 249\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m e\n\u001b[1;32m 250\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 251\u001b[0m run_manager\u001b[38;5;241m.\u001b[39mon_llm_end(LLMResult(generations\u001b[38;5;241m=\u001b[39m[[generation]]))\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain_core/language_models/chat_models.py:229\u001b[0m, in \u001b[0;36mBaseChatModel.stream\u001b[0;34m(self, input, config, stop, **kwargs)\u001b[0m\n\u001b[1;32m 227\u001b[0m generation: Optional[ChatGenerationChunk] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 228\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 229\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m chunk \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_stream(messages, stop\u001b[38;5;241m=\u001b[39mstop, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 230\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m chunk\u001b[38;5;241m.\u001b[39mmessage\u001b[38;5;241m.\u001b[39mid \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 231\u001b[0m chunk\u001b[38;5;241m.\u001b[39mmessage\u001b[38;5;241m.\u001b[39mid \u001b[38;5;241m=\u001b[39m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mrun-\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mrun_manager\u001b[38;5;241m.\u001b[39mrun_id\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain_mistralai/chat_models.py:428\u001b[0m, in \u001b[0;36mChatMistralAI._stream\u001b[0;34m(self, messages, stop, run_manager, **kwargs)\u001b[0m\n\u001b[1;32m 425\u001b[0m params \u001b[38;5;241m=\u001b[39m {\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mparams, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mstream\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;28;01mTrue\u001b[39;00m}\n\u001b[1;32m 427\u001b[0m default_chunk_class: Type[BaseMessageChunk] \u001b[38;5;241m=\u001b[39m AIMessageChunk\n\u001b[0;32m--> 428\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m chunk \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcompletion_with_retry(\n\u001b[1;32m 429\u001b[0m messages\u001b[38;5;241m=\u001b[39mmessage_dicts, run_manager\u001b[38;5;241m=\u001b[39mrun_manager, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mparams\n\u001b[1;32m 430\u001b[0m ):\n\u001b[1;32m 431\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(chunk[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mchoices\u001b[39m\u001b[38;5;124m\"\u001b[39m]) \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m0\u001b[39m:\n\u001b[1;32m 432\u001b[0m \u001b[38;5;28;01mcontinue\u001b[39;00m\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain_mistralai/chat_models.py:301\u001b[0m, in \u001b[0;36mChatMistralAI.completion_with_retry.._completion_with_retry..iter_sse\u001b[0;34m()\u001b[0m\n\u001b[1;32m 297\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21miter_sse\u001b[39m() \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Iterator[Dict]:\n\u001b[1;32m 298\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m connect_sse(\n\u001b[1;32m 299\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mclient, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mPOST\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m/chat/completions\u001b[39m\u001b[38;5;124m\"\u001b[39m, json\u001b[38;5;241m=\u001b[39mkwargs\n\u001b[1;32m 300\u001b[0m ) \u001b[38;5;28;01mas\u001b[39;00m event_source:\n\u001b[0;32m--> 301\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m event \u001b[38;5;129;01min\u001b[39;00m event_source\u001b[38;5;241m.\u001b[39miter_sse():\n\u001b[1;32m 302\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m event\u001b[38;5;241m.\u001b[39mdata \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m[DONE]\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[1;32m 303\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/httpx_sse/_api.py:28\u001b[0m, in \u001b[0;36mEventSource.iter_sse\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 27\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21miter_sse\u001b[39m(\u001b[38;5;28mself\u001b[39m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Iterator[ServerSentEvent]:\n\u001b[0;32m---> 28\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_check_content_type\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 29\u001b[0m decoder \u001b[38;5;241m=\u001b[39m SSEDecoder()\n\u001b[1;32m 30\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m line \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_response\u001b[38;5;241m.\u001b[39miter_lines():\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/httpx_sse/_api.py:18\u001b[0m, in \u001b[0;36mEventSource._check_content_type\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 16\u001b[0m content_type \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_response\u001b[38;5;241m.\u001b[39mheaders\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcontent-type\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m\"\u001b[39m)\u001b[38;5;241m.\u001b[39mpartition(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m;\u001b[39m\u001b[38;5;124m\"\u001b[39m)[\u001b[38;5;241m0\u001b[39m]\n\u001b[1;32m 17\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtext/event-stream\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m content_type:\n\u001b[0;32m---> 18\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m SSEError(\n\u001b[1;32m 19\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mExpected response header Content-Type to contain \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtext/event-stream\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m, \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 20\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mgot \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mcontent_type\u001b[38;5;132;01m!r}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 21\u001b[0m )\n", + "\u001b[0;31mSSEError\u001b[0m: Expected response header Content-Type to contain 'text/event-stream', got 'application/json'" + ] + } + ], + "source": [ + "agent_executor.invoke({\"input\": f\"Hi, is my squat correct ? {keypoints}\"})" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Parameter `stop` not yet supported (https://docs.mistral.ai/api)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\u001b[1m> Entering new AgentExecutor chain...\u001b[0m\n" + ] + }, + { + "ename": "SSEError", + "evalue": "Expected response header Content-Type to contain 'text/event-stream', got 'application/json'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mSSEError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[44], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m input_\u001b[38;5;241m=\u001b[39m\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mIs my squat correct? \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mkeypoints\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m----> 2\u001b[0m \u001b[43magent_executor\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43minvoke\u001b[49m\u001b[43m(\u001b[49m\u001b[43m{\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43minput\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43minput_\u001b[49m\u001b[43m}\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain/chains/base.py:163\u001b[0m, in \u001b[0;36mChain.invoke\u001b[0;34m(self, input, config, **kwargs)\u001b[0m\n\u001b[1;32m 161\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 162\u001b[0m run_manager\u001b[38;5;241m.\u001b[39mon_chain_error(e)\n\u001b[0;32m--> 163\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m e\n\u001b[1;32m 164\u001b[0m run_manager\u001b[38;5;241m.\u001b[39mon_chain_end(outputs)\n\u001b[1;32m 166\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m include_run_info:\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain/chains/base.py:153\u001b[0m, in \u001b[0;36mChain.invoke\u001b[0;34m(self, input, config, **kwargs)\u001b[0m\n\u001b[1;32m 150\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 151\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_validate_inputs(inputs)\n\u001b[1;32m 152\u001b[0m outputs \u001b[38;5;241m=\u001b[39m (\n\u001b[0;32m--> 153\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call\u001b[49m\u001b[43m(\u001b[49m\u001b[43minputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrun_manager\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mrun_manager\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 154\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m new_arg_supported\n\u001b[1;32m 155\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_call(inputs)\n\u001b[1;32m 156\u001b[0m )\n\u001b[1;32m 158\u001b[0m final_outputs: Dict[\u001b[38;5;28mstr\u001b[39m, Any] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mprep_outputs(\n\u001b[1;32m 159\u001b[0m inputs, outputs, return_only_outputs\n\u001b[1;32m 160\u001b[0m )\n\u001b[1;32m 161\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain/agents/agent.py:1432\u001b[0m, in \u001b[0;36mAgentExecutor._call\u001b[0;34m(self, inputs, run_manager)\u001b[0m\n\u001b[1;32m 1430\u001b[0m \u001b[38;5;66;03m# We now enter the agent loop (until it returns something).\u001b[39;00m\n\u001b[1;32m 1431\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_should_continue(iterations, time_elapsed):\n\u001b[0;32m-> 1432\u001b[0m next_step_output \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_take_next_step\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1433\u001b[0m \u001b[43m \u001b[49m\u001b[43mname_to_tool_map\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1434\u001b[0m \u001b[43m \u001b[49m\u001b[43mcolor_mapping\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1435\u001b[0m \u001b[43m \u001b[49m\u001b[43minputs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1436\u001b[0m \u001b[43m \u001b[49m\u001b[43mintermediate_steps\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1437\u001b[0m \u001b[43m \u001b[49m\u001b[43mrun_manager\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mrun_manager\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1438\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1439\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(next_step_output, AgentFinish):\n\u001b[1;32m 1440\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_return(\n\u001b[1;32m 1441\u001b[0m next_step_output, intermediate_steps, run_manager\u001b[38;5;241m=\u001b[39mrun_manager\n\u001b[1;32m 1442\u001b[0m )\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain/agents/agent.py:1138\u001b[0m, in \u001b[0;36mAgentExecutor._take_next_step\u001b[0;34m(self, name_to_tool_map, color_mapping, inputs, intermediate_steps, run_manager)\u001b[0m\n\u001b[1;32m 1129\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_take_next_step\u001b[39m(\n\u001b[1;32m 1130\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 1131\u001b[0m name_to_tool_map: Dict[\u001b[38;5;28mstr\u001b[39m, BaseTool],\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 1135\u001b[0m run_manager: Optional[CallbackManagerForChainRun] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 1136\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Union[AgentFinish, List[Tuple[AgentAction, \u001b[38;5;28mstr\u001b[39m]]]:\n\u001b[1;32m 1137\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_consume_next_step(\n\u001b[0;32m-> 1138\u001b[0m [\n\u001b[1;32m 1139\u001b[0m a\n\u001b[1;32m 1140\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_iter_next_step(\n\u001b[1;32m 1141\u001b[0m name_to_tool_map,\n\u001b[1;32m 1142\u001b[0m color_mapping,\n\u001b[1;32m 1143\u001b[0m inputs,\n\u001b[1;32m 1144\u001b[0m intermediate_steps,\n\u001b[1;32m 1145\u001b[0m run_manager,\n\u001b[1;32m 1146\u001b[0m )\n\u001b[1;32m 1147\u001b[0m ]\n\u001b[1;32m 1148\u001b[0m )\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain/agents/agent.py:1138\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 1129\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_take_next_step\u001b[39m(\n\u001b[1;32m 1130\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 1131\u001b[0m name_to_tool_map: Dict[\u001b[38;5;28mstr\u001b[39m, BaseTool],\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 1135\u001b[0m run_manager: Optional[CallbackManagerForChainRun] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 1136\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Union[AgentFinish, List[Tuple[AgentAction, \u001b[38;5;28mstr\u001b[39m]]]:\n\u001b[1;32m 1137\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_consume_next_step(\n\u001b[0;32m-> 1138\u001b[0m [\n\u001b[1;32m 1139\u001b[0m a\n\u001b[1;32m 1140\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_iter_next_step(\n\u001b[1;32m 1141\u001b[0m name_to_tool_map,\n\u001b[1;32m 1142\u001b[0m color_mapping,\n\u001b[1;32m 1143\u001b[0m inputs,\n\u001b[1;32m 1144\u001b[0m intermediate_steps,\n\u001b[1;32m 1145\u001b[0m run_manager,\n\u001b[1;32m 1146\u001b[0m )\n\u001b[1;32m 1147\u001b[0m ]\n\u001b[1;32m 1148\u001b[0m )\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain/agents/agent.py:1166\u001b[0m, in \u001b[0;36mAgentExecutor._iter_next_step\u001b[0;34m(self, name_to_tool_map, color_mapping, inputs, intermediate_steps, run_manager)\u001b[0m\n\u001b[1;32m 1163\u001b[0m intermediate_steps \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_prepare_intermediate_steps(intermediate_steps)\n\u001b[1;32m 1165\u001b[0m \u001b[38;5;66;03m# Call the LLM to see what to do.\u001b[39;00m\n\u001b[0;32m-> 1166\u001b[0m output \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43magent\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mplan\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1167\u001b[0m \u001b[43m \u001b[49m\u001b[43mintermediate_steps\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1168\u001b[0m \u001b[43m \u001b[49m\u001b[43mcallbacks\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mrun_manager\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_child\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mrun_manager\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01melse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 1169\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43minputs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1170\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1171\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m OutputParserException \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 1172\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandle_parsing_errors, \u001b[38;5;28mbool\u001b[39m):\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain/agents/agent.py:397\u001b[0m, in \u001b[0;36mRunnableAgent.plan\u001b[0;34m(self, intermediate_steps, callbacks, **kwargs)\u001b[0m\n\u001b[1;32m 389\u001b[0m final_output: Any \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 390\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstream_runnable:\n\u001b[1;32m 391\u001b[0m \u001b[38;5;66;03m# Use streaming to make sure that the underlying LLM is invoked in a\u001b[39;00m\n\u001b[1;32m 392\u001b[0m \u001b[38;5;66;03m# streaming\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 395\u001b[0m \u001b[38;5;66;03m# Because the response from the plan is not a generator, we need to\u001b[39;00m\n\u001b[1;32m 396\u001b[0m \u001b[38;5;66;03m# accumulate the output into final output and return that.\u001b[39;00m\n\u001b[0;32m--> 397\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m chunk \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mrunnable\u001b[38;5;241m.\u001b[39mstream(inputs, config\u001b[38;5;241m=\u001b[39m{\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcallbacks\u001b[39m\u001b[38;5;124m\"\u001b[39m: callbacks}):\n\u001b[1;32m 398\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m final_output \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 399\u001b[0m final_output \u001b[38;5;241m=\u001b[39m chunk\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain_core/runnables/base.py:2875\u001b[0m, in \u001b[0;36mRunnableSequence.stream\u001b[0;34m(self, input, config, **kwargs)\u001b[0m\n\u001b[1;32m 2869\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mstream\u001b[39m(\n\u001b[1;32m 2870\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 2871\u001b[0m \u001b[38;5;28minput\u001b[39m: Input,\n\u001b[1;32m 2872\u001b[0m config: Optional[RunnableConfig] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 2873\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs: Optional[Any],\n\u001b[1;32m 2874\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Iterator[Output]:\n\u001b[0;32m-> 2875\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtransform(\u001b[38;5;28miter\u001b[39m([\u001b[38;5;28minput\u001b[39m]), config, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain_core/runnables/base.py:2862\u001b[0m, in \u001b[0;36mRunnableSequence.transform\u001b[0;34m(self, input, config, **kwargs)\u001b[0m\n\u001b[1;32m 2856\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mtransform\u001b[39m(\n\u001b[1;32m 2857\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 2858\u001b[0m \u001b[38;5;28minput\u001b[39m: Iterator[Input],\n\u001b[1;32m 2859\u001b[0m config: Optional[RunnableConfig] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 2860\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs: Optional[Any],\n\u001b[1;32m 2861\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Iterator[Output]:\n\u001b[0;32m-> 2862\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_transform_stream_with_config(\n\u001b[1;32m 2863\u001b[0m \u001b[38;5;28minput\u001b[39m,\n\u001b[1;32m 2864\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_transform,\n\u001b[1;32m 2865\u001b[0m patch_config(config, run_name\u001b[38;5;241m=\u001b[39m(config \u001b[38;5;129;01mor\u001b[39;00m {})\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mrun_name\u001b[39m\u001b[38;5;124m\"\u001b[39m) \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mname),\n\u001b[1;32m 2866\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs,\n\u001b[1;32m 2867\u001b[0m )\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain_core/runnables/base.py:1880\u001b[0m, in \u001b[0;36mRunnable._transform_stream_with_config\u001b[0;34m(self, input, transformer, config, run_type, **kwargs)\u001b[0m\n\u001b[1;32m 1878\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 1879\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m \u001b[38;5;28;01mTrue\u001b[39;00m:\n\u001b[0;32m-> 1880\u001b[0m chunk: Output \u001b[38;5;241m=\u001b[39m \u001b[43mcontext\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrun\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mnext\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43miterator\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n\u001b[1;32m 1881\u001b[0m \u001b[38;5;28;01myield\u001b[39;00m chunk\n\u001b[1;32m 1882\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m final_output_supported:\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain_core/runnables/base.py:2826\u001b[0m, in \u001b[0;36mRunnableSequence._transform\u001b[0;34m(self, input, run_manager, config)\u001b[0m\n\u001b[1;32m 2817\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m step \u001b[38;5;129;01min\u001b[39;00m steps:\n\u001b[1;32m 2818\u001b[0m final_pipeline \u001b[38;5;241m=\u001b[39m step\u001b[38;5;241m.\u001b[39mtransform(\n\u001b[1;32m 2819\u001b[0m final_pipeline,\n\u001b[1;32m 2820\u001b[0m patch_config(\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2823\u001b[0m ),\n\u001b[1;32m 2824\u001b[0m )\n\u001b[0;32m-> 2826\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m output \u001b[38;5;129;01min\u001b[39;00m final_pipeline:\n\u001b[1;32m 2827\u001b[0m \u001b[38;5;28;01myield\u001b[39;00m output\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain_core/runnables/base.py:1283\u001b[0m, in \u001b[0;36mRunnable.transform\u001b[0;34m(self, input, config, **kwargs)\u001b[0m\n\u001b[1;32m 1280\u001b[0m final: Input\n\u001b[1;32m 1281\u001b[0m got_first_val \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[0;32m-> 1283\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m chunk \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28minput\u001b[39m:\n\u001b[1;32m 1284\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m got_first_val:\n\u001b[1;32m 1285\u001b[0m final \u001b[38;5;241m=\u001b[39m adapt_first_streaming_chunk(chunk) \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain_core/runnables/base.py:4728\u001b[0m, in \u001b[0;36mRunnableBindingBase.transform\u001b[0;34m(self, input, config, **kwargs)\u001b[0m\n\u001b[1;32m 4722\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mtransform\u001b[39m(\n\u001b[1;32m 4723\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 4724\u001b[0m \u001b[38;5;28minput\u001b[39m: Iterator[Input],\n\u001b[1;32m 4725\u001b[0m config: Optional[RunnableConfig] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 4726\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs: Any,\n\u001b[1;32m 4727\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Iterator[Output]:\n\u001b[0;32m-> 4728\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbound\u001b[38;5;241m.\u001b[39mtransform(\n\u001b[1;32m 4729\u001b[0m \u001b[38;5;28minput\u001b[39m,\n\u001b[1;32m 4730\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_merge_configs(config),\n\u001b[1;32m 4731\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m{\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mkwargs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs},\n\u001b[1;32m 4732\u001b[0m )\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain_core/runnables/base.py:1300\u001b[0m, in \u001b[0;36mRunnable.transform\u001b[0;34m(self, input, config, **kwargs)\u001b[0m\n\u001b[1;32m 1293\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\n\u001b[1;32m 1294\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mFailed while trying to add together \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 1295\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtype \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mtype\u001b[39m(final)\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m and \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mtype\u001b[39m(chunk)\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 1296\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mThese types should be addable for transform to work.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 1297\u001b[0m )\n\u001b[1;32m 1299\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m got_first_val:\n\u001b[0;32m-> 1300\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstream(final, config, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain_core/language_models/chat_models.py:249\u001b[0m, in \u001b[0;36mBaseChatModel.stream\u001b[0;34m(self, input, config, stop, **kwargs)\u001b[0m\n\u001b[1;32m 242\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 243\u001b[0m run_manager\u001b[38;5;241m.\u001b[39mon_llm_error(\n\u001b[1;32m 244\u001b[0m e,\n\u001b[1;32m 245\u001b[0m response\u001b[38;5;241m=\u001b[39mLLMResult(\n\u001b[1;32m 246\u001b[0m generations\u001b[38;5;241m=\u001b[39m[[generation]] \u001b[38;5;28;01mif\u001b[39;00m generation \u001b[38;5;28;01melse\u001b[39;00m []\n\u001b[1;32m 247\u001b[0m ),\n\u001b[1;32m 248\u001b[0m )\n\u001b[0;32m--> 249\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m e\n\u001b[1;32m 250\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 251\u001b[0m run_manager\u001b[38;5;241m.\u001b[39mon_llm_end(LLMResult(generations\u001b[38;5;241m=\u001b[39m[[generation]]))\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain_core/language_models/chat_models.py:229\u001b[0m, in \u001b[0;36mBaseChatModel.stream\u001b[0;34m(self, input, config, stop, **kwargs)\u001b[0m\n\u001b[1;32m 227\u001b[0m generation: Optional[ChatGenerationChunk] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 228\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 229\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m chunk \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_stream(messages, stop\u001b[38;5;241m=\u001b[39mstop, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 230\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m chunk\u001b[38;5;241m.\u001b[39mmessage\u001b[38;5;241m.\u001b[39mid \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 231\u001b[0m chunk\u001b[38;5;241m.\u001b[39mmessage\u001b[38;5;241m.\u001b[39mid \u001b[38;5;241m=\u001b[39m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mrun-\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mrun_manager\u001b[38;5;241m.\u001b[39mrun_id\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain_mistralai/chat_models.py:428\u001b[0m, in \u001b[0;36mChatMistralAI._stream\u001b[0;34m(self, messages, stop, run_manager, **kwargs)\u001b[0m\n\u001b[1;32m 425\u001b[0m params \u001b[38;5;241m=\u001b[39m {\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mparams, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mstream\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;28;01mTrue\u001b[39;00m}\n\u001b[1;32m 427\u001b[0m default_chunk_class: Type[BaseMessageChunk] \u001b[38;5;241m=\u001b[39m AIMessageChunk\n\u001b[0;32m--> 428\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m chunk \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcompletion_with_retry(\n\u001b[1;32m 429\u001b[0m messages\u001b[38;5;241m=\u001b[39mmessage_dicts, run_manager\u001b[38;5;241m=\u001b[39mrun_manager, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mparams\n\u001b[1;32m 430\u001b[0m ):\n\u001b[1;32m 431\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(chunk[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mchoices\u001b[39m\u001b[38;5;124m\"\u001b[39m]) \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m0\u001b[39m:\n\u001b[1;32m 432\u001b[0m \u001b[38;5;28;01mcontinue\u001b[39;00m\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/langchain_mistralai/chat_models.py:301\u001b[0m, in \u001b[0;36mChatMistralAI.completion_with_retry.._completion_with_retry..iter_sse\u001b[0;34m()\u001b[0m\n\u001b[1;32m 297\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21miter_sse\u001b[39m() \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Iterator[Dict]:\n\u001b[1;32m 298\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m connect_sse(\n\u001b[1;32m 299\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mclient, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mPOST\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m/chat/completions\u001b[39m\u001b[38;5;124m\"\u001b[39m, json\u001b[38;5;241m=\u001b[39mkwargs\n\u001b[1;32m 300\u001b[0m ) \u001b[38;5;28;01mas\u001b[39;00m event_source:\n\u001b[0;32m--> 301\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m event \u001b[38;5;129;01min\u001b[39;00m event_source\u001b[38;5;241m.\u001b[39miter_sse():\n\u001b[1;32m 302\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m event\u001b[38;5;241m.\u001b[39mdata \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m[DONE]\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[1;32m 303\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/httpx_sse/_api.py:28\u001b[0m, in \u001b[0;36mEventSource.iter_sse\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 27\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21miter_sse\u001b[39m(\u001b[38;5;28mself\u001b[39m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Iterator[ServerSentEvent]:\n\u001b[0;32m---> 28\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_check_content_type\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 29\u001b[0m decoder \u001b[38;5;241m=\u001b[39m SSEDecoder()\n\u001b[1;32m 30\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m line \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_response\u001b[38;5;241m.\u001b[39miter_lines():\n", + "File \u001b[0;32m~/Documents/Hackathon/FitnessEquation/venv/lib/python3.9/site-packages/httpx_sse/_api.py:18\u001b[0m, in \u001b[0;36mEventSource._check_content_type\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 16\u001b[0m content_type \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_response\u001b[38;5;241m.\u001b[39mheaders\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcontent-type\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m\"\u001b[39m)\u001b[38;5;241m.\u001b[39mpartition(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m;\u001b[39m\u001b[38;5;124m\"\u001b[39m)[\u001b[38;5;241m0\u001b[39m]\n\u001b[1;32m 17\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtext/event-stream\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m content_type:\n\u001b[0;32m---> 18\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m SSEError(\n\u001b[1;32m 19\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mExpected response header Content-Type to contain \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtext/event-stream\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m, \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 20\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mgot \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mcontent_type\u001b[38;5;132;01m!r}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 21\u001b[0m )\n", + "\u001b[0;31mSSEError\u001b[0m: Expected response header Content-Type to contain 'text/event-stream', got 'application/json'" + ] + } + ], + "source": [ + "input_=f\"Is my squat correct? {keypoints}\"\n", + "agent_executor.invoke({\"input\": input_})" + ] } ], "metadata": {