Skip to content

Instantly share code, notes, and snippets.

@wassname
Last active December 14, 2017 02:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wassname/970c914745d49bd5999d9896e2933db2 to your computer and use it in GitHub Desktop.
Save wassname/970c914745d49bd5999d9896e2933db2 to your computer and use it in GitHub Desktop.
keras_retinanet checking random_transform
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"ExecuteTime": {
"end_time": "2017-12-14T02:00:26.047854Z",
"start_time": "2017-12-14T02:00:25.991474Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/isisilon/.pyenv/versions/3.6.0/envs/jupyter3/lib/python3.6/site-packages/IPython/core/magics/pylab.py:160: UserWarning: pylab import has clobbered these variables: ['seed']\n",
"`%matplotlib` prevents importing * from pylab and numpy\n",
" \"\\n`%matplotlib` prevents importing * from pylab and numpy\"\n"
]
}
],
"source": [
"%pylab inline\n",
"from keras_retinanet.utils.image import random_transform\n",
"import keras.preprocessing.image\n",
"import keras_retinanet"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"ExecuteTime": {
"end_time": "2017-12-14T01:54:24.835627Z",
"start_time": "2017-12-14T01:54:24.832440Z"
}
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"ExecuteTime": {
"end_time": "2017-12-14T02:00:26.371527Z",
"start_time": "2017-12-14T02:00:26.367467Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"'2.1.2'"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"keras.__version__"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"ExecuteTime": {
"end_time": "2017-12-14T02:00:26.546137Z",
"start_time": "2017-12-14T02:00:26.542752Z"
},
"collapsed": true
},
"outputs": [],
"source": [
"# create image data generator objects\n",
"train_image_data_generator = keras.preprocessing.image.ImageDataGenerator(\n",
" horizontal_flip=True,\n",
" vertical_flip=True\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"ExecuteTime": {
"end_time": "2017-12-14T02:00:26.751903Z",
"start_time": "2017-12-14T02:00:26.743468Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([[0, 0, 3, 4]])"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Test data\n",
"image = np.zeros((10,10,3))\n",
"image[1,1]=1\n",
"image[3,2]=0.5\n",
"image[4,1]=0.25\n",
"\n",
"x,y = np.argwhere(image.mean(-1)==1).T\n",
"boxes = np.array([x-1,y-1,x+2,y+3]).T\n",
"boxes"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"ExecuteTime": {
"end_time": "2017-12-14T02:00:27.085147Z",
"start_time": "2017-12-14T02:00:26.951477Z"
}
},
"outputs": [
{
"data": {
"image/png": "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\nAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f487607b668>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Plot test data\n",
"import matplotlib.patches as mpatches\n",
"from matplotlib.collections import PatchCollection\n",
"\n",
"def plot_boxes(image, boxes, ax=None):\n",
" if ax is None:\n",
" ax=plt.gca()\n",
" ax.imshow(image, origin='lower')\n",
" \n",
" polygons = []\n",
" for x1,y1,x2,y2 in boxes:\n",
" p = mpatches.Rectangle(\n",
" xy=[x1,y1],\n",
" width=x2-x1,\n",
" height=y2-y1,\n",
" ) \n",
" polygons.append(p)\n",
" collection = PatchCollection(patches=polygons, facecolor='none', edgecolor='blue')\n",
" ax.add_collection(collection)\n",
"\n",
"plot_boxes(image, boxes)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"ExecuteTime": {
"end_time": "2017-12-14T02:00:28.626204Z",
"start_time": "2017-12-14T02:00:27.183770Z"
},
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPgAAAEICAYAAAByNDmmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAClBJREFUeJzt3V+spHV9x/H3p3sksgsq0KSRXSLbxD9BEsRsKkJTGrFJ\nG432wgsw9MLEbGJbQdOEqElDuPDONHJhmmy2NUYJXKw0MZZYL1TSm25cFg3sriUGFBYxUKFAvQHi\n14szRrphZ57ZMw/Pme95v672DL+Z+WYyb55nnnnOc1JVSOrpD6YeQNJ4DFxqzMClxgxcaszApcYM\nXGrMwKXGDHwHS3Jxkn9L8uskP0/y8aln0mptTD2AJvUV4CXgj4D3AP+e5MdVdWLasbQq8Uy2nSnJ\nHuA54MqqemR229eBJ6vqc5MOp5VxF33negfwyu/invkx8O6J5tEIDHznugB44YzbngcunGAWjcTA\nd67/A950xm1vAl6cYBaNxMB3rkeAjSRvf9VtVwEeYGvEg2w7WJJ7gAI+yeZR9PuAaz2K3odb8J3t\nb4HzgaeBu4FPGXcvbsGlxtyCS40ZuNSYgUuNGbjU2Ci/bJLEI3fSyKoqi9a4BZcaM3CpMQOXGjNw\nqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3Cp\nMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxobFHiSzyY5keThJHcneePYg0nauoWBJ9kL\n3AIcqKorgV3AjWMPJmnrhu6ibwDnJ9kAdgO/GG8kSauyMPCqehL4EvA48BTwfFV998x1SQ4mOZbk\n2OrHlHQuhuyiXwR8FNgPXArsSXLzmeuq6lBVHaiqA6sfU9K5GLKL/kHgsap6pqpeBu4Frh13LEmr\nMCTwx4FrkuxOEuAG4NS4Y0lahSGfwY8CR4DjwEOz+xwaeS5JK5CqWv2DJqt/UEn/T1Vl0RrPZJMa\nM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxoz\ncKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNw\nqbFBgSd5S5IjSX6S5FSS9489mKSt2xi47k7gO1X1sSTnAbtHnEnSiqSq5i9I3gz8CPjjWrT49/cZ\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f4875c77c18>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPgAAAEICAYAAAByNDmmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAACeRJREFUeJzt3U+opXUdx/H3p7mJjkZZbXJGcoIoJChjKNPISKOiqBYt\nDGzRZjb9sQhEpRChdhK6iGCYsiDJxTiLiLAWmrRpaBwDc8YizHT8Q/bPJCIVvy3uiUyac5479zw9\n53zn/Vrde+Z3znxnuO/5PeecZ56TqkJSTy+begBJ4zFwqTEDlxozcKkxA5caM3CpMQOXGjPw01iS\nzyY5kuSfSb4z9Txavo2pB9CkHge+CnwAOGviWTQCAz+NVdUhgCR7gd0Tj6MReIguNWbgUmMGLjVm\n4FJjvsh2GkuywebPwA5gR5Izgeer6vlpJ9OyuIOf3r4M/AO4Frhq9vWXJ51ISxUv+CD15Q4uNWbg\nUmMGLjVm4FJjo7xNlsRX7qSRVVUWrXEHlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3Cp\nMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkx\nA5caM3CpMQOXGhsUeJIvJnkgya+SfD/JmWMPJmn7FgaeZBfweWBvVb0F2AFcOfZgkrZv6CH6BnBW\nkg1gJ/D4eCNJWpaFgVfVY8BNwCPAE8DTVfWTl65Lsi/JkSRHlj+mpFMx5BD9XOBjwB7gPODsJFe9\ndF1V7a+qvVW1d/ljSjoVQw7RrwB+V1VPVdVzwCHgknHHkrQMQwJ/BLg4yc4kAS4Hjo87lqRlGPIc\n/DBwEDgK3D+7z/6R55K0BKmq5T9osvwHlfRfqiqL1ngmm9SYgUuNGbjUmIFLjRm41JiBS40ZuNSY\ngUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiB\nS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjQ0KPMmrkhxM8mCS40neNfZgkrZv\nY+C6W4A7q+oTSc4Ado44k6QlSVXNX5C8Evgl8IZatPg/9xm0TtKpq6osWjPkEH0P8BRwa5L7khxI\ncvZLFyXZl+RIkiOnMKukEQzZwfcCPwcurarDSW4B/lZVX5lzH3dwaWTL2sFPACeq6vDs+4PA27cz\nmKT/j4WBV9WTwKNJ3jS76XLg2KhTSVqKhYfoAEneBhwAzgAeAj5dVX+Zs95DdGlkQw7RBwW+VQYu\njW9Zz8ElrSkDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkx\nA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKmxjakHkFbFZZddNsrj3nPP\nPaM87hDu4FJjBi41ZuBSYwYuNWbgUmMGLjVm4FJjgwNPsiPJfUl+OOZAkpZnKzv41cDxsQaRtHyD\nAk+yG/gwcGDccSQt09BTVW8GrgFecbIFSfYB+5YxlLQ8fwJePWjlhGeUnoIMWrUw8CQfAf5QVfcm\nee/J1lXVfmD/7D41bEhpbK9maAyn67nolwIfTfIwcDvwviTfG3UqSUuxMPCquq6qdlfVBcCVwF1V\nddXok0naNt8Hlxrb0v8Hr6qfAj8dZRJJS+cOLjVm4FJjBi41ZuBSYwYuNeZVVbWWbrjhhkHrbrxx\nK2tv3M5IK8kdXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXG\nDFxqzMClxgxcaszApcYMXGrMwKXGDFxqLFXL/yhvPx9cq6MY+vng66aqFv7B3MGlxgxcaszApcYM\nXGrMwKXGDFxqbGHgSc5PcneSY0keSHL1/2MwSdu38H3wJK8DXldVR5O8ArgX+HhVHZtzH98H14rw\nffBFD/JEVR2dff0McBzYtf3xJI1tS58PnuQC4CLg8P/4tX3AvqVMJWkpBp+qmuQc4B7ga1V1aMFa\nD9G1IjxEXyjJy4E7gNsWxS1pdQx5kS3Ad4E/V9UXBj2oO7hWxum9gw8J/N3Az4D7gRdmN19fVT+a\ncx8D14ow8KX/xgau1XF6B+6ZbFJjBi41ZuBSYwYuNWbgUmNbOlVV6myMd5QANk8lmYY7uNSYgUuN\nGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS40Z\nuNSYgUuNGbjUmFdVlWamvPrpWNzBpcYMXGrMwKXGDFxqzMClxgxcaszApcYGBZ7kg0l+neS3Sa4d\neyhJy5FFH5maZAfwG+D9wAngF8Anq+rYnPuM8zms0pYV0O8EFoCqWvgHG7KDvwP4bVU9VFXPArcD\nH9vucJLGN+RU1V3Aoy/6/gTwzpcuSrIP2LekuaQl+TObu3g3w45KlnYuelXtB/aDh+haJa+ZeoBJ\nDTlEfww4/0Xf757dJmnFDQn8F8Abk+xJcgZwJfCDcceStAwLD9Gr6vkknwV+DOwAvl1VD4w+maRt\nW/g22Sk9qM/BpdEt620ySWvKwKXGDFxqzMClxgxcamysq6r+Efj9gHWvna1dF+s07zrNCus17yrM\n+vohi0Z5m2yoJEeqau9kA2zROs27TrPCes27TrN6iC41ZuBSY1MHvn/i33+r1mnedZoV1mvetZl1\n0ufgksY19Q4uaUQGLjU2WeDrcqXWJOcnuTvJsSQPJLl66pmGSLIjyX1Jfjj1LPMkeVWSg0keTHI8\nybumnmmeJF+c/Rz8Ksn3k5w59UzzTBL47Eqt3wA+BFwIfDLJhVPMMsDzwJeq6kLgYuAzKzzri10N\nHJ96iAFuAe6sqjcDb2WFZ06yC/g8sLeq3sLm9RGunHaq+abawdfmSq1V9URVHZ19/QybP4C7pp1q\nviS7gQ8DB6aeZZ4krwTeA3wLoKqeraq/TjvVQhvAWUk2gJ3A4xPPM9dUgf+vK7WudDQASS4ALgIO\nTzvJQjcD1wAvTD3IAnuAp4BbZ08nDiQ5e+qhTqaqHgNuAh4BngCerqqfTDvVfL7INlCSc4A7gC9U\n1d+mnudkknwE+ENV3Tv1LANsAG8HvllVFwF/B1b59Zhz2TzS3AOcB5yd5Kppp5pvqsDX6kqtSV7O\nZty3VdWhqedZ4FLgo0keZvOpz/uSfG/akU7qBHCiqv59RHSQzeBX1RXA76rqqap6DjgEXDLxTHNN\nFfjaXKk1Sdh8jni8qr4+9TyLVNV1VbW7qi5g8+/1rqpayV2mqp4EHk3yptlNlwMn/UisFfAIcHGS\nnbOfi8tZ4RcFYbz/LjrXml2p9VLgU8D9SX45u+36qvrRhDN18jngttk/9A8Bn554npOqqsNJDgJH\n2Xx35T5W/LRVT1WVGvNFNqkxA5caM3CpMQOXGjNwqTEDlxozcKmxfwGz409sFz4jnwAAAABJRU5E\nrkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f4875ee3b00>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPgAAAEICAYAAAByNDmmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAACiBJREFUeJzt3UHIZXd5x/Hvz3lj48Q2CoJoEswsWm0QJPoi0YgRk0Kt\nwXTRRQQF3YyL1oyiSBUlzqI7KWYhwpAoBadKmWRRxKoLJXTTwZlJMM6MFY0xmSRiSmkSRJqEPC7e\nq4zRuffMvOd47n3m+1nNe+d/zzyE95tz7rnnnpuqQlJPL5p7AEnTMXCpMQOXGjNwqTEDlxozcKkx\nA5caM/CLVJI/SXJXkp8leTrJ/UneNfdcGpeBX7y2gEeAG4DLgU8D/5bk6hln0sjilWz6jSTfBw5W\n1d1zz6JxuAcXAEleCfwFcHLuWTQe9+AiySXAfwA/qaoPzT2PxmPgF7kkLwL+Ffgz4JaqenbmkTSi\nrbkH0HySBLgLeCXwN8bdj4Ff3L4I/CVwU1X9au5hND4P0S9SSV4DPAT8P/DcWX/1oao6PMtQGp2B\nS435NpnUmIFLjRm41JiBS41N8jZZEs/caU28CTg+9xCTqKqsWjPJWXQD1/ooYGUHG2lI4B6iS40Z\nuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm4\n1JiBS40ZuNSYXz4oLUz1NV47X+I6D/fgUmMGLjVm4FJjBi41ZuBSYwYuNWbgUmODAk/y0SQnk/wg\nyVeTXDr1YJJ2b2XgSa4AbgO2q+r1wB7g1qkHk7R7Qw/Rt4CXJNkC9gKPTTeSpLGsDLyqHgU+BzwM\nPA48WVXffuG6JPuTHEtybPwxJV2IIYfoLwduAfYBrwYuS/K+F66rqkNVtV1V2+OPKelCDDlEvwn4\naVU9UVXPAvcAb512LEljGBL4w8B1SfZm52MxNwKnpx1L0hiGvAY/ChwBTgAPLJ5zaOK5JI0gU3wG\nNsk0H6yVzlsBwz6PvWmfB6+qlRv2SjapMQOXGjNwqTEDlxozcKkx76oqLcx599OpuAeXGjNwqTED\nlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOX\nGjNwqTFvuqiNdPvttw9ad/Dg+aw9uJuR1pJ7cKkxA5caM3CpMQOXGjNwqTEDlxozcKmxQYEneVmS\nI0l+mOR0krdMPZik3Rt6ocsdwDer6u+SvBjYO+FMkkayMvAklwNvBz4AUFXPAM9MO5akMQzZg+8D\nngC+nOQNwHHgQFX98uxFSfYD+8cfUbpwl176Kw4e/OzA1UPXrYNh32Weqlq+INkG/gu4vqqOJrkD\neKqqPrPkOcs3Ku3S0OvLz8emXYteVSsrH3KS7QxwpqqOLn4+ArxxN4NJ+uNYGXhV/Rx4JMlrFw/d\nCJyadCpJoxh6Fv3DwOHFGfQHgQ9ON5KksQwKvKruB7YnnkXSyLySTWrMwKXGDFxqzMClxgxcamzl\nlWwXtFGvZNMGuuGGGybZ7r333jvJdse6kk3ShjJwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxoz\ncKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxrzrqrShvKuqtJFzsClxgxc\naszApcYMXGrMwKXGDFxqbHDgSfYkuS/J16ccSNJ4zmcPfgA4PdUgksY3KPAkVwLvBu6cdhxJYxq6\nB/888Ang+XMtSLI/ybEkx0aZTNKurQw8yc3AL6rq+LJ1VXWoqraranu06STtypA9+PXAe5I8BHwN\neGeSr0w6laRRnNenyZK8A/h4Vd28Yp2fJpMm5qfJpIucnweXNpR7cOkiZ+BSYwYuNWbgUmMGLjVm\n4FJjBi41ZuBSYwYuNWbgUmMGLjVm4FJjBi41ZuBSYwYuNWbgUmMGLjVm4FJjBi41ZuBSYwYuNWbg\nUmMGLjVm4FJjBi41ZuBSYwYuNWbgUmMGLjVm4FJjBi41ZuBSYwYuNWbgUmMrA09yVZLvJjmV5GSS\nA3+MwSTtXqpq+YLkVcCrqupEkj8FjgN/W1Wnljxn+UYl7VpVZdWalXvwqnq8qk4s/vw0cBq4Yvfj\nSZra1vksTnI1cC1w9A/83X5g/yhTSRrFykP03y5MXgrcC/xTVd2zYq2H6NLERjlEB0hyCXA3cHhV\n3JLWx5CTbAH+BfjfqvrIoI26B5cmN2QPPiTwtwH/CTwAPL94+FNV9Y0lzzFwaWKjBH4hDFya3miv\nwSVtJgOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxoz\ncKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNw\nqTEDlxozcKmxQYEn+esk/53kx0n+ceqhJI0jVbV8QbIH+BHwV8AZ4HvAe6vq1JLnLN+opF2rqqxa\nM2QP/mbgx1X1YFU9A3wNuGW3w0ma3pDArwAeOevnM4vHfkeS/UmOJTk21nCSdmdrrA1V1SHgEHiI\nLq2LIXvwR4Grzvr5ysVjktbckMC/B/x5kn1JXgzcCvz7tGNJGsPKQ/Sqei7JPwDfAvYAX6qqk5NP\nJmnXVr5NdkEb9TW4NLmx3iaTtKEMXGrMwKXGDFxqzMClxka7ku0F/gf42YB1r1is3RSbNO8mzQqb\nNe86zPqaIYsmeZtsqCTHqmp7tgHO0ybNu0mzwmbNu0mzeoguNWbgUmNzB35o5n//fG3SvJs0K2zW\nvBsz66yvwSVNa+49uKQJGbjU2GyBb8qdWpNcleS7SU4lOZnkwNwzDZFkT5L7knx97lmWSfKyJEeS\n/DDJ6SRvmXumZZJ8dPF78IMkX01y6dwzLTNL4Is7tX4BeBdwDfDeJNfMMcsAzwEfq6prgOuAv1/j\nWc92ADg99xAD3AF8s6peB7yBNZ45yRXAbcB2Vb2enfsj3DrvVMvNtQffmDu1VtXjVXVi8een2fkF\n/L2bTq6TJFcC7wbunHuWZZJcDrwduAugqp6pqv+bd6qVtoCXJNkC9gKPzTzPUnMFPuhOresmydXA\ntcDReSdZ6fPAJ4Dn5x5khX3AE8CXFy8n7kxy2dxDnUtVPQp8DngYeBx4sqq+Pe9Uy3mSbaAkLwXu\nBj5SVU/NPc+5JLkZ+EVVHZ97lgG2gDcCX6yqa4FfAut8Publ7Bxp7gNeDVyW5H3zTrXcXIFv1J1a\nk1zCTtyHq+qeuedZ4XrgPUkeYuelzzuTfGXekc7pDHCmqn5zRHSEneDX1U3AT6vqiap6FrgHeOvM\nMy01V+Abc6fWJGHnNeLpqvrnuedZpao+WVVXVtXV7Px3/U5VreVepqp+DjyS5LWLh24EzvmVWGvg\nYeC6JHsXvxc3ssYnBWG6j4sutWF3ar0eeD/wQJL7F499qqq+MeNMnXwYOLz4H/2DwAdnnuecqupo\nkiPACXbeXbmPNb9s1UtVpcY8ySY1ZuBSYwYuNWbgUmMGLjVm4FJjBi419msAlXJl9iLxqAAAAABJ\nRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f487617fc50>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPgAAAEICAYAAAByNDmmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAACk9JREFUeJzt3W+oZHd9x/H3x70G3UT8X9Dd0GylKKmgkaVNTGnEWNoS\nUR/0wQbiA0EWpGoUQapQQh70QUGKKVRhu60UEvTBmgdFghWqCe2DLm42QtzdKCFqsnHFtFEjFjTq\ntw/uiDFkZ87sPcdz53vfL1jYO/ubmS+H+95zZubcc1NVSOrpeXMPIGk6Bi41ZuBSYwYuNWbgUmMG\nLjVm4FJjBr6HJbkzyYUkTyX5ZpL3zj2TxhVPdNm7kvwB8HBV/TTJ64B7gZuq6v55J9NY3IPvYVV1\npqp++qsvF39eM+NIGpmB73FJPpXk/4CHgAvAPTOPpBF5iC6S7AOuA94C/F1VPT3vRBqLe3BRVb+o\nqv8CDgLvm3sejcfA9Uxb+Bq8FQPfo5L8TpIjSa5Isi/JnwE3A/8x92waj6/B96gkrwROAG9g+z/6\n7wD/UFX/NOtgGpWBS415iC41ZuBSYwYuNWbgUmNbUzxoEt+5kyZWVVm1xj241JiBS40ZuNSYgUuN\nGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS40Z\nuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjU2KDAk3w4yZkkX0/y2SQvmHowSTu3MvAkB4AP\nAoer6vXAPuDI1INJ2rmhh+hbwAuTbAH7ge9ON5KksawMvKoeBz4BPApcAH5UVV969rokR5OcSnJq\n/DElXYohh+gvBd4JHAJeDVye5JZnr6uqY1V1uKoOjz+mpEsx5BD9bcC3quqJqnoauBt487RjSRrD\nkMAfBa5Nsj9JgBuBc9OOJWkMQ16DnwROAKeBBxf3OTbxXJJGkKoa/0GT8R9U0m+oqqxa45lsUmMG\nLjVm4FJjBi41ZuBSYwYuNWbgUmMGLjVm4FJjBi41ZuBSYwYuNWbgUmMGLjVm4FJjBi41ZuBSYwYu\nNWbgUmMGLjVm4FJjBi41ZuBSYwYuNWbgUmMGLjVm4FJjBi41ZuBSYwYuNWbgUmMGLjVm4FJjBi41\nNijwJC9JciLJQ0nOJblu6sEk7dzWwHV3AF+sqr9Mchmwf8KZJI0kVbV8QfJi4GvA79Wqxb++z6B1\nki5dVWXVmiGH6IeAJ4DPJHkgyfEklz97UZKjSU4lOXUJs0qawJA9+GHgv4Hrq+pkkjuAp6rqb5bc\nxz24NLGx9uDngfNVdXLx9QngTTsZTNJvx8rAq+p7wGNJXru46Ubg7KRTSRrFykN0gCRvBI4DlwGP\nAO+pqh8sWe8hujSxIYfogwJfl4FL0xvrNbikDWXgUmMGLjVm4FJjBi41ZuBSYwYuNWbgUmMGLjVm\n4FJjBi41ZuBSYwYuNWbgUmMGLjVm4FJjBi41ZuBSYwYuNWbgUmMGLjVm4FJjBi41ZuBSYwYuNWbg\nUmMGLjW2NfcA67jhhhsmedz77rtvkseV5uYeXGrMwKXGDFxqzMClxgxcaszApcYMXGpscOBJ9iV5\nIMkXphxI0njW2YPfCpybahBJ4xsUeJKDwE3A8WnHkTSmoaeqfhL4KPCiiy1IchQ4ut7T/y/wssGr\n+55R+iTw8rmHUEMrA0/yduD7VXV/krdcbF1VHQOOLe5Tw57+ZUCGLaXzuegDN5e0piGH6NcD70jy\nbeBzwFuT3DnpVJJGsTLwqvpYVR2sqquAI8CXq+qWySeTtGN+Di41ttbPg1fVvcC9k0wiaXTuwaXG\nDFxqzMClxgxcaszApcZSNf5ZVMPPZCvWOZNtKrfddtvoj3n77bevsXp3bAdtlqpa+U3jHlxqzMCl\nxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXG\nDFxqzMClxgxcasyrqu4Kbgetz6uqSnucgUuNGbjUmIFLjRm41JiBS42tDDzJlUm+kuRskjNJbv1t\nDCZp51Z+Dp7kVcCrqup0khcB9wPvqqqzS+7j5+BrcTtofaN8Dl5VF6rq9OLvPwbOAQd2Pp6kqW2t\nszjJVcA1wMnn+LejwNFRppI0isGnqia5ArgP+NuqunvFWg/R1+J20PpGO1U1yfOBzwN3rYpb0u4x\n5E22AP8KPFlVHxr0oO7B1+R20PqG7MGHBP7HwH8CDwK/XNz88aq6Z8l9DHwtbgetb5TAL4WBr8vt\noPX546LSHmfgUmMGLjVm4FJjBi41ttapqnOb4h1/gO2P+qV+3INLjRm41JiBS40ZuNSYgUuNGbjU\nmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS41t1FVV\nvfqptB734FJjBi41ZuBSYwYuNWbgUmMGLjVm4FJjgwJP8udJvpHk4SR/PfVQksaRVb+SN8k+4JvA\nnwLnga8CN1fV2SX3Gfh7fgvw5BW3gy5FVa38phmyB/9D4OGqeqSqfgZ8DnjnToeTNL0hp6oeAB57\nxtfngT969qIkR4Gj6z39k2zvvfa6J+ceQE2Ndi56VR0DjsE6h+gvH+vpJT2HIYfojwNXPuPrg4vb\nJO1yQwL/KvD7SQ4luQw4AvzbtGNJGsPKQ/Sq+nmS9wP/DuwD/qWqzkw+maQdW/kx2SU96ODX4JIu\n1Vgfk0naUAYuNWbgUmMGLjVm4FJjU11V9X+A7wxY94rF2k2xSfNu0qywWfPuhll/d8iiST4mGyrJ\nqao6PNsAa9qkeTdpVtiseTdpVg/RpcYMXGps7sCPzfz869qkeTdpVtiseTdm1llfg0ua1tx7cEkT\nMnCpsdkC35QrtSa5MslXkpxNcibJrXPPNESSfUkeSPKFuWdZJslLkpxI8lCSc0mum3umZZJ8ePF9\n8PUkn03ygrlnWmaWwBdXav1H4C+Aq4Gbk1w9xywD/Bz4SFVdDVwL/NUunvWZbgXOzT3EAHcAX6yq\n1wFvYBfPnOQA8EHgcFW9nu3rIxyZd6rl5tqDb8yVWqvqQlWdXvz9x2x/Ax6Yd6rlkhwEbgKOzz3L\nMkleDPwJ8M8AVfWzqvrhvFOttAW8MMkWsB/47szzLDVX4M91pdZdHQ1AkquAa4CT806y0ieBjwK/\nnHuQFQ4BTwCfWbycOJ7k8rmHupiqehz4BPAocAH4UVV9ad6plvNNtoGSXAF8HvhQVT019zwXk+Tt\nwPer6v65ZxlgC3gT8Omqugb4CbCb3495KdtHmoeAVwOXJ7ll3qmWmyvwjbpSa5Lnsx33XVV199zz\nrHA98I4k32b7pc9bk9w570gXdR44X1W/OiI6wXbwu9XbgG9V1RNV9TRwN/DmmWdaaq7AN+ZKrUnC\n9mvEc1X193PPs0pVfayqDlbVVWxv1y9X1a7cy1TV94DHkrx2cdONwEV/JdYu8ChwbZL9i++LG9nF\nbwrCdD8uutSGXan1euDdwINJvra47eNVdc+MM3XyAeCuxX/0jwDvmXmei6qqk0lOAKfZ/nTlAXb5\naaueqio15ptsUmMGLjVm4FJjBi41ZuBSYwYuNWbgUmP/D2bIiGtP+Va2AAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f4875bf50b8>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPgAAAEICAYAAAByNDmmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAACiZJREFUeJzt3U2oXHcZx/Hvz1yLpvXdjSbFRBClCNoStFqxYisoirpw\nEaEu3ATEl/qGqCClijsRuxAhREVo0UXsQkRU8KW4MTRNhdpERaqmqRWj9V1ExcfFvWItzcyZ3HM8\nd577/axyp/+ZeTjMt+fMzLnnpqqQ1NNj5h5A0nQMXGrMwKXGDFxqzMClxgxcaszApcYMXCR5TpK/\nJbl17lk0LgMXwKeBO+ceQuMz8F0uyWHg98C35p5F4zPwXSzJE4GPAu+dexZNw8B3t48Bn62qc3MP\nomlszD2A5pHkhcD1wJVzz6LpGPju9QrgAHA2CcBlwJ4kV1TVVTPOpRHFXxfdnZLsBZ74sJvez2bw\nb6uq87MMpdG5B9+lquqvwF//83OSPwN/M+5e3INLjfkputSYgUuNGbjUmIFLjU3yKXoSP7mTJlZV\nWbbGPbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiB\nS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNTYoMCTvCfJvUl+\nmOSLSR439WCStm9p4En2Ae8CDlXV84E9wOGpB5O0fUMP0TeAxyfZAPYCv5xuJEljWRp4VT0AfAI4\nCzwI/KGqvvnIdUmOJDmZ5OT4Y0q6GEMO0Z8CvAE4CDwTuDTJDY9cV1VHq+pQVR0af0xJF2PIIfr1\nwM+q6nxV/QO4HXjptGNJGsOQwM8CVyfZmyTAdcCZaceSNIYh78FPAMeBU8A9W/c5OvFckkaQqhr/\nQZPxH1TS/6iqLFvjmWxSYwYuNWbgUmMGLjVm4FJjBi41ZuBSYwYuNWbgUmMGLjVm4FJjBi41ZuBS\nYwYuNWbgUmMGLjVm4FJjBi41ZuBSYwYuNWbgUmMGLjVm4FJjBi41ZuBSYwYuNWbgUmMGLjVm4FJj\nBi41ZuBSYwYuNWbgUmMGLjU2KPAkT05yPMmPkpxJ8pKpB5O0fRsD190CfL2q3pTkEmDvhDNJGkmq\navGC5EnAD4Bn17LF/73PoHWSLl5VZdmaIYfoB4HzwOeT3J3kWJJLH7koyZEkJ5OcvIhZJU1gyB78\nEPB94JqqOpHkFuCPVfWRBfdxDy5NbKw9+DngXFWd2Pr5OHDVdgaT9P+xNPCq+hVwf5Lnbt10HXB6\n0qkkjWLpITpAkhcCx4BLgPuAt1bV7xas9xBdmtiQQ/RBga/KwKXpjfUeXNKaMnCpMQOXGjNwqTED\nlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOX\nGjNwqTEDlxozcKkxA5caM3CpMQOXGtuYe4BVXHvttZM87h133DHJ40pzcw8uNWbgUmMGLjVm4FJj\nBi41ZuBSYwYuNTY48CR7ktyd5KtTDiRpPKvswW8Ezkw1iKTxDQo8yX7gtcCxaceRNKahp6p+CvgA\n8IQLLUhyBDiy2tP/Fnjq4NV9zyh9CHja3EOooaWBJ3kd8OuquivJKy60rqqOAke37lPDnv6pQIYt\npfO56AM3l7SiIYfo1wCvT/Jz4EvAK5PcOulUkkaxNPCq+lBV7a+qA8Bh4NtVdcPkk0naNr8Hlxpb\n6ffBq+q7wHcnmUTS6NyDS40ZuNSYgUuNGbjUmIFLjaVq/LOohp/JVqxyJttUbrrpptEf8+abb15h\n9c7YDlovVbX0ReMeXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrM\nwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzKuq7ghuB63Oq6pKu5yBS40ZuNSYgUuNGbjUmIFL\njS0NPMnlSb6T5HSSe5Pc+P8YTNL2Lf0ePMkzgGdU1akkTwDuAt5YVacX3MfvwVfidtDqRvkevKoe\nrKpTW//+E3AG2Lf98SRNbWOVxUkOAFcCJx7lvx0BjowylaRRDD5VNcllwB3Ax6vq9iVrPURfidtB\nqxvtVNUkjwW+DNy2LG5JO8eQD9kCfAF4qKrePehB3YOvyO2g1Q3Zgw8J/GXA94B7gH9t3fzhqvra\ngvsY+ErcDlrdKIFfDANfldtBq/PXRaVdzsClxgxcaszApcYMXGpspVNV5zbFJ/4Am1/1S/24B5ca\nM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxoz\ncKkxA5caM3CpMQOXGlurq6p69VNpNe7BpcYMXGrMwKXGDFxqzMClxgxcaszApcYGBZ7k1Ul+nOSn\nST449VCSxpFlf5I3yR7gJ8CrgHPAncCbq+r0gvsM/Du/BXjyittBF6Oqlr5ohuzBXwT8tKruq6q/\nA18C3rDd4SRNb8ipqvuA+x/28zngxY9clOQIcGS1p3+Izb3XbvfQ3AOoqdHORa+qo8BRWOUQ/Wlj\nPb2kRzHkEP0B4PKH/bx/6zZJO9yQwO8EnpPkYJJLgMPAV6YdS9IYlh6iV9U/k7wD+AawB/hcVd07\n+WSStm3p12QX9aCD34NLulhjfU0maU0ZuNSYgUuNGbjUmIFLjU11VdXfAL8YsO7pW2vXxTrNu06z\nwnrNuxNmfdaQRZN8TTZUkpNVdWi2AVa0TvOu06ywXvOu06weokuNGbjU2NyBH535+Ve1TvOu06yw\nXvOuzayzvgeXNK259+CSJmTgUmOzBb4uV2pNcnmS7yQ5neTeJDfOPdMQSfYkuTvJV+eeZZEkT05y\nPMmPkpxJ8pK5Z1okyXu2Xgc/TPLFJI+be6ZFZgl860qtnwZeA1wBvDnJFXPMMsA/gfdV1RXA1cDb\nd/CsD3cjcGbuIQa4Bfh6VT0PeAE7eOYk+4B3AYeq6vlsXh/h8LxTLTbXHnxtrtRaVQ9W1amtf/+J\nzRfgvnmnWizJfuC1wLG5Z1kkyZOAlwOfBaiqv1fV7+edaqkN4PFJNoC9wC9nnmehuQJ/tCu17uho\nAJIcAK4ETsw7yVKfAj4A/GvuQZY4CJwHPr/1duJYkkvnHupCquoB4BPAWeBB4A9V9c15p1rMD9kG\nSnIZ8GXg3VX1x7nnuZAkrwN+XVV3zT3LABvAVcBnqupK4C/ATv485ilsHmkeBJ4JXJrkhnmnWmyu\nwNfqSq1JHstm3LdV1e1zz7PENcDrk/yczbc+r0xy67wjXdA54FxV/eeI6Dibwe9U1wM/q6rzVfUP\n4HbgpTPPtNBcga/NlVqThM33iGeq6pNzz7NMVX2oqvZX1QE2t+u3q2pH7mWq6lfA/Umeu3XTdcAF\n/yTWDnAWuDrJ3q3XxXXs4A8FYbpfF11oza7Ueg3wFuCeJD/Yuu3DVfW1GWfq5J3AbVv/o78PeOvM\n81xQVZ1Ichw4xea3K3ezw09b9VRVqTE/ZJMaM3CpMQOXGjNwqTEDlxozcKkxA5ca+zcstHG/CEmF\nMQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f4875f36a58>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPgAAAEICAYAAAByNDmmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAChhJREFUeJzt3V/o3Xd9x/Hna/m1tGnF6nZjk7JGGJUiaEvQ1ooV69iG\nol7sIrLuoje5mWstg6LCKIWJNyIWFSFEZWDRi9iL4aR6oS1DMJimQm3Siqvapq3Yrv7bYFTnexe/\no+uKOef7y+/79XvOO88HBPI7+ZyTd8Lvme/nnPPN96SqkNTTH809gKTpGLjUmIFLjRm41JiBS40Z\nuNSYgUuNGfh5LMn9Sf47yX8ufjw290wal4HrfVV16eLHVXMPo3EZuNSYgesjSZ5L8s0kb517GI0r\nnot+/kryRuAU8AJwCPgk8Pqq+vdZB9NoDFy/k+Q+4F+r6hNzz6JxuEXXixWQuYfQeAz8PJXksiR/\nkeSiJFtJ/gZ4C3Df3LNpPFtzD6DZXAD8E/Aa4H+AR4H3VNX3Zp1Ko/I5uNSYW3SpMQOXGjNwqTED\nlxqb5FX0JL5yJ02sqlaes+ARXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszA\npcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMCl\nxgxcamxQ4EluT/JIku8m+UKSi6YeTNLurQw8yT7gVuBgVb0W2AMcmnowSbs3dIu+BVycZAvYCzw9\n3UiSxrIy8Kp6Cvgo8ATwDPDzqvraS9clOZzkRJIT448p6VwM2aK/Ang3cAC4HLgkyc0vXVdVR6rq\nYFUdHH9MSediyBb97cAPqurZqvoVcC/wpmnHkjSGIYE/AVyXZG+SADcBp6cdS9IYhjwHPw4cA04C\nDy/uc2TiuSSNIFU1/oMm4z+opP+nqrJqjWeySY0ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuN\nGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS40Z\nuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjU2KDAk1yW5FiSR5OcTnL91INJ2r2tgevuBu6r\nqr9OciGwd8KZJI0kVbV8QfJy4DvAq2vV4v+7z6B1ks5dVWXVmiFb9APAs8DnkjyU5GiSS166KMnh\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f4875e73438>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f487bb08e48>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPgAAAEICAYAAAByNDmmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAACfVJREFUeJzt3U2oXHcZx/Hvz8SiaUWrLtSk2IiiFEErQWsrVqyCoqig\niwpVcZONL1UEUUFKF+5ELCJCiIpiUTBmISK+gFp0YTBNC7VJFWm1TW1pfa9ufHtc3BFrMDPn5p7j\nmXny/UDg3tv/TJ6k95v/mZlzz6SqkNTTY+YeQNJ0DFxqzMClxgxcaszApcYMXGrMwKXGDPw8leTP\nZ/z6R5JPzT2XxrV77gE0j6q66N8fJ7kIeBD46nwTaQru4AJ4M/AQ8MO5B9G4DFwA7wC+WJ633E78\nf3p+S/JM4G7g2VV1z9zzaFzu4Hob8CPj7snA9XbgC3MPoWl4iH4eS3Il8F3gaVX1yNzzaHzu4Oe3\ndwBHjbsvd3CpMXdwqTEDlxozcKkxA5cam+SHTZL4zJ00sarKqjXu4FJjBi41ZuBSYwYuNWbgUmMG\nLjVm4FJjBi41ZuBSYwYuNWbgUmMGLjVm4FJjBi41ZuBSYwYuNWbgUmMGLjVm4FJjBi41ZuBSYwYu\nNWbgUmMGLjVm4FJjBi41ZuBSYwYuNWbgUmODAk/y/iR3Jvlpki8nedzUg0nauZWBJ9kLvBc4UFXP\nB3YB1049mKSdG3qIvht4fJLdwB7g19ONJGksKwOvqvuBjwP3Ag8Af6yq75y5LsnBJMeTHB9/TEnn\nYsgh+sXAG4H9wDOAC5Ncd+a6qjpUVQeq6sD4Y0o6F0MO0V8F3FNVD1fV34CjwJXTjiVpDEMCvxe4\nIsmeJAGuAU5NO5akMQx5DH4MOAKcAO5Y3ObQxHNJGkGqavw7Tca/U0n/paqyao1nskmNGbjUmIFL\njRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuN\nGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41NigwJM8\nKcmRJHclOZXkpVMPJmnndg9cdxPwrap6S5ILgD0TziRpJKmq5QuSJwK3A8+qVYv/c5tB6ySdu6rK\nqjVDDtH3Aw8Dn09yW5LDSS48c1GSg0mOJzl+DrNKmsCQHfwA8GPgqqo6luQm4E9V9dElt3EHlyY2\n1g5+GjhdVccWnx8BXrSTwST9f6wMvKoeBO5L8tzFl64BTk46laRRrDxEB0jyQuAwcAFwN/DOqvr9\nkvUeoksTG3KIPijw7TJwaXpjPQaXtKEMXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMCl\nxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXG\nds89gLQurr766knu95ZbbpnkfodwB5caM3CpMQOXGjNwqTEDlxozcKkxA5caGxx4kl1JbkvyjSkH\nkjSe7ezg1wOnphpE0vgGBZ5kH/A64PC040ga09BTVT8JfBB4wtkWJDkIHBxjKGk8vwWePGjljGeU\nnoMMWrUy8CSvBx6qqluTvOJs66rqEHBocZsaNqQ0tSczNIbz9Vz0q4A3JPkl8BXglUm+NOlUkkax\nMvCq+nBV7auqS4Frge9V1XWTTyZpx3wdXGpsWz8PXlU/AH4wySSSRucOLjVm4FJjBi41ZuBSYwYu\nNeZVVbWRbrjhhkHrbrxxO2tv3MlIa8kdXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMCl\nxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqLFXjv5W37w+u9VEMfX/wTVNV\nK/9g7uBSYwYuNWbgUmMGLjVm4FJjBi41tjLwJJck+X6Sk0nuTHL9/2MwSTu38nXwJE8Hnl5VJ5I8\nAbgVeFNVnVxyG18H15rwdfBVd/JAVZ1YfPwIcArYu/PxJE1tW+8PnuRS4HLg2P/4bweBg6NMJWkU\ng09VTXIRcAvwsao6umKth+haEx6ir5TkscDXgJtXxS1pfQx5ki3AF4DfVdX7Bt2pO7jWxvm9gw8J\n/GXAD4E7gH8uvvyRqvrmktsYuNaEgY/+Gxu41sf5HbhnskmNGbjUmIFLjRm41JiBS41t61RVqbMp\nXlEC2DqVZB7u4FJjBi41ZuBSYwYuNWbgUmMGLjVm4FJjBi41ZuBSYwYuNWbgUmMGLjVm4FJjBi41\nZuBSYwYuNWbgUmMGLjVm4FJjBi41ZuBSY15VVVqY8+qnU3EHlxozcKkxA5caM3CpMQOXGjNwqTED\nlxobFHiS1yT5WZJfJPnQ1ENJGkdWvWVqkl3Az4FXA6eBnwBvraqTS24zzfuwSttWQL8TWACqauUf\nbMgO/mLgF1V1d1X9FfgK8MadDidpekNOVd0L3Peoz08DLzlzUZKDwMGR5pJG8ju2dvFuhh2VjHYu\nelUdAg6Bh+haJ0+Ze4BZDTlEvx+45FGf71t8TdKaGxL4T4DnJNmf5ALgWuDr044laQwrD9Gr6u9J\n3g18G9gFfK6q7px8Mkk7tvJlsnO6Ux+DS5Mb62UySRvKwKXGDFxqzMClxgxcamyqq6r+BvjVgHVP\nXazdFJs07ybNCps17zrM+swhiyZ5mWyoJMer6sBsA2zTJs27SbPCZs27SbN6iC41ZuBSY3MHfmjm\n33+7NmneTZoVNmvejZl11sfgkqY19w4uaUIGLjU2W+CbcqXWJJck+X6Sk0nuTHL93DMNkWRXktuS\nfGPuWZZJ8qQkR5LcleRUkpfOPdMySd6/+D74aZIvJ3nc3DMtM0vgiyu1fhp4LXAZ8NYkl80xywB/\nBz5QVZcBVwDvWuNZH+164NTcQwxwE/Ctqnoe8ALWeOYke4H3Ageq6vlsXR/h2nmnWm6uHXxjrtRa\nVQ9U1YnFx4+w9Q24d96plkuyD3gdcHjuWZZJ8kTg5cBnAarqr1X1h3mnWmk38Pgku4E9wK9nnmep\nuQL/X1dqXetoAJJcClwOHJt3kpU+CXwQ+Ofcg6ywH3gY+Pzi4cThJBfOPdTZVNX9wMeBe4EHgD9W\n1XfmnWo5n2QbKMlFwNeA91XVn+ae52ySvB54qKpunXuWAXYDLwI+U1WXA38B1vn5mIvZOtLcDzwD\nuDDJdfNOtdxcgW/UlVqTPJatuG+uqqNzz7PCVcAbkvySrYc+r0zypXlHOqvTwOmq+vcR0RG2gl9X\nrwLuqaqHq+pvwFHgyplnWmquwDfmSq1JwtZjxFNV9Ym551mlqj5cVfuq6lK2/l6/V1VructU1YPA\nfUmeu/jSNcBZ3xJrDdwLXJFkz+L74hrW+ElBmO7HRZfasCu1XgW8Dbgjye2Lr32kqr4540ydvAe4\nefEP/d3AO2ee56yq6liSI8AJtl5duY01P23VU1WlxnySTWrMwKXGDFxqzMClxgxcaszApcYMXGrs\nX3k7ahNlHw+vAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f4875e56128>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPgAAAEICAYAAAByNDmmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAACl5JREFUeJzt3V+oZXd5h/Hn6xyDzigmmps4EzpTKJY0UCODjaY0xVhQ\nFJXSixFSijcD/WcMgqhQQqC9KEhJoH9gmFYKBqWMQykSUi/UtDcdnEykMTO2hMQmExMyNppIoRjx\n7cXZpWnI7L32nLVcZ7/n+VzN2fntfV4258lv7b3XWSdVhaSeXjP3AJKmY+BSYwYuNWbgUmMGLjVm\n4FJjBi41ZuB7WJLDSe5P8oMkzyb58yRbc8+l8Rj43vaXwHPAdcDbgVuB35t1Io3KwPe2I8DfVdV/\nV9WzwAPAL808k0Zk4HvbPcCxJPuTHATez3bkasLA97Z/YnvHfhG4CJwF/n7WiTQqA9+jkryG7d36\nNHAAuBa4BvjTOefSuOJvk+1NSa4FLgFXV9ULi9s+AvxxVd0463AajTv4HlVV3weeAH43yVaSq4Hf\nAf513sk0JgPf234TeB/bO/ljwEvAnbNOpFF5iC415g4uNWbgUmMGLjVm4FJjk/zmUBLfuZMmVlVZ\ntcYdXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMCl\nxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMClxgxcamxQ4EnuTPJokm8n\n+WKS1009mKSdWxl4koPAx4GjVXUjsA84NvVgknZu6CH6FvD6JFvAfuB7040kaSwrA6+qp4HPAU8C\nzwAvVNVXX7kuyfEkZ5OcHX9MSVdiyCH6NcCHgSPAW4EDSW5/5bqqOlFVR6vq6PhjSroSQw7R3ws8\nUVWXquol4DTw7mnHkjSGIYE/CdycZH+SALcBF6YdS9IYhrwGPwOcAs4Bjyzuc2LiuSSNIFU1/oMm\n4z+opP+nqrJqjWeySY0ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS40Z\nuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm4\n1JiBS40ZuNSYgUuNGbjU2KDAk1yd5FSS7yS5kORdUw8maee2Bq67F3igqn4ryVXA/glnkjSSVNXy\n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\nAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f4875d65518>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPgAAAEICAYAAAByNDmmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAACjpJREFUeJzt3V+opHd9x/H3p3sS4sagxt7E3WC20NqGoI0sNZrSiKul\nRdEWehEhXkjh3Ngapa1UQUIueifFUErpsmqFBL1YAy1BbC6ioVBc3GyEmF0tIWqycSVbtVF64R/8\n9uJMNQZ35jl7nsdn5nver6s9s7+Z893lvPf3zMyzz6SqkNTTr809gKTpGLjUmIFLjRm41JiBS40Z\nuNSYgUuNGfg+luR3kjyU5LkkTyT507ln0rgMfJ9KsgX8K/AAcC2wDdyb5LdmHUyjimey7U9JbgK+\nCFxTix+CJA8Cp6rqw7MOp9G4g+v5Atw09xAaj4HvX18DngX+JskVSf4QuA04OO9YGpOH6PtYklcD\n/8DOrn0auAj8sKr+fNbBNBoD188k+U/gk1X1z3PPonF4iL6PJXl1kquSHEzy18B1wL/MPJZGZOD7\n27uAC+w8Fz8GvKWqfjjvSBqTh+hSY+7gUmMGLjVm4FJjBi41tjXFgybxlTtpYlWVVWvcwaXGDFxq\nzMClxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrM\nwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYGBZ7k/UkeT/KVJJ9KctXUg0na\nu5WBJzkEvBc4WlU3AQeA26ceTNLeDT1E3wJelGQLOAh8a7qRJI1lZeBV9QzwEeAp4ALwXFU9+MJ1\nSbaTnE5yevwxJV2OIYfoLwPeARwBXgFcneSOF66rquNVdbSqjo4/pqTLMeQQ/c3A16vqYlX9GLgf\neMO0Y0kaw5DAnwJuSXIwSYBjwLlpx5I0hiHPwU8BJ4EzwGOL+xyfeC5JI0hVjf+gyfgPKukXVFVW\nrfFMNqkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOX\nGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5ca\nM3CpMQOXGhsUeJKXJjmZ5KtJziV5/dSDSdq7rYHr7gE+V1V/luRK4OCEM0kaSapq+YLkJcCXgd+o\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f4875dbaef0>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPgAAAEICAYAAAByNDmmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAACmxJREFUeJzt3V+MZgdZx/Hvzx1I2Zb/3EC3oY0xkNqkFCZaqKGGxURD\nA0a4KElN4GZvBBaiIUiA2kTuiKEXxmRTURMaMC5rYghBLmwab9wwu0XL7haDBdttSyiipVZjIX24\nmLe6ru77ntk5Z8+8z34/V/Oe97xnnkzmu+e8Z857NlWFpJ5+Zu4BJE3HwKXGDFxqzMClxgxcaszA\npcYMXGrMwC8jST6QZCvJfyX50/OeO5jkoST/keS+JK+daUyNyMAvL48Dvw987tyFSV4FHAM+CbwC\n2AL+/JJPp9FtzD2ALp2qOgaQZBM4cM5TvwGcqqq/WDz/e8APkry+qh665INqNO7BBfDzwN8//6Cq\nngH+abFca8zABXAV8NR5y54CXjzDLBqRgQvg34GXnLfsJcDTM8yiERm4AE4BNz7/IMmVwM8ulmuN\nGfhlJMlGkiuAfcC+JFck2QD+ErghybsXz38K+AdPsK0/A7+8fAL4T+BjwB2Lrz9RVU8C7wY+Dfwr\n8IvA7XMNqfHEGz5IfbkHlxozcKkxA5caM3CpsUmuRU8y8Mzdm4ATU4ywZvw5aOeqKqvWmeQs+vDA\nC1g542XAn4N2bkjgHqJLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFL\njRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41Ngkd1WdylT/zVLiDQ/Vk3twqTEDlxozcKkxA5caM3Cp\nMQOXGjNwqbFBgSf5SJJTSb6Z5AtJrph6MEm7tzLwJFcDHwI2q+oGYB9w+9SDSdq9oYfoG8CLkmwA\n+4HHpxtJ0lhWBl5VjwGfAR4BngCeqqqvnb9ekkNJtpJsjT+mpIsx5BD95cC7gOuA1wBXJrnj/PWq\n6khVbVbV5vhjSroYQw7R3w58p6qerKofA8eAt0w7lqQxDAn8EeDmJPuz/bGrg8CZaceSNIYh78GP\nA0eBk8CDi9ccmXguSSPIFJ+xTjJwowUM/yx238+D7+znIAFU1cpfGq9kkxozcKkxA5caM3CpMQOX\nGluru6rOf7ZbWi/uwaXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXG\nDFxqzMClxgxcaszApcYMXGrMwKXGDFxqbK1uujiVO++8c/Rt3nXXXaNvU9op9+BSYwYuNWbgUmMG\nLjVm4FJjBi41ZuBSY4MCT/KyJEeTPJTkTJI3Tz2YpN0beqHL3cBXq+o9SV4I7J9wJkkjWRl4kpcC\nbwXeB1BVzwLPTjuWpDGkqpavkLwBOAKcBm4ETgCHq+qZ89Y7BBxaPHzTsG//L8ArdjRwTz8EXjn3\nEFozVZVV6wwJfBP4O+CWqjqe5G7gR1X1ySWvWb7RPcZr0bWOhgQ+5CTbWeBsVR1fPD4KvHE3g0m6\nNFYGXlXfAx5N8rrFooNsH65L2uOGnkX/IHDv4gz6w8D7pxtJ0lgGBV5V3wA2J55F0si8kk1qzMCl\nxgxcaszApcYMXGps5ZVsF7XRia5ku/XWW6fYLPfff/8k25WmNNaVbJLWlIFLjRm41JiBS40ZuNSY\ngUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41Nha\n3VVV0v/wrqrSZc7ApcYMXGrMwKXGDFxqzMClxgxcamxw4En2JXkgyZenHEjSeHayBz8MnJlqEEnj\nGxR4kgPAO4B7ph1H0piG7sE/C3wUeO5CKyQ5lGQrydYok0natZWBJ7kN+H5VnVi2XlUdqarNqtoc\nbTpJuzJkD34L8M4k3wW+CLwtyecnnUrSKHb0abIkvwz8TlXdtmI9P00mTcxPk0mXOT8PLq0p9+DS\nZc7ApcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxq\nzMClxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrM\nwKXGVgae5Jok9yU5neRUksOXYjBJu5eqWr5C8mrg1VV1MsmLgRPAr1fV6SWvWb5RSbtWVVm1zso9\neFU9UVUnF18/DZwBrt79eJKmtrGTlZNcC9wEHP9/njsEHBplKkmjWHmI/t8rJlcB9wOfrqpjK9b1\nEF2a2CiH6ABJXgB8Cbh3VdyS9o4hJ9kC/Bnww6r68KCNugeXJjdkDz4k8F8C/hZ4EHhusfjjVfWV\nJa8xcGliowR+MQxcmt5o78ElrScDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOX\nGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5ca\nM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpsUGBJ/nVJN9K8u0kH5t6KEnjSFUtXyHZB/wj8CvAWeDr\nwHur6vSS1yzfqKRdq6qsWmfIHvwXgG9X1cNV9SzwReBdux1O0vSGBH418Og5j88ulv0vSQ4l2Uqy\nNdZwknZnY6wNVdUR4Ah4iC7tFUP24I8B15zz+MBimaQ9bkjgXwd+Lsl1SV4I3A781bRjSRrDykP0\nqvpJkg8Afw3sAz5XVacmn0zSrq38M9lFbdT34NLkxvozmaQ1ZeBSYwYuNWbgUmMGLjU22pVs5/kB\n8M8D1nvVYt11sU7zrtOssF7z7oVZXztkpUn+TDZUkq2q2pxtgB1ap3nXaVZYr3nXaVYP0aXGDFxq\nbO7Aj8z8/XdqneZdp1lhveZdm1lnfQ8uaVpz78ElTcjApcZmC3xd7tSa5Jok9yU5neRUksNzzzRE\nkn1JHkjy5blnWSbJy5IcTfJQkjNJ3jz3TMsk+cji9+CbSb6Q5Iq5Z1pmlsAXd2r9Q+DXgOuB9ya5\nfo5ZBvgJ8NtVdT1wM/Bbe3jWcx0Gzsw9xAB3A1+tqtcDN7KHZ05yNfAhYLOqbmD7/gi3zzvVcnPt\nwdfmTq1V9URVnVx8/TTbv4D/56aTe0mSA8A7gHvmnmWZJC8F3gr8MUBVPVtV/zbvVCttAC9KsgHs\nBx6feZ6l5gp80J1a95ok1wI3AcfnnWSlzwIfBZ6be5AVrgOeBP5k8XbiniRXzj3UhVTVY8BngEeA\nJ4Cnqupr8061nCfZBkpyFfAl4MNV9aO557mQJLcB36+qE3PPMsAG8Ebgj6rqJuAZYC+fj3k520ea\n1wGvAa5Mcse8Uy03V+BrdafWJC9gO+57q+rY3POscAvwziTfZfutz9uSfH7ekS7oLHC2qp4/IjrK\ndvB71duB71TVk1X1Y+AY8JaZZ1pqrsDX5k6tScL2e8QzVfUHc8+zSlX9blUdqKpr2f65/k1V7cm9\nTFV9D3g0yesWiw4CF/wvsfaAR4Cbk+xf/F4cZA+fFITpPi661JrdqfUW4DeBB5N8Y7Hs41X1lRln\n6uSDwL2Lf+gfBt4/8zwXVFXHkxwFTrL915UH2OOXrXqpqtSYJ9mkxgxcaszApcYMXGrMwKXGDFxq\nzMClxn4KAOd6S9xTdHUAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f4876103d30>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPgAAAEICAYAAAByNDmmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAChBJREFUeJzt3U2oXHcZx/Hvz1xrTJUquNGm2CxEKYJUL1KtWLEKikVd\nuKhQwW6ysRpFERWkDehOpF2IEOobWHQRsxARdaEUXRhMUqE2qSJtbNMXrIgviBhrHxd31BjNzEnu\nnJyZJ9/PKnfmfycPzf32nDlzzrmpKiT19KypB5A0HgOXGjNwqTEDlxozcKkxA5caM3CpMQO/hCS5\nLcmRJH9L8tUzHr8sycEkJ5NUkjdNN6WWycAvLY8DnwG+/H+e+wlwC/DkRZ1Io9qYegBdPFV1CCDJ\nJrD7jMdPA3fOnvvHNNNpDG7BpcYMXGrMwKXGDFxqzINsl5AkG2z9m+8AdiTZCTxdVU8neQ6Q2dLL\nZs/9rbyeeK3Ff79LR5I7gNvPenh/Vd2R5CTw0rOe21NVJy/CaBqJgUuN+R5caszApcYMXGrMwKXG\nRvmYLIlH7rQiXgMcnXqIUVRVFq0Z5Si6gWt1FP/5eL+XIYG7iy41ZuBSYwYuNWbgUmMGLjVm4FJj\nBi41ZuBSYwYuNWbgUmMGLjVm4FJjBi41ZuBSYwYuNWbgUmMGLjVm4FJjBi41ZuBSY/7yQWlmrF/j\nlUx300e34FJjBi41ZuBSYwYuNWbgUmMGLjVm4FJjgwJP8pEkDyT5RZJvJNk59mCStm9h4EmuBD4E\nbFbVK4EdwM1jDyZp+4buom8Az02yAewCHh9vJEnLsjDwqnoM+BzwCPAE8Meq+sHZ65LsTXIkyZHl\njynpQgzZRX8h8C5gD/AS4PIkt5y9rqoOVNVmVW0uf0xJF2LILvpbgIer6qmq+jtwCHj9uGNJWoYh\ngT8CXJdkV7Yui7kRODHuWJKWYch78MPAQeAYcP/sew6MPJekJcgY18AmGefCWum8FTDseux1ux68\nqha+sGeySY0ZuNSYgUuNGbjUmIFLjXlXVWlmyrufjsUtuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSY\ngUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNedNFraXbb7990Lr9\n+89n7f7tjLSS3IJLjRm41JiBS40ZuNSYgUuNGbjUmIFLjQ0KPMkLkhxM8mCSE0leN/ZgkrZv6Iku\ndwHfq6r3JLkM2DXiTJKWZGHgSa4A3gi8H6CqTgOnxx1L0jIM2YLvAZ4CvpLkVcBRYF9V/eXMRUn2\nAnuXP6J04Xbu/Cv7998xcPXQdatg2O8yT1XNX5BsAj8Frq+qw0nuAv5UVZ+e8z3zX1TapqHnl5+P\ndTsXvaoWVj7kINsp4FRVHZ59fRB49XYGk3RxLAy8qp4EHk3y8tlDNwLHR51K0lIMPYr+QeCe2RH0\nh4BbxxtJ0rIMCryqfg5sjjyLpCXzTDapMQOXGjNwqTEDlxozcKmxhWeyXdCLeiab1tANN9wwyuve\ne++9o7zuss5kk7SmDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxq\nzMClxgxcaszApcYMXGrMwKXGDFxqzMClxryrqrSmvKuqdIkzcKkxA5caM3CpMQOXGjNwqTEDlxob\nHHiSHUnuS/KdMQeStDznswXfB5wYaxBJyzco8CS7gXcAd487jqRlGroFvxP4OPDMuRYk2ZvkSJIj\nS5lM0rYtDDzJTcBvq+rovHVVdaCqNqtqc2nTSdqWIVvw64F3JjkJfBN4c5KvjzqVpKU4r6vJkrwJ\n+FhV3bRgnVeTSSPzajLpEuf14NKacgsuXeIMXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxq\nzMClxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrM\nwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqbGHgSa5K8qMkx5M8kGTfxRhM0valquYvSF4MvLiq\njiV5PnAUeHdVHZ/zPfNfVNK2VVUWrVm4Ba+qJ6rq2OzPfwZOAFdufzxJY9s4n8VJrgauBQ7/n+f2\nAnuXMpWkpVi4i/7vhcnzgHuBz1bVoQVr3UWXRraUXXSAJM8GvgXcsyhuSatjyEG2AF8Dfl9VHx70\nom7BpdEN2YIPCfwNwI+B+4FnZg9/qqq+O+d7DFwa2VICvxAGLo1vae/BJa0nA5caM3CpMQOXGjNw\nqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3Cp\nMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqbFBgSd5W5Jf\nJvl1kk+MPZSk5UhVzV+Q7AB+BbwVOAX8DHhvVR2f8z3zX1TStlVVFq0ZsgV/LfDrqnqoqk4D3wTe\ntd3hJI1vSOBXAo+e8fWp2WP/JcneJEeSHFnWcJK2Z2NZL1RVB4AD4C66tCqGbMEfA6464+vds8ck\nrbghgf8MeFmSPUkuA24Gvj3uWJKWYeEuelU9neQ24PvADuDLVfXA6JNJ2raFH5Nd0Iv6Hlwa3bI+\nJpO0pgxcaszApcYMXGrMwKXGlnYm21l+B/xmwLoXzdaui3Wad51mhfWadxVmfemQRaN8TDZUkiNV\ntTnZAOdpneZdp1lhveZdp1ndRZcaM3CpsakDPzDx33++1mnedZoV1mvetZl10vfgksY19RZc0ogM\nXGpsssDX5U6tSa5K8qMkx5M8kGTf1DMNkWRHkvuSfGfqWeZJ8oIkB5M8mOREktdNPdM8ST4y+zn4\nRZJvJNk59UzzTBL47E6tXwDeDlwDvDfJNVPMMsDTwEer6hrgOuADKzzrmfYBJ6YeYoC7gO9V1SuA\nV7HCMye5EvgQsFlVr2Tr/gg3TzvVfFNtwdfmTq1V9URVHZv9+c9s/QD+z00nV0mS3cA7gLunnmWe\nJFcAbwS+BFBVp6vqD9NOtdAG8NwkG8Au4PGJ55lrqsAH3al11SS5GrgWODztJAvdCXwceGbqQRbY\nAzwFfGX2duLuJJdPPdS5VNVjwOeAR4AngD9W1Q+mnWo+D7INlOR5wLeAD1fVn6ae51yS3AT8tqqO\nTj3LABvAq4EvVtW1wF+AVT4e80K29jT3AC8BLk9yy7RTzTdV4Gt1p9Ykz2Yr7nuq6tDU8yxwPfDO\nJCfZeuvz5iRfn3akczoFnKqqf+0RHWQr+FX1FuDhqnqqqv4OHAJeP/FMc00V+NrcqTVJ2HqPeKKq\nPj/1PItU1SerandVXc3Wf9cfVtVKbmWq6kng0SQvnz10I3DOX4m1Ah4Brkuya/ZzcSMrfFAQxrtc\ndK41u1Pr9cD7gPuT/Hz22Keq6rsTztTJB4F7Zv+jfwi4deJ5zqmqDic5CBxj69OV+1jx01Y9VVVq\nzINsUmMGLjVm4FJjBi41ZuBSYwYuNWbgUmP/BIhKab0+8MwsAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f487bb08940>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for seed in range(12):\n",
" image2, boxes2 = random_transform(image.copy(), boxes.copy(), train_image_data_generator, seed=seed)\n",
" plot_boxes(image2, boxes2)\n",
" plt.title(str(seed))\n",
" plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"ExecuteTime": {
"end_time": "2017-12-14T02:00:28.649129Z",
"start_time": "2017-12-14T02:00:27.380Z"
}
},
"outputs": [],
"source": [
"boxes, boxes2"
]
},
{
"cell_type": "markdown",
"metadata": {
"ExecuteTime": {
"end_time": "2017-12-04T01:59:48.073884Z",
"start_time": "2017-12-04T01:59:48.071640Z"
}
},
"source": [
"# How to get bboxes to be the same side before and after?"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"ExecuteTime": {
"end_time": "2017-12-14T01:57:12.007110Z",
"start_time": "2017-12-14T01:57:12.004134Z"
},
"collapsed": true
},
"outputs": [],
"source": [
"# create image data generator objects\n",
"train_image_data_generator = keras.preprocessing.image.ImageDataGenerator(\n",
" horizontal_flip=True,\n",
" vertical_flip=True\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"ExecuteTime": {
"end_time": "2017-12-14T01:57:12.397574Z",
"start_time": "2017-12-14T01:57:12.347612Z"
},
"collapsed": true
},
"outputs": [],
"source": [
"\n",
"def random_transform(\n",
" image,\n",
" boxes,\n",
" image_data_generator,\n",
" seed=None\n",
"):\n",
" if seed is None:\n",
" seed = np.random.randint(10000)\n",
"\n",
" image = image_data_generator.random_transform(image, seed=seed)\n",
"\n",
" # set fill mode so that masks are not enlarged\n",
" fill_mode = image_data_generator.fill_mode\n",
" image_data_generator.fill_mode = 'constant'\n",
"\n",
" for index in range(boxes.shape[0]):\n",
" # generate box mask and randomly transform it\n",
" mask = np.zeros_like(image, dtype=np.uint8)\n",
" b = boxes[index, :4].astype(int)\n",
"\n",
" assert(b[0] < b[2] and b[1] < b[3]), 'Annotations contain invalid box: {}'.format(b)\n",
" assert(b[2] < image.shape[1] and b[3] < image.shape[0]), 'Annotation ({}) is outside of image shape ({}).'.format(b, image.shape)\n",
"\n",
" mask[b[1]:b[3], b[0]:b[2], :] = 255\n",
" mask = image_data_generator.random_transform(mask, seed=seed)[..., 0]\n",
" mask = mask.copy() # to force contiguous arrays\n",
"\n",
" # find bounding box again in augmented image\n",
" [i, j] = np.where(mask == 255)\n",
" boxes[index, 0] = float(min(j))\n",
" boxes[index, 1] = float(min(i))\n",
" boxes[index, 2] = float(max(j))\n",
" boxes[index, 3] = float(max(i))\n",
"\n",
" # restore fill_mode\n",
" image_data_generator.fill_mode = fill_mode\n",
"\n",
" return image, boxes"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"ExecuteTime": {
"end_time": "2017-12-14T01:57:13.459272Z",
"start_time": "2017-12-14T01:57:12.876287Z"
}
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPgAAAEICAYAAAByNDmmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAClRJREFUeJzt3V+oZXd5h/Hn2zmGZCb+i4WiM6GZglXSgEaGGpPSgLHQ\nomgvehFLvBDKgFaNUvAflDgXvShIMRdSGKaVUkNyMaZQbLBeqKE3HZxMlDgzNkjUZGIk0WiSSiGG\nvL04WzodMnuvM2ct19nveT5Xc/asvc7LcJ75rb322uukqpDU02/MPYCk6Ri41JiBS40ZuNSYgUuN\nGbjUmIFLjRn4LpbkqiT/kuQXSX6Y5M/nnknj2ph7AM3q88DzwG8Bbwb+Lcm3q+r0vGNpLPFKtt0p\nyT7gZ8B1VfXw4rF/Bh6vqk/OOpxG4yH67vW7wAu/invh28DvzTSPJmDgu9eVwLMXPPYM8PIZZtFE\nDHz3+m/gFRc89grguRlm0UQMfPd6GNhI8vrzHnsT4Am2RjzJtosluQco4C/YPIt+H3CjZ9H7cAXf\n3T4IXAE8CdwNfMC4e3EFlxpzBZcaM3CpMQOXGjNwqbFJPmySxDN30sSqKqu2cQWXGjNwqTEDlxoz\ncKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNw\nqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caGxR4ko8lOZ3kO0nuTnL51INJ2r6VgSfZ\nD3wEOFRV1wF7gFunHkzS9g09RN8ArkiyAewFfjTdSJLGsjLwqnoc+CzwKPAE8ExVffXC7ZIcTnIy\nycnxx5R0KYYcor8aeA9wEHgdsC/JbRduV1VHq+pQVR0af0xJl2LIIfo7gO9X1VNV9UvgXuDGaceS\nNIYhgT8K3JBkb5IAtwBnpx1L0hiGvAY/ARwHTgEPLZ5zdOK5JI0gVTX+TpPxdyrp/6mqrNrGK9mk\nxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXG\nDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYM\nXGpsUOBJXpXkeJLvJjmb5G1TDyZp+zYGbncn8JWq+rMklwF7J5xJ0khSVcs3SF4JfAv4nVq18f89\n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\nYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f4875c8aef0>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPgAAAEICAYAAAByNDmmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAACgdJREFUeJzt3U+opXd9x/H3p3MNmYlFRTc6E5opFEsQ2shF80cMJJa2\nKNpFFwmkCzezqTWKoCZExkBdCCLJQgrDtGnBoItxFkXEulBDNx0ymQgxM1ok2mSSiJH4J4hRQ75d\n3FMaQ+ac5859njznfOf9Wt175neefAn3Pb/nnPPMc1NVSOrpD+YeQNJ0DFxqzMClxgxcaszApcYM\nXGrMwKXGDPwSluRDSU4n+U2Sf517Ho1va+4BNKungH8E/hLYP/MsmoCBX8Kq6iRAkm3g0MzjaAKe\nokuNGbjUmIFLjRm41Jhvsl3Ckmyx8zOwD9iX5HLghap6Yd7JNBZ38EvbXcCvgU8Cty2+vmvWiTSq\neMMHqS93cKkxA5caM3CpMQOXGpvkY7IkvnMnTayqsmqNO7jUmIFLjRm41JiBS40ZuNSYgUuNGbjU\nmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSY\ngUuNGbjUmIFLjRm41JiBS40ZuNTYoMCTfDTJo0m+m+RLSS6fejBJe7cy8CQHgQ8D21X1NmAfcMvU\ng0nau6Gn6FvA/iRbwAHgqelGkjSWlYFX1ZPA54DHgaeBX1TVN16+LsmRJKeTnB5/TEkXY8gp+huA\nDwCHgbcAVyS57eXrqupYVW1X1fb4Y0q6GENO0d8D/LCqnqmq3wEngeunHUvSGIYE/jhwbZIDSQLc\nDJybdixJYxjyGvwUcAI4AzyyeM6xieeSNIJU1fgHTcY/qKTfU1VZtcYr2aTGDFxqzMClxgxcaszA\npcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMCl\nxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMClxgxcamxQ4Elen+REku8l\nOZfkuqkHk7R3WwPX3Qt8var+NsllwIEJZ5I0klTV8gXJ64DvAH9cqxb//3MGrZN08aoqq9YMOUU/\nDDwD3Jfk4STHk1zx8kVJjiQ5neT0RcwqaQJDdvBt4L+AG6rqVJJ7gV9W1aeWPMcdXJrYWDv4eeB8\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f4875cfc080>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPgAAAEICAYAAAByNDmmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAACiJJREFUeJzt3UHIZXd5x/Hvz3lj40QbrYJoEswsqm0QJPJSoimmmAha\ng+miiwgKdTMuWh2lRVppibPoTopZFGFIKgVHRSZZiKh1oYRuOjiZBOPM2GJjTCZGTBuqQaRJyOPi\nvZYxdu4977zneO593u9nNe+d/z3zEN5vzrnnnntuqgpJPb1o7gEkTcfApcYMXGrMwKXGDFxqzMCl\nxgxcaszA96kkv5Xk7iQ/SPJ0kgeTvGvuuTQuA9+/toDHgJuAK4G/Bb6Y5NoZZ9LI4pVs+qUk3waO\nVtU9c8+icbgHFwBJXg28Hjgz9ywaj3twkeQy4KvAf1bVB+eeR+Mx8H0uyYuAzwG/DdxWVc/OPJJG\ntDX3AJpPkgB3A68G/ti4+zHw/e3TwO8Dt1TVz+ceRuPzEH2fSvI64BHgf4HnLvirD1bV8VmG0ugM\nXGrMt8mkxgxcaszApcYMXGpskrfJknjmTppYVWXVGvfgUmMGLjVm4FJjBi41ZuBSYwYuNWbgUmMG\nLjVm4FJjBi415h1d1Nx/A78z9xADPQW8ctQtTnLDB69F1/ooYOUl22tid7N6Lbq0zxm41JiBS40Z\nuNSYgUuNGbjUmIFLjRm41JiBS415qaq0MNXXeO18ies83INLjRm41JiBS40ZuNSYgUuNGbjUmIFL\njQ0KPMlHk5xJ8p0kn09y+dSDSdq7lYEnuQr4MLBdVW8EDgC3Tz2YpL0beoi+BbwkyRZwEPjhdCNJ\nGsvKwKvqceCTwKPAE8BPqurrL1yX5HCSU0lOjT+mpEsx5BD9FcBtwCHgtcAVSd73wnVVdayqtqtq\ne/wxJV2KIYfotwDfr6onq+pZ4F7grdOOJWkMQwJ/FLghycHsfCzmZuDctGNJGsOQ1+AngRPAaeCh\nxXOOTTyXpBH4zSZqbvi3hcz/eXC/2UTSLhi41JiBS40ZuNSYgUuNeVdVaWHOu59OxT241JiBS40Z\nuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm4\n1JiBS41500VtpDvuuGPQuqNHd7P26F5GWkvuwaXGDFxqzMClxgxcaszApcYMXGrMwKXGBgWe5OVJ\nTiT5bpJzSd4y9WCS9m7ohS53Al+rqj9N8mLg4IQzSRrJysCTXAm8DfgzgKp6Bnhm2rEkjWHIHvwQ\n8CTwmSRvAu4HjlTVzy5clOQwcHj8EaVLd/nlP+fo0U8MXD103VSeGn2LqarlC5Jt4N+AG6vqZJI7\ngZ9W1d8tec7yjUp7NPT68t3YtGvRqyqr1gw5yXYeOF9VJxc/nwDevJfBJP1mrAy8qn4EPJbkDYuH\nbgbOTjqVpFEMPYv+IeD44gz6w8AHphtJ0lgGBV5VDwLbE88iaWReySY1ZuBSYwYuNWbgUmMGLjW2\n8kq2S9qoV7JpA910002TbPe+++6bZLtjXckmaUMZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuN\nGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNeVdVaUN5V1VpnzNwqTED\nlxozcKkxA5caM3CpMQOXGhsceJIDSR5I8uUpB5I0nt3swY8A56YaRNL4BgWe5Grg3cBd044jaUxD\n9+CfAj4GPH+xBUkOJzmV5NQok0nas5WBJ7kV+HFV3b9sXVUdq6rtqtoebTpJezJkD34j8J4kjwBf\nAN6e5LOTTiVpFLv6NFmSPwL+qqpuXbHOT5NJE/PTZNI+5+fBpQ3lHlza5wxcaszApcYMXGrMwKXG\nDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYM\nXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGpsZeBJrknyzSRnk5xJ\ncuQ3MZikvUtVLV+QvAZ4TVWdTvIy4H7gT6rq7JLnLN+opD2rqqxas3IPXlVPVNXpxZ+fBs4BV+19\nPElT29rN4iTXAtcDJ/+fvzsMHB5lKkmjWHmI/n8Lk5cC9wF/X1X3rljrIbo0sVEO0QGSXAbcAxxf\nFbek9THkJFuAfwaeqqqPDNqoe3BpckP24EMC/0PgX4GHgOcXD3+8qr6y5DkGLk1slMAvhYFL0xvt\nNbikzWTgUmMGLjVm4FJjBi41ZuBSYwYuNWbgUmMGLjVm4FJjBi41ZuBSYwYuNWbgUmMGLjVm4FJj\nBi41ZuBSYwYuNWbgUmMGLjVm4FJjBi41ZuBSYwYuNWbgUmMGLjVm4FJjBi41ZuBSYwYuNWbgUmMG\nLjVm4FJjBi41NijwJO9M8u9Jvpfkr6ceStI4UlXLFyQHgP8A3gGcB74FvLeqzi55zvKNStqzqsqq\nNUP24H8AfK+qHq6qZ4AvALftdThJ0xsS+FXAYxf8fH7x2K9IcjjJqSSnxhpO0t5sjbWhqjoGHAMP\n0aV1MWQP/jhwzQU/X714TNKaGxL4t4DfTXIoyYuB24EvTTuWpDGsPESvqueS/AXwL8AB4J+q6szk\nk0nas5Vvk13SRn0NLk1urLfJJG0oA5caM3CpMQOXGjNwqbHRrmR7gf8CfjBg3asWazfFJs27SbPC\nZs27DrO+bsiiSd4mGyrJqaranm2AXdqkeTdpVtiseTdpVg/RpcYMXGps7sCPzfzv79YmzbtJs8Jm\nzbsxs876GlzStObeg0uakIFLjc0W+KbcqTXJNUm+meRskjNJjsw90xBJDiR5IMmX555lmSQvT3Ii\nyXeTnEvylrlnWibJRxe/B99J8vkkl8890zKzBL64U+s/Au8CrgPem+S6OWYZ4DngL6vqOuAG4M/X\neNYLHQHOzT3EAHcCX6uq3wPexBrPnOQq4MPAdlW9kZ37I9w+71TLzbUH35g7tVbVE1V1evHnp9n5\nBfy1m06ukyRXA+8G7pp7lmWSXAm8DbgboKqeqar/mXeqlbaAlyTZAg4CP5x5nqXmCnzQnVrXTZJr\ngeuBk/NOstKngI8Bz889yAqHgCeBzyxeTtyV5Iq5h7qYqnoc+CTwKPAE8JOq+vq8Uy3nSbaBkrwU\nuAf4SFX9dO55LibJrcCPq+r+uWcZYAt4M/Dpqroe+BmwzudjXsHOkeYh4LXAFUneN+9Uy80V+Ebd\nqTXJZezEfbyq7p17nhVuBN6T5BF2Xvq8Pcln5x3pos4D56vql0dEJ9gJfl3dAny/qp6sqmeBe4G3\nzjzTUnMFvjF3ak0Sdl4jnquqf5h7nlWq6m+q6uqqupad/67fqKq13MtU1Y+Ax5K8YfHQzcBFvxJr\nDTwK3JDk4OL34mbW+KQgTPdx0aU27E6tNwLvBx5K8uDisY9X1VdmnKmTDwHHF/+jfxj4wMzzXFRV\nnUxyAjjNzrsrD7Dml616qarUmCfZpMYMXGrMwKXGDFxqzMClxgxcaszApcZ+AeohdlQC0QRrAAAA\nAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f48760a7e80>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f4875e6e438>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPgAAAEICAYAAAByNDmmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAACipJREFUeJzt3UuoXWcZh/Hnb2Kpab070aSYCKIUQVuCVitWbAVFUQcO\nItSBk4B4ab3gDaRGcSCItAMRQlSEFh3EDkREBS/FiaFpKtQmKlI1Ta00Wu9aqvR1cI4YS7P3Ojlr\ndZ395vmNcna/vfISztNv7b3XWSdVhaSenjD3AJKmY+BSYwYuNWbgUmMGLjVm4FJjBi41ZuAiyfOT\nPJTk5rln0bgMXACfB26fewiNz8DPc0n2AX8Cvjf3LBqfgZ/HkjwF+CTw/rln0TQM/Pz2KeCLVXVq\n7kE0je1zD6B5JHkJcA1w2dyzaDoGfv56NbAbOJkE4GJgW5JLq+ryGefSiOKPi56fkuwAnnLGQx9k\nLfh3VtXpWYbS6NzBz1NV9Q/gH//9OsnfgIeMuxd3cKkx30WXGjNwqTEDlxozcKmxSd5FT+I7d9LE\nqirL1riDS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuN\nGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjQ0KPMn7ktyd\n5KdJvprkwqkHk7R5SwNPshN4L7C3ql4EbAP2TT2YpM0beoq+HXhSku3ADuC3040kaSxLA6+q+4DP\nAieB+4E/V9V3H70uyf4kR5McHX9MSediyCn604E3A3uA5wAXJbn20euq6mBV7a2qveOPKelcDDlF\nvwb4VVWdrqp/AbcCr5h2LEljGBL4SeCKJDuSBLgaODHtWJLGMOQ1+BHgMHAMuGv9OQcnnkvSCFJV\n4x80Gf+gkv5PVWXZGq9kkxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTED\nlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOX\nGjNwqTEDlxozcKkxA5caM3CpsUGBJ3laksNJfpbkRJKXTz2YpM3bPnDdTcC3q+qtSS4Adkw4k6SR\npKoWL0ieCvwEeF4tW/y/5wxaJ+ncVVWWrRlyir4HOA18OcmdSQ4luejRi5LsT3I0ydFzmFXSBIbs\n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\naEAHgNUAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f487609c828>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for seed in range(5):\n",
" image2, boxes2 = random_transform(image.copy(), boxes.copy(), train_image_data_generator, seed=seed)\n",
" plot_boxes(image2, boxes2)\n",
" plt.title(str(seed))\n",
" plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"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.0"
},
"toc": {
"colors": {
"hover_highlight": "#DAA520",
"navigate_num": "#000000",
"navigate_text": "#333333",
"running_highlight": "#FF0000",
"selected_highlight": "#FFD700",
"sidebar_border": "#EEEEEE",
"wrapper_background": "#FFFFFF"
},
"moveMenuLeft": true,
"nav_menu": {},
"navigate_menu": true,
"number_sections": true,
"sideBar": true,
"skip_h1_title": false,
"threshold": 4,
"toc_cell": false,
"toc_position": {},
"toc_section_display": "block",
"toc_window_display": false,
"widenNotebook": false
},
"varInspector": {
"cols": {
"lenName": 16,
"lenType": 16,
"lenVar": 40
},
"kernels_config": {
"python": {
"delete_cmd_postfix": "",
"delete_cmd_prefix": "del ",
"library": "var_list.py",
"varRefreshCmd": "print(var_dic_list())"
},
"r": {
"delete_cmd_postfix": ") ",
"delete_cmd_prefix": "rm(",
"library": "var_list.r",
"varRefreshCmd": "cat(var_dic_list()) "
}
},
"types_to_exclude": [
"module",
"function",
"builtin_function_or_method",
"instance",
"_Feature"
],
"window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment