{ "cells": [ { "cell_type": "markdown", "id": "81121d6d", "metadata": {}, "source": [ "# Optimizing workflows\n", "In this notebook we demonstrate how to setup a workflow and optimize its parameters with a given sparse annotation.\n", "\n", "See also:\n", "* [Jaccard index](https://en.wikipedia.org/wiki/Jaccard_index)\n", "* [scipy.optimize.minimize](https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize.html#scipy.optimize.minimize)" ] }, { "cell_type": "code", "execution_count": 1, "id": "7a6d74ca", "metadata": {}, "outputs": [], "source": [ "from skimage.io import imread\n", "from scipy.optimize import minimize\n", "import numpy as np\n", "import pyclesperanto_prototype as cle" ] }, { "cell_type": "markdown", "id": "7bc06c1c", "metadata": {}, "source": [ "We start with loading an example image and a manual annotation. Not all objects must be annotated (sparse annotation)." ] }, { "cell_type": "code", "execution_count": 2, "id": "724142e9", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "blobs = cle.push(imread('../../data/blobs.tif'))\n", "\n", "cle.imshow(blobs)" ] }, { "cell_type": "code", "execution_count": 3, "id": "4eb8970e", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "annotation = cle.push(imread('../../data/blobs_annotated.tif'))\n", "\n", "cle.imshow(annotation)" ] }, { "cell_type": "markdown", "id": "11d63ca3", "metadata": {}, "source": [ "Next, we define an image processing workflow that results in a binary image." ] }, { "cell_type": "code", "execution_count": 4, "id": "efa5e74d", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "def workflow(image, sigma, threshold):\n", " blurred = cle.gaussian_blur(image, sigma_x=sigma, sigma_y=sigma)\n", " binary = cle.greater_constant(blurred, constant=threshold)\n", " return binary\n", " \n", "# Test the workflow with more or less random parameters\n", "test = workflow(blobs, 5, 100)\n", "cle.imshow(test)" ] }, { "cell_type": "markdown", "id": "bd6ff98f", "metadata": {}, "source": [ "Our [fitness function](https://en.wikipedia.org/wiki/Fitness_function) takes two parameters: A given segmentation result (test) and a reference annotation. It then determines how good the segmentation is, e.g. using the Jaccard index." ] }, { "cell_type": "code", "execution_count": 5, "id": "dee35fd2", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.74251497" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "binary_and = cle.binary_and\n", "\n", "def fitness(test, reference):\n", " \"\"\"\n", " Determine how correct a given test segmentation is. \n", " As metric we use the Jaccard index.\n", " Assumtion: test is a binary image(0=False and 1=True) and \n", " reference is an image with 0=unknown, 1=False, 2=True.\n", " \"\"\"\n", " negative_reference = reference == 1\n", " positive_reference = reference == 2\n", " negative_test = test == 0\n", " positive_test = test == 1\n", " \n", " # true positive: test = 1, ref = 2\n", " tp = binary_and(positive_reference, positive_test).sum()\n", " \n", " # true negative: \n", " tn = binary_and(negative_reference, negative_test).sum()\n", " \n", " # false positive\n", " fp = binary_and(negative_reference, positive_test).sum()\n", "\n", " # false negative\n", " fn = binary_and(positive_reference, negative_test).sum()\n", " \n", " # return Jaccard Index\n", " return tp / (tp + fn + fp)\n", "\n", "fitness(test, annotation)" ] }, { "cell_type": "code", "execution_count": 6, "id": "2348116d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.49048626\n", "0.5843038\n", "0.67019403\n", "0.74251497\n", "0.8183873\n", "0.8378158\n", "0.79089373\n", "0.7024014\n", "0.60603446\n", "0.49827588\n", "0.3974138\n" ] } ], "source": [ "# test a couple of thresholds and print corresponding fitness\n", "for t in range(70, 180, 10):\n", " test = workflow(blobs, 5, t)\n", " print(fitness(test, annotation))" ] }, { "cell_type": "markdown", "id": "f57521bb", "metadata": {}, "source": [ "The `fun`ction takes only numerical parameters that should be optimized." ] }, { "cell_type": "code", "execution_count": 7, "id": "2e9a0c71", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Optimization terminated successfully.\n", " Current function value: -0.857613\n", " Iterations: 22\n", " Function evaluations: 65\n", " final_simplex: (array([[ 3.89501953, 121.94091797],\n", " [ 3.89498663, 121.9409585 ],\n", " [ 3.89500463, 121.9403702 ]]), array([-0.85761315, -0.85761315, -0.85761315]))\n", " fun: -0.8576131463050842\n", " message: 'Optimization terminated successfully.'\n", " nfev: 65\n", " nit: 22\n", " status: 0\n", " success: True\n", " x: array([ 3.89501953, 121.94091797])\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "def fun(x):\n", " # apply current parameter setting\n", " test = workflow(blobs, x[0], x[1])\n", " # as we are minimizing, we multiply fitness with -1\n", " return -fitness(test, annotation)\n", "\n", "# starting point in parameter space\n", "x0 = np.array([5, 100])\n", "\n", "# run the optimization\n", "res = minimize(fun, x0, method='nelder-mead', options={'xatol': 1e-3, 'disp': True})\n", "\n", "# print and show result\n", "print(res)\n", "\n", "x = res['x']\n", "best_binary = workflow(blobs, x[0], x[1])\n", "cle.imshow(best_binary)" ] }, { "cell_type": "code", "execution_count": null, "id": "273276b2", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.5" } }, "nbformat": 4, "nbformat_minor": 5 }