1637 lines
91 KiB
Plaintext
1637 lines
91 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import pandas as pd"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"from augmentations.augment import __preprocess_row_sign"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"0 path\n",
|
|
"1 participant_id\n",
|
|
"2 sequence_id\n",
|
|
"3 sign\n",
|
|
"4 labels\n",
|
|
"5 nose_X\n",
|
|
"6 nose_Y\n",
|
|
"7 leftEye_X\n",
|
|
"8 leftEye_Y\n",
|
|
"9 rightEye_X\n",
|
|
"10 rightEye_Y\n",
|
|
"11 leftEar_X\n",
|
|
"12 leftEar_Y\n",
|
|
"13 rightEar_X\n",
|
|
"14 rightEar_Y\n",
|
|
"15 leftShoulder_X\n",
|
|
"16 leftShoulder_Y\n",
|
|
"17 rightShoulder_X\n",
|
|
"18 rightShoulder_Y\n",
|
|
"19 leftElbow_X\n",
|
|
"20 leftElbow_Y\n",
|
|
"21 rightElbow_X\n",
|
|
"22 rightElbow_Y\n",
|
|
"23 leftWrist_X\n",
|
|
"24 leftWrist_Y\n",
|
|
"25 rightWrist_X\n",
|
|
"26 rightWrist_Y\n",
|
|
"27 wrist_left_X\n",
|
|
"28 wrist_left_Y\n",
|
|
"29 thumbCMC_left_X\n",
|
|
"30 thumbCMC_left_Y\n",
|
|
"31 thumbMP_left_X\n",
|
|
"32 thumbMP_left_Y\n",
|
|
"33 thumbIP_left_X\n",
|
|
"34 thumbIP_left_Y\n",
|
|
"35 thumbTip_left_X\n",
|
|
"36 thumbTip_left_Y\n",
|
|
"37 indexMCP_left_X\n",
|
|
"38 indexMCP_left_Y\n",
|
|
"39 indexPIP_left_X\n",
|
|
"40 indexPIP_left_Y\n",
|
|
"41 indexDIP_left_X\n",
|
|
"42 indexDIP_left_Y\n",
|
|
"43 indexTip_left_X\n",
|
|
"44 indexTip_left_Y\n",
|
|
"45 middleMCP_left_X\n",
|
|
"46 middleMCP_left_Y\n",
|
|
"47 middlePIP_left_X\n",
|
|
"48 middlePIP_left_Y\n",
|
|
"49 middleDIP_left_X\n",
|
|
"50 middleDIP_left_Y\n",
|
|
"51 middleTip_left_X\n",
|
|
"52 middleTip_left_Y\n",
|
|
"53 ringMCP_left_X\n",
|
|
"54 ringMCP_left_Y\n",
|
|
"55 ringPIP_left_X\n",
|
|
"56 ringPIP_left_Y\n",
|
|
"57 ringDIP_left_X\n",
|
|
"58 ringDIP_left_Y\n",
|
|
"59 ringTip_left_X\n",
|
|
"60 ringTip_left_Y\n",
|
|
"61 littleMCP_left_X\n",
|
|
"62 littleMCP_left_Y\n",
|
|
"63 littlePIP_left_X\n",
|
|
"64 littlePIP_left_Y\n",
|
|
"65 littleDIP_left_X\n",
|
|
"66 littleDIP_left_Y\n",
|
|
"67 littleTip_left_X\n",
|
|
"68 littleTip_left_Y\n",
|
|
"69 wrist_right_X\n",
|
|
"70 wrist_right_Y\n",
|
|
"71 thumbCMC_right_X\n",
|
|
"72 thumbCMC_right_Y\n",
|
|
"73 thumbMP_right_X\n",
|
|
"74 thumbMP_right_Y\n",
|
|
"75 thumbIP_right_X\n",
|
|
"76 thumbIP_right_Y\n",
|
|
"77 thumbTip_right_X\n",
|
|
"78 thumbTip_right_Y\n",
|
|
"79 indexMCP_right_X\n",
|
|
"80 indexMCP_right_Y\n",
|
|
"81 indexPIP_right_X\n",
|
|
"82 indexPIP_right_Y\n",
|
|
"83 indexDIP_right_X\n",
|
|
"84 indexDIP_right_Y\n",
|
|
"85 indexTip_right_X\n",
|
|
"86 indexTip_right_Y\n",
|
|
"87 middleMCP_right_X\n",
|
|
"88 middleMCP_right_Y\n",
|
|
"89 middlePIP_right_X\n",
|
|
"90 middlePIP_right_Y\n",
|
|
"91 middleDIP_right_X\n",
|
|
"92 middleDIP_right_Y\n",
|
|
"93 middleTip_right_X\n",
|
|
"94 middleTip_right_Y\n",
|
|
"95 ringMCP_right_X\n",
|
|
"96 ringMCP_right_Y\n",
|
|
"97 ringPIP_right_X\n",
|
|
"98 ringPIP_right_Y\n",
|
|
"99 ringDIP_right_X\n",
|
|
"100 ringDIP_right_Y\n",
|
|
"101 ringTip_right_X\n",
|
|
"102 ringTip_right_Y\n",
|
|
"103 littleMCP_right_X\n",
|
|
"104 littleMCP_right_Y\n",
|
|
"105 littlePIP_right_X\n",
|
|
"106 littlePIP_right_Y\n",
|
|
"107 littleDIP_right_X\n",
|
|
"108 littleDIP_right_Y\n",
|
|
"109 littleTip_right_X\n",
|
|
"110 littleTip_right_Y\n",
|
|
"111 neck_X\n",
|
|
"112 neck_Y\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"df = pd.read_csv('data/processed/spoter_train.csv')\n",
|
|
"for i, e in enumerate(df.columns):\n",
|
|
" print(i, e)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 44,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"# dataset = 'data/processed/spoter_train.csv'\n",
|
|
"\n",
|
|
"def plot(dataset):\n",
|
|
" df = pd.read_csv(dataset)\n",
|
|
" # get columns 0 - 26\n",
|
|
" # df = df.iloc[:, 5:27]\n",
|
|
"\n",
|
|
"\n",
|
|
" # df = df.iloc[:, 27:69]\n",
|
|
" # df = df.iloc[:, 69:]\n",
|
|
"\n",
|
|
" if 'wlasl' in dataset:\n",
|
|
" df = df.iloc[:, :108]\n",
|
|
"\n",
|
|
" else:\n",
|
|
" df = df.iloc[:, 5:]\n",
|
|
"\n",
|
|
"\n",
|
|
" # get first row\n",
|
|
" row = df.iloc[20]\n",
|
|
"\n",
|
|
" # use matplotlib to create a scatter plot (the columns are X, Y, X, Y, X, Y, X, Y)\n",
|
|
" import matplotlib.pyplot as plt\n",
|
|
" import ast\n",
|
|
"\n",
|
|
" def __process_row(coords):\n",
|
|
" coords = coords.tolist()\n",
|
|
"\n",
|
|
" new_coords = [] # string to list\n",
|
|
"\n",
|
|
" for x in coords:\n",
|
|
" new_coords.append(ast.literal_eval(x))\n",
|
|
"\n",
|
|
" coords = [x[0] for x in new_coords]\n",
|
|
"\n",
|
|
" return [float(x) for x in coords]\n",
|
|
"\n",
|
|
"\n",
|
|
" # extract X and Y coordinates from the row\n",
|
|
" x_coords = row.iloc[::2] # columns 0, 2, 4, 6, ...\n",
|
|
" y_coords = row.iloc[1::2] # columns 1, 3, 5, 7, ...\n",
|
|
"\n",
|
|
" x_coords = __process_row(x_coords)\n",
|
|
" y_coords = __process_row(y_coords)\n",
|
|
"\n",
|
|
" # create a scatter plot\n",
|
|
" plt.scatter(x_coords, y_coords)\n",
|
|
"\n",
|
|
"\n",
|
|
" plt.xlim(0, 1)\n",
|
|
" plt.ylim(0, 1)\n",
|
|
" \n",
|
|
" # add axis labels and a title\n",
|
|
" plt.xlabel('X')\n",
|
|
" plt.ylabel('Y')\n",
|
|
" plt.title('Scatter plot of X and Y coordinates')\n",
|
|
"\n",
|
|
" # show the plot\n",
|
|
" plt.show()\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 45,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAkIAAAHHCAYAAABTMjf2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA6QklEQVR4nO3de1yUZf7/8TegzHjgoCEHjURNMzyRKCweMg3DdDFrLdPylJtpZim1q6aJh0rXyqU8a6V9bV3dytoOhgc2tzXZxRVtPaQdxLRWUDPBNEWZ6/eHP2YdAQUDBuZ+PR+PeTyaa677vj/3XEPz9r6v+x4vY4wRAACABXm7uwAAAAB3IQgBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBHuC2227Tbbfd5u4yXOTk5Kh///667rrr5OXlpZSUFHeXVC4iIiI0bNgwd5dRJVz+uTt48KC8vLy0YsUKt9UElBVBCFXWrl271L9/fzVu3Fh2u12NGjVSz549NW/evArb5qpVq4r9wv7vf/+radOmaefOnRW2bXc4c+aMpk2bps2bN5f7usePH6/169dr0qRJWrlypXr16lVsv40bN8rLy0vTp08v8lpWVpZq166t/v37l3t9FWX16tXy8vLSkiVLin199OjRqlmzpj7//PNKrsxzPP/883rvvffcXQY8hQGqoM8++8z4+vqaG2+80cycOdMsW7bMTJ061dxxxx2mWbNmFbbdPn36mMaNGxdp37Ztm5Fkli9fXmHb/iW6detmunXrVubljh07ZiSZ5OTkcq8pJCTEPPDAA6XqO2jQIGOz2cz+/ftd2nv16mX8/f3N999/X+71XavGjRuboUOHXrFPr169TGBgoMnOznZp/9e//mW8vb3N7373uwqssPJc/rlzOBzm559/NhcuXKjQ7dapU+eqYwCUVg13BzGgOM8995wCAgK0bds2BQYGurx29OhR9xRVAU6fPq06deq4u4wKcfTo0SJjV5I//vGP+vjjjzVq1Cj97W9/k3TxyEpqaqpeeeUVNWzYsAIrLX+LFi1Sq1atNH78eK1atUqSVFBQoEceeUQ33HCDpk2b5t4CS6msn08vLy/Z7fYKrAioAO5OYkBxbrrpJnPbbbeVuv/KlStNx44dTa1atUxgYKDp2rWrWb9+vfP19957z/Tu3duEhYUZX19f07RpUzNjxgyXf7l269bNSHJ5NG7c2HzyySdF2nXZ0aF//vOfJiEhwfj7+5tatWqZW2+91WzZssWlxuTkZCPJ7NmzxwwcONAEBgaaqKioEvdp+fLlRpL5+9//bkaOHGnq169v/Pz8zODBg82JEydc+hZ3RCgnJ8c89NBDJjg42NhsNtO2bVuzYsUK5+tZWVnF7tfVjg598803pn///qZevXqmVq1aJjY21nz44YdF6r78cTVLly41ksyKFSvMjz/+aEJDQ03Hjh1NQUHBVZc9ePCgGT16tGnRooWx2+2mfv36pn///iYrK8ulX2FtW7ZsMePHjzdBQUGmdu3apl+/fubo0aMufR0Oh5k5c6Zp1KiRqVWrlrntttvM7t27S3VEyBhj5syZYySZDRs2GGOMmTt3rpFkPv7446sua8zFz9Sdd95pAgMDTe3atU2bNm1MSkqKS5+0tDTTpUsXU7t2bRMQEGD69u1r9u7dW2RdmZmZplevXsbPz8/UqVPH9OjRw6Snpxf73mzevNmMHj3aNGjQwAQGBjpfX7JkiWnatKmx2+2mY8eO5tNPPy3yuSv8TF36tzF06FBTp04d891335m77rrL1KlTxwQFBZknn3yyyJGjF154wcTFxZn69esbu91u2rdvb9566y2XPsV9ti4dj++++84MHz7cBAcHG19fXxMZGWlee+21Iu/JK6+8YiIjI53/z4iOjjZ/+tOfShwPeC6CEKqkO+64w/j5+Zldu3Zdte+0adOMJNOpUyfzwgsvmJdfftkMGjTITJgwwdmnX79+5r777jMvvPCCWbRokbn33nuNJPPUU085+2zYsMFERUWZoKAgs3LlSrNy5Urz7rvvmuzsbDNjxgwjyYwcOdL52jfffGOMufhl5Ovra+Li4sxLL71k/vjHP5q2bdsaX19f869//cu5/sIgFBkZae666y6zcOFCs2DBghL3q/CLqU2bNqZr167mlVdeMWPGjDHe3t7m1ltvNQ6Hw9n38i+kM2fOmJtvvtnUrFnTjB8/3rzyyiuma9euRpLzy/Snn34yixYtMpLM3Xff7dyvzz//vMSasrOzTUhIiPHz8zOTJ082c+fONe3atTPe3t5m7dq1xpiLQWnlypVGkunZs6dzvVfjcDhM586dTVBQkBk4cKDx8fExmZmZV13OGGPeeust065dOzN16lSzdOlS8/TTT5t69eqZxo0bm9OnTxd5T2+55RbTo0cPM2/ePPPkk08aHx8fc99997msc8qUKUaS6d27t5k/f7556KGHTMOGDU1QUFCpgtD58+dNu3btTLNmzcxXX31l6tata+6///5S7c+GDRuMr6+vady4sUlOTjaLFi0yjz/+uImPj3f22bhxo6lRo4Zp0aKFmTNnjpk+fboJCgoy9erVcwmAu3fvNnXq1DFhYWFm5syZZvbs2aZJkybGZrOZf/7zn0Xem8jISNOtWzczb948M3v2bGOMMa+++qrzb+yVV14x48aNM4GBgaZp06alCkJ2u920atXKPPTQQ2bRokXmN7/5jZFkFi5c6LLf119/vXn00UfN/Pnzzdy5c01MTIyR5BK0V65caWw2m+natavzs7V161ZjzMXP5/XXX2/Cw8PNjBkzzKJFi0zfvn2NJPPHP/7RuY7C0N2/f3+zZMkS8/LLL5sRI0aYxx9/vFTjA89CEEKVtGHDBuPj42N8fHxMXFyc+f3vf2/Wr19v8vPzXfp99dVXxtvb29x9991FjhxcGhTOnDlTZBuPPPKIqV27tjl79qyzraxzhBwOh2nevLlJSEgosr0mTZqYnj17OtsKg9DAgQNL9R4UfjFFR0e77HfhkYa//vWvzrbLg1BKSoqRZN58801nW35+vomLizN169Y1eXl5xpiyzxEaN26ckWT+8Y9/ONtOnTplmjRpYiIiIlzGQJIZM2ZMqdZbaPfu3aZmzZpGkhk3blyplytufNPT040k83//93/OtsL3ND4+3mW8xo8fb3x8fMzJkyeNMcYcPXrU+Pr6mj59+rj0e/rpp4scgbiSwjlB9evXL3bOUHEuXLhgmjRpYho3bmx+/PFHl9curSUqKsoEBwebH374wdn2+eefG29vbzNkyBBnW79+/Yyvr68zuBtjzH//+1/j5+dnbr31Vmdb4XvTpUsXlyM1+fn5Jjg42ERFRZlz58452wvDRGmCkCQzY8YMl3255ZZbTHR0tEvb5eOYn59vWrdubXr06OHSXtIcoREjRpiwsDBz/Phxl/b777/fBAQEONd/1113mVatWhVZHtbEVWOoknr27Kn09HT17dtXn3/+uebMmaOEhAQ1atRI77//vrPfe++9J4fDoalTp8rb2/Xj7OXl5fzvWrVqOf/71KlTOn78uLp27aozZ85o375911znzp079dVXX2nQoEH64YcfdPz4cR0/flynT5/W7bffrk8//VQOh8NlmVGjRpVpGyNHjlTNmjWdz0ePHq0aNWpo3bp1JS6zbt06hYaGauDAgc62mjVr6vHHH9dPP/2kv//972Wq4dL1xsTEqEuXLs62unXrauTIkTp48KD27t17Test5O/vL19fX0nSHXfcUerlLh3f8+fP64cfftCNN96owMBAZWZmFuk/cuRIl89H165dVVBQoG+//VaStGnTJuXn52vs2LEu/caNG1em/YmJidGoUaN04sQJzZo1SyEhIVddZseOHcrKytK4ceOKzLEqrOXIkSPauXOnhg0bpvr16ztfb9u2rXr27On8bBQUFGjDhg3q16+fmjZt6uwXFhamQYMGacuWLcrLy3PZxsMPPywfHx/n83//+986evSoRo0a5RwbSRo2bJgCAgJK/V5c/rnv2rWrDhw44NJ26Tj++OOPys3NVdeuXYsdw8sZY/TOO+8oMTFRxhjn3+Lx48eVkJCg3Nxc53oCAwP13Xffadu2baWuH56LIIQqq2PHjlq7dq1+/PFHZWRkaNKkSTp16pT69+/v/ML95ptv5O3trcjIyCuua8+ePbr77rsVEBAgf39/NWjQQA8++KAkKTc395pr/OqrryRJQ4cOVYMGDVwer776qs6dO1dk/U2aNCnTNpo3b+7yvG7dugoLC9PBgwdLXObbb79V8+bNi4TDm2++2fn6tfj222910003FWn/pest9Nhjj8nb21uNGzfWk08+qfPnz5dquZ9//llTp05VeHi4bDabgoKC1KBBA508ebLY8b3hhhtcnterV0/SxS/fS/fj8ve+QYMGzr6l1bFjR0lShw4dStX/m2++kSS1bt26xD6F9ZU0FoVh/NixYzpz5kyJ/RwOhw4fPuzSfvnns6T3ombNmi7h6krsdrsaNGjg0lavXj3n+13oww8/1K9+9SvZ7XbVr19fDRo00KJFi0r1N3rs2DGdPHlSS5cuLfK3OHz4cEn/u9BiwoQJqlu3rmJiYtS8eXONGTNGn332Wan2BZ6Hq8ZQ5fn6+qpjx47q2LGjWrRooeHDh+utt95ScnJyqZY/efKkunXrJn9/f82YMUPNmjWT3W5XZmamJkyYUOSITVkULvvCCy8oKiqq2D5169Z1eX7pv3rxP2vXrtX777+vlJQUNW/eXH369NELL7ygp59++qrLjh07VsuXL9e4ceMUFxengIAAeXl56f777y92fC894nEpY8wv3o/qriI+nyW935f6xz/+ob59++rWW2/VwoULFRYWppo1a2r58uXOK++upHCcH3zwQQ0dOrTYPm3btpV0MQTu379fH374oVJTU/XOO+9o4cKFmjp1arH3s4JnIwihWin8V/WRI0ckSc2aNZPD4dDevXtLDCKbN2/WDz/8oLVr1+rWW291tmdlZRXpe+lpkNK0N2vWTNLFUzrx8fGl3o+y+Oqrr9S9e3fn859++klHjhxR7969S1ymcePG+s9//iOHw+FyVKjwNGDjxo0llbxfV1rv/v37i7Rfvt6yOnXqlB5//HG1b99ejz32mHx8fPSb3/xGzz77rAYOHHjVo2hvv/22hg4dqpdeesnZdvbsWZ08efKa6incj6+++srlqMexY8eKHMUob4Wfqd27d5f4mSqsr6SxCAoKUp06dWS321W7du0S+3l7eys8PPyK9Vz6XvTo0cPZfv78eWVlZaldu3al27GreOedd2S327V+/XrZbDZn+/Lly4v0Le5z26BBA/n5+amgoKBUf4t16tTRgAEDNGDAAOXn5+uee+7Rc889p0mTJnELAIvh1BiqpE8++aTYf50Xzn0oPNTfr18/eXt7a8aMGUX+5V+4fOG/Ri9dX35+vhYuXFhk/XXq1Cn2MHzhvVQu/2KNjo5Ws2bN9OKLL+qnn34qstyxY8dK3MfSWrp0qcspokWLFunChQu68847S1ymd+/eys7O1po1a5xtFy5c0Lx581S3bl1169ZNklS7dm1JRffrSuvNyMhQenq6s+306dNaunSpIiIirnqKsiRTpkzRkSNHtGTJEud4vfzyy/Lx8dFjjz121eV9fHyKfF7mzZungoKCa6onPj5eNWvW1Lx581zWWxk/E9K+fXs1adJEKSkpRcalsJawsDBFRUXpjTfecOmze/dubdiwwRmSfXx8dMcdd+ivf/2ry6nUnJwcrVq1Sl26dJG/v/8V6+nQoYMaNGigxYsXKz8/39m+YsWKaw6axfHx8ZGXl5fLmB08eLDYO0jXqVOnyLYLw/M777yj3bt3F1nm0r/FH374weU1X19fRUZGyhhT6tOx8BwcEUKVNHbsWJ05c0Z33323WrZsqfz8fG3dulVr1qxRRESE85z/jTfeqMmTJ2vmzJnq2rWr7rnnHtlsNm3btk0NGzbUrFmz1KlTJ9WrV09Dhw7V448/Li8vL61cubLYoBUdHa01a9YoKSlJHTt2VN26dZWYmKhmzZopMDBQixcvlp+fn+rUqaPY2Fg1adJEr776qu688061atVKw4cPV6NGjfT999/rk08+kb+/vz744INf9F7k5+fr9ttv13333af9+/dr4cKF6tKli/r27VviMiNHjtSSJUs0bNgwbd++XREREXr77bf12WefKSUlRX5+fpIungaJjIzUmjVr1KJFC9WvX1+tW7cucX7KxIkT9ec//1l33nmnHn/8cdWvX19vvPGGsrKy9M477xSZk1Qa27dv14IFCzRmzBiXeTSNGjXSjBkzlJSUpHfeeUe/+c1vSlzHr3/9a61cuVIBAQGKjIxUenq6Nm3apOuuu67M9UgXjy489dRTmjVrln7961+rd+/e2rFjhz7++GMFBQVd0zpLy9vbW4sWLVJiYqKioqI0fPhwhYWFad++fdqzZ4/Wr18v6eLp2DvvvFNxcXEaMWKEfv75Z82bN08BAQEuN2x89tlntXHjRnXp0kWPPvqoatSooSVLlujcuXOaM2fOVeupWbOmnn32WT3yyCPq0aOHBgwYoKysLC1fvrzUc4RKo0+fPpo7d6569eqlQYMG6ejRo1qwYIFuvPFG/ec//3HpGx0drU2bNmnu3Llq2LChmjRpotjYWM2ePVuffPKJYmNj9fDDDysyMlInTpxQZmamNm3apBMnTki6OBE/NDRUnTt3VkhIiL744gvNnz9fffr0cf5twELcdLUacEUff/yxeeihh0zLli1N3bp1nT+3MXbsWJOTk1Ok/+uvv25uueUWY7PZTL169Uy3bt3Mxo0bna9/9tln5le/+pWpVauWadiwofNyfEnmk08+cfb76aefzKBBg0xgYKDzhoqF/vrXv5rIyEhTo0aNIpcI79ixw9xzzz3muuuuMzabzTRu3Njcd999Ji0tzdmn8PL5Y8eOleo9uPyGivXq1TN169Y1DzzwgMsl08aUfEPF4cOHm6CgIOPr62vatGlT7E+EbN261URHRxtfX98y3VAxMDDQ2O12ExMT43Kfl0IqxeXzFy5cMO3btzcNGzY0ubm5xb4eFRVlrr/+enPq1KkS1/Pjjz8697Vu3bomISHB7Nu3r8jNDwvf023btrks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g7Vs2TIFBQWVaplJkyYpNzfX+Th8+HAFVwkAAKqLGu7ceFBQkHx8fJSTk+PSnpOTo9DQ0CL9v/nmGx08eFCJiYnONofDIUmqUaOG9u/fr2bNmrksY7PZZLPZKqB6AABQ3bn1iJCvr6+io6OVlpbmbHM4HEpLS1NcXFyR/i1bttSuXbu0c+dO56Nv377q3r27du7cyWkvAABQJm49IiRJSUlJGjp0qDp06KCYmBilpKTo9OnTGj58uCRpyJAhatSokWbNmiW73a7WrVu7LB8YGChJRdoBAACuxu1BaMCAATp27JimTp2q7OxsRUVFKTU11TmB+tChQ/L2rlZTmQAAQDXhZYwx7i6iMuXl5SkgIEC5ubny9/d3dzkAAKAUKur7m0MtAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsmq4uwAAqAwFDqOMrBM6euqsgv3simlSXz7eXu4uC4CbEYQAeLzU3Uc0/YO9OpJ71tkWFmBXcmKkerUOc2NlANyNU2MAPFrq7iMa/WamSwiSpOzcsxr9ZqZSdx9xU2UAqgKCEACPVeAwmv7BXpliXitsm/7BXhU4iusBwAoIQgA8VkbWiSJHgi5lJB3JPauMrBOVVxSAKoUgBMBjHT1Vcgi6ln4APA+TpQF4lEuvDjt+6lyplgn2s1dwVVfGFW2A+xCEAHiM4q4O8/aSSpoC5CUpNOBi8HAXrmgD3ItTYwA8QklXh10pBElScmKk246+cEUb4H4EIQDV3pWuDit0edYJDbBr0YPt3XbUhSvagKqBU2MAqr2rXR0mXTwy9EyfmxXkZ6sS83DKckVbXLPrKq8wwGIIQgCqvdJe9RXkZ9NdUY0quJrS4Yo2oGrg1BiAaq+0V325++qwS1XHmgFPRBACUO3FNKmvsAC7SjrR5aWLV2K58+qwy1XHmgFPRBAC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",
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"plot('data/wlasl/WLASL100_train.csv')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 46,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAkIAAAHHCAYAAABTMjf2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA+8UlEQVR4nO3de1zUVeL/8TcgzHgDNBTQyFuWkRcShaU00zAs17LWMi1vtVmmllK7apakVrpdzPKulfa1bXW738wb5bYWu7iilZlWimmt4C3BNEXh/P7wx6zDRWdwhhnm83o+HjwezeF8Zs5nPkPz9pzzOSfIGGMEAABgQcG+bgAAAICvEIQAAIBlEYQAAIBlEYQAAIBlEYQAAIBlEYQAAIBlEYQAAIBlEYQAAIBlEYQAAIBlEYSAAHDNNdfommuu8XUznOTn56tfv3664IILFBQUpJkzZ/q6SR7RvHlzDR061NfN8AtlP3e7du1SUFCQlixZ4rM2Ae4iCMFvff311+rXr5+aNWsmu92upk2bqmfPnpo1a5bXXvP111+v8Av7v//9rx5//HFt3rzZa6/tC8eOHdPjjz+udevWefy5x44dq1WrVmnChAlaunSpevXqVWG9NWvWKCgoSJMnTy73u9zcXNWpU0f9+vXzePu8ZdmyZQoKCtKCBQsq/P2IESMUGhqqL7/8sppbFjieeuopvfvuu75uBgKFAfzQ559/bsLCwszFF19spk6dahYtWmQmTZpkrrvuOtOqVSuvvW7v3r1Ns2bNypVv2LDBSDKLFy/22mufj27duplu3bq5fdz+/fuNJJORkeHxNkVHR5s77rjDpboDBw40NpvNbN++3am8V69eJjw83Pz8888eb19VNWvWzAwZMuSsdXr16mUiIyNNXl6eU/m///1vExwcbP70pz95sYXVp+znrqSkxPz222/m1KlTXn3dunXrnvMaAK6q5esgBlTkySefVEREhDZs2KDIyEin3+3bt883jfKCo0ePqm7dur5uhlfs27ev3LWrzPPPP6+PP/5Y9913nz755BNJp3tWVq5cqRdffFFNmjTxYks9b968ebr88ss1duxYvf7665Kk4uJi3Xvvvbrooov0+OOP+7aBLnL38xkUFCS73e7FFgFe4OskBlTk0ksvNddcc43L9ZcuXWo6d+5sateubSIjI03Xrl3NqlWrHL9/9913zQ033GBiY2NNWFiYadmypZkyZYrTv1y7detmJDn9NGvWzHz66aflylWmd+hf//qXSUtLM+Hh4aZ27drm6quvNuvXr3dqY0ZGhpFkvvnmGzNgwAATGRlpEhISKj2nxYsXG0nmH//4hxk+fLhp2LChqV+/vhk0aJA5dOiQU92KeoTy8/PNXXfdZRo3bmxsNptp3769WbJkieP3ubm5FZ7XuXqHduzYYfr162caNGhgateubZKTk82HH35Yrt1lf85l4cKFRpJZsmSJ+eWXX0xMTIzp3LmzKS4uPuexu3btMiNGjDCXXHKJsdvtpmHDhqZfv34mNzfXqV5p29avX2/Gjh1roqKiTJ06dUzfvn3Nvn37nOqWlJSYqVOnmqZNm5ratWuba665xmzZssWlHiFjjHn66aeNJLN69WpjjDEzZswwkszHH398zmONOf2Zuv76601kZKSpU6eOadeunZk5c6ZTnczMTNOlSxdTp04dExERYW688UazdevWcs+Vk5NjevXqZerXr2/q1q1revToYbKysip8b9atW2dGjBhhGjVqZCIjIx2/X7BggWnZsqWx2+2mc+fO5rPPPiv3uSv9TJ35tzFkyBBTt25d89NPP5mbbrrJ1K1b10RFRZmHHnqoXM/RM888Y1JSUkzDhg2N3W43HTt2NG+88YZTnYo+W2dej59++skMGzbMNG7c2ISFhZn4+Hjz8ssvl3tPXnzxRRMfH+/4f0ZiYqL561//Wun1QOAiCMEvXXfddaZ+/frm66+/Pmfdxx9/3EgyV155pXnmmWfMCy+8YAYOHGjGjRvnqNO3b19z2223mWeeecbMmzfP3HrrrUaSefjhhx11Vq9ebRISEkxUVJRZunSpWbp0qXnnnXdMXl6emTJlipFkhg8f7vjdjh07jDGnv4zCwsJMSkqKee6558zzzz9v2rdvb8LCwsy///1vx/OXBqH4+Hhz0003mblz55o5c+ZUel6lX0zt2rUzXbt2NS+++KIZOXKkCQ4ONldffbUpKSlx1C37hXTs2DFz2WWXmdDQUDN27Fjz4osvmq5duxpJji/TX3/91cybN89IMjfffLPjvL788stK25SXl2eio6NN/fr1zcSJE82MGTNMhw4dTHBwsHn77beNMaeD0tKlS40k07NnT8fznktJSYm56qqrTFRUlBkwYIAJCQkxOTk55zzOGGPeeOMN06FDBzNp0iSzcOFC88gjj5gGDRqYZs2amaNHj5Z7T6+44grTo0cPM2vWLPPQQw+ZkJAQc9tttzk956OPPmokmRtuuMHMnj3b3HXXXaZJkyYmKirKpSB08uRJ06FDB9OqVSvz/fffm3r16pnbb7/dpfNZvXq1CQsLM82aNTMZGRlm3rx55oEHHjCpqamOOmvWrDG1atUyl1xyiXn66afN5MmTTVRUlGnQoIFTANyyZYupW7euiY2NNVOnTjXTp083LVq0MDabzfzrX/8q997Ex8ebbt26mVmzZpnp06cbY4x56aWXHH9jL774ohkzZoyJjIw0LVu2dCkI2e12c/nll5u77rrLzJs3z/zhD38wkszcuXOdzvvCCy80999/v5k9e7aZMWOGSUpKMpKcgvbSpUuNzWYzXbt2dXy2vvjiC2PM6c/nhRdeaOLi4syUKVPMvHnzzI033mgkmeeff97xHKWhu1+/fmbBggXmhRdeMHfffbd54IEHXLo+CCwEIfil1atXm5CQEBMSEmJSUlLMn//8Z7Nq1SpTVFTkVO/77783wcHB5uabby7Xc3BmUDh27Fi517j33ntNnTp1zPHjxx1l7s4RKikpMa1btzZpaWnlXq9FixamZ8+ejrLSIDRgwACX3oPSL6bExESn8y7taXjvvfccZWWD0MyZM40k89prrznKioqKTEpKiqlXr54pLCw0xrg/R2jMmDFGkvnnP//pKDty5Ihp0aKFad68udM1kGRGjhzp0vOW2rJliwkNDTWSzJgxY1w+rqLrm5WVZSSZ//u//3OUlb6nqampTtdr7NixJiQkxBw+fNgYY8y+fftMWFiY6d27t1O9Rx55pFwPxNmUzglq2LBhhXOGKnLq1CnTokUL06xZM/PLL784/e7MtiQkJJjGjRubgwcPOsq+/PJLExwcbAYPHuwo69u3rwkLC3MEd2OM+e9//2vq169vrr76akdZ6XvTpUsXp56aoqIi07hxY5OQkGBOnDjhKC8NE64EIUlmypQpTudyxRVXmMTERKeystexqKjItG3b1vTo0cOpvLI5QnfffbeJjY01Bw4ccCq//fbbTUREhOP5b7rpJnP55ZeXOx7WxF1j8Es9e/ZUVlaWbrzxRn355Zd6+umnlZaWpqZNm+r999931Hv33XdVUlKiSZMmKTjY+eMcFBTk+O/atWs7/vvIkSM6cOCAunbtqmPHjmnbtm1VbufmzZv1/fffa+DAgTp48KAOHDigAwcO6OjRo7r22mv12WefqaSkxOmY++67z63XGD58uEJDQx2PR4wYoVq1amnFihWVHrNixQrFxMRowIABjrLQ0FA98MAD+vXXX/WPf/zDrTac+bxJSUnq0qWLo6xevXoaPny4du3apa1bt1bpeUuFh4crLCxMknTddde5fNyZ1/fkyZM6ePCgLr74YkVGRionJ6dc/eHDhzt9Prp27ari4mL9+OOPkqS1a9eqqKhIo0ePdqo3ZswYt84nKSlJ9913nw4dOqRp06YpOjr6nMds2rRJubm5GjNmTLk5VqVt2bt3rzZv3qyhQ4eqYcOGjt+3b99ePXv2dHw2iouLtXr1avXt21ctW7Z01IuNjdXAgQO1fv16FRYWOr3GPffco5CQEMfj//znP9q3b5/uu+8+x7WRpKFDhyoiIsLl96Ls575r167auXOnU9mZ1/GXX35RQUGBunbtWuE1LMsYo7feekt9+vSRMcbxt3jgwAGlpaWpoKDA8TyRkZH66aeftGHDBpfbj8BFEILf6ty5s95++2398ssvys7O1oQJE3TkyBH169fP8YW7Y8cOBQcHKz4+/qzP9c033+jmm29WRESEwsPD1ahRI915552SpIKCgiq38fvvv5ckDRkyRI0aNXL6eemll3TixIlyz9+iRQu3XqN169ZOj+vVq6fY2Fjt2rWr0mN+/PFHtW7dulw4vOyyyxy/r4off/xRl156abny833eUqNGjVJwcLCaNWumhx56SCdPnnTpuN9++02TJk1SXFycbDaboqKi1KhRIx0+fLjC63vRRRc5PW7QoIGk01++Z55H2fe+UaNGjrqu6ty5sySpU6dOLtXfsWOHJKlt27aV1iltX2XXojSM79+/X8eOHau0XklJifbs2eNUXvbzWdl7ERoa6hSuzsZut6tRo0ZOZQ0aNHC836U+/PBD/e53v5PdblfDhg3VqFEjzZs3z6W/0f379+vw4cNauHBhub/FYcOGSfrfjRbjxo1TvXr1lJSUpNatW2vkyJH6/PPPXToXBB7uGoPfCwsLU+fOndW5c2ddcsklGjZsmN544w1lZGS4dPzhw4fVrVs3hYeHa8qUKWrVqpXsdrtycnI0bty4cj027ig99plnnlFCQkKFderVq+f0+Mx/9eJ/3n77bb3//vuaOXOmWrdurd69e+uZZ57RI488cs5jR48ercWLF2vMmDFKSUlRRESEgoKCdPvtt1d4fc/s8TiTMea8z6Om88bns7L3+0z//Oc/deONN+rqq6/W3LlzFRsbq9DQUC1evNhx593ZlF7nO++8U0OGDKmwTvv27SWdDoHbt2/Xhx9+qJUrV+qtt97S3LlzNWnSpArXs0JgIwihRin9V/XevXslSa1atVJJSYm2bt1aaRBZt26dDh48qLfffltXX321ozw3N7dc3TOHQVwpb9WqlaTTQzqpqakun4c7vv/+e3Xv3t3x+Ndff9XevXt1ww03VHpMs2bN9NVXX6mkpMSpV6h0GLBZs2aSKj+vsz3v9u3by5WXfV53HTlyRA888IA6duyoUaNGKSQkRH/4wx/0xBNPaMCAAefsRXvzzTc1ZMgQPffcc46y48eP6/Dhw1VqT+l5fP/99069Hvv37y/Xi+FppZ+pLVu2VPqZKm1fZdciKipKdevWld1uV506dSqtFxwcrLi4uLO258z3okePHo7ykydPKjc3Vx06dHDtxM7hrbfekt1u16pVq2Sz2RzlixcvLle3os9to0aNVL9+fRUXF7v0t1i3bl31799f/fv3V1FRkW655RY9+eSTmjBhAksAWAxDY/BLn376aYX/Oi+d+1Da1d+3b18FBwdrypQp5f7lX3p86b9Gz3y+oqIizZ07t9zz161bt8Ju+NK1VMp+sSYmJqpVq1Z69tln9euvv5Y7bv/+/ZWeo6sWLlzoNEQ0b948nTp1Stdff32lx9xwww3Ky8vT8uXLHWWnTp3SrFmzVK9ePXXr1k2SVKdOHUnlz+tsz5udna2srCxH2dGjR7Vw4UI1b978nEOUlXn00Ue1d+9eLViwwHG9XnjhBYWEhGjUqFHnPD4kJKTc52XWrFkqLi6uUntSU1MVGhqqWbNmOT1vdWwT0rFjR7Vo0UIzZ84sd11K2xIbG6uEhAS9+uqrTnW2bNmi1atXO0JySEiIrrvuOr333ntOQ6n5+fl6/fXX1aVLF4WHh5+1PZ06dVKjRo00f/58FRUVOcqXLFlS5aBZkZCQEAUFBTlds127dlW4gnTdunXLvXZpeH7rrbe0ZcuWcsec+bd48OBBp9+FhYUpPj5exhiXh2MROOgRgl8aPXq0jh07pptvvllt2rRRUVGRvvjiCy1fvlzNmzd3jPlffPHFmjhxoqZOnaquXbvqlltukc1m04YNG9SkSRNNmzZNV155pRo0aKAhQ4bogQceUFBQkJYuXVph0EpMTNTy5cuVnp6uzp07q169eurTp49atWqlyMhIzZ8/X/Xr11fdunWVnJysFi1a6KWXXtL111+vyy+/XMOGDVPTpk31888/69NPP1V4eLg++OCD83ovioqKdO211+q2227T9u3bNXfuXHXp0kU33nhjpccMHz5cCxYs0NChQ7Vx40Y1b95cb775pj7//HPNnDlT9evXl3R6GCQ+Pl7Lly/XJZdcooYNG6pt27aVzk8ZP368/va3v+n666/XAw88oIYNG+rVV19Vbm6u3nrrrXJzklyxceNGzZkzRyNHjnSaR9O0aVNNmTJF6enpeuutt/SHP/yh0uf4/e9/r6VLlyoiIkLx8fHKysrS2rVrdcEFF7jdHul078LDDz+sadOm6fe//71uuOEGbdq0SR9//LGioqKq9JyuCg4O1rx589SnTx8lJCRo2LBhio2N1bZt2/TNN99o1apVkk4Px15//fVKSUnR3Xffrd9++02zZs1SRESE04KNTzzxhNasWaMuXbro/vvvV61atbRgwQKdOHFCTz/99DnbExoaqieeeEL33nuvevToof79+ys3N1eLFy92eY6QK3r37q0ZM2aoV69eGjhwoPbt26c5c+bo4osv1ldffeVUNzExUWvXrtWMGTPUpEkTtWjRQsnJyZo+fbo+/fRTJScn65577lF8fLwOHTqknJwcrV27VocOHZJ0eiJ+TEyMrrrqKkVHR+vbb7/V7Nmz1bt3b8ffBizER3erAWf18ccfm7vuusu0adPG1KtXz7HdxujRo01+fn65+q+88oq54oorjM1mMw0aNDDdunUza9ascfz+888/N7/73e9M7dq1TZMmTRy340syn376qaPer7/+agYOHGgiIyMdCyqWeu+990x8fLypVatWuVuEN23aZG655RZzwQUXGJvNZpo1a2Zuu+02k5mZ6ahTevv8/v37XXoPyi6o2KBBA1OvXj1zxx13ON0ybUzlCyoOGzbMREVFmbCwMNOuXbsKtwj54osvTGJiogkLC3NrQcXIyEhjt9tNUlKS0zovpeTC7fOnTp0yHTt2NE2aNDEFBQUV/j4hIcFceOGF5siRI5U+zy+//OI413r16pm0tDSzbdu2cosflr6nGzZscDq+dNHMMz8LxcXFZvLkySY2NrZKCyqe6zXPZf369aZnz56ORRDbt29vZs2a5VRn7dq15qqrrjK1a9c24eHhpk+fPpUuqJiWlmbq1atn6tSpY7p37+5Ye8fVds6dO9ex/lCnTp3cXlCxrNK/hzO9/PLLpnXr1sZms5k2bdqYxYsXV1hv27Zt5uqrrza1a9cut5xBfn6+GTlypImLizOhoaEmJibGXHvttWbhwoWOOgsWLDBXX3214++1VatW5k9/+lOFn0EEviBjmB0I+KMlS5Zo2LBh2rBhg8t3HAEA3MMcIQAAYFkEIQAAYFkEIQAAYFk+DUKfffaZ+vTpoyZNmigoKKjC2yTLWrdunTp27CibzaaLL75YS5Ys8Xo7AV8YOnSojDHMDwIAL/JpEDp69Kg6dOigOXPmuFQ/NzdXvXv3Vvfu3bV582aNGTNGf/zjHx23kwIAALjDb+4aCwoK0jvvvKO+fftWWmfcuHH66KOPnBbLuv3223X48GGtXLmyGloJAAACSY1aUDErK6vc0ulpaWln3RH6xIkTOnHihONxSUmJDh06pAsuuMDt7QUAAIBvGGN05MgRNWnSpEqLt1amRgWhvLw8RUdHO5VFR0ersLBQv/32W4WbBU6bNo1N9AAACBB79uzRhRde6LHnq1FBqComTJig9PR0x+OCggJddNFF2rNnzzn32AEAAP6hsLBQcXFxHt8GpUYFoZiYGOXn5zuV5efnKzw8vMLeIEmy2WxOOxmXCg8PJwgBAFDDeHpaS41aRyglJUWZmZlOZWvWrFFKSoqPWgQAAGoynwahX3/9VZs3b9bmzZslnb49fvPmzdq9e7ek08NagwcPdtS/7777tHPnTv35z3/Wtm3bNHfuXP3973/X2LFjfdF8AABQw/l0aOw///mPunfv7nhcOpdnyJAhWrJkifbu3esIRZLUokULffTRRxo7dqxeeOEFXXjhhXrppZeUlpZW7W23guISo+zcQ9p35Lga17crqUVDhQRzpx0AIHD4zTpC1aWwsFAREREqKChgjtBZrNyyV5M/2Kq9BccdZbERdmX0iVevtrE+bBkAwIq89f1do+YIoXqs3LJXI17LcQpBkpRXcFwjXsvRyi17fdQyAAA8iyAEJ8UlRpM/2KqKuglLyyZ/sFXFJZbqSAQABCiCEJxk5x4q1xN0JiNpb8FxZeceqr5GAQDgJQQhONl3pPIQVJV6AAD4M4IQnDSub/doPQAA/BlBCE6SWjRUbIRdld0kH6TTd48ltWhYnc0CAMArCEJwEhIcpIw+8ZJULgyVPs7oE896QgCAgEAQQjm92sZq3p0dFRPhPPwVE2HXvDs7so4QACBg1KhNV1F9erWNVc/4GFaWBgAENIIQKhUSHKSUVhf4uhkAAHgNQ2MAAMCyCEIAAMCyCEIAAMCyCEIAAMCyCEIAAMCyCEIAAMCyCEIAAMCyCEIAAMCyCEIAAMCyCEIAAMCyCEIAAMCyCEIAAMCyCEIAAMCyCEIAAMCyCEIAAMCyCEIAAMCyCEIAAMCyCEIAAMCyavm6AQAAAGUVlxhl5x7SviPH1bi+XW0u8E5kIQgBAAC/snLLXk3+YKv2Fhx3lDWyFXvltQhCAADAb6zcslcjXsuRKVO+r/CEV16POUIAAMAvFJcYTf5ga7kQJKnCMk8gCAEAAL+QnXvIaTisOhCEAACAX9h3pHpDkEQQAgAAfqJxfXu1vyZBCAAA+IWkFg0VG2FXUDW+JkEIAAD4hZDgIGX0iZekcmHIW+GIIAQAAPxGr7axmndnR8VEOA+TNQ63eeX1gowx3rojzS8VFhYqIiJCBQUFCg8P93VzAABABSpaWbphg0iPf3+zoCLgQWX/cJNaNFRIcHWOdgNAYAgJDlJKqwscjwsLC73yOgQhwEMqWhI+NsKujD7x6tU21octAwBUhjlCgAeULglfdiGwvILjGvFajlZu2eujlgEAzoYgBJwnV5aEn/zBVhWXWGo6HgDUCAQh4Dyda0l4I2lvwXFl5x6qvkYBAFzCHCHgPLm6JLwvlo73JSaOA6gJCELAeXJ1SXhfLB3vK0wcB1BTMDQGnKdzLQkfpNMhIKlFw+psls9UZeJ4cYlR1o6Dem/zz8racZD5VACqDT1CwHkqXRJ+xGs5CpKcJk2XhqOMPvGWGBY618TxIJ2eON4zPsbxftB7BMCX6BECPKCyJeFjIuyad2dHy3yhuztxnGUHAPgaPUKAh/RqG6ue8TEBPUH4XBOg3Zk4XpXeIwDwNIIQ4EFll4QPJK4MYbkzcdyd3qNAfU8B+B5DYwDOydUhLHcmjrPsAAB/QBACLMrVO7XcWTm7dOK4pHJhqOzEcZYdAOAPGBoDLMidO7XcHcIqnThe9vljyjx/ae9RXsHxCkNW0P8/xirLDgDwDYIQYDGlw1xlw0fpMFfZu9yqMoTlysRxlh0A4A8YGgMspCobxFZlCMvV7TVYdgCAr9EjBPg5T+7ZVZU7tdwdwnJ3gUQrLDsAwH8RhAA/5ulVl91d56c0nNze+SLNXPvdOYew3B12KxXIyw4A8G8EIcBPVTVUnI2rw1y7DhxTl7984hTAIuuESpIOHzvpKDtzAnR1LJDIjvYAPI0gBPghb4UKV4a5IuqEauba78r9vuDYSRlJY1Nbq3lU3XJBxNsLJLInGQBvYLI04Ifc3bPLVeda56c0/JwtgC3bsEe/b99EKa0uqPL2GmWda00j9iQD4C30CAF+yJurLp9tnZ/bO8fp+bXfV3rs2Xp1qrpA4rl6etiTDIA3EYQAP+TtVZcru1Prw6/+69LxFQWwqiyQ6Mo8qIjaYexJBsBrfD40NmfOHDVv3lx2u13JycnKzs4+a/2ZM2fq0ksvVe3atRUXF6exY8fq+HH2IkJgcWfPrqoqvVPrpoSmjmGu8wlg7myvIbm+plFewW8utYk9yQBUhU+D0PLly5Wenq6MjAzl5OSoQ4cOSktL0759+yqs//rrr2v8+PHKyMjQt99+q5dfflnLly/XI488Us0tB7zL3VDhKecbwNxZINHVeVCHjha51Hb2JANQFT4dGpsxY4buueceDRs2TJI0f/58ffTRR3rllVc0fvz4cvW/+OILXXXVVRo4cKAkqXnz5howYID+/e9/V2u7gerg6p5dnuSJbS9cXSDR1R6chvVs7EkGwGt8FoSKioq0ceNGTZgwwVEWHBys1NRUZWVlVXjMlVdeqddee03Z2dlKSkrSzp07tWLFCg0aNKjS1zlx4oROnDjheFxYWOi5kwC8zBerLnsigLmyQKKrPTgx4Xb2JAPgNT4LQgcOHFBxcbGio6OdyqOjo7Vt27YKjxk4cKAOHDigLl26yBijU6dO6b777jvr0Ni0adM0efJkj7YdqE6eWHXZ3YUIqyOAuTO5OiQ4qNp7xwBYQ426a2zdunV66qmnNHfuXCUnJ+uHH37Qgw8+qKlTp+qxxx6r8JgJEyYoPT3d8biwsFBxcXHV1WTA56q6EKG3t71wdxiOPckAeIPPglBUVJRCQkKUn5/vVJ6fn6+YmJgKj3nsscc0aNAg/fGPf5QktWvXTkePHtXw4cM1ceJEBQeXn/tts9lks9k8fwJADeCNbTo8yd1hOPYkA+BpPgtCYWFhSkxMVGZmpvr27StJKikpUWZmpkaNGlXhMceOHSsXdkJCQiRJxlTUuQ5YV01ZiJCeHgC+5NOhsfT0dA0ZMkSdOnVSUlKSZs6cqaNHjzruIhs8eLCaNm2qadOmSZL69OmjGTNm6IorrnAMjT322GPq06ePIxABOM2Te395e7NTenoA+IpPg1D//v21f/9+TZo0SXl5eUpISNDKlSsdE6h3797t1AP06KOPKigoSI8++qh+/vlnNWrUSH369NGTTz7pq1MA/Jantunw981O2ZEewPkIMhYbUyosLFRERIQKCgoUHh7u6+YAXpO146AGLPrXOev97Z7fVdobU9kco9KY4es5Rv4e0gB4jre+v32+xQYA7zjfVaJd3QKj7E7xrjjXbvOuYEd6AJ5Qo26fB2oaXw7bnO8q0Z6cY3QmT/Ti1JSJ4AD8H0EI8BJ/GLY5n1WiPTXH6Eyeup3fWyENgPUQhAAv8Kf1e6p6e/r57ERfEU/24ngjpAGwJuYIAR7mzbk1VVV6e/pNCU2V0uoCl4aLzneOUVnu9OKci6dDGgDrIggBHubJL3xfKp1jJKlcGKrKZqee7MXxdEgDYF0EIcDDAmnYpnSOUUyEc89KTITdreG94hKjA0dOuFTXlV4cT4c0ANbFHCHAwwJt2OZ8t8CoaNJ4Rc7cbd7VdrEjPYDzRRACPKx02Cav4HiF84Tc/cL3B1XdAqOySeNlVbUXh33KAJwvghDgYee7fk+gONuk8bLOpxeHfcoAnA/mCAFe4Km5NTXZuSaNl3qs92VaP66HJd4TAP6HHiHAS6w+bOPqZPCo+jbLvCcA/A9BCPAiKw/bBNqkcQCBiSAE+JAv9yLztkCcNA4g8BCEAB/xh73IvIlJ4wBqAiZLAz5Qelt52cnEpXuRrdyy10ct8yxvTxovLjHK2nFQ723+WVk7DlbrtiUAAgM9QkA18+TmozWBtyaNB3qPGoDqQY8QUM0CZS8yd1Rl09ezsUqPGgDvIwgB1SyQ9iLzhXP1qEmne9QYJgPgCoIQUM24rbxqSucDPb/mO8v1qAHwHuYIAefJ3Vvgua3cfa5u3HometQAuIIgBJyHqkzY5bZy97i6cWtZ9KgBcAVDY0AVnc+EXfYic407G7eWCtLpMEqPGgBX0CMEVIEnboGv6m3lgbwadVmubtxaih41AO4iCAFV4M4t8Gfba8zdvcistnaOu/N8YgL4vQDgHQQhoAp8cQt8ZXNlSofiAnFIzdV5PqO6t9JVFzeq9t4xK/XOAYGKIARUQXXfAu+t1aj9/Yvc1Tvsxva8tNqHFK3WOwcEKoIQUAXVfQu8p4bizlQTvsg9dYedp8/Vir1zQKDirjGgCkq/oKX/fSGX8saEXU8PxdWkLSrO9w47T58rK1sDgYUeIaCKSr+gy/Y0eGPCrieH4mripq/nc4edp8/VG71zqHn8fVgZriMIAefBWzurl+XJobia+kXu7h12knfOlb3iUBOGleE6hsaA8+TpndUrew1PDcVZ6YvcG+fKXnHWVpOGleEaghBQQ3hqNWorfZF741xLe+cqi5ysbB24mB8WmBgaA2oQTwzFWWnTV2+cK3vFWVdNHVbG2dEjBNQw5zsUV913vPmSt86VveKsyUrDylZCjxBgQdV5x5uveetcq2uiPPyHlYaVrSTIGGOpwczCwkJFRESooKBA4eHhvm4O4FNWugXYSucK7yguMeryl0/OOdS6flwPPlte4K3vb3qEAAuryi3pNZWVzhXewfywwMQcIQAAXMT8sMBDjxAAAG5gflhgIQgBAOAmhloDB0NjAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsghCAADAsnwehObMmaPmzZvLbrcrOTlZ2dnZZ61/+PBhjRw5UrGxsbLZbLrkkku0YsWKamotAAAIJLV8+eLLly9Xenq65s+fr+TkZM2cOVNpaWnavn27GjduXK5+UVGRevbsqcaNG+vNN99U06ZN9eOPPyoyMrL6Gw8AAGq8IGOM8dWLJycnq3Pnzpo9e7YkqaSkRHFxcRo9erTGjx9frv78+fP1zDPPaNu2bQoNDa3SaxYWFioiIkIFBQUKDw8/r/YDAIDq4a3vb58NjRUVFWnjxo1KTU39X2OCg5WamqqsrKwKj3n//feVkpKikSNHKjo6Wm3bttVTTz2l4uLiSl/nxIkTKiwsdPoBAACQfBiEDhw4oOLiYkVHRzuVR0dHKy8vr8Jj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tcrExsaasWPHVnPLA8+KFSvMxIkTzdtvv20kmXfeeees9Xfu3Gnq1Klj0tPTzdatW82sWbNMSEiIWblypVuvG3BBKCkpyYwcOdLxuLi42DRp0sRMmzatwvq33Xab6d27t1NZcnKyuffee73aTitw91qUderUKVO/fn3z6quvequJllKV63Hq1Clz5ZVXmpdeeskMGTKEIOQh7l6LefPmmZYtW5qioqLqaqJluHstRo4caXr06OFUlp6ebq666iqvttNqXAlCf/7zn83ll1/uVNa/f3+Tlpbm1msF1NBYUVGRNm7cqNTUVEdZcHCwUlNTlZWVVeExWVlZTvUlKS0trdL6cE1VrkVZx44d08mTJz2+wZ4VVfV6TJkyRY0bN9bdd99dHc20hKpci/fff18pKSkaOXKkoqOj1bZtWz311FMqLi6urmYHpKpciyuvvFIbN250DJ/t3LlTK1as0A033FAtbcb/eOr72y9WlvaUAwcOqLi42LE9R6no6Ght27atwmPy8vIqrJ+Xl+e1dlpBVa5FWePGjVOTJk3KfdDhvqpcj/Xr1+vll1/W5s2bq6GF1lGVa7Fz50598sknuuOOO7RixQr98MMPuv/++3Xy5EllZGRUR7MDUlWuxcCBA3XgwAF16dJFxhidOnVK9913nx555JHqaDLOUNn3d2FhoX777TfVrl3bpecJqB4hBI7p06dr2bJleuedd2S3233dHMs5cuSIBg0apEWLFikqKsrXzbG8kpISNW7cWAsXLlRiYqL69++viRMnav78+b5umuWsW7dOTz31lObOnaucnBy9/fbb+uijjzR16lRfNw1VFFA9QlFRUQoJCVF+fr5TeX5+vmJiYio8JiYmxq36cE1VrkWpZ599VtOnT9fatWvVvn17bzbTMty9Hjt27NCuXbvUp08fR1lJSYkkqVatWtq+fbtatWrl3UYHqKr8bcTGxio0NFQhISGOsssuu0x5eXkqKipSWFiYV9scqKpyLR577DENGjRIf/zjHyVJ7dq109GjRzV8+HBNnDjRaZNweFdl39/h4eEu9wZJAdYjFBYWpsTERGVmZjrKSkpKlJmZqZSUlAqPSUlJcaovSWvWrKm0PlxTlWshSU8//bSmTp2qlStXqlOnTtXRVEtw93q0adNGX3/9tTZv3uz4ufHGG9W9e3dt3rxZcXFx1dn8gFKVv42rrrpKP/zwgyOMStJ3332n2NhYQtB5qMq1OHbsWLmwUxpQDVt3ViuPfX+7N4/b/y1btszYbDazZMkSs3XrVjN8+HATGRlp8vLyjDHGDBo0yIwfP95R//PPPze1atUyzz77rPn2229NRkYGt897iLvXYvr06SYsLMy8+eabZu/evY6fI0eO+OoUAoq716Ms7hrzHHevxe7du039+vXNqFGjzPbt282HH35oGjdubJ544glfnULAcPdaZGRkmPr165u//e1vZufOnWb16tWmVatW5rbbbvPVKQSMI0eOmE2bNplNmzYZSWbGjBlm06ZN5scffzTGGDN+/HgzaNAgR/3S2+f/9Kc/mW+//dbMmTOH2+dLzZo1y1x00UUmLCzMJCUlmX/961+O33Xr1s0MGTLEqf7f//53c8kll5iwsDBz+eWXm48++qiaWxy43LkWzZo1M5LK/WRkZFR/wwOUu38bZyIIeZa71+KLL74wycnJxmazmZYtW5onn3zSnDp1qppbHZjcuRYnT540jz/+uGnVqpWx2+0mLi7O3H///eaXX36p/oYHmE8//bTC74DS93/IkCGmW7du5Y5JSEgwYWFhpmXLlmbx4sVuv26QMfTlAQAAawqoOUIAAADuIAgBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBqNGKi4t15ZVX6pZbbnEqLygoUFxcnCZOnOijlgGoCVhZGkCN99133ykhIUGLFi3SHXfcIUkaPHiwvvzyS23YsIGNSQFUiiAEICC8+OKLevzxx/XNN98oOztbt956qzZs2KAOHTr4umkA/BhBCEBAMMaoR48eCgkJ0ddff63Ro0fr0Ucf9XWzAPg5ghCAgLFt2zZddtllateunXJyclSrVi1fNwmAn2OyNICA8corr6hOnTrKzc3VTz/95OvmAKgB6BECEBC++OILdevWTatXr9YTTzwhSVq7dq2CgoJ83DIA/oweIQA13rFjxzR06FCNGDFC3bt318svv6zs7GzNnz/f100D4OfoEQJQ4z344INasWKFvvzyS9WpU0eStGDBAj388MP6+uuv1bx5c982EIDfIggBqNH+8Y9/6Nprr9W6devUpUsXp9+lpaXp1KlTDJEBqBRBCAAAWBZzhAAAgGURhAAAgGURhAAAgGURhAAAgGURhAAAgGURhAAAgGURhAAAgGURhAAAgGURhAAAgGURhAAAgGURhAAAgGURhAAAgGX9P8sDe9jobEdbAAAAAElFTkSuQmCC",
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"plot('data/processed/spoter_train.csv')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 11,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"[18 19 20 21 22 23 24 25 26 27 28 29 30]\n",
|
|
" frame row_id type landmark_index x y z\n",
|
|
"3801 25 25-face-0 face 0 0.498506 0.494856 -0.018860\n",
|
|
"3802 25 25-face-1 face 1 0.506121 0.470006 -0.056474\n",
|
|
"3803 25 25-face-2 face 2 0.505620 0.475341 -0.025482\n",
|
|
"3804 25 25-face-3 face 3 0.497120 0.439673 -0.049148\n",
|
|
"3805 25 25-face-4 face 4 0.506552 0.461902 -0.062083\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"application/vnd.plotly.v1+json": {
|
|
"config": {
|
|
"plotlyServerURL": "https://plot.ly"
|
|
},
|
|
"data": [
|
|
{
|
|
"customdata": [
|
|
[
|
|
"wrist_left"
|
|
],
|
|
[
|
|
"thumbCMC_left"
|
|
],
|
|
[
|
|
"thumbMP_left"
|
|
],
|
|
[
|
|
"thumbIP_left"
|
|
],
|
|
[
|
|
"thumbTip_left"
|
|
],
|
|
[
|
|
"indexMCP_left"
|
|
],
|
|
[
|
|
"indexPIP_left"
|
|
],
|
|
[
|
|
"indexDIP_left"
|
|
],
|
|
[
|
|
"indexTip_left"
|
|
],
|
|
[
|
|
"middleMCP_left"
|
|
],
|
|
[
|
|
"middlePIP_left"
|
|
],
|
|
[
|
|
"middleDIP_left"
|
|
],
|
|
[
|
|
"middleTip_left"
|
|
],
|
|
[
|
|
"ringMCP_left"
|
|
],
|
|
[
|
|
"ringPIP_left"
|
|
],
|
|
[
|
|
"ringDIP_left"
|
|
],
|
|
[
|
|
"ringTip_left"
|
|
],
|
|
[
|
|
"littleMCP_left"
|
|
],
|
|
[
|
|
"littlePIP_left"
|
|
],
|
|
[
|
|
"littleDIP_left"
|
|
],
|
|
[
|
|
"littleTip_left"
|
|
]
|
|
],
|
|
"hovertemplate": "type=left_hand<br>x=%{x}<br>y=%{y}<br>name=%{customdata[0]}<extra></extra>",
|
|
"legendgroup": "left_hand",
|
|
"marker": {
|
|
"color": "#636efa",
|
|
"symbol": "circle"
|
|
},
|
|
"mode": "markers",
|
|
"name": "left_hand",
|
|
"orientation": "v",
|
|
"showlegend": true,
|
|
"type": "scatter",
|
|
"x": [
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null
|
|
],
|
|
"xaxis": "x",
|
|
"y": [
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null
|
|
],
|
|
"yaxis": "y"
|
|
},
|
|
{
|
|
"customdata": [
|
|
[
|
|
"nose"
|
|
],
|
|
[
|
|
"leftEye"
|
|
],
|
|
[
|
|
"rightEye"
|
|
],
|
|
[
|
|
"leftEar"
|
|
],
|
|
[
|
|
"rightEar"
|
|
],
|
|
[
|
|
"leftShoulder"
|
|
],
|
|
[
|
|
"rightShoulder"
|
|
],
|
|
[
|
|
"leftElbow"
|
|
],
|
|
[
|
|
"rightElbow"
|
|
],
|
|
[
|
|
"leftWrist"
|
|
],
|
|
[
|
|
"rightWrist"
|
|
]
|
|
],
|
|
"hovertemplate": "type=pose<br>x=%{x}<br>y=%{y}<br>name=%{customdata[0]}<extra></extra>",
|
|
"legendgroup": "pose",
|
|
"marker": {
|
|
"color": "#EF553B",
|
|
"symbol": "circle"
|
|
},
|
|
"mode": "markers",
|
|
"name": "pose",
|
|
"orientation": "v",
|
|
"showlegend": true,
|
|
"type": "scatter",
|
|
"x": [
|
|
0.5037816762924194,
|
|
0.544114351272583,
|
|
0.47258099913597107,
|
|
0.6112894415855408,
|
|
0.42202046513557434,
|
|
0.790356457233429,
|
|
0.30560430884361267,
|
|
0.8586887121200562,
|
|
0.052559275180101395,
|
|
0.8901190161705017,
|
|
0.14568309485912323
|
|
],
|
|
"xaxis": "x",
|
|
"y": [
|
|
0.5385957062244415,
|
|
0.5870676934719086,
|
|
0.5835375487804413,
|
|
0.5667203366756439,
|
|
0.5620827376842499,
|
|
0.3601607084274292,
|
|
0.3561617136001587,
|
|
0.10383915901184082,
|
|
0.12815016508102417,
|
|
-0.1593785285949707,
|
|
0.4648846983909607
|
|
],
|
|
"yaxis": "y"
|
|
},
|
|
{
|
|
"customdata": [
|
|
[
|
|
"wrist_right"
|
|
],
|
|
[
|
|
"thumbCMC_right"
|
|
],
|
|
[
|
|
"thumbMP_right"
|
|
],
|
|
[
|
|
"thumbIP_right"
|
|
],
|
|
[
|
|
"thumbTip_right"
|
|
],
|
|
[
|
|
"indexMCP_right"
|
|
],
|
|
[
|
|
"indexPIP_right"
|
|
],
|
|
[
|
|
"indexDIP_right"
|
|
],
|
|
[
|
|
"indexTip_right"
|
|
],
|
|
[
|
|
"middleMCP_right"
|
|
],
|
|
[
|
|
"middlePIP_right"
|
|
],
|
|
[
|
|
"middleDIP_right"
|
|
],
|
|
[
|
|
"middleTip_right"
|
|
],
|
|
[
|
|
"ringMCP_right"
|
|
],
|
|
[
|
|
"ringPIP_right"
|
|
],
|
|
[
|
|
"ringDIP_right"
|
|
],
|
|
[
|
|
"ringTip_right"
|
|
],
|
|
[
|
|
"littleMCP_right"
|
|
],
|
|
[
|
|
"littlePIP_right"
|
|
],
|
|
[
|
|
"littleDIP_right"
|
|
],
|
|
[
|
|
"littleTip_right"
|
|
]
|
|
],
|
|
"hovertemplate": "type=right_hand<br>x=%{x}<br>y=%{y}<br>name=%{customdata[0]}<extra></extra>",
|
|
"legendgroup": "right_hand",
|
|
"marker": {
|
|
"color": "#00cc96",
|
|
"symbol": "circle"
|
|
},
|
|
"mode": "markers",
|
|
"name": "right_hand",
|
|
"orientation": "v",
|
|
"showlegend": true,
|
|
"type": "scatter",
|
|
"x": [
|
|
0.1788196861743927,
|
|
0.23843127489089966,
|
|
0.25467628240585327,
|
|
0.27044928073883057,
|
|
0.2871263027191162,
|
|
0.19056828320026398,
|
|
0.2649158835411072,
|
|
0.3157113492488861,
|
|
0.3494824171066284,
|
|
0.18622460961341858,
|
|
0.2733367681503296,
|
|
0.32277774810791016,
|
|
0.3569425642490387,
|
|
0.19574135541915894,
|
|
0.2806362509727478,
|
|
0.3286181688308716,
|
|
0.36066585779190063,
|
|
0.21657982468605042,
|
|
0.2816353738307953,
|
|
0.31945061683654785,
|
|
0.34714818000793457
|
|
],
|
|
"xaxis": "x",
|
|
"y": [
|
|
0.4631972312927246,
|
|
0.49802637100219727,
|
|
0.5355206429958344,
|
|
0.5633883774280548,
|
|
0.5824070870876312,
|
|
0.5867454409599304,
|
|
0.6103077828884125,
|
|
0.6078206300735474,
|
|
0.6010101139545441,
|
|
0.5849654078483582,
|
|
0.6130928993225098,
|
|
0.6087997257709503,
|
|
0.6008164584636688,
|
|
0.5775772035121918,
|
|
0.6042222082614899,
|
|
0.6019154489040375,
|
|
0.5936585664749146,
|
|
0.564491868019104,
|
|
0.5853257775306702,
|
|
0.5884504020214081,
|
|
0.5863424837589264
|
|
],
|
|
"yaxis": "y"
|
|
}
|
|
],
|
|
"layout": {
|
|
"legend": {
|
|
"title": {
|
|
"text": "type"
|
|
},
|
|
"tracegroupgap": 0
|
|
},
|
|
"margin": {
|
|
"t": 60
|
|
},
|
|
"template": {
|
|
"data": {
|
|
"bar": [
|
|
{
|
|
"error_x": {
|
|
"color": "#2a3f5f"
|
|
},
|
|
"error_y": {
|
|
"color": "#2a3f5f"
|
|
},
|
|
"marker": {
|
|
"line": {
|
|
"color": "#E5ECF6",
|
|
"width": 0.5
|
|
},
|
|
"pattern": {
|
|
"fillmode": "overlay",
|
|
"size": 10,
|
|
"solidity": 0.2
|
|
}
|
|
},
|
|
"type": "bar"
|
|
}
|
|
],
|
|
"barpolar": [
|
|
{
|
|
"marker": {
|
|
"line": {
|
|
"color": "#E5ECF6",
|
|
"width": 0.5
|
|
},
|
|
"pattern": {
|
|
"fillmode": "overlay",
|
|
"size": 10,
|
|
"solidity": 0.2
|
|
}
|
|
},
|
|
"type": "barpolar"
|
|
}
|
|
],
|
|
"carpet": [
|
|
{
|
|
"aaxis": {
|
|
"endlinecolor": "#2a3f5f",
|
|
"gridcolor": "white",
|
|
"linecolor": "white",
|
|
"minorgridcolor": "white",
|
|
"startlinecolor": "#2a3f5f"
|
|
},
|
|
"baxis": {
|
|
"endlinecolor": "#2a3f5f",
|
|
"gridcolor": "white",
|
|
"linecolor": "white",
|
|
"minorgridcolor": "white",
|
|
"startlinecolor": "#2a3f5f"
|
|
},
|
|
"type": "carpet"
|
|
}
|
|
],
|
|
"choropleth": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"type": "choropleth"
|
|
}
|
|
],
|
|
"contour": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
0,
|
|
"#0d0887"
|
|
],
|
|
[
|
|
0.1111111111111111,
|
|
"#46039f"
|
|
],
|
|
[
|
|
0.2222222222222222,
|
|
"#7201a8"
|
|
],
|
|
[
|
|
0.3333333333333333,
|
|
"#9c179e"
|
|
],
|
|
[
|
|
0.4444444444444444,
|
|
"#bd3786"
|
|
],
|
|
[
|
|
0.5555555555555556,
|
|
"#d8576b"
|
|
],
|
|
[
|
|
0.6666666666666666,
|
|
"#ed7953"
|
|
],
|
|
[
|
|
0.7777777777777778,
|
|
"#fb9f3a"
|
|
],
|
|
[
|
|
0.8888888888888888,
|
|
"#fdca26"
|
|
],
|
|
[
|
|
1,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "contour"
|
|
}
|
|
],
|
|
"contourcarpet": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"type": "contourcarpet"
|
|
}
|
|
],
|
|
"heatmap": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
0,
|
|
"#0d0887"
|
|
],
|
|
[
|
|
0.1111111111111111,
|
|
"#46039f"
|
|
],
|
|
[
|
|
0.2222222222222222,
|
|
"#7201a8"
|
|
],
|
|
[
|
|
0.3333333333333333,
|
|
"#9c179e"
|
|
],
|
|
[
|
|
0.4444444444444444,
|
|
"#bd3786"
|
|
],
|
|
[
|
|
0.5555555555555556,
|
|
"#d8576b"
|
|
],
|
|
[
|
|
0.6666666666666666,
|
|
"#ed7953"
|
|
],
|
|
[
|
|
0.7777777777777778,
|
|
"#fb9f3a"
|
|
],
|
|
[
|
|
0.8888888888888888,
|
|
"#fdca26"
|
|
],
|
|
[
|
|
1,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "heatmap"
|
|
}
|
|
],
|
|
"heatmapgl": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
0,
|
|
"#0d0887"
|
|
],
|
|
[
|
|
0.1111111111111111,
|
|
"#46039f"
|
|
],
|
|
[
|
|
0.2222222222222222,
|
|
"#7201a8"
|
|
],
|
|
[
|
|
0.3333333333333333,
|
|
"#9c179e"
|
|
],
|
|
[
|
|
0.4444444444444444,
|
|
"#bd3786"
|
|
],
|
|
[
|
|
0.5555555555555556,
|
|
"#d8576b"
|
|
],
|
|
[
|
|
0.6666666666666666,
|
|
"#ed7953"
|
|
],
|
|
[
|
|
0.7777777777777778,
|
|
"#fb9f3a"
|
|
],
|
|
[
|
|
0.8888888888888888,
|
|
"#fdca26"
|
|
],
|
|
[
|
|
1,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "heatmapgl"
|
|
}
|
|
],
|
|
"histogram": [
|
|
{
|
|
"marker": {
|
|
"pattern": {
|
|
"fillmode": "overlay",
|
|
"size": 10,
|
|
"solidity": 0.2
|
|
}
|
|
},
|
|
"type": "histogram"
|
|
}
|
|
],
|
|
"histogram2d": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
0,
|
|
"#0d0887"
|
|
],
|
|
[
|
|
0.1111111111111111,
|
|
"#46039f"
|
|
],
|
|
[
|
|
0.2222222222222222,
|
|
"#7201a8"
|
|
],
|
|
[
|
|
0.3333333333333333,
|
|
"#9c179e"
|
|
],
|
|
[
|
|
0.4444444444444444,
|
|
"#bd3786"
|
|
],
|
|
[
|
|
0.5555555555555556,
|
|
"#d8576b"
|
|
],
|
|
[
|
|
0.6666666666666666,
|
|
"#ed7953"
|
|
],
|
|
[
|
|
0.7777777777777778,
|
|
"#fb9f3a"
|
|
],
|
|
[
|
|
0.8888888888888888,
|
|
"#fdca26"
|
|
],
|
|
[
|
|
1,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "histogram2d"
|
|
}
|
|
],
|
|
"histogram2dcontour": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
0,
|
|
"#0d0887"
|
|
],
|
|
[
|
|
0.1111111111111111,
|
|
"#46039f"
|
|
],
|
|
[
|
|
0.2222222222222222,
|
|
"#7201a8"
|
|
],
|
|
[
|
|
0.3333333333333333,
|
|
"#9c179e"
|
|
],
|
|
[
|
|
0.4444444444444444,
|
|
"#bd3786"
|
|
],
|
|
[
|
|
0.5555555555555556,
|
|
"#d8576b"
|
|
],
|
|
[
|
|
0.6666666666666666,
|
|
"#ed7953"
|
|
],
|
|
[
|
|
0.7777777777777778,
|
|
"#fb9f3a"
|
|
],
|
|
[
|
|
0.8888888888888888,
|
|
"#fdca26"
|
|
],
|
|
[
|
|
1,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "histogram2dcontour"
|
|
}
|
|
],
|
|
"mesh3d": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"type": "mesh3d"
|
|
}
|
|
],
|
|
"parcoords": [
|
|
{
|
|
"line": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "parcoords"
|
|
}
|
|
],
|
|
"pie": [
|
|
{
|
|
"automargin": true,
|
|
"type": "pie"
|
|
}
|
|
],
|
|
"scatter": [
|
|
{
|
|
"fillpattern": {
|
|
"fillmode": "overlay",
|
|
"size": 10,
|
|
"solidity": 0.2
|
|
},
|
|
"type": "scatter"
|
|
}
|
|
],
|
|
"scatter3d": [
|
|
{
|
|
"line": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatter3d"
|
|
}
|
|
],
|
|
"scattercarpet": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scattercarpet"
|
|
}
|
|
],
|
|
"scattergeo": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scattergeo"
|
|
}
|
|
],
|
|
"scattergl": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scattergl"
|
|
}
|
|
],
|
|
"scattermapbox": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scattermapbox"
|
|
}
|
|
],
|
|
"scatterpolar": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterpolar"
|
|
}
|
|
],
|
|
"scatterpolargl": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterpolargl"
|
|
}
|
|
],
|
|
"scatterternary": [
|
|
{
|
|
"marker": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"type": "scatterternary"
|
|
}
|
|
],
|
|
"surface": [
|
|
{
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
},
|
|
"colorscale": [
|
|
[
|
|
0,
|
|
"#0d0887"
|
|
],
|
|
[
|
|
0.1111111111111111,
|
|
"#46039f"
|
|
],
|
|
[
|
|
0.2222222222222222,
|
|
"#7201a8"
|
|
],
|
|
[
|
|
0.3333333333333333,
|
|
"#9c179e"
|
|
],
|
|
[
|
|
0.4444444444444444,
|
|
"#bd3786"
|
|
],
|
|
[
|
|
0.5555555555555556,
|
|
"#d8576b"
|
|
],
|
|
[
|
|
0.6666666666666666,
|
|
"#ed7953"
|
|
],
|
|
[
|
|
0.7777777777777778,
|
|
"#fb9f3a"
|
|
],
|
|
[
|
|
0.8888888888888888,
|
|
"#fdca26"
|
|
],
|
|
[
|
|
1,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"type": "surface"
|
|
}
|
|
],
|
|
"table": [
|
|
{
|
|
"cells": {
|
|
"fill": {
|
|
"color": "#EBF0F8"
|
|
},
|
|
"line": {
|
|
"color": "white"
|
|
}
|
|
},
|
|
"header": {
|
|
"fill": {
|
|
"color": "#C8D4E3"
|
|
},
|
|
"line": {
|
|
"color": "white"
|
|
}
|
|
},
|
|
"type": "table"
|
|
}
|
|
]
|
|
},
|
|
"layout": {
|
|
"annotationdefaults": {
|
|
"arrowcolor": "#2a3f5f",
|
|
"arrowhead": 0,
|
|
"arrowwidth": 1
|
|
},
|
|
"autotypenumbers": "strict",
|
|
"coloraxis": {
|
|
"colorbar": {
|
|
"outlinewidth": 0,
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"colorscale": {
|
|
"diverging": [
|
|
[
|
|
0,
|
|
"#8e0152"
|
|
],
|
|
[
|
|
0.1,
|
|
"#c51b7d"
|
|
],
|
|
[
|
|
0.2,
|
|
"#de77ae"
|
|
],
|
|
[
|
|
0.3,
|
|
"#f1b6da"
|
|
],
|
|
[
|
|
0.4,
|
|
"#fde0ef"
|
|
],
|
|
[
|
|
0.5,
|
|
"#f7f7f7"
|
|
],
|
|
[
|
|
0.6,
|
|
"#e6f5d0"
|
|
],
|
|
[
|
|
0.7,
|
|
"#b8e186"
|
|
],
|
|
[
|
|
0.8,
|
|
"#7fbc41"
|
|
],
|
|
[
|
|
0.9,
|
|
"#4d9221"
|
|
],
|
|
[
|
|
1,
|
|
"#276419"
|
|
]
|
|
],
|
|
"sequential": [
|
|
[
|
|
0,
|
|
"#0d0887"
|
|
],
|
|
[
|
|
0.1111111111111111,
|
|
"#46039f"
|
|
],
|
|
[
|
|
0.2222222222222222,
|
|
"#7201a8"
|
|
],
|
|
[
|
|
0.3333333333333333,
|
|
"#9c179e"
|
|
],
|
|
[
|
|
0.4444444444444444,
|
|
"#bd3786"
|
|
],
|
|
[
|
|
0.5555555555555556,
|
|
"#d8576b"
|
|
],
|
|
[
|
|
0.6666666666666666,
|
|
"#ed7953"
|
|
],
|
|
[
|
|
0.7777777777777778,
|
|
"#fb9f3a"
|
|
],
|
|
[
|
|
0.8888888888888888,
|
|
"#fdca26"
|
|
],
|
|
[
|
|
1,
|
|
"#f0f921"
|
|
]
|
|
],
|
|
"sequentialminus": [
|
|
[
|
|
0,
|
|
"#0d0887"
|
|
],
|
|
[
|
|
0.1111111111111111,
|
|
"#46039f"
|
|
],
|
|
[
|
|
0.2222222222222222,
|
|
"#7201a8"
|
|
],
|
|
[
|
|
0.3333333333333333,
|
|
"#9c179e"
|
|
],
|
|
[
|
|
0.4444444444444444,
|
|
"#bd3786"
|
|
],
|
|
[
|
|
0.5555555555555556,
|
|
"#d8576b"
|
|
],
|
|
[
|
|
0.6666666666666666,
|
|
"#ed7953"
|
|
],
|
|
[
|
|
0.7777777777777778,
|
|
"#fb9f3a"
|
|
],
|
|
[
|
|
0.8888888888888888,
|
|
"#fdca26"
|
|
],
|
|
[
|
|
1,
|
|
"#f0f921"
|
|
]
|
|
]
|
|
},
|
|
"colorway": [
|
|
"#636efa",
|
|
"#EF553B",
|
|
"#00cc96",
|
|
"#ab63fa",
|
|
"#FFA15A",
|
|
"#19d3f3",
|
|
"#FF6692",
|
|
"#B6E880",
|
|
"#FF97FF",
|
|
"#FECB52"
|
|
],
|
|
"font": {
|
|
"color": "#2a3f5f"
|
|
},
|
|
"geo": {
|
|
"bgcolor": "white",
|
|
"lakecolor": "white",
|
|
"landcolor": "#E5ECF6",
|
|
"showlakes": true,
|
|
"showland": true,
|
|
"subunitcolor": "white"
|
|
},
|
|
"hoverlabel": {
|
|
"align": "left"
|
|
},
|
|
"hovermode": "closest",
|
|
"mapbox": {
|
|
"style": "light"
|
|
},
|
|
"paper_bgcolor": "white",
|
|
"plot_bgcolor": "#E5ECF6",
|
|
"polar": {
|
|
"angularaxis": {
|
|
"gridcolor": "white",
|
|
"linecolor": "white",
|
|
"ticks": ""
|
|
},
|
|
"bgcolor": "#E5ECF6",
|
|
"radialaxis": {
|
|
"gridcolor": "white",
|
|
"linecolor": "white",
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"scene": {
|
|
"xaxis": {
|
|
"backgroundcolor": "#E5ECF6",
|
|
"gridcolor": "white",
|
|
"gridwidth": 2,
|
|
"linecolor": "white",
|
|
"showbackground": true,
|
|
"ticks": "",
|
|
"zerolinecolor": "white"
|
|
},
|
|
"yaxis": {
|
|
"backgroundcolor": "#E5ECF6",
|
|
"gridcolor": "white",
|
|
"gridwidth": 2,
|
|
"linecolor": "white",
|
|
"showbackground": true,
|
|
"ticks": "",
|
|
"zerolinecolor": "white"
|
|
},
|
|
"zaxis": {
|
|
"backgroundcolor": "#E5ECF6",
|
|
"gridcolor": "white",
|
|
"gridwidth": 2,
|
|
"linecolor": "white",
|
|
"showbackground": true,
|
|
"ticks": "",
|
|
"zerolinecolor": "white"
|
|
}
|
|
},
|
|
"shapedefaults": {
|
|
"line": {
|
|
"color": "#2a3f5f"
|
|
}
|
|
},
|
|
"ternary": {
|
|
"aaxis": {
|
|
"gridcolor": "white",
|
|
"linecolor": "white",
|
|
"ticks": ""
|
|
},
|
|
"baxis": {
|
|
"gridcolor": "white",
|
|
"linecolor": "white",
|
|
"ticks": ""
|
|
},
|
|
"bgcolor": "#E5ECF6",
|
|
"caxis": {
|
|
"gridcolor": "white",
|
|
"linecolor": "white",
|
|
"ticks": ""
|
|
}
|
|
},
|
|
"title": {
|
|
"x": 0.05
|
|
},
|
|
"xaxis": {
|
|
"automargin": true,
|
|
"gridcolor": "white",
|
|
"linecolor": "white",
|
|
"ticks": "",
|
|
"title": {
|
|
"standoff": 15
|
|
},
|
|
"zerolinecolor": "white",
|
|
"zerolinewidth": 2
|
|
},
|
|
"yaxis": {
|
|
"automargin": true,
|
|
"gridcolor": "white",
|
|
"linecolor": "white",
|
|
"ticks": "",
|
|
"title": {
|
|
"standoff": 15
|
|
},
|
|
"zerolinecolor": "white",
|
|
"zerolinewidth": 2
|
|
}
|
|
}
|
|
},
|
|
"xaxis": {
|
|
"anchor": "y",
|
|
"constrain": "domain",
|
|
"domain": [
|
|
0,
|
|
1
|
|
],
|
|
"range": [
|
|
0,
|
|
1
|
|
],
|
|
"title": {
|
|
"text": "x"
|
|
}
|
|
},
|
|
"yaxis": {
|
|
"anchor": "x",
|
|
"domain": [
|
|
0,
|
|
1
|
|
],
|
|
"range": [
|
|
0,
|
|
1
|
|
],
|
|
"scaleanchor": "x",
|
|
"scaleratio": 1,
|
|
"title": {
|
|
"text": "y"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"text/html": [
|
|
"<div> <div id=\"8f1cccf1-52ac-4cf0-8409-1c18e66d17c3\" class=\"plotly-graph-div\" style=\"height:525px; width:100%;\"></div> <script type=\"text/javascript\"> require([\"plotly\"], function(Plotly) { window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById(\"8f1cccf1-52ac-4cf0-8409-1c18e66d17c3\")) { Plotly.newPlot( \"8f1cccf1-52ac-4cf0-8409-1c18e66d17c3\", [{\"customdata\":[[\"wrist_left\"],[\"thumbCMC_left\"],[\"thumbMP_left\"],[\"thumbIP_left\"],[\"thumbTip_left\"],[\"indexMCP_left\"],[\"indexPIP_left\"],[\"indexDIP_left\"],[\"indexTip_left\"],[\"middleMCP_left\"],[\"middlePIP_left\"],[\"middleDIP_left\"],[\"middleTip_left\"],[\"ringMCP_left\"],[\"ringPIP_left\"],[\"ringDIP_left\"],[\"ringTip_left\"],[\"littleMCP_left\"],[\"littlePIP_left\"],[\"littleDIP_left\"],[\"littleTip_left\"]],\"hovertemplate\":\"type=left_hand<br>x=%{x}<br>y=%{y}<br>name=%{customdata[0]}<extra></extra>\",\"legendgroup\":\"left_hand\",\"marker\":{\"color\":\"#636efa\",\"symbol\":\"circle\"},\"mode\":\"markers\",\"name\":\"left_hand\",\"orientation\":\"v\",\"showlegend\":true,\"x\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"xaxis\":\"x\",\"y\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"customdata\":[[\"nose\"],[\"leftEye\"],[\"rightEye\"],[\"leftEar\"],[\"rightEar\"],[\"leftShoulder\"],[\"rightShoulder\"],[\"leftElbow\"],[\"rightElbow\"],[\"leftWrist\"],[\"rightWrist\"]],\"hovertemplate\":\"type=pose<br>x=%{x}<br>y=%{y}<br>name=%{customdata[0]}<extra></extra>\",\"legendgroup\":\"pose\",\"marker\":{\"color\":\"#EF553B\",\"symbol\":\"circle\"},\"mode\":\"markers\",\"name\":\"pose\",\"orientation\":\"v\",\"showlegend\":true,\"x\":[0.5037816762924194,0.544114351272583,0.47258099913597107,0.6112894415855408,0.42202046513557434,0.790356457233429,0.30560430884361267,0.8586887121200562,0.052559275180101395,0.8901190161705017,0.14568309485912323],\"xaxis\":\"x\",\"y\":[0.5385957062244415,0.5870676934719086,0.5835375487804413,0.5667203366756439,0.5620827376842499,0.3601607084274292,0.3561617136001587,0.10383915901184082,0.12815016508102417,-0.1593785285949707,0.4648846983909607],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"customdata\":[[\"wrist_right\"],[\"thumbCMC_right\"],[\"thumbMP_right\"],[\"thumbIP_right\"],[\"thumbTip_right\"],[\"indexMCP_right\"],[\"indexPIP_right\"],[\"indexDIP_right\"],[\"indexTip_right\"],[\"middleMCP_right\"],[\"middlePIP_right\"],[\"middleDIP_right\"],[\"middleTip_right\"],[\"ringMCP_right\"],[\"ringPIP_right\"],[\"ringDIP_right\"],[\"ringTip_right\"],[\"littleMCP_right\"],[\"littlePIP_right\"],[\"littleDIP_right\"],[\"littleTip_right\"]],\"hovertemplate\":\"type=right_hand<br>x=%{x}<br>y=%{y}<br>name=%{customdata[0]}<extra></extra>\",\"legendgroup\":\"right_hand\",\"marker\":{\"color\":\"#00cc96\",\"symbol\":\"circle\"},\"mode\":\"markers\",\"name\":\"right_hand\",\"orientation\":\"v\",\"showlegend\":true,\"x\":[0.1788196861743927,0.23843127489089966,0.25467628240585327,0.27044928073883057,0.2871263027191162,0.19056828320026398,0.2649158835411072,0.3157113492488861,0.3494824171066284,0.18622460961341858,0.2733367681503296,0.32277774810791016,0.3569425642490387,0.19574135541915894,0.2806362509727478,0.3286181688308716,0.36066585779190063,0.21657982468605042,0.2816353738307953,0.31945061683654785,0.34714818000793457],\"xaxis\":\"x\",\"y\":[0.4631972312927246,0.49802637100219727,0.5355206429958344,0.5633883774280548,0.5824070870876312,0.5867454409599304,0.6103077828884125,0.6078206300735474,0.6010101139545441,0.5849654078483582,0.6130928993225098,0.6087997257709503,0.6008164584636688,0.5775772035121918,0.6042222082614899,0.6019154489040375,0.5936585664749146,0.564491868019104,0.5853257775306702,0.5884504020214081,0.5863424837589264],\"yaxis\":\"y\",\"type\":\"scatter\"}], {\"template\":{\"data\":{\"histogram2dcontour\":[{\"type\":\"histogram2dcontour\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"choropleth\":[{\"type\":\"choropleth\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"histogram2d\":[{\"type\":\"histogram2d\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"heatmap\":[{\"type\":\"heatmap\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"heatmapgl\":[{\"type\":\"heatmapgl\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"contourcarpet\":[{\"type\":\"contourcarpet\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"contour\":[{\"type\":\"contour\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"surface\":[{\"type\":\"surface\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"mesh3d\":[{\"type\":\"mesh3d\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"scatter\":[{\"fillpattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2},\"type\":\"scatter\"}],\"parcoords\":[{\"type\":\"parcoords\",\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterpolargl\":[{\"type\":\"scatterpolargl\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"bar\":[{\"error_x\":{\"color\":\"#2a3f5f\"},\"error_y\":{\"color\":\"#2a3f5f\"},\"marker\":{\"line\":{\"color\":\"#E5ECF6\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"bar\"}],\"scattergeo\":[{\"type\":\"scattergeo\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterpolar\":[{\"type\":\"scatterpolar\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"histogram\":[{\"marker\":{\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"histogram\"}],\"scattergl\":[{\"type\":\"scattergl\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatter3d\":[{\"type\":\"scatter3d\",\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scattermapbox\":[{\"type\":\"scattermapbox\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterternary\":[{\"type\":\"scatterternary\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scattercarpet\":[{\"type\":\"scattercarpet\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"carpet\":[{\"aaxis\":{\"endlinecolor\":\"#2a3f5f\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"minorgridcolor\":\"white\",\"startlinecolor\":\"#2a3f5f\"},\"baxis\":{\"endlinecolor\":\"#2a3f5f\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"minorgridcolor\":\"white\",\"startlinecolor\":\"#2a3f5f\"},\"type\":\"carpet\"}],\"table\":[{\"cells\":{\"fill\":{\"color\":\"#EBF0F8\"},\"line\":{\"color\":\"white\"}},\"header\":{\"fill\":{\"color\":\"#C8D4E3\"},\"line\":{\"color\":\"white\"}},\"type\":\"table\"}],\"barpolar\":[{\"marker\":{\"line\":{\"color\":\"#E5ECF6\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"barpolar\"}],\"pie\":[{\"automargin\":true,\"type\":\"pie\"}]},\"layout\":{\"autotypenumbers\":\"strict\",\"colorway\":[\"#636efa\",\"#EF553B\",\"#00cc96\",\"#ab63fa\",\"#FFA15A\",\"#19d3f3\",\"#FF6692\",\"#B6E880\",\"#FF97FF\",\"#FECB52\"],\"font\":{\"color\":\"#2a3f5f\"},\"hovermode\":\"closest\",\"hoverlabel\":{\"align\":\"left\"},\"paper_bgcolor\":\"white\",\"plot_bgcolor\":\"#E5ECF6\",\"polar\":{\"bgcolor\":\"#E5ECF6\",\"angularaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"radialaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"}},\"ternary\":{\"bgcolor\":\"#E5ECF6\",\"aaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"baxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"caxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"}},\"coloraxis\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"colorscale\":{\"sequential\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"sequentialminus\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"diverging\":[[0,\"#8e0152\"],[0.1,\"#c51b7d\"],[0.2,\"#de77ae\"],[0.3,\"#f1b6da\"],[0.4,\"#fde0ef\"],[0.5,\"#f7f7f7\"],[0.6,\"#e6f5d0\"],[0.7,\"#b8e186\"],[0.8,\"#7fbc41\"],[0.9,\"#4d9221\"],[1,\"#276419\"]]},\"xaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"white\",\"automargin\":true,\"zerolinewidth\":2},\"yaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"white\",\"automargin\":true,\"zerolinewidth\":2},\"scene\":{\"xaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2},\"yaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2},\"zaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2}},\"shapedefaults\":{\"line\":{\"color\":\"#2a3f5f\"}},\"annotationdefaults\":{\"arrowcolor\":\"#2a3f5f\",\"arrowhead\":0,\"arrowwidth\":1},\"geo\":{\"bgcolor\":\"white\",\"landcolor\":\"#E5ECF6\",\"subunitcolor\":\"white\",\"showland\":true,\"showlakes\":true,\"lakecolor\":\"white\"},\"title\":{\"x\":0.05},\"mapbox\":{\"style\":\"light\"}}},\"xaxis\":{\"anchor\":\"y\",\"domain\":[0.0,1.0],\"title\":{\"text\":\"x\"},\"range\":[0,1],\"constrain\":\"domain\"},\"yaxis\":{\"anchor\":\"x\",\"domain\":[0.0,1.0],\"title\":{\"text\":\"y\"},\"scaleanchor\":\"x\",\"scaleratio\":1,\"range\":[0,1]},\"legend\":{\"title\":{\"text\":\"type\"},\"tracegroupgap\":0},\"margin\":{\"t\":60}}, {\"responsive\": true} ).then(function(){\n",
|
|
" \n",
|
|
"var gd = document.getElementById('8f1cccf1-52ac-4cf0-8409-1c18e66d17c3');\n",
|
|
"var x = new MutationObserver(function (mutations, observer) {{\n",
|
|
" var display = window.getComputedStyle(gd).display;\n",
|
|
" if (!display || display === 'none') {{\n",
|
|
" console.log([gd, 'removed!']);\n",
|
|
" Plotly.purge(gd);\n",
|
|
" observer.disconnect();\n",
|
|
" }}\n",
|
|
"}});\n",
|
|
"\n",
|
|
"// Listen for the removal of the full notebook cells\n",
|
|
"var notebookContainer = gd.closest('#notebook-container');\n",
|
|
"if (notebookContainer) {{\n",
|
|
" x.observe(notebookContainer, {childList: true});\n",
|
|
"}}\n",
|
|
"\n",
|
|
"// Listen for the clearing of the current output cell\n",
|
|
"var outputEl = gd.closest('.output');\n",
|
|
"if (outputEl) {{\n",
|
|
" x.observe(outputEl, {childList: true});\n",
|
|
"}}\n",
|
|
"\n",
|
|
" }) }; }); </script> </div>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"# read parquet file at data/train_landmark_files/2044/635217.parquet\n",
|
|
"import pandas as pd\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"\n",
|
|
"df = pd.read_parquet('data/train_landmark_files/37779/254554888.parquet')\n",
|
|
"\n",
|
|
"# print all unique frame numbers\n",
|
|
"print(df['frame'].unique())\n",
|
|
"\n",
|
|
"# filter where type is pose\n",
|
|
"df = df[df['frame'] == 25]\n",
|
|
"\n",
|
|
"print(df.head())\n",
|
|
"\n",
|
|
"mapping = {\n",
|
|
" 'pose_0': 'nose',\n",
|
|
" 'pose_1': 'leftEye',\n",
|
|
" 'pose_4': 'rightEye',\n",
|
|
" 'pose_7': 'leftEar',\n",
|
|
" 'pose_8': 'rightEar',\n",
|
|
" 'pose_11': 'leftShoulder',\n",
|
|
" 'pose_12': 'rightShoulder',\n",
|
|
" 'pose_13': 'leftElbow',\n",
|
|
" 'pose_14': 'rightElbow',\n",
|
|
" 'pose_15': 'leftWrist',\n",
|
|
" 'pose_16': 'rightWrist',\n",
|
|
"\n",
|
|
" 'left_hand_0': 'wrist_left',\n",
|
|
" 'left_hand_1': 'thumbCMC_left',\n",
|
|
" 'left_hand_2': 'thumbMP_left',\n",
|
|
" 'left_hand_3': 'thumbIP_left',\n",
|
|
" 'left_hand_4': 'thumbTip_left',\n",
|
|
" 'left_hand_5': 'indexMCP_left',\n",
|
|
" 'left_hand_6': 'indexPIP_left',\n",
|
|
" 'left_hand_7': 'indexDIP_left',\n",
|
|
" 'left_hand_8': 'indexTip_left',\n",
|
|
" 'left_hand_9': 'middleMCP_left',\n",
|
|
" 'left_hand_10': 'middlePIP_left',\n",
|
|
" 'left_hand_11': 'middleDIP_left',\n",
|
|
" 'left_hand_12': 'middleTip_left',\n",
|
|
" 'left_hand_13': 'ringMCP_left',\n",
|
|
" 'left_hand_14': 'ringPIP_left',\n",
|
|
" 'left_hand_15': 'ringDIP_left',\n",
|
|
" 'left_hand_16': 'ringTip_left',\n",
|
|
" 'left_hand_17': 'littleMCP_left',\n",
|
|
" 'left_hand_18': 'littlePIP_left',\n",
|
|
" 'left_hand_19': 'littleDIP_left',\n",
|
|
" 'left_hand_20': 'littleTip_left',\n",
|
|
"\n",
|
|
" 'right_hand_0': 'wrist_right',\n",
|
|
" 'right_hand_1': 'thumbCMC_right',\n",
|
|
" 'right_hand_2': 'thumbMP_right',\n",
|
|
" 'right_hand_3': 'thumbIP_right',\n",
|
|
" 'right_hand_4': 'thumbTip_right',\n",
|
|
" 'right_hand_5': 'indexMCP_right',\n",
|
|
" 'right_hand_6': 'indexPIP_right',\n",
|
|
" 'right_hand_7': 'indexDIP_right',\n",
|
|
" 'right_hand_8': 'indexTip_right',\n",
|
|
" 'right_hand_9': 'middleMCP_right',\n",
|
|
" 'right_hand_10': 'middlePIP_right',\n",
|
|
" 'right_hand_11': 'middleDIP_right',\n",
|
|
" 'right_hand_12': 'middleTip_right',\n",
|
|
" 'right_hand_13': 'ringMCP_right',\n",
|
|
" 'right_hand_14': 'ringPIP_right',\n",
|
|
" 'right_hand_15': 'ringDIP_right',\n",
|
|
" 'right_hand_16': 'ringTip_right',\n",
|
|
" 'right_hand_17': 'littleMCP_right',\n",
|
|
" 'right_hand_18': 'littlePIP_right',\n",
|
|
" 'right_hand_19': 'littleDIP_right',\n",
|
|
" 'right_hand_20': 'littleTip_right',\n",
|
|
" }\n",
|
|
"\n",
|
|
"# scatter plot and when hovering over the point, show the frame number\n",
|
|
"import plotly.express as px\n",
|
|
"\n",
|
|
"# combine type and landmark index\n",
|
|
"df['landmark_id'] = df['type'] + '_' + df['landmark_index'].astype(str)\n",
|
|
"# only keep rows where landmark_id is in the mapping\n",
|
|
"df = df[df['landmark_id'].isin(mapping.keys())]\n",
|
|
"df['name'] = df['landmark_id'].apply(lambda x: mapping[x])\n",
|
|
"\n",
|
|
"# flip vertically\n",
|
|
"df['y'] = 1 - df['y']\n",
|
|
"\n",
|
|
"# keep aspect ratio\n",
|
|
"\n",
|
|
"# scatter with px and set color of points based on the type\n",
|
|
"fig = px.scatter(df, x='x', y='y', color='type', hover_data=['name'])\n",
|
|
"\n",
|
|
"fig.update_xaxes(range=[0, 1], constrain='domain')\n",
|
|
"fig.update_yaxes(scaleanchor='x', scaleratio=1, range=[0, 1])\n",
|
|
"\n",
|
|
"# show the plot\n",
|
|
"fig.show()\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"# from training dataset\n",
|
|
"import pandas as pd\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"\n"
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.8.10"
|
|
},
|
|
"orig_nbformat": 4
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|