{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "effe0c62", "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import skimage.morphology\n", "import pandas as pd\n", "import numpy as np\n", "import skimage\n", "import torch\n", "import glob\n", "import re" ] }, { "cell_type": "code", "execution_count": 2, "id": "ad509634", "metadata": {}, "outputs": [], "source": [ "fs = 400641.025641026" ] }, { "cell_type": "code", "execution_count": 3, "id": "de95c693", "metadata": {}, "outputs": [], "source": [ "#%matplotlib notebook" ] }, { "cell_type": "code", "execution_count": 4, "id": "8f6ad740", "metadata": {}, "outputs": [], "source": [ "plt.rcParams[\"figure.figsize\"] = 8, 8 " ] }, { "cell_type": "code", "execution_count": 5, "id": "db10a7d4", "metadata": {}, "outputs": [], "source": [ "path = './Data/316L/Sat_Big_Cyl_316L/'" ] }, { "cell_type": "code", "execution_count": 6, "id": "370263fd", "metadata": {}, "outputs": [], "source": [ "def parseData(path, sorting=True):\n", " channels = glob.glob(path + \"/*/\")\n", " print(\"These are the channels I found: \")\n", " print(channels)\n", " \n", " starting_GT = pd.read_csv(path+'/starting_GT.csv', sep=',',header=None).values\n", " ending_GT = pd.read_csv(path+'/ending_GT.csv', sep=',',header=None).values\n", "\n", " dataAllChann = []\n", " for channel in channels:\n", " print(\"I'm working on this: \", channel)\n", " allFiles = glob.glob(channel + \"/*.csv\")\n", " if sorting:\n", " allFiles = sorted(allFiles, key=lambda x:float(re.findall(\"(\\d+)\",x)[-1]))\n", " dataSingleChan = []\n", " names = []\n", " for file in allFiles:\n", " signal = pd.read_csv(file, sep=',',header=None).values\n", " singleFile = torch.from_numpy(signal).view(1, 1, -1)\n", " dataSingleChan.append(singleFile)\n", " names.append(file)\n", " dataSingleChanTorch = torch.cat(dataSingleChan, 0)\n", " dataAllChann.append(dataSingleChanTorch)\n", " dataAllChannTorch = torch.cat(dataAllChann, 1)\n", " return dataAllChannTorch.numpy(), names, starting_GT, ending_GT" ] }, { "cell_type": "code", "execution_count": 7, "id": "1d92580d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "These are the channels I found: \n", "['./Data/316L/Sat_Big_Cyl_316L\\\\channel_0\\\\', './Data/316L/Sat_Big_Cyl_316L\\\\channel_1\\\\', './Data/316L/Sat_Big_Cyl_316L\\\\channel_2\\\\', './Data/316L/Sat_Big_Cyl_316L\\\\channel_3\\\\']\n", "I'm working on this: ./Data/316L/Sat_Big_Cyl_316L\\channel_0\\\n", "I'm working on this: ./Data/316L/Sat_Big_Cyl_316L\\channel_1\\\n", "I'm working on this: ./Data/316L/Sat_Big_Cyl_316L\\channel_2\\\n", "I'm working on this: ./Data/316L/Sat_Big_Cyl_316L\\channel_3\\\n" ] } ], "source": [ "data, name, starting_GT, ending_GT = parseData(path)" ] }, { "cell_type": "code", "execution_count": 8, "id": "0b3c789c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Signal duration [s]: [2.31470554]\n" ] } ], "source": [ "signal_duration = (ending_GT[-1]-starting_GT[0])*1/fs\n", "print('Signal duration [s]: ', signal_duration)" ] }, { "cell_type": "code", "execution_count": 9, "id": "d9315466", "metadata": {}, "outputs": [], "source": [ "def computeBoundaries(signal, th):\n", "\n", " locs = np.where(signal>th)[0]\n", "\n", " indexes = np.zeros((signal.shape[0],1));\n", " indexes[locs] = 1;\n", "\n", " closed = skimage.morphology.closing(indexes, selem=torch.ones(80,1).numpy())\n", " opened = skimage.morphology.opening(closed, selem=torch.ones(80,1).numpy())\n", "\n", "\n", " locsNew = np.where(opened==1)\n", " locsNew = locsNew[0]\n", "\n", "\n", " derNew = np.diff(locsNew)\n", "\n", " ind = np.where(derNew>1)[0]\n", "\n", " ending = locsNew[ind]\n", " ending = np.append(ending,locsNew[-1])\n", "\n", " starting = locsNew[ind+1]\n", " starting = np.append(locsNew[0],starting) \n", " return starting, ending" ] }, { "cell_type": "code", "execution_count": 10, "id": "3ee6be53", "metadata": {}, "outputs": [], "source": [ "signal = data[0,0,:]" ] }, { "cell_type": "code", "execution_count": 11, "id": "ae0d2462", "metadata": {}, "outputs": [], "source": [ "th = 0.0\n", "starting, ending = computeBoundaries(signal, th)" ] }, { "cell_type": "code", "execution_count": 12, "id": "7ba80ab0", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "plt.vlines(x=starting_GT, ymin=0, ymax=1, colors='green',zorder=10)\n", "plt.vlines(x=ending_GT, ymin=0, ymax=1, colors='red',zorder=10)\n", "plt.vlines(x=starting, ymin=0, ymax=1, colors='red',ls=':',zorder=1000)\n", "plt.vlines(x=ending, ymin=0, ymax=1, colors='black',ls=':',zorder=1000)\n", "plt.plot(signal)" ] }, { "cell_type": "code", "execution_count": 13, "id": "396b5a88", "metadata": {}, "outputs": [], "source": [ "def binarize_signals2(size, starting, ending):\n", " binary_sig = np.zeros((size,))\n", "\n", " for start, end in zip(starting, ending):\n", " binary_sig[np.arange(start=start, stop=end+1)] = 1\n", "\n", " \n", " return np.array(binary_sig, dtype=bool)" ] }, { "cell_type": "code", "execution_count": 14, "id": "d20e5c9a", "metadata": {}, "outputs": [], "source": [ "def calculateIoU(size, starting, ending, starting_GT, ending_GT):\n", " bool_sig = binarize_signals2(signal.shape[0], starting, ending)\n", " bool_sig_GT = binarize_signals2(signal.shape[0], starting_GT, ending_GT)\n", " \n", " intersection = np.logical_and(bool_sig, bool_sig_GT)\n", " union = np.logical_or(bool_sig, bool_sig_GT)\n", "\n", " intersection_area = np.sum(intersection)\n", " union_area = np.sum(union)\n", "\n", " IoU = intersection_area/union_area*100\n", " \n", " return IoU" ] }, { "cell_type": "code", "execution_count": 15, "id": "e4534b02", "metadata": {}, "outputs": [], "source": [ "def IoUforTh(size, thresholded, starting_GT, ending_GT):\n", " bool_sig_GT = binarize_signals2(signal.shape[0], starting_GT, ending_GT)\n", "\n", " intersection = np.logical_and(thresholded, bool_sig_GT)\n", " union = np.logical_or(thresholded, bool_sig_GT)\n", "\n", " intersection_area = np.sum(intersection)\n", " union_area = np.sum(union)\n", "\n", " IoU = intersection_area/union_area*100\n", " \n", " return IoU" ] }, { "cell_type": "code", "execution_count": 16, "id": "8e59ec17", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "100.0" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "IoU = calculateIoU(signal.shape[0], starting, ending, starting_GT, ending_GT)\n", "IoU" ] }, { "cell_type": "code", "execution_count": 17, "id": "bca6e6f8", "metadata": {}, "outputs": [], "source": [ "def computeThreshold(signal, th):\n", "\n", " locs = np.where(signal>th)[0]\n", "\n", " indexes = np.zeros((signal.shape[0],));\n", " indexes[locs] = 1;\n", " \n", " return np.array(indexes, dtype=bool)" ] }, { "cell_type": "code", "execution_count": 18, "id": "29ae8cb2", "metadata": {}, "outputs": [], "source": [ "def computeprecrecallMM(size, starting, ending, starting_GT, ending_GT):\n", " bool_sig = binarize_signals2(size, starting, ending)\n", " bool_sig_GT = binarize_signals2(size, starting_GT, ending_GT)\n", "\n", " prec = np.sum(bool_sig_GT*bool_sig)/np.sum(bool_sig)\n", " recall = np.sum(bool_sig_GT*bool_sig)/(np.sum(bool_sig_GT*bool_sig)+np.sum(np.logical_not(bool_sig)*bool_sig_GT))\n", " return prec, recall\n", "def computeprecrecallTh(size, thresholded, starting_GT, ending_GT):\n", " bool_sig_GT = binarize_signals2(size, starting_GT, ending_GT)\n", "\n", " prec = np.sum(bool_sig_GT*thresholded)/np.sum(thresholded)\n", " recall = np.sum(bool_sig_GT*thresholded)/(np.sum(thresholded*bool_sig_GT)+\n", " np.sum(np.logical_not(thresholded)*bool_sig_GT))\n", " return prec, recall" ] }, { "cell_type": "code", "execution_count": 19, "id": "f387e118", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "95.05709971214195" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "thresholded = computeThreshold(signal, th=0)\n", "IoU = IoUforTh(signal.shape[0], thresholded, starting_GT, ending_GT)\n", "IoU" ] }, { "cell_type": "code", "execution_count": 20, "id": "f51c4527", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0. , 0.00313131, 0.00626263, 0.00939394, 0.01252525,\n", " 0.01565657, 0.01878788, 0.02191919, 0.02505051, 0.02818182,\n", " 0.03131313, 0.03444444, 0.03757576, 0.04070707, 0.04383838,\n", " 0.0469697 , 0.05010101, 0.05323232, 0.05636364, 0.05949495,\n", " 0.06262626, 0.06575758, 0.06888889, 0.0720202 , 0.07515152,\n", " 0.07828283, 0.08141414, 0.08454545, 0.08767677, 0.09080808,\n", " 0.09393939, 0.09707071, 0.10020202, 0.10333333, 0.10646465,\n", " 0.10959596, 0.11272727, 0.11585859, 0.1189899 , 0.12212121,\n", " 0.12525253, 0.12838384, 0.13151515, 0.13464646, 0.13777778,\n", " 0.14090909, 0.1440404 , 0.14717172, 0.15030303, 0.15343434,\n", " 0.15656566, 0.15969697, 0.16282828, 0.1659596 , 0.16909091,\n", " 0.17222222, 0.17535354, 0.17848485, 0.18161616, 0.18474747,\n", " 0.18787879, 0.1910101 , 0.19414141, 0.19727273, 0.20040404,\n", " 0.20353535, 0.20666667, 0.20979798, 0.21292929, 0.21606061,\n", " 0.21919192, 0.22232323, 0.22545455, 0.22858586, 0.23171717,\n", " 0.23484848, 0.2379798 , 0.24111111, 0.24424242, 0.24737374,\n", " 0.25050505, 0.25363636, 0.25676768, 0.25989899, 0.2630303 ,\n", " 0.26616162, 0.26929293, 0.27242424, 0.27555556, 0.27868687,\n", " 0.28181818, 0.28494949, 0.28808081, 0.29121212, 0.29434343,\n", " 0.29747475, 0.30060606, 0.30373737, 0.30686869, 0.31 ])" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ths = np.linspace(start=0.0, stop=0.31, num=100)\n", "ths" ] }, { "cell_type": "code", "execution_count": 21, "id": "2888a682", "metadata": {}, "outputs": [], "source": [ "IoUsMM = []\n", "IoUsTh = []\n", "precsMM = []\n", "recallsMM = []\n", "precsTh = []\n", "recallsTh = []\n", "for th in ths:\n", " thresholded = computeThreshold(signal, th)\n", " IoUTh = IoUforTh(signal.shape[0], thresholded, starting_GT, ending_GT)\n", " precTh, recallTh = computeprecrecallTh(signal.shape[0], thresholded, starting_GT, ending_GT)\n", " IoUsTh.append(IoUTh)\n", " precsTh.append(precTh)\n", " recallsTh.append(recallTh)\n", " starting, ending = computeBoundaries(signal, th)\n", " IoUMM = calculateIoU(signal.shape[0], starting, ending, starting_GT, ending_GT)\n", " precMM, recallMM = computeprecrecallMM(signal.shape[0], starting, ending, starting_GT, ending_GT)\n", " IoUsMM.append(IoUMM)\n", " precsMM.append(precMM)\n", " recallsMM.append(recallMM)" ] }, { "cell_type": "code", "execution_count": 22, "id": "274383a2", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'IoU')" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "plt.plot(ths, IoUsMM, label='Ours')\n", "plt.plot(ths, IoUsTh, label='Thresholding')\n", "plt.legend()\n", "plt.title('IoU')" ] }, { "cell_type": "code", "execution_count": 23, "id": "8851220c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Precision')" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "plt.plot(ths, precsMM, label='Ours')\n", "plt.plot(ths, precsTh, label='Thresholding')\n", "plt.legend()\n", "plt.title('Precision')" ] }, { "cell_type": "code", "execution_count": 24, "id": "e848b43e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Recall')" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "plt.plot(ths, recallsMM, label='Ours')\n", "plt.plot(ths, recallsTh, label='Thresholding')\n", "plt.legend()\n", "plt.title('Recall')" ] }, { "cell_type": "code", "execution_count": 25, "id": "35192628", "metadata": {}, "outputs": [], "source": [ "precsMM, recallsMM = np.array(precsMM), np.array(recallsMM)\n", "precsTh, recallsTh = np.array(precsTh), np.array(recallsTh)\n", "\n", "F1_scoreMM = 2 * (precsMM * recallsMM)/ (precsMM + recallsMM)\n", "F1_scoreTh = 2 * (precsTh * recallsTh)/ (precsTh + recallsTh)" ] }, { "cell_type": "code", "execution_count": 26, "id": "f0f61235", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, '$F_1$-score')" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "plt.plot(ths, F1_scoreMM, label='Ours')\n", "plt.plot(ths, F1_scoreTh, label='Thresholding')\n", "plt.legend()\n", "plt.title('$F_1$-score')" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.10" } }, "nbformat": 4, "nbformat_minor": 5 }