{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import seaborn as sns\n", "import warnings\n", "import scipy.stats as stats\n", "import os\n", "\n", "warnings.simplefilter(action='ignore', category=FutureWarning)\n", "pd.options.mode.chained_assignment = None \n", "plt.style.use('ggplot')\n", "sns.color_palette(\"Paired\");\n", "sns.set_theme();" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Data Loading" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# setting path to results folder\n", "root_path = '../../out/pretrained/adept/loci_looped/results_visibility'\n", "\n", "# list all folders in root path that don't stat with a dot\n", "nets = [f for f in os.listdir(root_path) if not f.startswith('.')]\n", "\n", "# read pickle file\n", "tf = pd.DataFrame()\n", "sf = pd.DataFrame()\n", "af = pd.DataFrame()\n", "\n", "# load statistics files from nets\n", "for net in nets:\n", " path = os.path.join(root_path, net, 'surprise', 'statistics',)\n", " with open(os.path.join(path, 'trialframe.csv'), 'rb') as f:\n", " tf_temp = pd.read_csv(f, index_col=0)\n", " tf_temp['net'] = net\n", " tf = pd.concat([tf,tf_temp])\n", "\n", " with open(os.path.join(path, 'slotframe.csv'), 'rb') as f:\n", " sf_temp = pd.read_csv(f, index_col=0)\n", " sf_temp['net'] = net\n", " sf = pd.concat([sf,sf_temp])\n", "\n", " with open(os.path.join(path, 'accframe.csv'), 'rb') as f:\n", " af_temp = pd.read_csv(f, index_col=0)\n", " af_temp['net'] = net\n", " af = pd.concat([af,af_temp])\n", "\n", "# cast variables\n", "sf['visible'] = sf['visible'].astype(bool)\n", "sf['bound'] = sf['bound'].astype(bool)\n", "sf['occluder'] = sf['occluder'].astype(bool)\n", "sf['inimage'] = sf['inimage'].astype(bool)\n", "sf['vanishing'] = sf['vanishing'].astype(bool)\n", "sf['alpha_pos'] = 1-sf['alpha_pos']\n", "sf['alpha_ges'] = 1-sf['alpha_ges']\n", "\n", "# scale to percentage\n", "sf['TE'] = sf['TE'] * 100\n", "\n", "# add surprise as dummy code\n", "tf['control'] = [('control' in set) for set in tf['set']]\n", "sf['control'] = [('control' in set) for set in sf['set']]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Calculate Tracking Error (TE)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tracking Error when visible: M: 7.65 , STD: 10.6, Count: 8266\n", "Tracking Error when occluded: M: 6.72 , STD: 6.25, Count: 2236\n" ] } ], "source": [ "grouping = (sf.inimage & sf.bound & ~sf.occluder & sf.control)\n", "\n", "def get_stats(col):\n", " return f' M: {col.mean():.3} , STD: {col.std():.3}, Count: {col.count()}'\n", "\n", "# When Visible\n", "temp = sf[grouping & sf.visible]\n", "print(f'Tracking Error when visible:' + get_stats(temp['TE']))\n", "\n", "# When Occluded\n", "temp = sf[grouping & ~sf.visible]\n", "print(f'Tracking Error when occluded:' + get_stats(temp['TE']))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Calculate Succesfull Trackings (TE)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
setevalmodetracked_postracked_negtracked_pos_protracked_neg_pro
0controlopen891150.4362750.563725
\n", "
" ], "text/plain": [ " set evalmode tracked_pos tracked_neg tracked_pos_pro \\\n", "0 control open 89 115 0.436275 \n", "\n", " tracked_neg_pro \n", "0 0.563725 " ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# succesfull trackings: In the last visible moment of the target, the slot was less than 10% away from the target\n", "# determine last visible frame numeric\n", "grouping_factors = ['net','set','evalmode','scene','slot']\n", "ff = sf[sf.visible & sf.bound & sf.inimage].groupby(grouping_factors).max()\n", "ff.rename(columns = {'frame':'last_visible'}, inplace = True)\n", "sf = sf.merge(ff[['last_visible']], on=grouping_factors, how='left')\n", "\n", "# same for first bound frame\n", "ff = sf[sf.visible & sf.bound & sf.inimage].groupby(grouping_factors).min()\n", "ff.rename(columns = {'frame':'first_visible'}, inplace = True)\n", "sf = sf.merge(ff[['first_visible']], on=grouping_factors, how='left')\n", "\n", "# add dummy variable to sf\n", "sf['last_visible'] = (sf['last_visible'] == sf['frame'])\n", "\n", "# extract the trials where the target was last visible and threshold the TE\n", "ff = sf[sf['last_visible']] \n", "ff['tracked_pos'] = (ff['TE'] < 10)\n", "ff['tracked_neg'] = (ff['TE'] >= 10)\n", "\n", "# fill NaN with 0\n", "sf = sf.merge(ff[grouping_factors + ['tracked_pos', 'tracked_neg']], on=grouping_factors, how='left')\n", "sf['tracked_pos'].fillna(False, inplace=True)\n", "sf['tracked_neg'].fillna(False, inplace=True)\n", "\n", "# Aggreagte over all scenes\n", "temp = sf[(sf['frame']== 1) & ~sf.occluder & sf.control & (sf.first_visible < 20)]\n", "temp = temp.groupby(['set', 'evalmode']).sum()\n", "temp = temp[['tracked_pos', 'tracked_neg']]\n", "temp = temp.reset_index()\n", "\n", "temp['tracked_pos_pro'] = temp['tracked_pos'] / (temp['tracked_pos'] + temp['tracked_neg'])\n", "temp['tracked_neg_pro'] = temp['tracked_neg'] / (temp['tracked_pos'] + temp['tracked_neg'])\n", "\n", "temp" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Mostly Tracked stats" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAEmCAYAAAB20LuSAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAAiPElEQVR4nO3de5xN9f7H8dfec3EdDLZrUpKvcHKnQqlERzoqupxSB9V0VBRdfwjlFtGFJIWijkrpniSXkJNrIsU35H7JxLgbzOz9+2OPOTPTMHvYY81e834+Hh7ttdfaa3/MXr3n67vX+ixPIBBARETcw+t0ASIiEl4KdhERl1Gwi4i4jIJdRMRlFOwiIi4T7fD7FwIaAzuBVIdrERGJFFFARWApcCzrSqeDvTGwwOEaREQiVQvg+6xPOh3sOwGSkg7j9+t8+nAoU6Y4e/YccroMkb/QsRk+Xq+H+PhikJahWTkd7KkAfn9AwR5G+llKfqVjM+yyncLWl6ciIi6jYBcRcRkFu4iIyyjYRURcJqQvT40xJYD/Au2stZuyrKsHjAdKAPOBf1trU8JbpoiIhCrHEbsxpinB8yRrnGKTd4GHrbU1AA9wf/jKExGR3AplKuZ+4CFgR9YVxpiqQBFr7aK0p94Gbg1bdSIikms5TsVYa+8DMMZkt7oSmU+Q3wmcl9siypQpntuXnHP+lON4o2OdLiMkPl+c0yXkKJJ+nvldJP0sdWyeG2d7gZIXyHjFgQfw53Yne/YcyvcXLvh8cfw+uIPTZbhGtT7TSEw86HQZrqBjM7wi4dj0ej2nHRCf7Vkx2wg2ojmpAtlM2YiIyLlzVsFurd0MJBtjmqU9dTfw9VlXJSIiZ+yMgt0YM90Y0yht8S7gJWPMWqA4MCpcxYmISO6FPMdurb0gw+O2GR6vBJqEtywRETlTuvJURMRlFOwiIi6jYBcRcRkFu4iIyyjYRURcRsEuIuIyCnYREZdRsIuIuMzZNgErMPwnjlOtzzSny3AN/4njTpcg4loK9hB5Y2K58bHPnC7DNb4Y2R445nQZrqBBR3i5YdChYBeJcBp0hJcbBh2aYxcRcRkFu4iIyyjYRURcRsEuIuIyCnYREZdRsIuIuIyCXUTEZRTsIiIuo2AXEXEZBbuIiMso2EVEXEbBLiLiMgp2ERGXUbCLiLiMgl1ExGUU7CIiLqNgFxFxGQW7iIjLKNhFRFxGwS4i4jIKdhERl4kOZSNjzJ1AXyAGeNlaOybL+gbAOCAW2Ap0stbuC2+pIiISihxH7MaYysBgoDlQD0gwxtTKstkrQD9rbV3AAo+HuU4REQlRKFMxrYA51tq91trDwEdAxyzbRAEl0h4XBY6Gr0QREcmNUKZiKgE7MyzvBJpk2aYXMNMY8zJwGGgalupERCTXQgl2LxDIsOwB/CcXjDFFgAlAK2vtEmNML2AycEOoRZQpUzzUTcVFfL44p0sQyVakH5uhBPs2oEWG5QrAjgzLdYCj1tolacvjgIG5KWLPnkP4/YGcN3RQpH/Q+VFi4kGnS3AFHZvhl9+PTa/Xc9oBcShz7LOAa40xPmNMUaADMCPD+vVAFWOMSVtuDyw9w3pFROQs5Rjs1trtQB9gLvATMCVtymW6MaaRtTYJ6AxMNcasAroCXfKuZBEROZ2QzmO31k4BpmR5rm2Gx18DX4e3NBERORO68lRExGUU7CIiLqNgFxFxGQW7iIjLKNhFRFxGwS4i4jIKdhERl1Gwi4i4jIJdRMRlFOwiIi6jYBcRcRkFu4iIyyjYRURcRsEuIuIyCnYREZdRsIuIuIyCXUTEZRTsIiIuo2AXEXEZBbuIiMso2EVEXEbBLiLiMgp2ERGXUbCLiLiMgl1ExGUU7CIiLqNgFxFxGQW7iIjLKNhFRFxGwS4i4jIKdhERl1Gwi4i4THQoGxlj7gT6AjHAy9baMVnWG2AcEA/sAu6w1iaFuVYREQlBjiN2Y0xlYDDQHKgHJBhjamVY7wE+B5631tYFVgBP50m1IiKSo1CmYloBc6y1e621h4GPgI4Z1jcADltrZ6QtDwHGICIijghlKqYSsDPD8k6gSYbl6sAuY8wEoD6wBugetgpFRCRXQgl2LxDIsOwB/Fn20RK40lq7zBgzEHgR6BxqEWXKFA91U3ERny/O6RJEshXpx2Yowb4NaJFhuQKwI8PyLmCdtXZZ2vJ7BKdrQrZnzyH8/kDOGzoo0j/o/Cgx8aDTJbiCjs3wy+/HptfrOe2AOJQ59lnAtcYYnzGmKNABmJFh/X8BnzGmbtryjcDyM6xXRETOUo7Bbq3dDvQB5gI/AVOstUuMMdONMY2stUeBm4E3jTG/ANcAj+VhzSIichohncdurZ0CTMnyXNsMjxeT+QtVERFxiK48FRFxGQW7iIjLKNhFRFxGwS4i4jIKdhERl1Gwi4i4jIJdRMRlFOwiIi6jYBcRcRkFu4iIyyjYRURcRsEuIuIyCnYREZdRsIuIuIyCXUTEZRTsIiIuo2AXEXEZBbuIiMso2EVEXEbBLiLiMgp2ERGXUbCLiLiMgl1ExGUU7CIiLqNgFxFxGQW7iIjLKNhFRFxGwS4i4jIKdhERl1Gwi4i4jIJdRMRlFOwiIi6jYBcRcZmQgt0Yc6cx5ldjzDpjzEOn2e4GY8zG8JUnIiK5lWOwG2MqA4OB5kA9IMEYUyub7coDIwBPmGsUEZFcCGXE3gqYY63da609DHwEdMxmu/HAs+EsTkREci86hG0qATszLO8EmmTcwBjTA/gRWHQmRZQpU/xMXiYRzueLc7oEkWxF+rEZSrB7gUCGZQ/gP7lgjKkDdACuBc47kyL27DmE3x/IeUMHRfoHnR8lJh50ugRX0LEZfvn92PR6PacdEIcyFbMNqJhhuQKwI8PyrWnrlwHTgUrGmAW5L1VERMIhlBH7LGCAMcYHHCY4Ok84udJa2x/oD2CMuQD4zlrbIvyliohIKHIcsVtrtwN9gLnAT8AUa+0SY8x0Y0yjPK5PRERyKZQRO9baKcCULM+1zWa7TcAF4ShMRETOjK48FRFxGQW7iIjLKNhFRFxGwS4i4jIKdhERl1Gwi4i4jIJdRMRlFOwiIi6jYBcRcRkFu4iIyyjYRURcRsEuIuIyCnYREZdRsIuIuIyCXUTEZRTsIiIuo2AXEXEZBbuIiMso2EVEXEbBLiLiMgp2ERGXUbCLiLhMtNMFnEpqagpJSYmkpBx3uhQAdu/20uvmyk6XEfECAdi97zgnTpxwuhQR18q3wZ6UlEjhwkUpVqwCHo/H6XKIjvZyJHWf02VEvkCAYsWOsnXrVuLifE5XI+JK+XYqJiXlOMWKlcgXoS5h5PHgjSrC0aPJTlci4lr5NtgBhbpb6XMVyVP5diomq7gSRShcKPzlJh9L4eCBo2Hfr4iIUyIm2AsXiubGxz4L+36/GNmeg2Hfa842rFvD0sULuKNTAvPnzmDNLyt54OGncrWPI4cPMW7MMHo+OfCs6xnUvye33PYvatWul+vXTpv6NgAdbut81nWIyNnL11MxbrZ922b270s6q30cPnyIzZvWh6kiEXGLiBmxO2358mWMfX0cUdHRJO7eRYNGl1O4SBGWL1lIIBDgid5D+X2D5cP3JhIIBChXviJdE3pSslRppkwey+pVy/F4vDRs0ow2bTsw7YO3SU4+ymfT3iW+dFkAVv/8I9M+eIv+g0YDMH/uDDasW0OXhJ7Z1jR54miS9u7hpeHP0KnzQwwf/BRxcSWJjS1Ej8cHMH7sC+zd8ydJSX9S528Nua/b4wB88J83Wbbke7zeKK65rh3X39AhfZ/79ycx9NnHuPWf99KwcTM+/2QKi3/4joDfz9/qNuaOTgl4PB6+/Ox95s76iri4khQrXpxq1Wvm8ScgIqHSiD0X1q9fQ9eEngwcNpZvZ3xKXIlSDBz2OlWqVmP2t18wcdyL9HxyIENHjudiU5tJE0bxZ+IuVq5YwpAR4+k3aBTbt24mJiaWDrd3pkGjK2jfoVP6/mvXqc++pL38sWs7AN/Pm0mLq68/ZT33dO1OfOky6VMxO3dspVuP3jzd7wV++nERVS+ozoAhrzJy1Dus+XUlm35fx5JF8/ht7WqGjhzPc0NfY/7cGexL2gvA0SOHGTG0N7fc+i8aNm7GyhVL2PT7bwwcOpZBw98gae+fLFwwi983WObPncHg4W/wdL/gLw8RyT80Ys+FKlUuoEzZcgDElShJ7ToNACjrK8+KZT9QrXpNfOUqAHBNq3Z88cl7xJf2ERtbiGf7dqd+w8u5o1MCsbGx2e7f4/HQomVrFi6YxZUtr2f//iSqX3xJyPWVKBmf/v5XNL+WDevWMOOrj9i+bQuHDh0gOfkoa39ZSdMrWhITE0tMDAwZ8Wb66yeOe5GSpUrTqGkLAH75eTkb1q2l71P/BuD48WOUKVuO/fv2Urd+UwoXKQJAk8uvwu9Pzc2PUkTyUEjBboy5E+gLxAAvW2vHZFnfHngW8AAbgS7W2rObQM6HoqJjMi9HRaU/9gf8mdYFgFR/KlFRUTw7ZAxrfl3JyhWLGdDnYfo++9Ip3+PKlm0YPvhpYmJiaX5V61zVl/EXxsyvP2bJD/O5+rp2tP57Q7Zt3UiAAFHR0ZnONkzcvYu4EiUBaHfTHaz8cQmzZ37OddffhN/vp80NHWh7461AcE4/yhvFnFlfEAgEMv0cFOwi+UeOUzHGmMrAYKA5UA9IMMbUyrC+BDAWuMFaWxdYBQzIi2Lzs+rVL2H9ujUk7t4FwNxZX1Krdj02bVzHoP49qVmrLnfe043K51Vl546teKOiSM0mDMv6KlC6tI/ZMz+n+ZXXnfY9vVFRpKZmH6g/r1zONdfdSLMWrThx4jhbNm3A7/djLrmUJYsWkJKSwrFjyQwf/BRJe4NTKVUvvJjO9z/CJx9OZu+eRGrVqc/C+d+SfPQoqampvDT8GZYsmkftOg1YsfwHjhw+xPHjx1m2eMFZ/vREJJxCGbG3AuZYa/cCGGM+AjoCz6WtjwEestZuT1teBdwV7kKTj6Xwxcj24d4tycdSwrKfEqXiufeBXrz8Qj9SUk5Q1lee+7o9QXx8GarXqMXTvboSW6gQNUwd6tZvyu4/dvDx1Em8/+4bVKp8fqZ9XdbsapYunp/+peqplCwZT9my5Rg8oBcJDz6Zad31N3TgrTdf5vNPplC0aDEurlGbxN07ufraG9i44Tf6PvkAgYCfNm1voWKlKumvq1DxPFpd355JE0bR88mBbNm8gf69H8Tv93Npvca0aNkGj8fD9Td0oN//PUixYsUp6ysflp+hiISHJ+M/qbNjjPk/oJi1tm/a8n1AE2ttQjbbFgEWAKOttZNCeP8LgI179hzC789cx65dm6lQoWpIf4lzITray/qt+/L8fVJTUxk7eghNL7+Kxk2vzPP3c0rRqP2UK1cl5w0lRz5fXJ5c41FQfTGyPYmJTlzdEjqv10OZMsUBLgQ2ZV0fyojdS3DK+CQP4M+6kTGmJPAJsDLEUE+XVmAmu3d7iY4uWCftBAIBuifcSp1LG9KwcXMA1q5ZxeQJo7Pd/oneQ3Mc1ednPl+c0yWIZCvSj81Qgn0b0CLDcgVgR8YNjDEVgW+AOUD2J12fRnYjdr/fT0rKX35/OOZc/JLxeDy8NuHjTM/VvOTSTGeuuEl+HxVFikgPofwovx+bGUbs2Qol2GcBA4wxPuAw0AFIn4YxxkQBXwBTrbWDzq5cERE5WzkGu7V2uzGmDzAXiAXGW2uXGGOmA/2AKkADINoY0zHtZcustfflVdEiInJqIZ3Hbq2dAkzJ8lzbtIfL0BWsIiL5hgJZRMRlIibY40vG4vPFhf1PfMnsL+8PpyOHD/HS8GcASNr7Jy8Mefq020+b+nZ6K9xOt15zRu857YO3Wbtm1Rm9NqP5c2cw7tVhZ/TaxN27ePTBf551DSKSOxHTKyY6thC/D+6Q84a5VK3PNCBvb5idsb1ufOmyPNH7+Tx9P4A1v67kkjr18vx9RCT/iZhgd9ry5csYM3YsUVHRJO7eyUXVa3Jft8f55MN3+GX1jxw+dJBS8WXo3vMZSpYqTbeuN3PhRYZ9SXsoFV8mU3vdwQN68vJr77F1y0YmTxxNcvJRDuxP4h8338m1rf/xl/f2+/30evgunuo7nIqVqpCcfJQnH+3MiFHvZNtQbMG8mWzcYBk/dgQ9n3iOSRNHU7x4HNu2bqJ7z37YtT+zcP63HDuWTFR0NA890pdKlc9n9arlTJk8Fr8/QFlfeR58pE+m/b7z1qvs35/Eg917s3HjOv7z9mscO55MXFxJuib0olz5imzauI43x74AwPlVL8qbD0NETitipmLyg3X2F+7u8hAvvDKJEyeO8830j9m5Ywv9B41mxKjJlC1bjoULZgFw8OB+2t10B0NGvEmX+x/N1F73pO9mf0X7Dp0Y+PxY+gx4kffeGZft+3q9Xlpc1YaF84P7Xrp4AfUbXHbKLpEtrmrNhRcZ7uv2OFWqVgOgStVqjBg1GV/5iixfupA+A17i+RcnUr/B5Xw741NOnDjOa6OG8MBDT/P8ixOocv6FfD/vm/R9Tpv6Nkl7/6Rb9974/X4mvD6CBx/pw+Dhb9D2xtuYMG4kAK+Pfp477kpg8PA3KFe+0tn9wEXkjGjEngs1a12a3tel2ZXXMXfWV/zr3h58N3s6O3dsZd1vv1Kuwv/CrHr107fcveuebqz8aSmffzKFrZt/Jzn51PdevfLq6xn63ON0vKMLC777htvuzN3ZpCfb/xYtWowHH+nDD/+dw64d21j101LOv+Aitm7ZSHzpMlS9sDoAt991PxCcY1/50xIOHtjHc0PHEhUVxdbtW/hj1w5eHNY3ff9Hjx7h4IH97Evaw9/qNgrW3LIN8+ZMz1WdInL2FOy54PX+r01vIBDA44Fhg57k7+060uSyK/F6vZna2cYWKnTa/Y1+6TmKFoujQaPLueyKq/lh4ZxTbusrV4GyvvIsXTyfA7ns0w4QExusZc+fuxk8oCfXXX8Tdes3oWSp0mzeuJ6oqGg8/K+f75HDhzia9ovG5yvPbf+8l7cnvEL/QaPx+/2UK18p/YpYf2oq+/cngYdMf39vhrbGInLuaComF35bu5q9exLx+/18P28mNWr+jUtq1eXa1v+gQqXzWLF8EX7/X9sgnKq97s+rltPx9s7BuxX9tAQIhuSpXHXN35k88VWa5dDOF9J6pGezr983rKV8hcr8vd2tVLuoJsuWfI/fn0rFSlU4cGAf27duAuDLzz5gzszPAahUuSotr21LoUKFmfXNp1SqXIVDhw6kn3Uzb+7XjHllMHFxJYM3HVm+CIAfvp+dY50iEn4asedCfOkyvP7q8yTt/ZM6lzakWYtWvDKiP0/3uheAahfVSO/HntGp2uvecuu/eO6ZR4iJieX8C6rh81VgdzavP6lxkxZMeH1kjn3aAS6t15iJb7zEv7tnPrXyb5c2ZvY3X/Dko12AADVr1WXblo3ExsbSrXtvXn/1eVJSUihXviLduvdmyaJ56a/tcv+jPNe3Bw2btKBHr/6889arnDhxgiJFivLAw08B0K3H//HGmOF89P5EqteohYicezm27c1jFxBi2974krFEx55+auNMpBw/RtL+nE93XLnyR0aPGXPaux/lpUAgwMoVi5k98wsee3qwIzWEk9r2ho/a9oZXQWnbmy8EwzdvzzfPz959ewwrlv+Q6Rz4wQN6cfjQXw/Aa1vfmO1pkyJSMETMiN1p5+pGGwWFRuzhoxF7eLlhxK4vT0VEXEbBLiLiMgp2ERGXUbCLiLiMgl1ExGUi5nTHuFKFKBwT/t7pySeOc3DfsbDvNycb1q1h6eIF3NEpgflzZ7Dml5XpF/mE6tdffuLjqZNyfW79kcOHGDdm2F+akomIO0RMsBeOieW2D7qFfb9Tbx/LQc59sG/ftpn9+5LO+ftC5v7wIuI+ERPsTlu+fBljXx9HVHQ0ibt30aDR5RQuUoTlSxYSCAR4ovdQft9g+fC9iQQCAcqVr0jXhJ6ULFWaKZPHsnrVcjweLw2bNKNN2w5M++BtkpOP8tm0d4kvXRaA1T//yLQP3qL/oNFAsLPihnVr6JLQM8f6du7YyoRxL3L40EEKFSrM3V0f5qLqNfnvgtl8+dn7eL1efOUq0q1HbyZPHJ3eH16jdhH30Rx7Lqxfv4auCT0ZOGws3874lLgSpRg47HWqVK3G7G+/YOK4F+n55ECGjhzPxaY2kyaM4s/EXaxcsYQhI8bTb9Aotm/dTExMLB1u70yDRlfQvkOn9P3XrlOffUl7+WPXdgC+nzeTFldfH1JtY0cNoU3bmxk6cjydOj/IqJEDOHHiOB++P5GnnhnOoOHj8JWrwM7tW7ina/ds+8OLiDso2HOhSpULKFO2HIUKFSauRElq12kAEOxouOwHqlWvia9cBQCuadWOX35eQXxpH7GxhXi2b3e+mf4xd3RKOOUNMjweDy1atmbhgln8mfgH+0Nsz5t89Ch/7NpB46ZXAlC9Ri2KFy/Bzh1bqd/wcp7r24P33hlHk8uuTO+3LiLupWDPhajomMzLGfqN+wOZ2/UGgFR/KlFRUTw7ZAwdb+/CoYP7GdDnYXbu2HrK97iyZRsWLZzLDwvn0Pyq1iHVlfW9Idg0LDU1lXu6Pswjjw+gWPE4Xhs1hO/nfxvSPkUkcinYw6R69UtYv25NetveubO+pFbtemzauI5B/XtSs1Zd7rynG5XPq8rOHVuDPdr9f+2XXtZXgdKlfcye+XlI7XkheFekcuUrsnTxfADW//Yr+/ftpUqVC3ms+93ExZXkHzffSYurWrN54/pT9ocXEXeImC9Pk08cZ+rtY/Nkv+FQolQ89z7Qi5df6EdKygnK+spzX7cniI8vQ/UatXi6V1diCxWihqlD3fpN2f3HDj6eOon3330j/XZ7J13W7GqWLp6f/qVqKLr16M3EN15i2geTiImJ4ZEnniU6JoYOt3fm+YFPEBtbiBIlS5Hw0FMUKxaX3h++z4AXw/L3F5H8Q90dQ3SuujumpqYydvQQml5+VfqcuRupu2P4qLtjeLmhu2PEjNgLgkAgQPeEW6lzaUMaNm4OwNo1q5g8YXS22z/Re2iuRvUiUjAo2PMRj8fDaxM+zvRczUsuTb9ptIhIKPL1l6cOTxNJXtHnKpKn8m2we71RpKamOF2G5Ak/0dFROW8mImck3wZ7kSLFOXhwH4FsztGWCBYIcCz5APHx8U5XIuJa+XaOvXjxkiQlJfLHH9sIXu7jLK/Xy6EDR5wuI+IFArB5dzJXNK7Fnj2HnS5HxJXybbB7PB5Kly7ndBnpfL44ntYpZWHTpUO+/ceiSMQLKdiNMXcCfYEY4GVr7Zgs6+sB44ESwHzg39ZaTZCLiDggx2GTMaYyMBhoDtQDEowxtbJs9i7wsLW2BuAB7g9znSIiEqJQRuytgDnW2r0AxpiPgI7Ac2nLVYEi1tpFadu/DTwLhHL9fxQEr6KKBOXiizhdgqtEyuceCXRshld+PzYz1Jft6WWhBHslYGeG5Z1AkxzWnxdifRUB4uOLhbi5syb0Da3booQm7ZJoCQMdm+EVQcdmRWBD1idDCXYvmU9L8QD+XKw/naVAC4K/DNRuUEQkNFEEQ31pditDCfZtBMP3pArAjizrK55m/ekcA74PcVsREfmfv4zUTwrlnLNZwLXGGJ8xpijQAZhxcqW1djOQbIxplvbU3cDXZ1GsiIichRyD3Vq7HegDzAV+AqZYa5cYY6YbYxqlbXYX8JIxZi1QHBiVR/WKiEgOnO7HLiIiYabL/0REXEbBLiLiMgp2ERGXUbCLiLiMgl1ExGUU7CIiLpNv+7HL6Rlj+p1uvbX2uXNVi8ippLX8rk2wQ2xHa+1kh0sqEDRij1yeHP6IOMoY8zzQFriF4CCyizFmpLNVFQy6QMkFjDE+oCnB/3l+sNb+4XBJIhhjVgANgB+ttfWNMdHAKmtt1vs5SJhpxB7hjDFtCLZ66AL8C1hljGnnaFEiQSe7vJ4cPRYi9M6vchY0xx75BgPNrbUbAYwx1YCPgS8drUoEpgIfAKWNMY8C9wBTHK2ogNCIPfLFnAx1AGvt7+hzlXzAWjsMmAB8CJwPPGOtHeJsVQWDAiDybTHGPGqMiUv70xPY7HRRIsaYWGCntfYJYDnQ0hhT1uGyCgQFe+S7F7gc+B3YmPY4wdGKRILeBe4yxjQB+gMHCN4TWfKY5tgjXw9r7e1OFyGSjQuttbcZY4YBE6y1w4wx2d7KTcJLI/bId6MxRuetS34UnTb1cjPwlTGmAlDE4ZoKBI3YI98eYK0x5kfg6MknrbVdnStJBIAXgMXA59ba1caY34BnHK6pQFCwR75J2Tynq87EcdbaKWQ+vfESa22qU/UUJAr2yFfJWjs04xPGGJ1SJo4xxnxprW1njNlIlkGGMQZrbTWHSiswFOwRKq0PRzngH8aYizOsigYuA3o7UpgI3J/239uA3U4WUlAp2CPXNKAWcC0wL8PzKcBARyoSAay1O9MeTrbWXuJoMQWUmoBFOGNMSWvtfqfrEMnKGPM+8BWwhMxf7G9xrKgCQiP2yHdTWivU+LRlDxCw1kY5WJMIBDuONs3yXADQHHse04g9whljNgDtrbWrna5FRPIHjdgj3w6FuuRHxpjzgVHANQS/+5kO9LTWJjpaWAGgYI98y40xHwEzgeSTT+oWZJIP/Idg2967gSiC9wyYRPCuSpKHFOyRryRwkGDzr5MCgIJdnFbCWvtqhuWXjDGdnSqmIFGwRzhrbRdjTAxgCH6eq621KQ6XJQLwX2NMJ2vtuwDGmBuAFQ7XVCDoy9MIZ4xpSPCc9j0Em7qVB2621i52tDAp8IwxfwA+gqc6+oFiGVbrzK08pBF75BsF3H4yyI0xlwGjgSaOViUCra21K50uoiBS297IVzzj6Nxauwgo7GA9Iie973QBBZVG7JFvrzGmvbX2MwBjzE0Ep2VEnParMaYfwda9Ga88ne9cSQWDgj3yJQBfGmMmkHbVKXCFsyWJAFAauDrtz0kBgue1Sx5SsEe+vwNHgAbARQTPG24J/OZgTSJYa6/OeSvJCwr2yJcANLHWHgFWpZ0lsxh4w9mypKAzxswlm5u+WGs1Ys9jCvbIFwMcz7B8HN1BSfKHARkexwDtgSRnSilYFOyR71NgjjFmKsFA7wB85mhFIoC1dl6Wp2YZYxYD/ZyopyDRBUouYIzpCFwFnADmW2s/dbYikfQmYCd5gDrAK9ba6g6VVGBoxO4C1tqPgI+crkMki3kE/xXpIXjl6Z/Aw45WVEDoAiURySt3AGOAmsAGgmdtyTmgYBeRvPIK8DNwC8FTcuuj+/GeEwp2EckrXmvtTKAdMM1auxVN/54TCnYRyStHjDGPEbzS9EtjTA+C9w6QPKZgF5G8chfBVr0drLVJQGXgTmdLKhh0uqOIiMtoxC4i4jIKdhERl1Gwi+SCMeZCY8w0p+sQOR0Fu0juVCV443CRfEtfnkqBZowpDrwFXEzwsvflwAPADUBfIJbgxTWPA0sAS/DsjvnW2jZO1CySE43YpaC7GYiz1tYDGqc9dxEwBGhrra1PsOf9xwTvJXsfsEGhLvmZrgKTgu57YIgx5jvgW+Bl4DqgIjDbmPRZFz+groQSETRilwLNWruRYGAPBUoAs4AoYLa1tt7JP8BlwGrHChXJBQW7FGjGmG4E59hnWmufAr4heBPm1saYmmnbtAVWAUWAFIJ3AxLJt/TlqRRoxphiwETgUoJfkm4BugKtgD4Ee4mnAI9aaxcYY0oDc4FjQFNrrf4HknxHwS4i4jKaihERcRkFu4iIyyjYRURcRsEuIuIyCnYREZdRsIuIuIyCXUTEZRTsIiIu8/+oCEMsbYPczgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "temp = af[af.index == 'OVERALL']\n", "temp['mostly_tracked'] = temp['mostly_tracked'] / temp['num_unique_objects']\n", "temp['partially_tracked'] = temp['partially_tracked'] / temp['num_unique_objects']\n", "temp['mostly_lost'] = temp['mostly_lost'] / temp['num_unique_objects']\n", "g = temp[['mostly_tracked', 'partially_tracked', 'mostly_lost','set']].set_index(['set']).groupby(['set']).mean().plot(kind='bar', stacked=True);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# MOTA " ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
idf1idpidrrecallprecisionnum_unique_objectsmostly_trackedpartially_trackedmostly_lostnum_false_positivesnum_missesnum_switchesnum_fragmentationsmotamotpnum_transfernum_ascendnum_migrate
set
control0.7978110.7120930.9074040.9646290.75665186.080.3333335.6666670.01544.333333175.33333348.33333323.6666670.6433330.0432603.043.0000000.666667
surprise0.7755930.6724160.9174480.9668540.70847033.030.6666672.3333330.0642.66666753.00000018.6666675.0000000.5532620.0437184.013.3333330.000000
\n", "
" ], "text/plain": [ " idf1 idp idr recall precision \\\n", "set \n", "control 0.797811 0.712093 0.907404 0.964629 0.756651 \n", "surprise 0.775593 0.672416 0.917448 0.966854 0.708470 \n", "\n", " num_unique_objects mostly_tracked partially_tracked mostly_lost \\\n", "set \n", "control 86.0 80.333333 5.666667 0.0 \n", "surprise 33.0 30.666667 2.333333 0.0 \n", "\n", " num_false_positives num_misses num_switches num_fragmentations \\\n", "set \n", "control 1544.333333 175.333333 48.333333 23.666667 \n", "surprise 642.666667 53.000000 18.666667 5.000000 \n", "\n", " mota motp num_transfer num_ascend num_migrate \n", "set \n", "control 0.643333 0.043260 3.0 43.000000 0.666667 \n", "surprise 0.553262 0.043718 4.0 13.333333 0.000000 " ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "af[af.index == 'OVERALL'].groupby(['set']).mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Gate Openings" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Percept gate openings when visible: M: 1.01 , STD: 0.928, Count: 8266\n", "Percept gate openings when occluded: M: 0.0118 , STD: 0.133, Count: 2236\n" ] } ], "source": [ "grouping = (sf.inimage & sf.bound & ~sf.occluder & sf.control)\n", "temp = sf[grouping & sf.visible]\n", "print(f'Percept gate openings when visible:' + get_stats(temp['alpha_pos'] + temp['alpha_ges']))\n", "temp = sf[grouping & ~sf.visible]\n", "print(f'Percept gate openings when occluded:' + get_stats(temp['alpha_pos'] + temp['alpha_ges']))" ] } ], "metadata": { "kernelspec": { "display_name": "loci23", "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.9.16" } }, "nbformat": 4, "nbformat_minor": 2 }