Created
May 19, 2022 16:31
-
-
Save cyrusbehr/4ac9cdfc7913e71acb5232f51ed4e30a to your computer and use it in GitHub Desktop.
Spoof model eval
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import os\n", | |
"from colorama import Fore\n", | |
"from colorama import Style\n", | |
"import os\n", | |
"import numpy as np\n", | |
"import matplotlib.pyplot as plt\n", | |
"import seaborn as sns\n", | |
"import csv\n", | |
"import base64\n", | |
"import requests\n", | |
"import json\n", | |
"img_num = 0" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"url = \"http://localhost:8003/idm-api/ai/v1/live-face\"\n", | |
"def get_spoof_score(img_path):\n", | |
" with open(img_path, \"rb\") as image_file:\n", | |
" encoded_string = base64.b64encode(image_file.read()).decode(\"utf-8\") \n", | |
" json_data = {}\n", | |
" json_data[\"selfieImage\"] = encoded_string\n", | |
" response = requests.post(url, json=json_data)\n", | |
" data = json.loads(response.text)\n", | |
" if data[\"code\"] == 0:\n", | |
" return True, float(data[\"scores\"][\"real\"])\n", | |
" else:\n", | |
" return False, 0\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"def load_all_images(PATH):\n", | |
" png_images = [os.path.join(dp, f) for dp, dn, filenames in os.walk(PATH) for f in filenames if os.path.splitext(f)[1] == '.png']\n", | |
" jpg_images = [os.path.join(dp, f) for dp, dn, filenames in os.walk(PATH) for f in filenames if os.path.splitext(f)[1] == '.jpg']\n", | |
"\n", | |
" images = png_images + jpg_images\n", | |
" \n", | |
" spoof_images = []\n", | |
" real_images = []\n", | |
" \n", | |
" for image in images:\n", | |
" if os.path.split(os.path.dirname(image))[1] == \"live\":\n", | |
" real_images.append(image)\n", | |
" else:\n", | |
" spoof_images.append(image)\n", | |
" \n", | |
" return real_images, spoof_images" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"real_images, spoof_images = load_all_images(\"/data/spoof/celeba/CelebA_Spoof/Data/train/\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"def get_spoof_scores(images):\n", | |
" scores = []\n", | |
" i = 0\n", | |
" for image in images:\n", | |
" global img_num\n", | |
" img_num = img_num + 1\n", | |
" i = i + 1\n", | |
" # For the sake of saving time, only process every 10th image\n", | |
" if img_num % 10 == 0:\n", | |
" # Print out progress every 2500 sample\n", | |
" if i % 2500 == 0:\n", | |
" print(i,\"/\",len(images))\n", | |
" ret, score = get_spoof_score(image)\n", | |
" if ret:\n", | |
" scores.append(score)\n", | |
" \n", | |
" return scores" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"def write_to_file(filename, scores): \n", | |
" with open(filename, 'w', newline='') as csvfile:\n", | |
" writer = csv.writer(csvfile)\n", | |
" for score in scores:\n", | |
" score_arr = [score]\n", | |
" writer.writerow(score_arr)\n", | |
"\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"2500 / 164484\n", | |
"5000 / 164484\n", | |
"7500 / 164484\n", | |
"10000 / 164484\n", | |
"12500 / 164484\n", | |
"15000 / 164484\n", | |
"17500 / 164484\n", | |
"20000 / 164484\n", | |
"22500 / 164484\n", | |
"25000 / 164484\n", | |
"27500 / 164484\n", | |
"30000 / 164484\n", | |
"32500 / 164484\n", | |
"35000 / 164484\n", | |
"37500 / 164484\n", | |
"40000 / 164484\n", | |
"42500 / 164484\n", | |
"45000 / 164484\n", | |
"47500 / 164484\n", | |
"50000 / 164484\n", | |
"52500 / 164484\n", | |
"55000 / 164484\n", | |
"57500 / 164484\n", | |
"60000 / 164484\n", | |
"62500 / 164484\n", | |
"65000 / 164484\n", | |
"67500 / 164484\n", | |
"70000 / 164484\n", | |
"72500 / 164484\n", | |
"75000 / 164484\n", | |
"77500 / 164484\n", | |
"80000 / 164484\n", | |
"82500 / 164484\n", | |
"85000 / 164484\n", | |
"87500 / 164484\n", | |
"90000 / 164484\n", | |
"92500 / 164484\n", | |
"95000 / 164484\n", | |
"97500 / 164484\n", | |
"100000 / 164484\n", | |
"102500 / 164484\n", | |
"105000 / 164484\n", | |
"107500 / 164484\n", | |
"110000 / 164484\n", | |
"112500 / 164484\n", | |
"115000 / 164484\n", | |
"117500 / 164484\n", | |
"120000 / 164484\n", | |
"122500 / 164484\n", | |
"125000 / 164484\n", | |
"127500 / 164484\n", | |
"130000 / 164484\n", | |
"132500 / 164484\n", | |
"135000 / 164484\n", | |
"137500 / 164484\n", | |
"140000 / 164484\n", | |
"142500 / 164484\n", | |
"145000 / 164484\n", | |
"147500 / 164484\n", | |
"150000 / 164484\n", | |
"152500 / 164484\n", | |
"155000 / 164484\n", | |
"157500 / 164484\n", | |
"160000 / 164484\n", | |
"162500 / 164484\n" | |
] | |
} | |
], | |
"source": [ | |
"real_scores = get_spoof_scores(real_images)\n", | |
"write_to_file(\"real_scores_idmission.csv\", real_scores)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"2500 / 329921\n", | |
"5000 / 329921\n", | |
"7500 / 329921\n", | |
"10000 / 329921\n", | |
"12500 / 329921\n", | |
"15000 / 329921\n", | |
"17500 / 329921\n", | |
"20000 / 329921\n", | |
"22500 / 329921\n", | |
"25000 / 329921\n", | |
"27500 / 329921\n", | |
"30000 / 329921\n", | |
"32500 / 329921\n", | |
"35000 / 329921\n", | |
"37500 / 329921\n", | |
"40000 / 329921\n", | |
"42500 / 329921\n", | |
"45000 / 329921\n", | |
"47500 / 329921\n", | |
"50000 / 329921\n", | |
"52500 / 329921\n", | |
"55000 / 329921\n", | |
"57500 / 329921\n", | |
"60000 / 329921\n", | |
"62500 / 329921\n", | |
"65000 / 329921\n", | |
"67500 / 329921\n", | |
"70000 / 329921\n", | |
"72500 / 329921\n", | |
"75000 / 329921\n", | |
"77500 / 329921\n", | |
"80000 / 329921\n", | |
"82500 / 329921\n", | |
"85000 / 329921\n", | |
"87500 / 329921\n", | |
"90000 / 329921\n", | |
"92500 / 329921\n", | |
"95000 / 329921\n", | |
"97500 / 329921\n", | |
"100000 / 329921\n", | |
"102500 / 329921\n", | |
"105000 / 329921\n", | |
"107500 / 329921\n", | |
"110000 / 329921\n", | |
"112500 / 329921\n", | |
"115000 / 329921\n", | |
"117500 / 329921\n", | |
"120000 / 329921\n", | |
"122500 / 329921\n", | |
"125000 / 329921\n", | |
"127500 / 329921\n", | |
"130000 / 329921\n", | |
"132500 / 329921\n", | |
"135000 / 329921\n", | |
"137500 / 329921\n", | |
"140000 / 329921\n", | |
"142500 / 329921\n", | |
"145000 / 329921\n", | |
"147500 / 329921\n", | |
"150000 / 329921\n", | |
"152500 / 329921\n", | |
"155000 / 329921\n", | |
"157500 / 329921\n", | |
"160000 / 329921\n", | |
"162500 / 329921\n", | |
"165000 / 329921\n", | |
"167500 / 329921\n", | |
"170000 / 329921\n", | |
"172500 / 329921\n", | |
"175000 / 329921\n", | |
"177500 / 329921\n", | |
"180000 / 329921\n", | |
"182500 / 329921\n", | |
"185000 / 329921\n", | |
"187500 / 329921\n", | |
"190000 / 329921\n", | |
"192500 / 329921\n", | |
"195000 / 329921\n", | |
"197500 / 329921\n", | |
"200000 / 329921\n", | |
"202500 / 329921\n", | |
"205000 / 329921\n", | |
"207500 / 329921\n", | |
"210000 / 329921\n", | |
"212500 / 329921\n", | |
"215000 / 329921\n", | |
"217500 / 329921\n", | |
"220000 / 329921\n", | |
"222500 / 329921\n", | |
"225000 / 329921\n", | |
"227500 / 329921\n", | |
"230000 / 329921\n", | |
"232500 / 329921\n", | |
"235000 / 329921\n", | |
"237500 / 329921\n", | |
"240000 / 329921\n", | |
"242500 / 329921\n", | |
"245000 / 329921\n", | |
"247500 / 329921\n", | |
"250000 / 329921\n", | |
"252500 / 329921\n", | |
"255000 / 329921\n", | |
"257500 / 329921\n", | |
"260000 / 329921\n", | |
"262500 / 329921\n", | |
"265000 / 329921\n", | |
"267500 / 329921\n", | |
"270000 / 329921\n", | |
"272500 / 329921\n", | |
"275000 / 329921\n", | |
"277500 / 329921\n", | |
"280000 / 329921\n", | |
"282500 / 329921\n", | |
"285000 / 329921\n", | |
"287500 / 329921\n", | |
"290000 / 329921\n", | |
"292500 / 329921\n", | |
"295000 / 329921\n", | |
"297500 / 329921\n", | |
"300000 / 329921\n", | |
"302500 / 329921\n", | |
"305000 / 329921\n", | |
"307500 / 329921\n", | |
"310000 / 329921\n", | |
"312500 / 329921\n", | |
"315000 / 329921\n", | |
"317500 / 329921\n", | |
"320000 / 329921\n", | |
"322500 / 329921\n", | |
"325000 / 329921\n", | |
"327500 / 329921\n" | |
] | |
} | |
], | |
"source": [ | |
"spoof_scores = get_spoof_scores(spoof_images)\n", | |
"write_to_file(\"spoof_scores_idmission.csv\", spoof_scores)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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FBQUpOXLl+uWW265ZE1577V4SqQkPffcc3r99dft9rNjxw79/e9/V0hIiJYsWWJ3bAkJCXrggQeUlZWl5cuXq2HDhpd13wBgJmycDQBwGW+//baGDx8uX19fGYahgwcPav78+XrzzTf18MMPq0OHDpo4caJ1+mBZWrRoUSqsSRfeexs4cKCkC+97ZWRkWNvWrFkjSapWrZoee+wxu9cdPXq0JCklJUWbN2+2Ht+8ebNSU1MlSS+88ILd2ieffFKVK1eWJIevchkQECBJOn/+vLKysi6rJisrSz/++KMkaciQIZcV1iTH3aubm5sGDx5cZj+LFy+WJD388MNljq1atWrWcLtp06bLGj8AmA2BDQDgMipUqKDRo0dr48aN+vDDD/XYY48pIiLC+k7XuXPnNGfOHD300EPat29fmde54447LtlWVFSkAwcOWI/v379fktS2bdtS71IVq1evnqpWrWpzfsnPt9xyi+rWrWu31t3d3dp3yVpHaNq0qYKDg3XmzBn17dtX3377rY4dO6aLTbLZv3+/8vPzJUkdO3a87L4cda+1atVSSEhImf3s2rVL0oXg1qFDhzL//fbbb5KkU6dOXfY9AICZsOgIAMDl+Pv7q2fPnurZs6ckKTc3Vzt37tTcuXO1bt06paSkaOTIkVq7dq11WmJJxaHKnpJtycnJ1s/nzp27ZK104alOYmKi9fwrrS15vqMEBATok08+0csvv6wjR47ovffek3The2zVqpUeeOABde/e3WYxk5JPKWvUqHHZfTnqXi8W1iQpKSlJkpSZmanMzMxLjutG2+YBwM2DwAYAcHleXl5q37692rdvr9dff13Lli1TQkKCNm3apM6dOzt7eKbQvn17/fzzz1q7dq22bNmi3bt3W/e2W7dunb7++mvNnDnzkkHrerG35H9JhYWFkqR33nlHTzzxxPUYEgA4BVMiAQA3lOKFQSQpOjra7jmJiYll1pdsq1SpkvVz8ROfhISEi/Zf3F7yCVF5ah3J19dXvXr10qRJkxQVFaWNGzdq7Nix8vLysnnyJsn6jpkk60Itl+N63Wvx+JjqCOBGR2ADANxQfH19rZ/L2jB569atZdYXt7m5ualRo0bW48UrGW7dulVFRUV2a48dO2YNfLfffnup2oSEBB0/ftxubWFhobXvkrXXUtWqVTV48GA999xzkmSzUEqTJk2s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K69Ikr744gsVFBQ4pE8AAAAArumGCWzXW/F0xkceeUQeHh42bZ6enurdu7ck6ccff7Rp27Ztm1JSUuTr66uHH3641HV79OghX19fnTt3Ttu3b3dInwAAAABc0w0zJbK8FixYoFmzZiknJ0ehoaFq1aqVHn74YbvvtRUWFmr//v2SpNatW9u9XqtWrSRJf/zxhwoLC+Xu7i5J2rNnjySpadOm8vT0LFXn6emp22+/XVu3btWePXvUrl27cvcJAAAAwDXxhO3/W7NmjdavX68tW7Zo1apVeuedd9S5c2dt3ry51Lnx8fHKz8+XpDJXZaxVq5YkKS8vT6dOnbIej4mJsWm/WO3x48cd0icAAAAA13TTB7Y2bdpo8uTJWrNmjfbs2aPt27fryy+/VKNGjZSSkqJhw4bpwIEDNjWpqanWz0FBQXavGxgYaP2clpZW6nPJ9rJq09PTHdInAAAAANd00we2SZMmqVevXqpXr558fHwUEBCgjh076t///rcaN26s3NxcffTRRzY1eXl51s///S5ZsZLTHXNycqyfc3NzL1pXsrZkXXn6BAAAAOCabvrAVhZvb2+9+OKLkqStW7faPLEqGYyKpyn+t5IBq+QS+8UrO5ZVV7K2ZF15+gQAAADgmhwe2KZOnarZs2df9vlz587V1KlTHT0Mh2jRooWkCxtdx8bGWo+XnHpYcqpiSSUDXsnzAwICSrWXVVt8bnn7BAAAAOCarklgmzlz5mWfP2fOHE2bNs3Rw3CIklMPCwsLrZ9r1KhhbTt58qTd2uLjnp6eql69uvV4nTp1JEknTpwos9/i2uJzy9snAAAAANfElMiLOHz4sPVztWrVrJ8rVKigJk2aSJJ27Nhht7b4+O23326zvH6zZs0kXVh6v+QUxmJ5eXn6448/JMlmU+3y9AkAAADANTk9sKWlpVnf6zKbr7/+WpJUv359Va1a1aata9eukqRly5aVeqcsLy9PS5culSR169bNpq1t27YKCgpSVlaWVq5cWarPFStWKCsrS5UqVSq139rV9gkAAADANTk1sP344486f/68brnlFqf0P3PmTM2bN08pKSk2x1NSUvTWW28pKipKkjRq1KhStf369VPlypV14sQJvf3229bVH3Nzc/X222/r5MmTqlKlih577DGbOg8PDw0dOlSS9OGHH2r37t3Wtt27d1tXpHz++edV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M9f9AgCcO3cOubm5eukajQYxMTE669Lfl7nuQ8yBARvVusDAQFhZWWH37t0IDQ2FEAJA2dTLs2bNQmlpKZ599ll4enrq5PPx8YGPj4/Bt81rb8DWrl2LqKgoefn169exYMECAMDo0aPh5uZmrmpRNZi6LRQUFCAgIAAXLlxA+/btERwcDFdX11qrD1WfOa4LVD+Z6ztCqVTi5MmTWLlypfxEtbi4GF9++SUuXboEW1tb+Pv7m71+VHmmbgu+vr6wsbFBVlYWZs2apdMrJzs7G/PmzcP169dhZWWF4cOHm7+CVCtGjRoFHx8fBAcH66VVt43VNiuhLRlRLQoODsbixYshhECLFi3g6uqK+Ph4qNVqtGvXDiEhIXrBlYeHBwAgKCgIL7/8st42P//8c3lK5tatW8PBwQFXr15FSUkJvLy8sHHjRo5hskCmbAurV6/GkiVLAJSNW3FxcTG632XLlqFJkyZmqBFVlzmuC4YsX74cK1asgLe3N7Zs2WLyelDNmaMt7Ny5E/Pnz0dJSQnc3Nzg7u6OxMRE3Lt3DyqVCosXL8awYcNqpX5UeaZuC7t27cL8+fNRXFwMpVIJd3d3qFQq3Lx5E2q1GlZWVpgzZw7f12mBUlJSMGLECPlvtVqN/Px8KJVKODo6yssnTpyISZMmyX/7+Pjg1q1bmDp1KqZNm6a33eq0sdrGSUeoTvj7+8PDwwMbNmzAuXPnkJmZiZYtW8LX1xcBAQHVGm80b948dO/eHSEhIYiLi0N6ejo6dOiA4cOHw9/fn7MDWihTtgXt9LtA2dPVinB8guUxx3WB6idztIWXXnoJjz76KNatW4eTJ08iLi4OLi4uGDZsGCZNmlTnv6CTYaZuCyNGjICnpyc2bdqEkydP4vbt2xBCoEmTJujevTtef/11eHl5mak2VBMlJSW4d++e3vLi4mKd5VV95259+O7hEzYiIiIiIiILxTFsREREREREFooBGxERERERkYViwEZERERERGShGLARERERERFZKAZsREREREREFooBGxERERERkYViwEZERERERGShGLARERERERFZKAZsREREREREFooBGxERERERkYViwEZERERERGShGLARERERERFZKAZsRES1IDIyEmPGjEGvXr3g6ekJDw8PLFq0qK6LRUYsX74cHh4eePPNN+u6KPWGh4cHPDw8EBMTU+v7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\n", | |
"text/plain": [ | |
"<Figure size 900x450 with 1 Axes>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"sns.set(style=\"white\", color_codes=True)\n", | |
"f, axes = plt.subplots(1, 1, figsize=(6, 3), dpi=150, sharex=True)\n", | |
"sns.histplot(np.array(spoof_scores).flatten(), color=\"b\", label=\"Spoof images\", bins=40);\n", | |
"\n", | |
"plt.tight_layout()\n", | |
"plt.xlabel(\"Spoof score - lower indicates spoof\")\n", | |
"plt.title(\"Spoof score\");\n", | |
"plt.legend()\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA2wAAAHiCAYAAACUSU/QAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAXEQAAFxEByibzPwAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nOzdeXRU9f3/8dckZCFMAiFA2BeREEgbUXaxKIRCVBSLlEjdECSWUBdArYJQhS+LtnWplFVlU0uwiKAI4YchyNGGfSmbsiRsgQQh+zok9/cHZ6bEmbAkg7lkno9zck5yP5/3fX+Gv3id+5nPtRiGYQgAAAAAYDpe1b0AAAAAAIBrBDYAAAAAMCkCGwAAAACYFIENAAAAAEyKwAYAAAAAJkVgAwAAAACTIrABAAAAgEkR2AAAAADApAhsAAAAAGBSBDYAAAAAMCkCGwAAAACYFIENAAAAAEyKwAYAAAAAJkVgAwAAAACTIrABAGAi33zzjZ544gl17dpV4eHhat++vaZNm1bdywIAVJNa1b0AAAB+zjAMrVu3Tl999ZUOHDig8+fPy9vbWyEhIWrYsKEiIyPVpUsX9ezZU1artbqX6zYJCQl67rnnJEne3t4KDg6Wl5dXjfqMAIDrYzEMw6juRQAAYJeTk6MxY8Zo69atjmu1atWS1WpVXl6eLl686Lg+Y8YMDR48uDqWeUMMHTpUe/bs0YABA/Tmm2+qdu3a1b0kAEA14wkbAMBUXn75ZW3dulXe3t568sknFRMTo5YtW8rLy0sXL17UkSNHtHnzZn311VfVvVS3+/HHHyVJv/vd7whrAABJBDYAgImkpqZq48aNkqQXXnhBsbGx5cZr1aql8PBwhYeHa9SoUSoqKqqOZd4whYWFkqSAgIBqXgkAwCwIbAAA0zh48KDj96ioqKvO9/f3d7rWt29fnT59WjNmzFD//v01b948rV+/XmfOnFHt2rXVuXNnPfPMM7rtttsqvG9paalWrlyp1atX64cfflB+fr6Cg4N1++2369FHH1X37t2vuK4tW7bok08+0a5du5SZmak6deooPDxcDz74oB566CF5e3s75p46dcrpsz7xxBPl/v7hhx+u+m9ht3nzZsXHx2vv3r26cOGCfH19FRwcrFatWqlXr156+OGHVa9ePae6goICxcfH65tvvtHhw4eVn5+v+vXrq2XLlurbt68efPBBNWjQoEqf1e7999/XrFmz1K1bNy1dulQJCQmKj4/XwYMHlZmZqTFjxujZZ58tV5OUlKQVK1Zo9+7dyszMVO3atRUWFqb7779fQ4YMka+v7zX/GwHAzYTABgAwpbNnz6pt27aVrs/JydGQIUOUkpIiHx8f+fn5KSsrS9988402btyoqVOnasiQIU51ubm5iouLc3yHztvbW3Xq1NG5c+eUkJCghIQEjRgxQn/+859d9p0xY4YWLVokSbJYLAoMDFRubq6Sk5OVnJys1atX65///KfjIBFvb29HEPrpp58kSXXr1pWPj891f+ZZs2bp/fffd/xdu3ZtGYahU6dO6dSpU/ruu+/0q1/9yilw7t+/X2PGjNGZM2ckSV5eXgoKClJmZqbS09O1bds2eXl5afjw4VX6rK7MnDlTCxculMViUVBQkLy8yh9gXVRUpJdfflkJCQmOa1arVbm5udq+fbu2b9+uVatWaf78+apbt+51/5sBgOkZAACYxMmTJ4327dsbYWFhxsCBA41jx45d9z369OljhIWFGZ07dza6du1qfP3114bNZjMMwzCOHDliPPbYY0ZYWJjRsWNHY9++fU71zz77rBEWFmZEREQYS5YsMQoKCgzDMIyMjAzj1VdfNcLCwoywsDDj008/dapdunSpY3zSpElGRkaGYRiGkZ+fbyxcuNDo2LGjERYWZrzwwgsu126vTU5Ovu7PferUKSM8PNwICwszZsyYYZw9e9YxlpOTY2zbts14/fXXjf/+97/l6tLS0ozu3bsbYWFhxt13322sWbPG8ZnLysqMw4cPG++//76xatUqt33Wf/zjH0ZYWJjRqVMnIywszPjrX/9qnD9/3jAMwyguLjZOnTrlmPviiy8aYWFhRlRUlLF69WojNzfXMAzDKCoqMjZs2GBERUUZYWFhRlxc3HX/mwHAzYBTIgEApjJp0iQtX75c0qWnNh06dFCnTp0UERGhyMhItWvXThaLpcJ6+5ZISVq0aJF69uxZbryoqEiDBg1Samqq7r77bs2fP98xtmfPHg0dOlSSNGXKFMXExDjd/7nnnlNCQoKCg4O1adMm+fn5Oe579913KysrSwMHDtTf//53p9qlS5fq//7v/yRJK1as0K9+9aty4+3bt5ckLVmy5KrbLn/u66+/1tixY9W6dety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deutt6p///565JFHXL4CQbp0dP6nn36qb775RseOHVNhYaEaNGigFi1aKCoqSg888IDLw0Mq81mvJ7DZ7dq1S8uXL9f27duVkZGh0tJS1atXT23atFHXrl01YMAAx78fANQkBDYAQI1yeWCzb6cDAOBmxXfYAAAAAMCkCGwAAAAAYFIENgAAAAAwKQIbAAAAAJgUh44AAAAAgEnVqu4FuMvP3z/jyuuvv65hw4Y5XbfZbFq8eLFWr16tEydOyMfHR+Hh4Xr88cfVv3//K97zwIEDmj9/vrZt26acnBw1atRIffr0UVxcnOrXr19hXVV6AgAAAPAMNSaw2YWEhKhVq1Yux37+olBJKi4u1lNPPaUdO3bI29tbt956qwoLC7V161Zt3bpVo0aN0osvvujyfuvXr9e4ceNks9kUEhKidu3aKSUlRUuXLtW6dev0r3/9Sy1atHBrTwAAAACeo8YFtt69e2vmzJnXPP+vf/2rduzYoebNm2vBggW65ZZbJEnffPONXnjhBS1YsEB33HGH+vbtW64uPT1dL7/8smw2m+Li4jRmzBjVqlVLubm5Gjt2rDZv3qwXXnhB//73v2WxWNzSEwAAAIBn8ehDR3766SctW7ZMkjRt2jRHcJKkqKgoPf3005LkcqvlBx98oMLCQnXt2lXPP/+8atW6lH0DAwP197//XYGBgdq3b582btzotp4AAAAAPItHB7bExETZbDa1bt1aPXr0cBp/5JFHJEn79+/XiRMnyo0lJCRIkoYOHepUV7duXUVHR0uS1q5d67aeAAAAADxLjdsSeejQIY0fP17nzp1TnTp11L59e91///1q166d09zdu3dLkjp37uzyXqGhoWrevLlOnTql3bt3q2XLlpKkM2fOKD09XZLUtWtXl7VdunTRZ599pj179rilp7v06dNHFy5ckJ+fn5o3b+7WewMAAAAo79SpUyouLlb9+vWddt9dixoX2A4ePKiDBw86/k5MTNTcuXP1xBNP6M9//rO8vb0dY6mpqZJ0xVDUsmVLnTp1SikpKU51Pj4+aty4scs6+2EjJ0+elM1mk4+PT5V6usuFCxdUVFSkoqIiZWdnu/3+AAAAAJxduHChUnU1JrA1atRIzz33nH7zm9+oefPmslqtSklJ0aeffqply5Zp8eLFqlWrll5++WVHjT2w1K1bt8L72sdycnIc17Ky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CRMmXHcNAAAAAHiSKge2w4cPa/369bJarZo+ffo1102dOlVWq1Vr1qxRampqVZcBAAAAADVOlQPbl19+KUn6wx/+oKCgoGuuq1u3rh577DGVlZVp9erVVV0GAAAAANQ4VQ5s27dvl8ViUf/+/a+71l6zdevWqi4DAAAAAGqcKh86kpqaKi8vL3Xs2PG6a9u3by8vLy8dO3asSmswDEO7du1SYmKiduzYoWPHjikvL0+BgYHq2LGjHnroIT3wwAOyWCwu6/Pz8zV//nwlJCQoLS1NAQEBuu222zRixAh17979ir2Tk5O1cOFC7dmzRwUFBWratKmio6MVGxurgICACuuq0hMAAACAZ6jyE7acnBwFBgZWGIau2NzLS4GBgcrNza3SGpKTkzVs2DAtWLBAO3fuVGBgoNq3by/DMPTdd9/ppZde0h//+EeVlJQ41V64cEEPP/yw5s6dq9OnT6tt27by8/NTUlKSnnzySX3yyScV9l26dKmGDx+upKQk+fn5qW3btjp9+rTmzJmjIUOGKCsry2VdVXoCAAAA8BxVDmy1a9dWfn5+pesLCgrk7+9fpTUYhqHmzZtr4sSJ+v7777VhwwZ9/vnn2rJli9588035+voqKSlJ7733nlPtxIkTlZKSooiICG3YsEErV65UUlKSpkyZIsMwNG3aNB08eNCpbt++fY5DVqZMmaKkpCStXLlSGzZsUEREhI4ePapJkya5XG9lewIAAADwLFUObPXr19fFixd14sSJ6649ceKEbDab6tevX6U1REZGat26dXriiScUEhJSbuyhhx7SmDFjJEn//ve/VVZW5hg7cOCAEhMT5eXlpXfeeUehoaGSJIvFopiYGA0aNEilpaWaPXu2U8/Zs2errKxMgwYNUkxMjOMJY2hoqN5++215eXlp/fr1OnToULm6qvQEAAAA4FmqHNg6deokSVq/fv111yYkJEiSbrvttiqtwWq1ysfHp8Lx3r17S5KysrJ04cIFp/49evRQq1atnOpiYmIkSZs2bVJBQYHjen5+vjZv3ixJGjp0qFNd69at1aNHD0nSunXryo1VticAAAAAz1PlwHbPPffIMAx9+OGHysjIuOa69PR0ffTRR7JYLLrnnnuquowrKioqcvx++fbL3bt3S5K6dOnisi4yMlK+vr4qLi4ut0Xx4MGDKikpka+vryIjI13Wdu7c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\n", | |
"text/plain": [ | |
"<Figure size 900x450 with 1 Axes>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"sns.set(style=\"white\", color_codes=True)\n", | |
"f, axes = plt.subplots(1, 1, figsize=(6, 3), dpi=150, sharex=True)\n", | |
"sns.histplot(np.array(real_scores).flatten(), color=\"r\", label=\"Real images\", bins=40);\n", | |
"\n", | |
"plt.tight_layout()\n", | |
"plt.xlabel(\"Spoof score - lower indicates spoof\")\n", | |
"plt.title(\"Spoof score\");\n", | |
"plt.legend()\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"print(real_scores)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"47103\n" | |
] | |
} | |
], | |
"source": [ | |
"print(len(real_scores) + len(spoof_scores))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"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.6.9" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 4 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment