{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "view-in-github" }, "source": [ "\"Open" ] }, { "cell_type": "markdown", "metadata": { "id": "WxEsSjtzA_Af" }, "source": [ "# Model evaluation\n", "\n", "After you've trained several models, you may want to generate some accuracy metrics to compare between them. This notebook demonstrates how you'll do that given a trained model.\n", "\n", "Let's start by installing SLEAP and downloading the trained model." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "id": "5bNDjxe1BZXV" }, "outputs": [], "source": [ "!pip uninstall -y opencv-python opencv-contrib-python > /dev/null 2>&1\n", "!pip install sleap > /dev/null 2>&1\n", "!apt install tree > /dev/null 2>&1\n", "!wget https://storage.googleapis.com/sleap-data/reference/flies13/td_fast.210505_012601.centered_instance.n%3D1800.zip > /dev/null 2>&1\n", "!unzip -o -d \"td_fast.210505_012601.centered_instance.n=1800\" \"td_fast.210505_012601.centered_instance.n=1800.zip\" > /dev/null 2>&1" ] }, { "cell_type": "markdown", "metadata": { "id": "g6KIMZjwTEmu" }, "source": [ "A trained SLEAP model will be a folder containing files that specify metadata that is useful for evaluation and analysis. The exact set of files may depend on the configuration, but all models will come with:\n", "\n", "- `metrics.train.npz`: Metrics for the training split.\n", "- `metrics.val.npz`: Metrics for the validation split. This is what you'll want to use most of the time since it wasn't directly used for optimizing the model.\n", "\n", "**Note:** A test split will also be evaluated if it was provided during training and saved to `metrics.test.npz`." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "dTgeUbf8AT0P", "outputId": "4f03ee9a-5297-4d53-cb8e-20a78e7c7285" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "td_fast.210505_012601.centered_instance.n=1800\n", "├── best_model.h5\n", "├── initial_config.json\n", "├── labels_gt.test.slp\n", "├── labels_gt.train.slp\n", "├── labels_gt.val.slp\n", "├── labels_pr.test.slp\n", "├── labels_pr.train.slp\n", "├── labels_pr.val.slp\n", "├── labels_pr.with_centroid.test.slp\n", "├── metrics.test.npz\n", "├── metrics.train.npz\n", "├── metrics.val.npz\n", "├── metrics.with_centroid.test.npz\n", "├── model_info.json\n", "├── training_config.json\n", "└── training_log.csv\n", "\n", "0 directories, 16 files\n" ] } ], "source": [ "!tree td_fast.210505_012601.centered_instance.n=1800" ] }, { "cell_type": "markdown", "metadata": { "id": "ywbriY3nUnHk" }, "source": [ "Additionally, the following files are included and may also be useful:\n", "- `best_model.h5`: The actual saved model and weights. This can be loaded with `tf.keras.model.load_model()` but it is recommended to use `sleap.load_model()` instead as it takes care of adding some additional inference-only procedures.\n", "- `training_config.json`: The configuration for the model training job, including metadata inferred during the training procedure. It can be loaded with `sleap.load_config()`.\n", "- `labels_gt.train.slp` and `labels_pr.train.slp`: These are SLEAP labels files containing the ground truth and predicted points for the training split. They do not contain the images, but can be used to retrieve the poses used.\n", "- `labels_gt.val.slp` and `labels_pr.val.slp`: These are SLEAP labels files containing the ground truth and predicted points for the validation split. They do not contain the images, but can be used to retrieve the poses used." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "_FLiavFrBhCK", "outputId": "fedb9d7b-6dcc-4048-d030-eba38a006086" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SLEAP: 1.1.5\n", "TensorFlow: 2.3.1\n", "Numpy: 1.19.5\n", "Python: 3.7.11\n", "OS: Linux-5.4.104+-x86_64-with-Ubuntu-18.04-bionic\n" ] } ], "source": [ "import sleap\n", "import numpy as np\n", "import pandas as pd\n", "import matplotlib as mpl\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "\n", "mpl.style.use(\"seaborn-deep\")\n", "sleap.versions()" ] }, { "cell_type": "markdown", "metadata": { "id": "r0TLPw8aU6Rh" }, "source": [ "SLEAP metrics can be loaded using the `sleap.load_metrics()` API:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "2o8ncdDYUy94", "outputId": "6a8a49f0-1252-438b-a2c3-99160fa4bbc4" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on function load_metrics in module sleap.nn.evals:\n", "\n", "load_metrics(model_path: str, split: str = 'val') -> typing.Dict[str, typing.Any]\n", " Load metrics for a model.\n", " \n", " Args:\n", " model_path: Path to a model folder or metrics file (.npz).\n", " split: Name of the split to load the metrics for. Must be `\"train\"`, `\"val\"` or\n", " `\"test\"` (default: `\"val\"`). Ignored if a path to a metrics NPZ file is\n", " provided.\n", " \n", " Returns:\n", " The loaded metrics as a dictionary with keys:\n", " \n", " - `\"vis.tp\"`: Visibility - True Positives\n", " - `\"vis.fp\"`: Visibility - False Positives\n", " - `\"vis.tn\"`: Visibility - True Negatives\n", " - `\"vis.fn\"`: Visibility - False Negatives\n", " - `\"vis.precision\"`: Visibility - Precision\n", " - `\"vis.recall\"`: Visibility - Recall\n", " - `\"dist.avg\"`: Average Distance (ground truth vs prediction)\n", " - `\"dist.p50\"`: Distance for 50th percentile\n", " - `\"dist.p75\"`: Distance for 75th percentile\n", " - `\"dist.p90\"`: Distance for 90th percentile\n", " - `\"dist.p95\"`: Distance for 95th percentile\n", " - `\"dist.p99\"`: Distance for 99th percentile\n", " - `\"dist.dists\"`: All distances\n", " - `\"pck.mPCK\"`: Mean Percentage of Correct Keypoints (PCK)\n", " - `\"oks.mOKS\"`: Mean Object Keypoint Similarity (OKS)\n", " - `\"oks_voc.mAP\"`: VOC with OKS scores - mean Average Precision (mAP)\n", " - `\"oks_voc.mAR\"`: VOC with OKS scores - mean Average Recall (mAR)\n", " - `\"pck_voc.mAP\"`: VOC with PCK scores - mean Average Precision (mAP)\n", " - `\"pck_voc.mAR\"`: VOC with PCK scores - mean Average Recall (mAR)\n", "\n" ] } ], "source": [ "help(sleap.load_metrics)" ] }, { "cell_type": "markdown", "metadata": { "id": "wG1YbA1-SxGN" }, "source": [ "Loading the metrics for the validation split of the model we can see all of the available keys:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "hQHHjfUHMerr", "outputId": "4f1b2c2a-f86d-47c7-979c-ad70f7a14f61" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "vis.tp\n", "vis.fp\n", "vis.tn\n", "vis.fn\n", "vis.precision\n", "vis.recall\n", "dist.dists\n", "dist.avg\n", "dist.p50\n", "dist.p75\n", "dist.p90\n", "dist.p95\n", "dist.p99\n", "pck.thresholds\n", "pck.pcks\n", "pck.mPCK_parts\n", "pck.mPCK\n", "oks.mOKS\n", "oks_voc.match_score_thresholds\n", "oks_voc.recall_thresholds\n", "oks_voc.match_scores\n", "oks_voc.precisions\n", "oks_voc.recalls\n", "oks_voc.AP\n", "oks_voc.AR\n", "oks_voc.mAP\n", "oks_voc.mAR\n", "pck_voc.match_score_thresholds\n", "pck_voc.recall_thresholds\n", "pck_voc.match_scores\n", "pck_voc.precisions\n", "pck_voc.recalls\n", "pck_voc.AP\n", "pck_voc.AR\n", "pck_voc.mAP\n", "pck_voc.mAR\n" ] } ], "source": [ "metrics = sleap.load_metrics(\"td_fast.210505_012601.centered_instance.n=1800\", split=\"val\")\n", "print(\"\\n\".join(metrics.keys()))" ] }, { "cell_type": "markdown", "metadata": { "id": "ROcOrWX2VB1E" }, "source": [ "To start, let's look at the summary of the **localization errors**:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "EchwGMNcNBoN", "outputId": "dae62b47-cddb-4605-91c2-c22c899839b6" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Error distance (50%): 0.9010142093245521\n", "Error distance (90%): 2.0545800141197903\n", "Error distance (95%): 3.0166608700891056\n" ] } ], "source": [ "print(\"Error distance (50%):\", metrics[\"dist.p50\"])\n", "print(\"Error distance (90%):\", metrics[\"dist.p90\"])\n", "print(\"Error distance (95%):\", metrics[\"dist.p95\"])" ] }, { "cell_type": "markdown", "metadata": { "id": "o3c91HExVIdx" }, "source": [ "These are the percentiles of the distribution of how far off the model was from the ground truth location.\n", "\n", "We can visualize the entire distribution like this:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 467 }, "id": "vo3qyz5nNfgf", "outputId": "59d0c939-53a3-4580-cf0b-be85b58ad067" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "INFO:numexpr.utils:NumExpr defaulting to 2 threads.\n" ] }, { "data": { "image/png": "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AvW9KGVnndePn5YGDBjg6LIAAADgYA4LMElJSbrrrrsc1T0MoHpPGAAAAKCaXQLMrFmzah1//fXXt5yrVllZKbPZrCNHjmjy5MnN6vf69et644039PHHHysjI0N+fn6aMGGCli5dqp49e95RW3l5ebbP37KystSjRw9NmTJFixcvVpcuXep9rqioSCtWrNCWLVuUmpoqZ2dnBQcHa/To0Xrrrbfk7e3drHcEAAAAcJNdAsyHH35o+9lkMik5OVnJycm3fWbw4MFavnx5k/ssLS3VmDFjFBcXp8DAQD355JNKS0vTBx98oM8++0xxcXHq06dPo9rKycnRyJEjlZycrD59+mjy5MlKSkrSqlWr9MUXX+jgwYPy8/O75blz585p7NixOnfunPr06aOJEyeqrKxMZrNZ69at04IFCwgwAAAAgB3ZJcDs3btXkmS1WjVmzBhNmDBB//M//1PnvW5ubgoKClJoaGiz+ly2bJni4uI0cuRI7dq1yxYUVq5cqZ///OeaNWuW9u3b16i25s6dq+TkZE2dOlWbNm2Si8uNv5aXX35Zv//97zVv3rxaIU2SysrKNHHiRGVkZOjdd9/VT3/601rXT506VWfoAQAAANB0dgkwo0ePtv38H//xH4qMjKx1zt7Ky8u1Zs0aSdLatWtrjXLMmzdPf/nLXxQTE6OjR482uCdNZmamNm7cKDc3N61bt84WXiRp+fLl+vjjj7Vhwwb99re/VUBAgO3aqlWrZDab9Ytf/OKW8CJJgwYNau5rthvVK4pJUmpqqqzWKgdXBAAAAKOy+zJgH3zwQb3zX+xl//79KigoUHh4uIYOHXrL9WnTpkm6sddMQ3bu3KmqqipFRkaqe/futa65u7tr0qRJslgs2rFjR61rf/rTnyRJc+bMaeprdBg52ZnavjdJ0bGp2rLzsPLzCxxdEgAAAAzKYauQNceJEyckScOGDavzevX5xMREu7S1fv36Wm2dP39eycnJ6tWrl4KDg7V//35FRUWpoKBAYWFheuqpp9S3b987eqf2rnpFseysC44uBQAAAAbW7ADTp08fmUwm7d69W2FhYY2eOC/dmPCfkpJyx31mZGRIknr16lXn9erz6enpLdLWN998I0kKCgrSSy+9pHXr1tV6ZuHChXrzzTf185//vMH+AQAAADReswNMWlqaJKmioqLWcUsqKiqSJHl5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G8BoNBrq378/AaClS5eSRqMR8uLj48nKyopUKhXl5OQI6fn5+eTs7CwcAD99EH769Gmdg74rV67QtWvX9Po+fPgwyWQy8vHx0emXyLQAxhC1Wk1BQUEEgFavXi2kV1VVUUJCAlVWVuqUf/DgAQ0dOpQA0MmTJ3Xyli9fTgBoy5YtBvuqL4D5+OOPCQAFBATQvXv3hPScnBzy9/cnALRhwwaD261UKun06dNCemlpqRBUfvXVV41uP1FtAKV9bVevXq3zOv3666/Uq1cvEovFOgfi2gAGAI0YMYIKCgr02tW+Bl27djX4ur744osEgGbOnEkVFRVCelJSEimVShKLxToBLtGT9err60t37twxavu03nzzTQJAX375pcF8bQDzdBmNRiPUHTRokF69FStWEAB68cUXiYiopqaGgoODCQCtW7eu3vEEBgYSAEpLSzNpOxhjlocDGMYYMyNjA5jjx48L75Q/fVBPRBQZGUkAaNWqVULahx9+SAAoLCys2eOcNWsWAaArV67opDc3gHnppZcIAM2ePdvosRw9epQAUFxcnE56UwMYDw8PAmDwE6a9e/cKB+x1abf7nXfe0asLnpVoAAAKC0lEQVQTHx9vsJ/6JCQkEACKiooymL97924CQAsXLhTS6gYwP/74o8F62tfg6U9viIhSU1MJAKlUKsrPz9fLj4uLIwD06quv6qRr+/z222+N2ra6xo0bZzDw1NIGMCNHjtTLq6yspJ49exIASkpK0smrrq6mESNGEADauHEjrVq1igDQ2LFj9QLuurRrevfu3SZvC2PMskiM/7IZY4wxc0lKSgIATJ06FVKpVC9/9uzZ2L17t1AOAP773/8CAF577TWj+6moqMDhw4dx/vx55ObmorKyEgBw9epVAMCvv/6K/v37N3k76vrwww+xfft2DBs2DJs2bTJY5vLly/j++++RmZmJsrIyEBGKi4uFsTRXVlYWsrKy4OzsjLFjx+rlv/jii7C3t8etW7dw7949dO/eXSffUB0/Pz8AtecUGUN7vklkZKTB/ODgYADA+fPn9fJcXV0xdOjQBtsPDw/XS/vhhx8AAGFhYXB0dNTLnz17NtauXauznrREIhEmTpzYYJ+GPHjwAADg4ODQYLnp06frpUmlUkRHR2PdunVISkrCs88+K+SJxWJs374dgwYNwhtvvIHq6mo4OTlhy5Yt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", "text/plain": [ "
" ] }, "metadata": { "tags": [] }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(6, 3), dpi=150, facecolor=\"w\")\n", "sns.histplot(metrics[\"dist.dists\"].flatten(), binrange=(0, 20), kde=True, kde_kws={\"clip\": (0, 20)}, stat=\"probability\")\n", "plt.xlabel(\"Localization error (px)\");" ] }, { "cell_type": "markdown", "metadata": { "id": "LbrwS1iAVStb" }, "source": [ "This metric is intuitive, but it does not incorporate other sources of error like those stemming from poor instance detection and grouping, or missing points.\n", "\n", "The Object Keypoint Similarity (OKS) is a more holistic metric that takes factors such as landmark visibility, animal size, and the difficulty in locating keypoints (all are assumed to be \"easy\" for our calculations). You can read more about this and other pose estimation metrics in: https://arxiv.org/abs/1707.05388\n", "\n", "First let's plot the distribution of OKS scores:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 449 }, "id": "8eQ1BHeiOjOx", "outputId": "820c53c2-7a9e-4430-e8c2-1bccd3254b3d" }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "tags": [] }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(6, 3), dpi=150, facecolor=\"w\")\n", "sns.histplot(metrics[\"oks_voc.match_scores\"].flatten(), binrange=(0, 1), kde=True, kde_kws={\"clip\": (0, 1)}, stat=\"probability\")\n", "plt.xlabel(\"Object Keypoint Similarity\");" ] }, { "cell_type": "markdown", "metadata": { "id": "yj84sWSLWGTl" }, "source": [ "Since these range from 0 to 1, it seems like we're doing pretty well!\n", "\n", "Another way to summarize this is through precision-recall curves, which evaluate how well the model does at different thresholds of OKS scores. The higher the threshold, the more stringent our criteria for classifying a prediction as correct.\n", "\n", "Here we plot this at different thresholds:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 562 }, "id": "4WEhNB93O7Ns", "outputId": "56001b09-2f5e-4e4f-cea5-2f66d6d9a2fd" }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "tags": [] }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(4, 4), dpi=150, facecolor=\"w\")\n", "for precision, thresh in zip(metrics[\"oks_voc.precisions\"][::2], metrics[\"oks_voc.match_score_thresholds\"][::2]):\n", " plt.plot(metrics[\"oks_voc.recall_thresholds\"], precision, \"-\", label=f\"OKS @ {thresh:.2f}\")\n", "plt.xlabel(\"Recall\")\n", "plt.ylabel(\"Precision\")\n", "plt.legend(loc=\"lower left\");" ] }, { "cell_type": "markdown", "metadata": { "id": "DNgkSGy2WkVW" }, "source": [ "An easy way to summarize this analysis is to take the average over all of these thresholds to compute the **mean Average Precision (mAP)** and **mean Average Recall (mAR)** which are widely used in the pose estimation literature.\n", "\n", "Here are those values saved out:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "G3_YhQiFNdu6", "outputId": "fa4f34ad-00df-48d5-d734-a8cc501e6996" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "mAP: 0.8150621709973537\n", "mAR: 0.8885\n" ] } ], "source": [ "print(\"mAP:\", metrics[\"oks_voc.mAP\"])\n", "print(\"mAR:\", metrics[\"oks_voc.mAR\"])" ] }, { "cell_type": "markdown", "metadata": { "id": "bfJ5R2HHXENK" }, "source": [ "Great, but what if we have some new labels or want to evaluate the model with an updated set of labels for better comparisons with newer models?\n", "\n", "For this, we'll need to generate new predictions.\n", "\n", "First, let's download a new SLEAP labels package file (`.pkg.slp`). This is important since it denotes that the labels contain the images as well which we need for predicting." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "id": "YHCLd3pkRhGT" }, "outputs": [], "source": [ "!wget https://storage.googleapis.com/sleap-data/datasets/wt_gold.13pt/tracking_split2/test.pkg.slp > /dev/null 2>&1" ] }, { "cell_type": "markdown", "metadata": { "id": "9GIPBudQXsDZ" }, "source": [ "Next we can simply load the model, the ground truth (GT) labels, and generate the predictions (~1 min on CPU):" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "id": "OMXHY-7YRyTB" }, "outputs": [], "source": [ "predictor = sleap.load_model(\"td_fast.210505_012601.centered_instance.n=1800\")\n", "labels_gt = sleap.load_file(\"test.pkg.slp\")\n", "labels_pr = predictor.predict(labels_gt)" ] }, { "cell_type": "markdown", "metadata": { "id": "vUVPXmZSXx-i" }, "source": [ "Generating another set of metrics can then be calculated with the pair of GT and predicted labels:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "0sn0R8tGS4LU", "outputId": "1de841a5-b885-4b90-f901-ad2913437185" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Error distance (50%): 0.8984147543126978\n", "Error distance (90%): 2.197896466395166\n", "Error distance (95%): 3.148422807907632\n", "mAP: 0.797836431061851\n", "mAR: 0.8782499999999999\n" ] } ], "source": [ "metrics = sleap.nn.evals.evaluate(labels_gt, labels_pr)\n", "\n", "print(\"Error distance (50%):\", metrics[\"dist.p50\"])\n", "print(\"Error distance (90%):\", metrics[\"dist.p90\"])\n", "print(\"Error distance (95%):\", metrics[\"dist.p95\"])\n", "print(\"mAP:\", metrics[\"oks_voc.mAP\"])\n", "print(\"mAR:\", metrics[\"oks_voc.mAR\"])" ] } ], "metadata": { "colab": { "collapsed_sections": [], "name": "Model_evaluation.ipynb", "provenance": [] }, "kernelspec": { "display_name": "Python 3", "name": "python3" }, "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 0 }