Skip to content

Instantly share code, notes, and snippets.

@hgaiser
Created December 12, 2017 09:39
Show Gist options
  • Save hgaiser/1fcafaf7809cbd1e0f3797f1914e5db3 to your computer and use it in GitHub Desktop.
Save hgaiser/1fcafaf7809cbd1e0f3797f1914e5db3 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"ExecuteTime": {
"end_time": "2017-12-04T01:55:56.169770Z",
"start_time": "2017-12-04T01:55:56.161469Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Using TensorFlow backend.\n"
]
}
],
"source": [
"#%matplotlib inline\n",
"%pylab inline\n",
"from keras_retinanet.utils.image import random_transform\n",
"import keras.preprocessing.image\n",
"import keras_retinanet\n",
"import cv2\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"ExecuteTime": {
"end_time": "2017-12-04T01:56:13.949607Z",
"start_time": "2017-12-04T01:56:13.946040Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"'2.1.2'"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"keras.__version__"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"ExecuteTime": {
"end_time": "2017-12-04T01:43:34.067008Z",
"start_time": "2017-12-04T01:43:34.064103Z"
},
"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": 4,
"metadata": {
"ExecuteTime": {
"end_time": "2017-12-04T01:53:42.300806Z",
"start_time": "2017-12-04T01:53:42.291015Z"
}
},
"outputs": [],
"source": [
"# Test data\n",
"image = np.zeros((10,10,3), dtype=np.uint8)\n",
"image[1,1]=255\n",
"image[3,2]=127\n",
"image[4,1]=64\n",
"\n",
"#x,y = np.argwhere(image.mean(-1)==255).T\n",
"#boxes = np.array([x-1,y-1,x+1,y+1]).T\n",
"boxes = np.array([[1, 1, 2, 2]])"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"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)\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)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPgAAAEICAYAAAByNDmmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAACm1JREFUeJzt3VGopXW5x/Hvr9lJzpiUHDjUjKSC\ndSqhjCFM4yBZUBTZRRd2sIsgBup0sjgQFYR4ce4i8iKCYU4RJXoxGURJdVET3TS4HRMbp0KsdKuh\n59QxTzfm8elirzjT5Kz17tnr9d3r2d8PDMxavmv5zLC/83/Xu9/9vqkqJPX0oqkHkDQeA5caM3Cp\nMQOXGjNwqTEDlxozcKkxA9/FklyU5FtJ/pTkt0n+ZeqZtFxrUw+gSX0JeAb4R+CNwHeT3FdVJ6cd\nS8sSz2TbnZLsA/4AXFFVv5o993Xg0ar69KTDaWncRd+9Xg3831/jnrkPeP1E82gEBr57XQA8dcZz\nTwEvnWAWjcTAd6//BS4847kLgacnmEUjMfDd61fAWpLLT3vuDYAH2BrxINsuluQOoIAPs3kU/S7g\nao+i9+EKvrt9FDgfeAK4HfiIcffiCi415gouNWbgUmMGLjVm4FJjo/ywSRKP3Ekjq6os2sYVXGrM\nwKXGDFxqzMClxgxcaszApcYMXGpsUOBJ3pnkl0keTOL1uqQVsfCnyZLsYfPiAO8ANoC7gQ9U1QNz\nXuOJLtLIlnWiy5uBB6vqoap6BrgDuH67w0ka35DA9wOPnPZ4Y/bc30hyKMl6kvVlDSdpe4aci/58\nuwF/twteVYeBw+AuurRTDFnBN4CLT3t8AHhsnHEkLdOQwO8GLk9yaZLzgBuAb487lqRlWLiLXlXP\nJvkY8H1gD/AVL8wnrYZRLrroZ3BpfP48uLTLGbjUmIFLjRm41JiBS42NclXVsYx1m6Vk4cFIaSW5\ngkuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41FjLwC+6CJLhvzavITnk139P8weSztFK\nXdFl6KwJbOWPNfxc9OL5LzIrvfC8oou0yxm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS42t1FVV\nt3LGmVdKlVzBpdYMXGrMwKXGDFxqzMClxgxcaszApcYWBp7k4iQ/SnIqyckkN70Qg0navoWXbEry\nCuAVVXUiyUuBe4D3VdUDc14zzn1+Bxvr0kpeskk7x1Iu2VRVj1fVidnvnwZOAfu3P56ksW3pVNUk\nlwBXAsef578dAg4tZapt+z2bq+0Y7yutjsFXVU1yAfBj4D+q6s4F2068iy71t7SrqiZ5MfBN4LZF\ncUvaOYYcZAvwNeD3VfWJQW/qCi6NbsgKPiTwtwI/Ae4Hnps9/dmqumvOawxcGtlSAj8XBi6Nzzub\nSLucgUuNGbjUmIFLja3URRfHcvPNNy/9PW+55Zalv6e0Va7gUmMGLjVm4FJjBi41ZuBSYwYuNWbg\nUmMGLjVm4FJjBi41ZuBSYwYuNWbgUmMGLjVm4FJjBi41ZuBSYwYuNWbgUmMGLjVm4FJjK3Xromuv\nvXaMt+XYsWOjvK80Jm9dJO1yBi41ZuBSYwYuNWbgUmMGLjVm4FJjgwNPsifJvUm+M+ZAkpZnKyv4\nTcCpsQaRtHyDAk9yAHg3cGTccSQt09AV/IvAp4DnzrZBkkNJ1pOsL2UySdu2MPAk7wGeqKp75m1X\nVYer6mBVHVzadJK2ZcgKfg3w3iS/Ae4A3pbkG6NOJWkpFgZeVZ+pqgNVdQlwA/DDqrpx9MkkbZvf\nB5caW9vKxlV1DDg2yiSSls4VXGrMwKXGDFxqzMClxgxcamylrqoq6f95VVVplzNwqTEDlxozcKkx\nA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTED\nlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caGxR4kpclOZrkF0lOJXnL2INJ2r61gdvdCnyv\nqt6f5Dxg74gzSVqShfcHT3IhcB9wWQ28mbj3B5fGt6z7g18GPAl8Ncm9SY4k2XfmRkkOJVlPsn4O\ns0oawZAV/CDwU+Caqjqe5Fbgj1X1uTmvcQWXRrasFXwD2Kiq47PHR4E3bWcwSS+MhYFX1e+AR5K8\nZvbUdcADo04laSkW7qIDJHkjcAQ4D3gI+FBV/WHO9u6iSyMbsos+KPCtMnBpfMv6DC5pRRm41JiB\nS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFL\njRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNTYoMCT\nfDLJySQ/T3J7kpeMPZik7VsYeJL9wMeBg1V1BbAHuGHswSRt39Bd9DXg/CRrwF7gsfFGkrQsCwOv\nqkeBzwMPA48DT1XVD87cLsmhJOtJ1pc/pqRzMWQX/eXA9cClwCuBfUluPHO7qjpcVQer6uDyx5R0\nLobsor8d+HVVPVlVfwbuBK4edyxJyzAk8IeBq5LsTRLgOuDUuGNJWoYhn8GPA0eBE8D9s9ccHnku\nSUuQqlr+mybLf1NJf6Oqsmgbz2STGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5ca\nM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxpb\nG+l9/wv47YDt/mG27apYpXlXaVZYrXl3wqyvGrLRKDcfHCrJelUdnGyALVqleVdpVliteVdpVnfR\npcYMXGps6sAPT/z/36pVmneVZoXVmndlZp30M7ikcU29gksakYFLjU0WeJJ3JvllkgeTfHqqORZJ\ncnGSHyU5leRkkpumnmmIJHuS3JvkO1PPMk+SlyU5muQXs7/jt0w90zxJPjn7Ovh5ktuTvGTqmeaZ\nJPAke4AvAe8CXgd8IMnrpphlgGeBf6+q1wJXAf+6g2c93U3AqamHGOBW4HtV9U/AG9jBMyfZD3wc\nOFhVVwB7gBumnWq+qVbwNwMPVtVDVfUMcAdw/USzzFVVj1fVidnvn2bzC3D/tFPNl+QA8G7gyNSz\nzJPkQuCfgf8EqKpnqup/pp1qoTXg/CRrwF7gsYnnmWuqwPcDj5z2eIMdHg1AkkuAK4Hj006y0BeB\nTwHPTT3IApcBTwJfnX2cOJJk39RDnU1VPQp8HngYeBx4qqp+MO1U800VeJ7nuR39/bokFwDfBD5R\nVX+cep6zSfIe4ImqumfqWQZYA94EfLmqrgT+BOzk4zEvZ3NP81LglcC+JDdOO9V8UwW+AVx82uMD\n7OBdnSQvZjPu26rqzqnnWeAa4L1JfsPmR5+3JfnGtCOd1QawUVV/3SM6ymbwO9XbgV9X1ZNV9Wfg\nTuDqiWeaa6rA7wYuT3JpkvPYPFDx7YlmmStJ2PyMeKqqvjD1PItU1Weq6kBVXcLm3+sPq2pHrjJV\n9TvgkSSvmT11HfDAhCMt8jBwVZK9s6+L69jBBwVhvB8Xnauqnk3yMeD7bB6J/EpVnZxilgGuAT4I\n3J/kZ7PnPltVd004Uyf/Btw2+4f+IeBDE89zVlV1PMlR4ASb3125lx1+2qqnqkqNeSab1JiBS40Z\nuNSYgUuNGbjUmIFLjRm41NhfAJ5Fjw2DBU8yAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f50767723c8>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPgAAAEICAYAAAByNDmmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAChhJREFUeJzt3U2IXXcZx/Hvz4ylTVVU3GhSbAvi\nC4JWBqlWpFhFRbEuXFSoCzfZWK0iSBWlFHQnYhcihPgGFruIWYiIutCIG0OnqVLTqJSq7diK9V1E\nrKGPi7lCrM29ZzrneGae+X4gMPf23JOHMN/+z71z5pxUFZJ6etrcA0iajoFLjRm41JiBS40ZuNSY\ngUuNGbjUmIHvY0luSrKR5J9Jvjz3PBrf2twDaFYPA58E3gxcMvMsmoCB72NVdQIgyTpweOZxNAEP\n0aXGDFxqzMClxgxcaswP2faxJGtsfQ8cAA4kuRg4V1Xn5p1MY3EF398+DvwDuAW4cfH1x2edSKOK\nF3yQ+nIFlxozcKkxA5caM3CpsUl+TJbET+6kiVVVVm3jCi41ZuBSYwYuNWbgUmMGLjVm4FJjBi41\nNijwJG9J8vMk9ye5ZeqhJI1j5W+TJTkA/AJ4E7AJ3AW8u6ruW/IaT3SRJjbWiS6vBu6vqgeq6jHg\nTuD6nQ4naXpDAj8EPHTe483Fc/8lyZHFRfQ3xhpO0s4MORf9yQ4D/ucQvKqOAkfBQ3Rptxiygm8C\nl533+DBbd8SQtMsNCfwu4EVJrkhyEXAD8I1px5I0hpWH6FV1LslNwHfYuvrmF6vqzOSTSdqxSS66\n6HtwaXr+Pri0zxm41JiBS40ZuNSYgUuNefNBaWGq23glKz/snowruNSYgUuNGbjUmIFLjRm41JiB\nS40ZuNSYgUuNGbjUmIFLjRm4tE3PfS4kw/9sXaN0yJ8/jD6rV3SRFoa2kMB2shl+Lnrx5BcxvsDW\nXtFF2t8MXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGvKqqtLCdM87mvFLqdriCS40ZuNSYgUuN\nGbjUmIFLjRm41JiBS42tDDzJZUm+n+RskjNJbv5/DCZp51ZesinJ84HnV9XpJM8E7gbeWVX3LXmN\nl2xSY9u7tNJU+x3lkk1V9UhVnV58/TfgLHBo8BSSZrOtU1WTXA5cBZx6kv92BDgyylTSrvZHtlbb\nKfY7rsFXVU3yDOAHwKeq6sSKbT1ElyY22lVVkzwd+Dpwx6q4Je0eQz5kC/AV4I9V9cFBO3UFlyY3\nZAUfEvjrgB8C9wKPL57+WFV9a8lrDFya2CiBPxUGLk3PO5tI+5yBS40ZuNSYgUuNedFF7Um33nrr\n6Pu87bbbRt/n3FzBpcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYM\nXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGvHWRtHDttddOst+TJ09Osl9vXSTtcwYuNWbgUmMG\nLjVm4FJjBi41ZuBSY4MDT3IgyT1JvjnlQJLGs50V/Gbg7FSDSBrfoMCTHAbeBhybdhxJYxq6gn8W\n+Ajw+IU2SHIkyUaSjVEmk7RjKwNP8nbgd1V197LtqupoVa1X1fpo00nakSEr+DXAO5L8CrgTeEOS\nr046laRRrAy8qj5aVYer6nLgBuB7VXXj5JNJ2jF/Di41tradjavqJHBykkkkjc4VXGrMwKXGDFxq\nzMClxgxcasyrqkp7lFdVlfY5A5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxoz\ncKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNw\nqbFBgSd5dpLjSX6W5GyS10w9mKSdWxu43e3At6vqXUkuAg5OOJOkkay8P3iSZwE/Aa6sgTcT9/7g\n0vTGuj/4lcCjwJeS3JPkWJJLn7hRkiNJNpJsPIVZJU1gyAq+DvwIuKaqTiW5HfhrVX1iyWtcwaWJ\njbWCbwKbVXVq8fg48KqdDCbp/2Nl4FX1W+ChJC9ePHUdcN+kU0kaxcpDdIAkrwSOARcBDwDvrao/\nLdneQ3RpYkMO0QcFvl0GLk1vrPfgkvYoA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNw\nqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3Cp\nMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGhsUeJIPJTmT5KdJvpbk4qkHk7RzKwNPcgj4ALBeVS8H\nDgA3TD2YpJ0beoi+BlySZA04CDw83UiSxrIy8Kr6DfBp4EHgEeAvVfXdJ26X5EiSjSQb448p6akY\ncoj+HOB64ArgBcClSW584nZVdbSq1qtqffwxJT0VQw7R3wj8sqoerap/ASeA1047lqQxDAn8QeDq\nJAeTBLgOODvtWJLGMOQ9+CngOHAauHfxmqMTzyVpBKmq8XeajL9TSf+lqrJqG89kkxozcKkxA5ca\nM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxoz\ncKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caW5tov78Hfj1gu+cttt0r9tK8e2lW2Fvz7oZZXzhk\no0luPjhUko2qWp9tgG3aS/PupVlhb827l2b1EF1qzMClxuYO/OjMf/927aV599KssLfm3TOzzvoe\nXNK05l7BJU3IwKXGZgs8yVuS/DzJ/UlumWuOVZJcluT7Sc4mOZPk5rlnGiLJgST3JPnm3LMsk+TZ\nSY4n+dni3/g1c8+0TJIPLb4Pfprka0kunnumZWYJPMkB4HPAW4GXAe9O8rI5ZhngHPDhqnopcDXw\nvl086/luBs7OPcQAtwPfrqqXAK9gF8+c5BDwAWC9ql4OHABumHeq5eZawV8N3F9VD1TVY8CdwPUz\nzbJUVT1SVacXX/+NrW/AQ/NOtVySw8DbgGNzz7JMkmcBrwe+AFBVj1XVn+edaqU14JIka8BB4OGZ\n51lqrsAPAQ+d93iTXR4NQJLLgauAU/NOstJngY8Aj889yApXAo8CX1q8nTiW5NK5h7qQqvoN8Gng\nQeAR4C9V9d15p1pursDzJM/t6p/XJXkG8HXgg1X117nnuZAkbwd+V1V3zz3LAGvAq4DPV9VVwN+B\n3fx5zHPYOtK8AngBcGmSG+edarm5At8ELjvv8WF28aFOkqezFfcdVXVi7nlWuAZ4R5JfsfXW5w1J\nvjrvSBe0CWxW1X+OiI6zFfxu9Ubgl1X1aFX9CzgBvHbmmZaaK/C7gBcluSLJRWx9UPGNmWZZKknY\neo94tqo+M/c8q1TVR6vqcFVdzta/6/eqaleuMlX1W+ChJC9ePHUdcN+MI63yIHB1koOL74vr2MUf\nCsJ0vy66VFWdS3IT8B22Pon8YlWdmWOWAa4B3gPcm+THi+c+VlXfmnGmTt4P3LH4H/0DwHtnnueC\nqupUkuPAabZ+unIPu/y0VU9VlRrzTDapMQOXGjNwqTEDlxozcKkxA5caM3CpsX8D649tC8/qMDMA\nAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f5076798470>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\nzMClxv4XN4l4lEGlKYUAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f50726bf3c8>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPgAAAEICAYAAAByNDmmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAACnRJREFUeJzt3V+IZnd9x/H3pzsG3aSi0hZ0NzRJ\nEa0VbGSRxJQSjKWWiOlFLzaQXghlodQapSAqlJCLXhSkmEJb2G6VQoK5WHMhEtSLuKW96JLJpiVu\nNkqImoxZMf6NtGCS5tuLeaRrmn2eMzvn5MzznfcLBvZ59szZ7y7z3t95njlzTqoKST390twDSJqO\ngUuNGbjUmIFLjRm41JiBS40ZuNSYge9jSe5Ocj7Js0m+keRP5p5J44onuuxfSX4LeLyqfpbkrcAp\n4OaqemjeyTQWV/B9rKrOVtXPfv5w8fEbM46kkRn4Ppfk75P8N/AYcB64f+aRNCIP0UWSA8D1wI3A\nX1fV8/NOpLG4gouq+p+q+jfgMPCnc8+j8Ri4LrSBr8FbMfB9KsmvJTma5IokB5L8PnAr8MDcs2k8\nvgbfp5L8KnASeAfb/9F/G/jbqvrHWQfTqAxcasxDdKkxA5caM3CpMQOXGtuYYqdJfOdOmlhVZdU2\nruBSYwYuNWbgUmMGLjVm4FJjBi41ZuBSY4MCT/K+JF9P8niSj089lKRxrPxpssXlfL4B/B6wBTwI\n3FpVjy75HE90kSY21oku72L70rpPVNVzwL3ALbsdTtL0hgR+CHjqgsdbi+d+QZJjSTaTbI41nKTd\nGXIu+ssdBvy/Q/CqOg4cBw/Rpb1iyAq+BVx5wePDwNPTjCNpTEMCfxB4c5Krk1wGHAW+MO1Yksaw\n8hC9ql5I8iHgy8AB4DNVdXbyySTt2iQXXfQ1uDQ9fx5c2ucMXGrMwKXGDFxqzMClxia5qupUprrN\nUrLyzUhpLbmCS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUWMvA3/AGSIZ/bF9DcsjH\nD+b5C0mXaK2u6DJ01gR28tcafi568fIXmZVeeV7RRdrnDFxqzMClxgxcaszApcYMXGrMwKXGDFxq\nzMClxtbqqqo7OePMK6VKruBSawYuNWbgUmMGLjVm4FJjBi41ZuBSYysDT3Jlkq8mOZfkbJLbX4nB\nJO3eyks2JXkj8MaqOpPkl4GHgD+sqkeXfM409/kdbKpLK3nJJu0do1yyqarOV9WZxa9/CpwDDu1+\nPElT29GpqkmuAq4FTr/M7x0Djo0y1a79kO3Vdor9Sutj8FVVk1wB/AvwV1V134ptZz5El/ob7aqq\nSV4FfB64Z1XckvaOIW+yBfhn4IdV9ZFBO3UFlyY3ZAUfEvjvAP8KPAK8uHj6k1V1/5LPMXBpYqME\nfikMXJqedzaR9jkDlxozcKkxA5caW6uLLk7ljjvuGH2fd9555+j7lHbKFVxqzMClxgxcaszApcYM\nXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMClxgxc\namytbl104403TrFbTp06Ncl+pSl56yJpnzNwqTEDlxozcKkxA5caM3CpMQOXGhsceJIDSR5O8sUp\nB5I0np2s4LcD56YaRNL4BgWe5DBwM3Bi2nEkjWnoCv5p4GPAixfbIMmxJJtJNkeZTNKurQw8yfuB\n71XVQ8u2q6rjVXWkqo6MNp2kXRmygt8AfCDJt4B7gfckuXvSqSSNYmXgVfWJqjpcVVcBR4EHquq2\nySeTtGt+H1xqbGMnG1fVKeDUJJNIGp0ruNSYgUuNGbjUmIFLjRm41NhaXVVV0v/xqqrSPmfgUmMG\nLjVm4FJjBi41ZuBSYwYuNWbgUmMGLjVm4FJjBi41ZuBSYwYuNWbgUmMGLjVm4FJjBi41ZuBSYwYu\nNWbgUmMGLjVm4FJjBi41ZuBSYwYuNWbgUmMGLjVm4FJjBi41NijwJK9LcjLJY0nOJbl+6sEk7d7G\nwO3uAr5UVX+U5DLg4IQzSRrJyvuDJ3kt8J/ANTXwZuLeH1ya3lj3B78GeAb4bJKHk5xIcvlLN0py\nLMlmks1LmFXSBIas4EeAfwduqKrTSe4Cnq2qv1zyOa7g0sTGWsG3gK2qOr14fBJ4524Gk/TKWBl4\nVX0XeCrJWxZP3QQ8OulUkkax8hAdIMlvAyeAy4AngA9W1Y+WbO8hujSxIYfogwLfKQOXpjfWa3BJ\na8rApcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxq\nzMClxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrMwKXGDFxqzMClxgxcaszApcYMXGrM\nwKXGBgWe5KNJzib5WpLPJXn11INJ2r2VgSc5BHwYOFJVbwcOAEenHkzS7g09RN8AXpNkAzgIPD3d\nSJLGsjLwqvoO8CngSeA88JOq+spLt0tyLMlmks3xx5R0KYYcor8euAW4GngTcHmS2166XVUdr6oj\nVXVk/DElXYohh+jvBb5ZVc9U1fPAfcC7px1L0hiGBP4kcF2Sg0kC3AScm3YsSWMY8hr8NHASOAM8\nsvic4xPPJWkEqarxd5qMv1NJv6Cqsmobz2STGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxoz\ncKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNw\nqTEDlxrbmGi/3we+PWC7X1lsuy7Wad51mhXWa969MOuvD9lokpsPDpVks6qOzDbADq3TvOs0K6zX\nvOs0q4foUmMGLjU2d+DHZ/7zd2qd5l2nWWG95l2bWWd9DS5pWnOv4JImZOBSY7MFnuR9Sb6e5PEk\nH59rjlWSXJnkq0nOJTmb5Pa5ZxoiyYEkDyf54tyzLJPkdUlOJnls8W98/dwzLZPko4uvg68l+VyS\nV8890zKzBJ7kAPB3wB8AbwNuTfK2OWYZ4AXgL6rqN4HrgD/bw7Ne6Hbg3NxDDHAX8KWqeivwDvbw\nzEkOAR8GjlTV24EDwNF5p1purhX8XcDjVfVEVT0H3AvcMtMsS1XV+ao6s/j1T9n+Ajw071TLJTkM\n3AycmHuWZZK8Fvhd4J8Aquq5qvrxvFOttAG8JskGcBB4euZ5lpor8EPAUxc83mKPRwOQ5CrgWuD0\nvJOs9GngY8CLcw+ywjXAM8BnFy8nTiS5fO6hLqaqvgN8CngSOA/8pKq+Mu9Uy80VeF7muT39/bok\nVwCfBz5SVc/OPc/FJHk/8L2qemjuWQbYAN4J/ENVXQv8F7CX3495PdtHmlcDbwIuT3LbvFMtN1fg\nW8CVFzw+zB4+1EnyKrbjvqeq7pt7nhVuAD6Q5Ftsv/R5T5K75x3poraArar6+RHRSbaD36veC3yz\nqp6pqueB+4B3zzzTUnMF/iDw5iRXJ7mM7TcqvjDTLEslCduvEc9V1d/MPc8qVfWJqjpcVVex/e/6\nQFXtyVWmqr4LPJXkLYunbgIenXGkVZ4ErktycPF1cRN7+E1BmO7HRZeqqheSfAj4MtvvRH6mqs7O\nMcsANwB/DDyS5D8Wz32yqu6fcaZO/hy4Z/Ef/RPAB2ee56Kq6nSSk8AZtr+78jB7/LRVT1WVGvNM\nNqkxA5caM3CpMQOXGjNwqTEDlxozcKmx/wV4EpWkpW7rKQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f507269d358>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPgAAAEICAYAAAByNDmmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAClBJREFUeJzt3V+IXnedx/H3ZzMWTWtR8UaTsmmh\nuFsEbQlSrSzFdkFR7F7sRYTuhTcBWbWKIipI6S7eidgLEUJUFlrsReyFiKigRvZmQ6fpLjWNLqVq\nOrZi/P8PqaVfL2bEWJvnOZM5p2ee77xfEMjz9Dyn34R553eeZ86ck6pCUk9/N/cAkqZj4FJjBi41\nZuBSYwYuNWbgUmMGLjVm4CLJtUn+kOSeuWfRuAxcAJ8GHph7CI3PwPe4JEeAXwLfmHsWjc/A97Ak\nVwL/AXxg7lk0DQPf2/4T+GxVPT73IJrG2twDaB5JXgvcClw/9yyajoHvXTcDh4BzSQCuAPYlua6q\nbphxLo0o/rjo3pRkP3DlBU99kM3g31VV52cZSqNzBd+jqur3wO///DjJb4E/GHcvruBSY36KLjVm\n4FJjBi41ZuBSY5N8ip7ET+6kiVVVlm3jCi41ZuBSYwYuNWbgUmMGLjVm4FJjBi41NijwJG9O8r0k\njyb58NRDSRrH0p8mS7IP+H/gn4ENNq+++Y6qemTBazzRRZrYWCe6vA54tKoeq6qngPuA23Y6nKTp\nDQn8AHDhRfk2tp77K0mOJllPsj7WcJJ2Zsi56M91GPA3h+BVdQw4Bh6iS7vFkBV8A7jqgscHgSem\nGUfSmIYE/gBwbZKrk1wGHAG+NO1Yksaw9BC9qp5O8m7ga8A+4HNVdWbyySTt2CQXXfQ9uDQ9fx5c\n2uMMXGrMwKXGDFxqzMClxlbq3mRT3WZp6+6aUjuu4FJjBi41ZuBSYwYuNWbgUmMGLjVm4FJjBi41\nZuBSYwYuNdYy8Je9DJLhvzavITnk18/m+QNJl2ilrugydNYEtvPHGn4uevHcF5mVnn9e0UXa4wxc\naszApcYMXGrMwKXGDFxqzMClxgxcaszApcZW6qqq2znjzCulSq7gUmsGLjVm4FJjBi41ZuBSYwYu\nNWbgUmNLA09yVZJvJTmb5EySO56PwSTt3NJLNiV5BfCKqjqd5MXAg8C/VNUjC14zzX1+B5vq0kpe\nskm7xyiXbKqqJ6vq9NbvfwOcBQ7sfDxJU9vWqapJDgHXA6ee478dBY6OMtWO/ZzN1XaK/UqrY/BV\nVZNcAXwb+HhV3b9k25kP0aX+RruqapIXAF8E7l0Wt6TdY8iHbAH+C/h5Vb1v0E5dwaXJDVnBhwT+\nRuC/gYeBZ7ae/mhVfWXBawxcmtgogV8KA5em551NpD3OwKXGDFxqzMClxlbqootTufPOO0ff5113\n3TX6PqXtcgWXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTEDlxozcKkxA5caM3CpMQOXGjNwqTED\nlxozcKkxA5caM3CpMQOXGjNwqTEDlxpbqVsX3XzzzVPslpMnT06yX2lK3rpI2uMMXGrMwKXGDFxq\nzMClxgxcaszApcYGB55kX5KHknx5yoEkjWc7K/gdwNmpBpE0vkGBJzkIvBU4Pu04ksY0dAX/FPAh\n4JmLbZDkaJL1JOujTCZpx5YGnuRtwE+q6sFF21XVsao6XFWHR5tO0o4MWcFvAt6e5AfAfcCbktwz\n6VSSRrE08Kr6SFUdrKpDwBHgm1V1++STSdoxvw8uNba2nY2r6iRwcpJJJI3OFVxqzMClxgxcaszA\npcYMXGpspa6qKukvvKqqtMcZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiB\nS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFL\njQ0KPMlLkpxI8t0kZ5O8furBJO3c2sDt7ga+WlX/muQyYP+EM0kaydL7gye5Evg/4JoaeDNx7w8u\nTW+s+4NfA5wHPp/koSTHk1z+7I2SHE2ynmT9EmaVNIEhK/hh4H+Am6rqVJK7gV9X1ccWvMYVXJrY\nWCv4BrBRVae2Hp8AbtjJYJKeH0sDr6ofA48nedXWU7cAj0w6laRRLD1EB0jyWuA4cBnwGPDOqvrF\ngu09RJcmNuQQfVDg22Xg0vTGeg8uaUUZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFL\njRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuN\nGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjU2KDAk7w/yZkk30nyhSQvnHowSTu3NPAkB4D3Aoer6tXA\nPuDI1INJ2rmhh+hrwIuSrAH7gSemG0nSWJYGXlU/Aj4BnAOeBH5VVV9/9nZJjiZZT7I+/piSLsWQ\nQ/SXArcBVwOvBC5Pcvuzt6uqY1V1uKoOjz+mpEsx5BD9VuD7VXW+qv4I3A+8YdqxJI1hSODngBuT\n7E8S4Bbg7LRjSRrDkPfgp4ATwGng4a3XHJt4LkkjSFWNv9Nk/J1K+itVlWXbeCab1JiBS40ZuNSY\ngUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNSYgUuNGbjUmIFLjRm41JiB\nS40ZuNSYgUuNGbjUmIFLjRm41JiBS40ZuNTY2kT7/SnwwwHbvXxr21WxSvOu0qywWvPuhln/fshG\nk9x8cKgk61V1eLYBtmmV5l2lWWG15l2lWT1ElxozcKmxuQM/NvP/f7tWad5VmhVWa96VmXXW9+CS\npjX3Ci5pQgYuNTZb4EnenOR7SR5N8uG55lgmyVVJvpXkbJIzSe6Ye6YhkuxL8lCSL889yyJJXpLk\nRJLvbv0dv37umRZJ8v6tr4PvJPlCkhfOPdMiswSeZB/waeAtwHXAO5JcN8csAzwNfKCq/hG4Efj3\nXTzrhe4Azs49xAB3A1+tqn8AXsMunjnJAeC9wOGqejWwDzgy71SLzbWCvw54tKoeq6qngPuA22aa\nZaGqerKqTm/9/jdsfgEemHeqxZIcBN4KHJ97lkWSXAn8E/BZgKp6qqp+Oe9US60BL0qyBuwHnph5\nnoXmCvwA8PgFjzfY5dEAJDkEXA+cmneSpT4FfAh4Zu5BlrgGOA98fuvtxPEkl8891MVU1Y+ATwDn\ngCeBX1XV1+edarG5As9zPLerv1+X5Argi8D7qurXc89zMUneBvykqh6ce5YB1oAbgM9U1fXA74Dd\n/HnMS9k80rwaeCVweZLb551qsbkC3wCuuuDxQXbxoU6SF7AZ971Vdf/c8yxxE/D2JD9g863Pm5Lc\nM+9IF7UBbFTVn4+ITrAZ/G51K/D9qjpfVX8E7gfeMPNMC80V+APAtUmuTnIZmx9UfGmmWRZKEjbf\nI56tqk/OPc8yVfWRqjpYVYfY/Hv9ZlXtylWmqn4MPJ7kVVtP3QI8MuNIy5wDbkyyf+vr4hZ28YeC\nMN2Piy5UVU8neTfwNTY/ifxcVZ2ZY5YBbgL+DXg4yf9uPffRqvrKjDN18h7g3q1/6B8D3jnzPBdV\nVaeSnABOs/ndlYfY5aeteqqq1JhnskmNGbjUmIFLjRm41JiBS40ZuNSYgUuN/Ql93n73tpQvqgAA\nAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f507260b4e0>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\nRK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f5072585f98>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for seed in range(6):\n",
" image2, boxes2 = random_transform(image.copy(), boxes.copy(), train_image_data_generator, seed=seed)\n",
" image2 = image2.copy()\n",
" \n",
" plot_boxes(image2, boxes2)\n",
" plt.imshow(image2)\n",
" plt.title(str(seed))\n",
" plt.show()"
]
}
],
"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.3"
},
"toc": {
"nav_menu": {},
"number_sections": true,
"sideBar": true,
"skip_h1_title": false,
"toc_cell": false,
"toc_position": {},
"toc_section_display": "block",
"toc_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