diff options
Diffstat (limited to 'evaluation/adept/evaluation_gswm.ipynb')
-rw-r--r-- | evaluation/adept/evaluation_gswm.ipynb | 428 |
1 files changed, 428 insertions, 0 deletions
diff --git a/evaluation/adept/evaluation_gswm.ipynb b/evaluation/adept/evaluation_gswm.ipynb new file mode 100644 index 0000000..31abb91 --- /dev/null +++ b/evaluation/adept/evaluation_gswm.ipynb @@ -0,0 +1,428 @@ +{ + "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": "markdown", + "metadata": {}, + "source": [ + "# Data Loading" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "ename": "FileNotFoundError", + "evalue": "[Errno 2] No such file or directory: '../../out/pretrained/adept/gswm/results/'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[2], line 5\u001b[0m\n\u001b[1;32m 2\u001b[0m root_path \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m../../out/pretrained/adept/gswm/results/\u001b[39m\u001b[38;5;124m'\u001b[39m\n\u001b[1;32m 4\u001b[0m \u001b[38;5;66;03m# list all folders in root path that don't stat with a dot\u001b[39;00m\n\u001b[0;32m----> 5\u001b[0m nets \u001b[38;5;241m=\u001b[39m [f \u001b[38;5;28;01mfor\u001b[39;00m f \u001b[38;5;129;01min\u001b[39;00m \u001b[43mos\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mlistdir\u001b[49m\u001b[43m(\u001b[49m\u001b[43mroot_path\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m f\u001b[38;5;241m.\u001b[39mstartswith(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m.\u001b[39m\u001b[38;5;124m'\u001b[39m)]\n\u001b[1;32m 7\u001b[0m \u001b[38;5;66;03m# read pickle file\u001b[39;00m\n\u001b[1;32m 8\u001b[0m sf \u001b[38;5;241m=\u001b[39m pd\u001b[38;5;241m.\u001b[39mDataFrame()\n", + "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: '../../out/pretrained/adept/gswm/results/'" + ] + } + ], + "source": [ + "# setting path to results folder\n", + "root_path = '../../out/pretrained/adept/gswm/results/'\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", + "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, 'control', 'statistics',)\n", + " path = os.path.join(root_path, 'statistics',)\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['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", + "sf['control'] = [('control' in set) for set in sf['set']]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Calculate Tracking Error (TE)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Tracking Error when visible: M: 30.3 , STD: 14.1, Count: 507\n", + "Tracking Error when occluded: M: 25.8 , STD: 16.1, Count: 15\n", + "Tracking Error Overall: M: 30.2 , STD: 14.1, Count: 522\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']))\n", + "\n", + "# When Overall\n", + "temp = sf[grouping]\n", + "print(f'Tracking Error Overall:' + get_stats(temp['TE']))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Calculate Succesfull Trackings (TE)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>set</th>\n", + " <th>evalmode</th>\n", + " <th>tracked_pos</th>\n", + " <th>tracked_neg</th>\n", + " <th>tracked_pos_pro</th>\n", + " <th>tracked_neg_pro</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>control</td>\n", + " <td>control</td>\n", + " <td>1</td>\n", + " <td>19</td>\n", + " <td>0.05</td>\n", + " <td>0.95</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " set evalmode tracked_pos tracked_neg tracked_pos_pro \\\n", + "0 control control 1 19 0.05 \n", + "\n", + " tracked_neg_pro \n", + "0 0.95 " + ] + }, + "execution_count": 6, + "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].groupby(grouping_factors).max()\n", + "ff.rename(columns = {'frame':'last_visible'}, inplace = True)\n", + "ff = ff[['last_visible']]\n", + "\n", + "# add dummy variable to sf\n", + "sf = sf.merge(ff, on=grouping_factors, how='left')\n", + "sf['last_visible'] = (sf['last_visible'] == sf['frame'])\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", + "ff = ff[['first_visible']]\n", + "\n", + "# add dummy variable to sf\n", + "sf = sf.merge(ff, on=grouping_factors, how='left')\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']== 15) & ~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": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "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": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>idf1</th>\n", + " <th>idp</th>\n", + " <th>idr</th>\n", + " <th>recall</th>\n", + " <th>precision</th>\n", + " <th>num_unique_objects</th>\n", + " <th>mostly_tracked</th>\n", + " <th>partially_tracked</th>\n", + " <th>mostly_lost</th>\n", + " <th>num_false_positives</th>\n", + " <th>num_misses</th>\n", + " <th>num_switches</th>\n", + " <th>num_fragmentations</th>\n", + " <th>mota</th>\n", + " <th>motp</th>\n", + " <th>num_transfer</th>\n", + " <th>num_ascend</th>\n", + " <th>num_migrate</th>\n", + " </tr>\n", + " <tr>\n", + " <th>set</th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>control</th>\n", + " <td>0.54837</td>\n", + " <td>0.487418</td>\n", + " <td>0.626745</td>\n", + " <td>0.70247</td>\n", + " <td>0.546309</td>\n", + " <td>86.0</td>\n", + " <td>35.0</td>\n", + " <td>44.0</td>\n", + " <td>7.0</td>\n", + " <td>4345.0</td>\n", + " <td>2216.0</td>\n", + " <td>240.0</td>\n", + " <td>73.0</td>\n", + " <td>0.086869</td>\n", + " <td>0.07704</td>\n", + " <td>119.0</td>\n", + " <td>55.0</td>\n", + " <td>19.0</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " idf1 idp idr recall precision num_unique_objects \\\n", + "set \n", + "control 0.54837 0.487418 0.626745 0.70247 0.546309 86.0 \n", + "\n", + " mostly_tracked partially_tracked mostly_lost num_false_positives \\\n", + "set \n", + "control 35.0 44.0 7.0 4345.0 \n", + "\n", + " num_misses num_switches num_fragmentations mota motp \\\n", + "set \n", + "control 2216.0 240.0 73.0 0.086869 0.07704 \n", + "\n", + " num_transfer num_ascend num_migrate \n", + "set \n", + "control 119.0 55.0 19.0 " + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "af[af.index == 'OVERALL'].groupby(['set']).mean()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "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 +} |