diff options
author | fredeee | 2023-11-02 10:47:21 +0100 |
---|---|---|
committer | fredeee | 2023-11-02 10:47:21 +0100 |
commit | f8302ee886ef9b631f11a52900dac964a61350e1 (patch) | |
tree | 87288be6f851ab69405e524b81940c501c52789a /evaluation/adept/evaluation_savi.ipynb | |
parent | f16fef1ab9371e1c81a2e0b2fbea59dee285a9f8 (diff) |
initiaƶ commit
Diffstat (limited to 'evaluation/adept/evaluation_savi.ipynb')
-rw-r--r-- | evaluation/adept/evaluation_savi.ipynb | 403 |
1 files changed, 403 insertions, 0 deletions
diff --git a/evaluation/adept/evaluation_savi.ipynb b/evaluation/adept/evaluation_savi.ipynb new file mode 100644 index 0000000..626c3e6 --- /dev/null +++ b/evaluation/adept/evaluation_savi.ipynb @@ -0,0 +1,403 @@ +{ + "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": 8, + "metadata": {}, + "outputs": [], + "source": [ + "# setting path to results folder\n", + "root_path = '../../out/pretrained/adept/savi/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", + " 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": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Tracking Error when visible: M: 26.7 , STD: 12.6, Count: 1100\n", + "Tracking Error when occluded: M: 19.1 , STD: 9.74, Count: 220\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": 6, + "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>30</td>\n", + " <td>0.032258</td>\n", + " <td>0.967742</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 30 0.032258 \n", + "\n", + " tracked_neg_pro \n", + "0 0.967742 " + ] + }, + "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": 7, + "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": 8, + "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.462403</td>\n", + " <td>0.327823</td>\n", + " <td>0.78443</td>\n", + " <td>0.867853</td>\n", + " <td>0.362687</td>\n", + " <td>86.0</td>\n", + " <td>54.0</td>\n", + " <td>31.0</td>\n", + " <td>1.0</td>\n", + " <td>8482.0</td>\n", + " <td>735.0</td>\n", + " <td>76.0</td>\n", + " <td>21.0</td>\n", + " <td>-0.670802</td>\n", + " <td>0.082861</td>\n", + " <td>16.0</td>\n", + " <td>58.0</td>\n", + " <td>0.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.462403 0.327823 0.78443 0.867853 0.362687 86.0 \n", + "\n", + " mostly_tracked partially_tracked mostly_lost num_false_positives \\\n", + "set \n", + "control 54.0 31.0 1.0 8482.0 \n", + "\n", + " num_misses num_switches num_fragmentations mota motp \\\n", + "set \n", + "control 735.0 76.0 21.0 -0.670802 0.082861 \n", + "\n", + " num_transfer num_ascend num_migrate \n", + "set \n", + "control 16.0 58.0 0.0 " + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "af[af.index == 'OVERALL'].groupby(['set']).mean()" + ] + } + ], + "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 +} |