Skip to content

Instantly share code, notes, and snippets.

@botcs
Created February 21, 2019 07:15
Show Gist options
  • Select an option

  • Save botcs/4bd24deddc2c3c31e46601cfdd55bfe9 to your computer and use it in GitHub Desktop.

Select an option

Save botcs/4bd24deddc2c3c31e46601cfdd55bfe9 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Unit tests and observations on SegmentationMask"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import torch\n",
"import numpy as np\n",
"from maskrcnn_benchmark.structures.segmentation_mask import SegmentationMask\n",
"#from maskrcnn_benchmark.structures.segmentation_mask_old import SegmentationMask as OldSegmentationMask\n",
"\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"def plotDiff(M, P, title=''):\n",
" # Mask conversion for Poly is necessary for comparison and plotting\n",
" # Sum across instances dimension\n",
" M = M.instances.masks.float()\n",
" P = P.convert('mask').instances.masks.float()\n",
" diff = M - P\n",
" \n",
" plt.figure(figsize=(20, 10))\n",
"\n",
" plt.subplot(1, 3, 1)\n",
" plt.title('%s(Mask) > Mask'%title)\n",
" plt.imshow(M.sum(dim=0))\n",
"\n",
" plt.subplot(1, 3, 2)\n",
" plt.title('%s(Poly)'%title)\n",
" plt.imshow(P.sum(dim=0))\n",
"\n",
" plt.subplot(1, 3, 3)\n",
" plt.title('%s(Mask) - (%s(Poly) > Mask) = %f'%(title, title, diff.sum()))\n",
" plt.imshow(diff.sum(dim=0))\n",
" plt.colorbar(fraction=0.046, pad=0.04)\n",
" \n",
" plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Define a simple polygon\n",
"\n",
"A simple rectangle will do, 100 pixels away from each border"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"width = 640\n",
"height = 480\n",
"poly = [[[100, 10, 400,10, 400, 400, 100, 400]]]\n",
"size = (width, height)\n",
"box = [50, 5, 150, 150]\n",
"\n",
"P = SegmentationMask(poly, size, 'poly')\n",
"M = SegmentationMask(poly, size, 'poly').convert('mask')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7f865c96b080>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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AgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQLHTxqGZOTYz75qZD8/Mh2bm57fxB8/M22fmI9vvb9/GZ2ZeMTMnZ+bmmfm+w/4jAAAAADg7e7ly6CtJfnGt9cgkj0/ywpl5ZJIXJ3nHWuuqJO/YzpPkaUmu2n6uS/KqA981AAAAAAfitHForfXxtdY/bMefT3JLksuSXJ3kxm3ZjUmetR1fneQ1a8d7klwyMw878J0DAAAAsG9n9MyhmbkiyWOSvDfJpWutj29Tn0hy6XZ8WZJbd73stm3s1Pe6bmZOzMyJe3L3GW4bAAAAgIOw5zg0M9+S5C+S/MJa667dc2utlWSdyQevta5fax1fax2/MEfP5KUAAAAAHJA9xaGZuTA7YehP1lpv3oY/ee/tYtvvO7bx25Mc2/Xyy7cxAAAAAM4ze/m2sklyQ5Jb1lq/v2vqpiTXbMfXJHnLrvHnb99a9vgkn9t1+xkAAAAA55Eje1jzhCQ/meSDM/OBbezXkrwsyRtn5tokH0vyY9vc25I8PcnJJF9M8oID3TEAAAAAB+a0cWit9bdJ5v+YftJ9rF9JXrjPfQEAAABwPzijbysDAAAA4BuLOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqdNg7NzMUz83cz848z86GZ+c1t/MqZee/MnJyZP5uZi7bxo9v5yW3+isP9EwAAAAA4W3u5cujuJE9ca31vkkcneerMPD7J7yZ5+VrrEUnuTHLttv7aJHdu4y/f1gEAAABwHjptHFo7/nM7vXD7WUmemORN2/iNSZ61HV+9nWebf9LMzIHtGAAAAIADs6dnDs3MBTPzgSR3JHl7kn9N8tm11le2JbcluWw7vizJrUmyzX8uyUMOctMAAAAAHIw9xaG11n+vtR6d5PIkj03yXfv94Jm5bmZOzMyJe3L3ft8OAAAAgLNwRt9Wttb6bJJ3Jfn+JJfMzJFt6vIkt2/Htyc5liTb/IOSfPo+3uv6tdbxtdbxC3P0LLcPAAAAwH7s5dvKHjozl2zH35zkyUluyU4keva27Jokb9mOb9rOs82/c621DnLTAAAAAByMI6dfkocluXFmLshOTHrjWuutM/PhJG+Ymd9O8v4kN2zrb0jy2pk5meQzSZ57CPsGAAAA4ACcNg6ttW5O8pj7GP9odp4/dOr4l5I850B2BwAAAMChOqNnDgEAAADwjUUcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGJ7jkMzc8HMvH9m3rqdXzkz752ZkzPzZzNz0TZ+dDs/uc1fcThbBwAAAGC/zuTKoZ9Pcsuu899N8vK11iOS3Jnk2m382iR3buMv39YBAAAAcB46spdFM3N5kmck+Z0kL5qZSfLEJD++LbkxyUuTvCrJ1dtxkrwpyStnZtZa6+C2DefeUx7+6HO9BQAAANi3vV459AdJfjnJV7fzhyT57FrrK9v5bUku244vS3Jrkmzzn9vWf42ZuW5mTszMiXty91luHwAAAID9OG0cmplnJrljrfX3B/nBa63r11rH11rHL8zRg3xrAAAAAPZoL7eVPSHJj8zM05NcnOTbkvxhkktm5sh2ddDlSW7f1t+e5FiS22bmSJIHJfn0ge8cAAAAgH077ZVDa61fXWtdvta6Islzk7xzrfUTSd6V5NnbsmuSvGU7vmk7zzb/Ts8bAgAAADg/ncm3lZ3qV7LzcOqT2Xmm0A3b+A1JHrKNvyjJi/e3RQAAAAAOy56+rexea613J3n3dvzRJI+9jzVfSvKcA9gbAAAAAIdsP1cOAQAAAPB1ThwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAADA/7R3N6G2lXUYwJ8/V82w0PxAwmtpJImDvEqEkogphZVkAwmjSERw4sCgCGsSBQ6aZEUhhFoWfcktSxpEokJNsjQtTYtMDBX1Wn5UBor1b7DXve5uA/FeOGtt3t8PDnu971qDd/BwzjrPXh8DUw4BAAAADEw5BAAAADAw5RAAAADAwJRDAAAAAANTDgEAAAAMTDkEAAAAMDDlEAAAAMDAlEMAAAAAA1MOAQAAAAxMOQQAAAAwMOUQAAAAwMCUQwAAAAADUw4BAAAADEw5BAAAADAw5RAAAADAwJRDAAAAAANTDgEAAAAMTDkEAAAAMDDlEAAAAMDAlEMAAAAAA1MOAQAAAAxMOQQAAAAwMOUQAAAAwMCUQwAAAAADUw4BAAAADEw5BAAAADAw5RAAAADAwJRDAAAAAANTDgEAAAAMTDkEAAAAMDDlEAAAAMDAlEMAAAAAA1MOAQAAAAxMOQQAAAAwMOUQAAAAwMCUQwAAAAADUw4BAAAADEw5BAAAADAw5RAAAADAwJRDAAAAAANTDgEAAAAMTDkEAAAAMDDlEAAAAMDAlEMAAAAAA1MOAQAAAAxMOQQAAAAwMOUQAAAAwMCUQwAAAAADUw4BAAAADEw5BAAAADAw5RAAAADAwJRDAAAAAANTDgEAAAAMTDkEAAAAMDDlEAAAAMDAlEMAAAAAA1MOAQAAAAxMOQQAAAAwMOUQAAAAwMCUQwAAAAADUw4BAAAADEw5BAAAADAw5RAAAADAwJRDAAAAAANTDgEAAAAMTDkEAAAAMDDlEAAAAMDAlEMAAAAAA1P4IeWrAAAFNklEQVQOAQAAAAxMOQQAAAAwsOruudeQqnoyyXNJ/jr3WuAVOjJyy2aSXTaR3LKJ5JZNJbtsIrn9f2/s7qNe7qBFlENJUlV3dPfb5l4HvBJyy6aSXTaR3LKJ5JZNJbtsIrndd24rAwAAABiYcggAAABgYEsqh7429wJgH8gtm0p22URyyyaSWzaV7LKJ5HYfLeaZQwAAAABsvSVdOQQAAADAFpu9HKqqc6vqj1X1QFVdMfd6YF1VXVdVu6rq3rW5w6vq5qr60/T5umm+qurLU5Z/V1WnzrdyRlZVx1bVbVV1X1X9vqoun+Zll8WqqoOr6ldV9dspt5+d5o+vqtunfH6/qg6a5l81jR+Y9h835/qhqrZV1V1V9ZNpLLssWlU9VFX3VNXdVXXHNOdcgcWrqsOqamdV/aGq7q+q02V3/81aDlXVtiRfTfKeJCcl+VBVnTTnmmAv30hy7l5zVyS5pbtPSHLLNE5WOT5h+rk0ydVbtEbY24tJPt7dJyU5Lcll0+9W2WXJnk9ydnefnGRHknOr6rQkn09yVXe/OcnTSS6Zjr8kydPT/FXTcTCny5PcvzaWXTbBO7t7x9qrv50rsAm+lOSn3X1ikpOz+t0ru/tp7iuH3p7kge5+sLtfSPK9JOfPvCbYo7t/nuSpvabPT3L9tH19kg+szX+zV36Z5LCqev3WrBRe0t2Pdfdvpu1/ZPUH85jILgs25e+f0/DA6aeTnJ1k5zS/d25353lnknOqqrZoufA/qmp7kvcluWYaV2SXzeRcgUWrqkOTnJnk2iTp7he6+5nI7n6buxw6JsnDa+NHpjlYsqO7+7Fp+/EkR0/b8sziTLcrnJLk9sguCzfdlnN3kl1Jbk7y5yTPdPeL0yHr2dyT22n/s0mO2NoVwx5fTPLJJP+ZxkdEdlm+TvKzqrqzqi6d5pwrsHTHJ3kyydenW3mvqapDIrv7be5yCDZar17355V/LFJVvSbJD5J8rLv/vr5Pdlmi7v53d+9Isj2rq4tPnHlJ8LKq6rwku7r7zrnXAq/QGd19ala33VxWVWeu73SuwEIdkOTUJFd39ylJnstLt5Alkd19NXc59GiSY9fG26c5WLIndl+KOH3umublmcWoqgOzKoa+3d0/nKZll40wXR5+W5LTs7r8+4Bp13o29+R22n9okr9t8VIhSd6R5P1V9VBWj0g4O6vnYcgui9bdj06fu5LcmFUp71yBpXskySPdffs03plVWSS7+2nucujXSU6Y3uZwUJILk9w085rg5dyU5KJp+6IkP16b/+j0RPzTkjy7dmkjbJnp2RXXJrm/u7+wtkt2WayqOqqqDpu2X53kXVk9L+u2JBdMh+2d2915viDJrdM3hbCluvtT3b29u4/L6lz21u7+cGSXBauqQ6rqtbu3k7w7yb1xrsDCdffjSR6uqrdMU+ckuS+yu99q7r9FVfXerO7T3pbkuu6+ctYFwZqq+m6Ss5IcmeSJJJ9J8qMkNyR5Q5K/JPlgdz81/UP+lazebvavJBd39x1zrJuxVdUZSX6R5J689PyLT2f13CHZZZGq6q1ZPUByW1ZfXt3Q3Z+rqjdldTXG4UnuSvKR7n6+qg5O8q2snqn1VJILu/vBeVYPK1V1VpJPdPd5ssuSTfm8cRoekOQ73X1lVR0R5wosXFXtyOoFAAcleTDJxZnOHSK7+2z2cggAAACA+cx9WxkAAAAAM1IOAQAAAAxMOQQAAAAwMOUQAAAAwMCUQwAAAAADUw4BAAAADEw5BAAAADAw5RAAAADAwP4LoXn5RqtM1R4AAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 1440x1440 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(20, 20))\n",
"plt.title('Mask')\n",
"plt.imshow(M.instances.masks[0])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## TEST: Conversion [PASS]"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.colorbar.Colorbar at 0x7f865c6d4cc0>"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1440x720 with 3 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"M_hat = M.convert('poly').convert('mask')\n",
"P_hat = P.convert('mask').convert('poly')\n",
"\n",
"plt.figure(figsize=(20,10))\n",
"\n",
"plt.subplot(1, 2, 1)\n",
"diff = M.instances.masks - M_hat.instances.masks\n",
"plt.title('(Mask) - (Mask > Poly > Mask) = %4.2f'%(diff.sum().item()))\n",
"plt.imshow(diff[0])\n",
"\n",
"plt.subplot(1, 2, 2)\n",
"# Mask conversion for Poly is necessary for comparison and plotting\n",
"diff = P.convert('mask').instances.masks - P_hat.convert('mask').instances.masks\n",
"plt.title('(Poly > Mask) - (Poly > Mask > Poly > Mask) = %4.2f'%(diff.sum().item()))\n",
"im = plt.imshow(diff[0])\n",
"plt.colorbar(im, fraction=0.02, pad=0.04)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## TEST: Crop [PASS]"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1440x720 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plotDiff(M.crop(box), P.crop(box), 'crop')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## TEST: Resize [PASS]"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1440x720 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"new_size = 1000, 1500\n",
"plotDiff(M.resize(new_size), P.resize(new_size), 'resize')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Observations\n",
"- It seems that the following setting did the trick to avoid the boundrary distortion:\n",
"```\n",
"contour, hierarchy = cv2.findContours(\n",
" mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_TC89_L1\n",
")\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## TEST: Transpose [Pass]"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"FLIP_LEFT_RIGHT = 0\n",
"FLIP_TOP_BOTTOM = 1"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1440x720 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plotDiff(M.transpose(FLIP_LEFT_RIGHT), P.transpose(FLIP_LEFT_RIGHT))"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1440x720 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plotDiff(M.transpose(FLIP_TOP_BOTTOM), P.transpose(FLIP_TOP_BOTTOM))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Observations\n",
"- It seems that the following setting did the trick to avoid the boundrary distortion:\n",
"```\n",
"contour, hierarchy = cv2.findContours(\n",
" mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_TC89_L1\n",
")\n",
"```\n",
"\n",
"<pre>\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"</pre>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Define a disjoint polygon\n",
"\n",
"Two rectangles, one on the top-left and one on the bottom-right"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"width = 640\n",
"height = 480\n",
"poly = [[[100, 100, 200, 100, 200, 200, 100, 200],\n",
" [width-110, height-110, width-10, height-110, \n",
" width-10, height-10, width-110, height-10]]]\n",
"size = (width, height)\n",
"box = [110, 110, 210, 210]\n",
"\n",
"P = SegmentationMask(poly, size, 'poly')\n",
"M = SegmentationMask(poly, size, 'poly').convert('mask')"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7f865c60da90>"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABIcAAAN0CAYAAAAu0EiiAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3X/Ir3ddx/HXu53tLPvhTGXN7cAGDkqKlhzU6o/MIZpKk9DQJIcsRmVgGKUV9Iv+UIKsCIrRpKmVmQmOEMTUKf2heURb6ahOlmzzx1CnM80589Mf51rcnlbnPue+753jXo8H3NzX9fl8vt/v5/7v8DzXdX1nrRUAAAAAOn3D2d4AAAAAAGePOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAIB9NjO3zMxPnu19AADshjgEAFSamX+fmS/PzKNOGv/AzKyZufzs7AwA4MElDgEAzf4tyfPvP5mZ707ysLO3HQCAB584BAA0e22SF+44vzbJa+4/mZlnblcS3TMzt8/Mr++Yu3BmXjczn56Zz87M+2bm4pM/YGYumZlbZ+YXDvIPAQA4U+IQANDsPUm+dWa+c2bOS/K8JK/bMf+FnIhHFyV5ZpKfnplnb3PXJnl4kiNJHpnkp5L85843n5krkrwryR+stX77IP8QAIAzJQ4BAO3uv3roqUluS3Ln/RNrrVvWWv+w1vrqWuvWJH+e5Ae36ftyIgo9dq31X2ut96+17tnxvo9L8s4kv7bWuuHB+EMAAM7EobO9AQCAs+y1Sd6d5IrsuKUsSWbmiUlekeS7klyQ5HCSv9zxuiNJXj8zF+XEFUe/sta6b5t/QZLjSd540H8AAMBeuHIIAKi21vpoTjyY+hlJ3nTS9J8luTnJkbXWw5P8UZLZXnffWus31lqPS/L9SZ6Vr31+0a8n+VSSP9tuWQMAOCeJQwAAyXVJnrLW+sJJ49+S5DNrrS/NzBOS/Pj9EzPzQzPz3Vv4uScnbjP76o7X3pfkuUm+KclrZsa/uwCAc5J/pAAA9dZa/7rWOvYAUz+T5Ddn5vNJfjXJG3bMfXtO3DJ2T048q+hdOXGr2c73/XKSH01ycZJXC0QAwLlo1lpnew8AAAAAnCX+9woAAACgmDgEAAAAUOxA4tDMPH1m/mlmjs/Myw/iMwAAAADYu31/5tD2jR3/nOSpSe5I8r4kz19rfXhfPwgAAACAPTuIK4eekOT4Wusj2zd0vD7JNQfwOQAAAADs0aEDeM9Lk9y+4/yOJE/8/15wwRxeF+abDmArAAAAAJ0+n7s/tdZ69KnWHUQc2pWZuT7J9UlyYR6WJ87VZ2srAAAAAA85f7Pe+NHdrDuI28ruTHJkx/ll29jXWGvdsNY6utY6en4OH8A2AAAAADiVg4hD70ty5cxcMTMXJHlekpsP4HMAAAAA2KN9v61srfWVmfnZJG9Ncl6SV6+1PrTfnwMAAADA3h3IM4fWWm9J8paDeG8AAAAA9s9B3FYGAAAAwNcJcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQ7ZRyamVfPzF0z8487xr5tZt42M/+y/X7ENj4z8/szc3xmbp2Zxx/k5gEAAADYm91cOfQnSZ5+0tjLk7x9rXVlkrdv50nyw0mu3H6uT/KH+7NNAAAAAA7CKePQWuvdST5z0vA1SW7ajm9K8uwd469ZJ7wnyUUzc8l+bRYAAACA/XXoDF938Vrr49vxJ5JcvB1fmuT2Hevu2MY+HniIeevHPni2twBn5GmPuepsbwEAADiH7PmB1GutlWSd7utm5vqZOTYzx+7LvXvdBgAAAABn4Ezj0Cfvv11s+33XNn5nkiM71l22jf0va60b1lpH11pHz8/hM9wGAAAAAHtxpnHo5iTXbsfXJnnzjvEXbt9a9qQkn9tx+xkAAAAA55hTPnNoZv48yZOTPGpm7kjya0lekeQNM3Ndko8m+bFt+VuSPCPJ8SRfTPKiA9gzAAAAAPvklHForfX8/2Pq6gdYu5K8eK+bAgAAAODBsecHUgMAAADw9UscAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGKnjEMzc2Rm3jkzH56ZD83MS7bxb5uZt83Mv2y/H7GNz8z8/swcn5lbZ+bxB/1HAAAAAHBmdnPl0FeS/Pxa63FJnpTkxTPzuCQvT/L2tdaVSd6+nSfJDye5cvu5Pskf7vuuAQAAANgXh061YK318SQf344/PzO3Jbk0yTVJnrwtuynJLUleto2/Zq21krxnZi6amUu294GHjKc95qqzvQUAAADYs9N65tDMXJ7ke5O8N8nFO4LPJ5JcvB1fmuT2HS+7Yxs7+b2un5ljM3Psvtx7mtsGAAAAYD/sOg7NzDcn+askP7fWumfn3HaV0DqdD15r3bDWOrrWOnp+Dp/OSwEAAADYJ7uKQzNzfk6EoT9da71pG/7kzFyyzV+S5K5t/M4kR3a8/LJtDAAAAIBzzG6+rWyS3JjktrXW7+yYujnJtdvxtUnevGP8hdu3lj0pyec8bwgAAADg3HTKB1In+YEkP5HkH2bmg9vYLyd5RZI3zMx1ST6a5Me2ubckeUaS40m+mORF+7pjAAAAAPbNbr6t7G+TzP8xffUDrF9JXrzHfQEAAADwIDitbysDAAAA4KFFHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMVOGYdm5sKZ+buZ+fuZ+dDM/MY2fsXMvHdmjs/MX8zMBdv44e38+DZ/+cH+CQAAAACcqd1cOXRvkqestb4nyVVJnj4zT0ryyiSvWms9NsndSa7b1l+X5O5t/FXbOgAAAADOQaeMQ+uE/9hOz99+VpKnJHnjNn5Tkmdvx9ds59nmr56Z2bcdAwAAALBvdvXMoZk5b2Y+mOSuJG9L8q9JPrvW+sq25I4kl27Hlya5PUm2+c8leeR+bhoAAACA/bGrOLTW+q+11lVJLkvyhCTfsdcPnpnrZ+bYzBy7L/fu9e0AAAAAOAOn9W1la63PJnlnku9LctHMHNqmLkty53Z8Z5IjSbLNPzzJpx/gvW5Yax1dax09P4fPcPsAAAAA7MVuvq3s0TNz0Xb8jUmemuS2nIhEz9mWXZvkzdvxzdt5tvl3rLXWfm4aAAAAgP1x6NRLckmSm2bmvJyISW9Ya/31zHw4yetn5reSfCDJjdv6G5O8dmaOJ/lMkucdwL4BAAAA2AenjENrrVuTfO8DjH8kJ54/dPL4l5I8d192BwAAAMCBOq1nDgEAAADw0CIOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFDp3tDQAAAMBBeevHPni2twBn5GmPuepB+yxXDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAU23UcmpnzZuYDM/PX2/kVM/PemTk+M38xMxds44e38+Pb/OUHs3UAAAAA9up0rhx6SZLbdpy/Msmr1lqPTXJ3kuu28euS3L2Nv2pbBwAAAMA5aFdxaGYuS/LMJH+8nU+SpyR547bkpiTP3o6v2c6zzV+9rQcAAADgHLPbK4d+N8kvJvnqdv7IJJ9da31lO78jyaXb8aVJbk+Sbf5z2/qvMTPXz8yxmTl2X+49w+0DAAAAsBenjEMz86wkd6213r+fH7zWumGtdXStdfT8HN7PtwYAAABglw7tYs0PJPmRmXlGkguTfGuS30ty0cwc2q4OuizJndv6O5McSXLHzBxK8vAkn973nQMAAACwZ6e8cmit9UtrrcvWWpcneV6Sd6y1XpDknUmesy27Nsmbt+Obt/Ns8+9Ya6193TUAAAAA++J0vq3sZC9L8tKZOZ4TzxS6cRu/Mckjt/GXJnn53rYIAAAAwEHZzW1l/2OtdUuSW7bjjyR5wgOs+VKS5+7D3gAAAAA4YHu5cggAAACAr3PiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQ8B/t3c3obqVZRiA74ejZlho/iDlsTSSxEEeJUJJxJTKSrJBhFEkIjhxYFCENYkCB02yohBCLYv+5JQlDSJRoSZZmpamRSaGinosfyoDxXoafMvj12kgnkN7rY/3umCz13rXN3gGN3uvfe/1AwAAwMCUQwAAAAADUw4BAAAADEw5BAAAADAw5RAAAADAwJRDAAAAAANTDgEAAAAMTDkEAAAAMDDlEAAAAMDAlEMAAAAAA1MOAQAAAAxMOQQAAAAwMOUQAAAAwMCUQwAAAAADUw4BAAAADEw5BAAAADAw5RAAAADAwJRDAAAAAANTDgEAAAAMTDkEAAAAMDDlEAAAAMDAlEMAAAAAA1MOAQAAAAxMOQQAAAAwMOUQAAAAwMCUQwAAAAADUw4BAAAADEw5BAAAADAw5RAAAADAwJRDAAAAAANTDgEAAAAMTDkEAAAAMDDlEAAAAMDAlEMAAAAAA1MOAQAAAAxMOQQAAAAwMOUQAAAAwMCUQwAAAAADUw4BAAAADEw5BAAAADAw5RAAAADAwJRDAAAAAANTDgEAAAAMTDkEAAAAMDDlEAAAAMDAlEMAAAAAA1MOAQAAAAxMOQQAAAAwMOUQAAAAwMCUQwAAAAADUw4BAAAADEw5BAAAADAw5RAAAADAwPabewAAAAD4f3nna3bMPQIsniuHAAAAAAamHAIAAAAYmHIIAAAAYGDKIQAAAICBKYcAAAAABqYcAgAAABiYcggAAABgYMohAAAAgIEphwAAAAAGphwCAAAAGJhyCAAAAGBgyiE//0mEAAAFS0lEQVQAAACAgSmHAAAAAAamHAIAAAAYmHIIAAAAYGDKIQAAAICBVXfPPUOq6rEkTyf5y9yzwEt0eOSWzSS7bCK5ZRPJLZtKdtlEcvu/XtfdR7zYhxZRDiVJVd3a3W+eew54KeSWTSW7bCK5ZRPJLZtKdtlEcrv33FYGAAAAMDDlEAAAAMDAllQOfXXuAWAvyC2bSnbZRHLLJpJbNpXssonkdi8t5plDAAAAAGy9JV05BAAAAMAWm70cqqqzq+oPVXVvVV069zywrqqurqpdVXXX2tqhVXVDVf1x+v6qab2q6ktTln9bVSfPNzkjq6qjq+rmqrq7qn5XVZdM67LLYlXVgVX1y6r6zZTbz0zrx1bVLVM+v1dVB0zrL5v2752OHzPn/FBV26rq9qr68bQvuyxaVd1fVXdW1R1Vdeu05lyBxauqQ6pqZ1X9vqruqapTZXffzVoOVdW2JF9J8q4kJyT5YFWdMOdMsIevJzl7j7VLk9zY3ccluXHaT1Y5Pm76uijJFVs0I+zpuSQf6+4TkpyS5OLpZ6vssmTPJDmzu09MsiPJ2VV1SpLPJbm8u9+Q5IkkF06fvzDJE9P65dPnYE6XJLlnbV922QRv6+4da6/+dq7AJvhikp909/FJTszqZ6/s7qO5rxx6S5J7u/u+7n42yXeTnDvzTLBbd/8syeN7LJ+b5Jpp+5ok71tb/0av/CLJIVX16q2ZFF7Q3Q9396+n7b9n9QvzqMguCzbl7x/T7v7TVyc5M8nOaX3P3D6f551Jzqqq2qJx4b9U1fYk70ly5bRfkV02k3MFFq2qDk5yepKrkqS7n+3uJyO7+2zucuioJA+s7T84rcGSHdndD0/bjyQ5ctqWZxZnul3hpCS3RHZZuOm2nDuS7EpyQ5I/JXmyu5+bPrKezd25nY4/leSwrZ0YdvtCkk8k+fe0f1hkl+XrJD+tqtuq6qJpzbkCS3dskseSfG26lffKqjoosrvP5i6HYKP16nV/XvnHIlXVK5J8P8lHu/tv68dklyXq7n91944k27O6uvj4mUeCF1VV5yTZ1d23zT0LvESndffJWd12c3FVnb5+0LkCC7VfkpOTXNHdJyV5Oi/cQpZEdvfW3OXQQ0mOXtvfPq3Bkj36/KWI0/dd07o8sxhVtX9WxdC3uvsH07LsshGmy8NvTnJqVpd/7zcdWs/m7txOxw9O8tctHhWS5K1J3ltV92f1iIQzs3oehuyyaN390PR9V5LrsirlnSuwdA8mebC7b5n2d2ZVFsnuPpq7HPpVkuOmtzkckOS8JNfPPBO8mOuTnD9tn5/kR2vrH5meiH9KkqfWLm2ELTM9u+KqJPd09+fXDskui1VVR1TVIdP2y5O8PavnZd2c5P3Tx/bM7fN5fn+Sm6b/FMKW6u5Pdvf27j4mq3PZm7r7Q5FdFqyqDqqqVz6/neQdSe6KcwUWrrsfSfJAVb1xWjoryd2R3X1Wc/8uqqp3Z3Wf9rYkV3f3ZbMOBGuq6jtJzkhyeJJHk3w6yQ+TXJvktUn+nOQD3f349Af5l7N6u9k/k1zQ3bfOMTdjq6rTkvw8yZ154fkXn8rquUOyyyJV1ZuyeoDktqz+eXVtd3+2ql6f1dUYhya5PcmHu/uZqjowyTezeqbW40nO6+775pkeVqrqjCQf7+5zZJclm/J53bS7X5Jvd/dlVXVYnCuwcFW1I6sXAByQ5L4kF2Q6d4js7rXZyyEAAAAA5jP3bWUAAAAAzEg5BAAAADAw5RAAAADAwJRDAAAAAANTDgEAAAAMTDkEAAAAMDDlEAAAAMDAlEMAAAAAA/sPm/D3VfcGJjMAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 1440x1440 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(20, 20))\n",
"plt.title('Mask')\n",
"plt.imshow(M.instances.masks[0])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## TEST: Conversion [PASS]"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7f865c330240>"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1440x1440 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"M_hat = M.convert('poly').convert('mask')\n",
"P_hat = P.convert('mask').convert('poly')\n",
"\n",
"plt.figure(figsize=(20,20))\n",
"\n",
"plt.subplot(1, 2, 1)\n",
"diff = M.instances.masks - M_hat.instances.masks\n",
"plt.title('(Mask) - (Mask > Poly > Mask) = %4.2f'%(diff.sum().item()))\n",
"plt.imshow(diff[0])\n",
"\n",
"plt.subplot(1, 2, 2)\n",
"# Mask conversion for Poly is necessary for comparison and plotting\n",
"diff = P.convert('mask').instances.masks - P_hat.convert('mask').instances.masks\n",
"plt.title('(Poly > Mask) - (Poly > Mask > Poly > Mask) = %4.2f'%(diff.sum().item()))\n",
"plt.imshow(diff[0])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## TEST: Crop [PASS]"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1440x720 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plotDiff(M.crop(box), P.crop(box), 'crop')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## TEST: Resize [PASS]"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1440x720 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"new_size = 1000, 100\n",
"plotDiff(M.resize(new_size), P.resize(new_size), 'resize')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## TEST: Transpose [Pass]"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"FLIP_LEFT_RIGHT = 0\n",
"FLIP_TOP_BOTTOM = 1"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1440x720 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plotDiff(M.transpose(FLIP_LEFT_RIGHT), P.transpose(FLIP_LEFT_RIGHT))"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1440x720 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plotDiff(M.transpose(FLIP_TOP_BOTTOM), P.transpose(FLIP_TOP_BOTTOM))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<pre>\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"</pre>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Define a single concave polygon\n",
"\n",
"Modified shape from [unit test of](https://github.com/facebookresearch/maskrcnn-benchmark/blob/b8c5bcafa02e4a7489b5a79bf4609933f98c9599/tests/test_segmentation_mask.py) PR #150"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"''' ORIGINAL SHAPE\n",
"poly = [[423.0, 306.5, 406.5, 277.0, 400.0, 271.5, 389.5, 277.0, 387.5, 292.0,\n",
" 384.5, 295.0, 374.5, 220.0, 378.5, 210.0, 391.0, 200.5, 404.0, 199.5,\n",
" 414.0, 203.5, 425.5, 221.0, 438.5, 297.0, 423.0, 306.5],\n",
" [385.5, 240.0, 404.0, 234.5, 419.5, 234.0, 416.5, 219.0, 409.0, 209.5,\n",
" 394.0, 207.5, 385.5, 213.0, 382.5, 221.0, 385.5, 240.0]] \n",
"'''\n",
"\n",
"poly = [[[423.0, 306.5, 406.5, 277.0, 400.0, 271.5, 389.5, 277.0, 387.5, 292.0,\n",
" 384.5, 295.0, 374.5, 220.0, 378.5, 210.0, 391.0, 200.5, 404.0, 199.5,\n",
" 414.0, 203.5, 425.5, 221.0, 438.5, 297.0, 423.0, 306.5]]]\n",
"width = 640\n",
"height = 480\n",
"size = (width, height)\n",
"box = [350, 200, 400, 300]"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"P = SegmentationMask(poly, size, 'poly')\n",
"M = SegmentationMask(poly, size, 'poly').convert('mask')"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7f865c422668>"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABIcAAAN0CAYAAAAu0EiiAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3W+Irnl93/HPt+66W9PGjSZs9+wuKCi00sBJWDRtHjRV5CQaqpSYakOzhC1LWwMplja2hSYpfWAo1DYUDEuVqmlijE1xCZbB+ichD7RucGqq0ubEVnZ3TCT+T1LNGn99cK4j47p65pyZOXNmPq8XDHNff+77/t3zZA/v/V7XPWutAAAAANDpz5z0AgAAAAA4OeIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAjtjMvHdm/u5JrwMA4CDEIQCg0sz835n5k5n59sft/+DMrJl5xsmsDADg+hKHAIBm/yfJKy5vzMx3JnnKyS0HAOD6E4cAgGZvTvKj+7bvTfKmyxsz8+JtkujzM/PwzPz0vmO3zswvzMynZuazM/OBmbn98W8wM3fMzIdm5h8f5wcBALhW4hAA0Ox9Sb51Zv7SzDwpycuT/MK+43+US/HotiQvTvL3Z+al27F7kzw1yd1Jnp7k7yX5f/tffGaemeTXk/z7tda/Ps4PAgBwrcQhAKDd5emhFyb5aJJHLx9Ya713rfXba62vrLU+lOSXkvy17fBjuRSFnrXW+tO11m+ttT6/73Wfk+Q9SX5qrfXA9fggAADX4qaTXgAAwAl7c5LfSPLM7LukLElm5nlJXpPkLyd5cpJbkvzKvufdneQtM3NbLk0c/fO11mPb8R9JcjHJ2477AwAAHIbJIQCg2lrr47l0Y+oXJfnVxx3+xSQPJrl7rfXUJD+fZLbnPbbW+pm11nOS/NUkP5ivvX/RTyf5gyS/uF2yBgBwQxKHAACS+5I8f631R4/b/+eTfHqt9cWZeW6Sv335wMz89Zn5zi38fD6XLjP7yr7nPpbkZUm+JcmbZsa/uwCAG5J/pAAA9dZav7vWeugJDv2DJP9yZr6Q5F8keeu+Y38hly4Z+3wu3avo13PpUrP9r/snSf5mktuTvEEgAgBuRLPWOuk1AAAAAHBC/N8rAAAAgGLiEAAAAECxY4lDM/P9M/O/ZubizLz6ON4DAAAAgMM78nsObd/Y8b+TvDDJI0k+kOQVa62PHOkbAQAAAHBoxzE59NwkF9daH9u+oeMtSV5yDO8DAAAAwCHddAyveWeSh/dtP5Lked/sCU+eW9at+ZZjWAoAAABApy/kM3+w1vqOK513HHHoQGbm/iT3J8mteUqeNy84qaUAAAAAnDn/bb3t4wc57zguK3s0yd37tu/a9n2NtdYDa6171lr33JxbjmEZAAAAAFzJccShDyR59sw8c2aenOTlSR48hvcBAAAA4JCO/LKytdaXZ+bHk+wkeVKSN6y1PnzU7wMAAADA4R3LPYfWWu9I8o7jeG0AAAAAjs5xXFYGAAAAwCkhDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGJXjEMz84aZ+eTM/M99+542M++cmd/Zfn/btn9m5udm5uLMfGhmvvs4Fw8AAADA4Rxkcug/Jvn+x+17dZJ3rbWeneRd23aS/ECSZ28/9yd53dEsEwAAAIDjcMU4tNb6jSSfftzulyR54/b4jUleum//m9Yl70ty28zccVSLBQAAAOBoXes9h25fa31ie/x7SW7fHt+Z5OF95z2y7QMAAADgBnToG1KvtVaSdbXPm5n7Z+ahmXnosXzpsMsAAAAA4Bpcaxz6/cuXi22/P7ntfzTJ3fvOu2vb93XWWg+ste5Za91zc265xmUAAAAAcBjXGoceTHLv9vjeJG/ft/9Ht28t+54kn9t3+RkAAAAAN5ibrnTCzPxSku9L8u0z80iSn0rymiRvnZn7knw8yQ9vp78jyYuSXEzyx0l+7BjWDAAAAMARuWIcWmu94hscesETnLuSvPKwiwIAAADg+jj0DakBAAAAOL3EIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAA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\n",
"text/plain": [
"<Figure size 1440x1440 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(20, 20))\n",
"plt.title('Mask')\n",
"plt.imshow(M.instances.masks[0])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## TEST: Conversion [PASS]"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7f865c3837b8>"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1440x1440 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"M_hat = M.convert('poly').convert('mask')\n",
"P_hat = P.convert('mask').convert('poly')\n",
"\n",
"plt.figure(figsize=(20,20))\n",
"\n",
"plt.subplot(1, 2, 1)\n",
"diff = M.instances.masks - M_hat.instances.masks\n",
"plt.title('(Mask) - (Mask > Poly > Mask) = %4.2f'%(diff.sum().item()))\n",
"plt.imshow(diff[0])\n",
"\n",
"plt.subplot(1, 2, 2)\n",
"# Mask conversion for Poly is necessary for comparison and plotting\n",
"diff = P.convert('mask').instances.masks - P_hat.convert('mask').instances.masks\n",
"plt.title('(Poly > Mask) - (Poly > Mask > Poly > Mask) = %4.2f'%(diff.sum().item()))\n",
"plt.imshow(diff[0])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## TEST: Crop [PASS]"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1440x720 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plotDiff(M.crop(box), P.crop(box), 'crop')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## TEST: Resize [PASS]"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1440x720 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"new_size = 1000, 100\n",
"plotDiff(M.resize(new_size), P.resize(new_size), 'resize')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## TEST: Transpose [Pass]"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [],
"source": [
"FLIP_LEFT_RIGHT = 0\n",
"FLIP_TOP_BOTTOM = 1"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1440x720 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plotDiff(M.transpose(FLIP_LEFT_RIGHT), P.transpose(FLIP_LEFT_RIGHT))"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKkAAAFGCAYAAAChacxOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3Xm8ZVV95/3PFxA0IjMSJoUIRkkUNDRq7I4KDqAG6CdGoR2ITV5kkI5TjBjTJpoJu5+I+LSPsaIEMCoaEiMaEpowxE5HkCIiCEgoUZsCFGVSJIBU/fqPvS6cunWnOnc4+9zzefvar3v22sNZq+pai/3bv7VWqgpJkiRJkiRplLYadQUkSZIkSZIkg1SSJEmSJEkaOYNUkiRJkiRJGjmDVJIkSZIkSRo5g1SSJEmSJEkaOYNUkiRJkiRJGjmDVJIkSZIkSRMoyRlJbk/y1VmOJ8kHkqxLcnWSZw4cOyHJjW07YSnqY5BKkiRJkiRpMp0JHDnH8aOAA9t2EvAhgCS7AL8LPAs4DPjdJDsvtjIGqSRJkiRJkiZQVX0BuHOOU44Bzq7OZcBOSfYEXgJcWFV3VtVdwIXMHexaEINUkiRJkiRJmsnewM0D++tb2Wzli7LNYm8gSZIkSZKk5fGSFzy27rhzw1DXXnn1A9cC9w8UramqNUtSsWVgkEqSJEmSJKmn7rhzA1+64AlDXbv1njfeX1WHLuLrbwH2Hdjfp5XdAjx/Wvmli/gewOF+kiRJkiRJvVXAxiH/twTOA17XVvl7NnBPVd0GXAC8OMnObcL0F7eyRTGTSpIkSZIkqbeKDbUkAafNJPkkXUbUbknW063Y9yiAqvpT4HzgpcA64D7g9e3YnUl+H7ii3eo9VTXXBOwLYpBKkiRJkiSpp7pMqlqee1cdP8/xAt4wy7EzgDOWsj4GqSRJkiRJknpsiYbu9Z5BKkmSJEmSpJ4qig21PJlUfWOQSpIkSZIkqceWa7hf37i6nyRJkiRJkkbOTCpJkiRJkqSeKmDDhGRSGaSSJEmSJEnqsUkZ7meQSpIkSZIkqacKJmbidOek0opJ8sdJ3rRC37VfkkqyWSA2yR5Jrk+y3UrUZSklOTPJH4y6HpI07paqT0ryzSQvXMB5P5/kU4v9PkmSNJk2DrmNG4NUWhFJdgdeB3y47T+/BZE+M+28g1v5pctVl6r6DnAJcNJS3zvJpa3+B08r/0wrf/5Sf6ckacvM0idtTHJvkh8kuSHJ65fyO6vqc8BPJXn6Ut5XkiStfkWxYcht3Bik0kr5JeD8qvq3gbLvAs9JsutA2QnAv65AfT4O/MpsB5PsniRD3vtf6R5+pu61K/AcuvZKkkbvl9i8T7q1qrYHdgDeDvxZkoOW+Hs/yTK8IJEkSatcwYYht3FjkEor5SjgH6eVPQj8DXAcQJKtgVfRBZAeluT0JDcn+X6SK5P8h4FjhyVZ2459J8n7ZvryJL/QhmT8dCu6HPiJJE+cpb7/GfhGkncn2X8L2/px4FWtPQDHA59p7R2s9xeT3J3ktiT/I8m27ViSnJbk9tauawbqPdimxyW5JMkHFhFQk6RJNFOfBEB1/ga4CzgIIMnRSa5t/2ZfmuSp069L8uNJ7ht88ZLkmUm+m+RRrehS4GVL3RhJkqTVwiCVVsrTgBtmKD+bR7KOXgJ8Fbh12jlXAIcAuwCfAP4yyaPbsdOB06tqB+BJwKenf0EbsvFe4IVV9VWAqnoIWAccPP38dvy9dMGzxwNrWzDotUl+bAFtvRW4Dnhx239da+egDcCbgd3osqyOAH69HXsx8HPAk4EdgVcCd0xr067ARcD/rqrfqJqQWfQkaWnM1ieRZKsk/xHYCbgmyZPpMqDeBOwOnA98burFwpSq+jZdEOqVA8WvBc6pqh+1/euB/ZLssIRtkSRJq1zhnFTSUtsJ+MH0wqr6Z2CXJD/JzMEcquovquqOqnqoqv4E2A74yXb4R8ABSXarqnur6rJpl78JeBvw/KpaN+3YD1q9ZlRVl1XVrwF7AR+iy4han+QjC2jv2cDrkjwF2Kmqvjjt3le2+z9UVd+kmxfleQNtehzwFCBVdX1V3TZw+V50GQB/WVW/s4C6SJI2NVOftFeSu4HvAb8LvLaqbqDL8P3bqrqwBZv+X+AxwM/OcN+zgNfAw9nBxwMfGzg+9Z2z9j2SJEmbCxuG3MaNQSqtlLvoAi8z+RhwMvACumFxm0jym201vnvaA8SOdBlIACfSZRx9LckVSV4+7fK3AR+sqvUzfO/jgLvnq3hVPQBcDVxFN2Rvs6F3M/hr4PDWro9NP5jkyUk+n+TbSb4P/NFUm6rqYuB/AB8Ebk+yZtpb95fRPSD96QLqIUna3Ex90q1VtVNV7VJVh1TVOa18L+BbUydV1UbgZmDvGe77WeCgNkz8RcA9VfWlgeNT3zlv3yNJkjSlgI013DZuDFJppVxNF0yaycfohrqdX1X3DR5o80/9Ft3wiZ2raifgHuhCwlV1Y1UdTzcs773AuUkeO3CLFwO/k+QXpt13G+AA4CuzVTjJrklOTvIl4GJga+AFVfXs+Rrb2vF3wK8xQ5CKLjPra8CBbajib0+1qV3/gar6Gbr5UJ5MF2yb8mfA3wPnT2urJGlh5uqTprsVeHj+wjYH4L7ALdNPrKr76Yadv4ZuqN/0f/+fCnyzqr4/RJ0lSdIEM5NKWlrn88hwtk1U1TfasXfOcPhxwEN0K+Ntk+RddCsvAZDkNUl2b2+2p95MDw69vRY4EvhgkqMHyg+je1D4FjNIciLwzVavdwP7VtXbq+r6+Ro64LeB57XhfDO16/vAvW1I4K8NfPe/S/KsNtHuD4H72Xw48cl086l8LsljtqBOkqQ5+qQZfBp4WZIj2r/LbwUeAP55lvPPpls98Gg2D1I9j+4FhiRJ0oIVBqmkpXY28NLZAipV9U9VNX3CdIAL6LKG/pVuuMX9dMMsphwJXJvkXrpJ1I+btqQ4VfUV4OV0y4kf1YpfzdzD5b4IPLGqfrGq/raqNszbws3bdGtV/dMsh38T+E9085P8GfCpgWM7tLK76Np8B/Dfp9276JYxXw98dmAieUnS/Obskwa1ealeA/x/dPNV/Tzw81X14Czn/2+6Fwv/MsOLkOPp5iCUJEnSDOKiYFopSf4IuL2q3j/iejyebuLxZ7ShGZKkCbOcfVKSi4FPVNVHBsp+nm4y9lfOfqUkSdLmfurp29YnPr/HUNce8sT1V1bVoUtcpWVjJpVWTFX99qgDVK0et1fVUw1QSdLkWq4+Kcm/A57JphmyVNXnDFBJkyvJHyd50wp9135Jqs3BOv3YHm1Bou0W+R27J/naYEZqkl9Jsuh/V5NcmuSXF3De05PMNvS61+ZqY5K/Ghj9IQEO91u0JEcmuSHJuiSnLMd3SJLGl/2EVqMkZwH/ALypqn4w6vpI6ockuwOvow33TfL8FkT6zLTzDm7lly5XXarqO8AldNNGLMYpwJlT02wk2Rb4HdoUFQOBsnvb9s2l7u+r6mrg7papuqRafR9Mstu08i+3du231N854L3AHyzj/YFudEmSTya5ta2i/r+TPGuO85PkvUnuaNt722IiU8cPSXJlkvvaz0NGfe1qUoQNbDXUNm6WvMZJtgY+CBxFtzLZ8UkOWurvkSSNJ/sJrVZVdUJV7VhVZ466LpJ65ZfoVrEenDf1u8Bzkuw6UHYC3Tysy+3jwK8Me3HLwjoB+IuB4mOAr1XV9JVPd6qq7enm5HtXkiOH/d5ZzNmWJMONj+p8g67eU/d6GvBji7jfglTVl4Adkiz38KztgSuAnwF2Ac4C/jbJ9rOcfxJwLHAw8HS6ORp/BR4OUn6W7ndi53avz7byUV67qmysDLWNm+UIqx0GrKuqm9qkoufQ/aMlSRLYT0iSJstRdPOhDnoQ+BvgOHj4Bc6r6IIuD0tyepKbk3y/ZYn8h4FjhyVZ2459J8n7ZvryJL/QMoN+uhVdDvxEkicO2Z5nAXdX1fp52viwqvoi3arbP93q9LNJrmgZPFck+dkZ6r1tkjtbcGiq7PEtY2b3VnQpcERmH774e0muS/K2JD++Ra3sVmh93cD+CXQLbwzW8WUtu+r77e/p9waOPTrJX7Tsn7tbOzcLmiXZM8nVSd42UHwp8LItrO8Waf8d9r6quq2qNlTVGmBb4CdnueQE4E+qan0LRv4JXQAW4PnANsD7q+qBqvoAEODwEV+7ajjcb3H2ZtPV19a3MkmSwH5CkjRZngbcMEP52TwSBHkJ8FVg+mrXVwCH0GW6fAL4yzyyqvPpwOlVtQPwJODT078gyevpho+9sKq+ClBVDwHr6DJTlqo9s7VxarjWc4GfAr6cZBfgb4EPALsC76PL4BnMKmPgRdZrBoqPBy6qqu+2c24BfsTsgZU3AL9Bl4FzQ5LzkvzHJI9aQDsvo8toemoLIh7HptljAD+k+zvciS6o9GtJjm3HTgB2BPZt7fxVYJNVyJPsTxfc+x9VNbia9/XM8veT5Akt6DXb9p8W0LaZ7nsIXZBq3Syn/BTwlYH9r7SyqWNX16arsl097fgorl1Fwobaaqht3Gw2md5KSXISbSz01mz9Mz/GDqOqiiT11v38kAfrgfF7BbIE7CckaX6T3E+MkZ2Azeapq6p/TrJLkp+kC3ScDTxm2jmDQZE/SfI7dAGZr9AFZw5IsltVfY8uqDLoTcB/Bp4/LeuJVp+dlrA9M7YR+B5dEsi3gVOq6qIkrwVurKqPtXM+meQ36IZxnTnt+rPoAnOntEDEa4H/ttC2VNVGurkC/yHJ44BfBN4MfDjJh6vqv87T1qlsqn+kCxxtMpyxqi4d2L06ySeB59Flyf2ILjh1QJs/68pp9z6Ibh6vd1TVJ7egTf9ntmPDSrIDXVvfXVX3zHLa9sDgsXuA7dv8UNOPTR1/3Iiv1RhajiDVLXTR4in7MO3/zAAtnXANwA7ZpZ6VI5ahKpI03i6vi0ZdheVgPyFJS2SV9hOrzV3M/tD8MeBk4AV0AaVNsmCS/CZwIrAXXbBnB2BqMu8TgfcAX0vyDboAw+cHLn8b8J4ZAlS0+tw9vTDJE4DrpvbbfFILac9sbdytZW4N2gv41rSybzFDVnVVXZ7kPuD5SW4DDgDOm3bajG2Z4V4/SHI1cBVd5tds2VeDPgZ8AdifaUP9ANJNNH4q3TDGbYHtgL8cuHZf4JwkO9FlYb2zqn7Ujr+aLmvp3Bm+d0Ft2hJJrgWmhngeVVX/q5U/BvgccFlV/fEct7gXNnljuANwb1VVkunHpo7/YMTXrhoFbBzDSdCHsRytvAI4MMn+bcKy49j8HxJJ0uSyn5AkTZKrgSfPcuxjwK/TTax+3+CBNv/UbwGvBHauqp3oskQCUFU3VtXxwOPphvSdm+SxA7d4MfA7SX5h2n23oQv2DA6hot3z/1TV9lPbFrRnrjZOdyuPBEumPIEZXlg1Z9EN+XstcG5V3T91IMnedMGhGYcatnP2SXJKkuvohg9+Fzi4ql45X0Wr6lt0E6i/FPjrGU75BN1/w+xbVTsCf8ojfz8/qqp3V9VBwM8CL2fTOa5+jy7T7BNtOOGgpzLD309rzxPyyKqJM22vnqUtPzXwdzsVoNqOLutrPfNPpn8tmw5BPLiVTR17estumvL0acdHce2q4pxUQ2qR8pOBC+hSIj9dVavyl0SStOXsJyRJE+Z8uiFgm6mqb7Rj75zh8OOAh+iCKtskeRcDWSNJXpNk9zakbSrrZuPA9dcCRwIfTHL0QPlhwDdbAGYYXwJ2agGiKbO2cQbnA09O8p+SbJPkVXRD3z4/y/l/AfxHukDV9Gym5wEXV9UDM13YJjK/li5r6leBA6vq99uQuYU6ETi8qn44w7HHAXdW1f1JDmMgEy7JC5I8rQWgvk83/G/w7+dHdMMPHwucnWTw2fx5wN/NVJnpgcQZto/PdN10bV6uc+nmyTqh/R7N5WzgLUn2TrIX8FYeGZ55KbAB+I0k2yU5uZVfPOJrV42qyZmTallqXFXnV9WTq+pJVfWHy/EdkqTxZT8hSZogZwMvbcOqNlNV/1RV0ydMh+5lzt8D/0o3HO5+Nl145Ejg2jbk6XTguKraZGLuqvoKXQbPnyU5qhW/mi7jZyhtQvMz2XRC888BT2lBhPmuv6PV6a3AHXTZYi9v82rNdP7NwL/QjXj6X9MOz9eWvwH2qqrXV9UXpk2wvSBV9fWqWjvL4V8H3pPkB8C72HTy+h+nCwJ9n+6l3D/SZc4N3vtB4P8B9gDOSLJVkn9HN5ztS1ta1y00ld31YuDugUys/wBdJl/73ZryYbq/52voJvn/21Y21Y5j6TLF7qYbunpsKx/ltavKRjLUNm4yxP9Pl5xzjUjSzC6vi/h+3Tl+vcsSs5+QpJnZT4yHJH8E3F5V7x9xPR5PFyx5xuCwuSHusztdwOgZU4GxtuDJQVX1piWp7KbfdwZwa1X9zkDZ04EPV9Vzlvr7RinJXwEfrarzR10X9ceBT3tMnX7ek4a69mU/ce2VVXXoEldp2YxsdT9JkiRJmgRV9dujrgNAVd1ON9/RYu/zXeAp08rWLPa+M0myH1220TOmfd/VwKoKUAFU1S/Mf5a0tJIcSZeRuTXwkao6ddrx0+gWeAD4MeDxbZ48kmygy3QD+D9VNTi8eIsZpJIkSZLUK/M9MGkyJPl94M3AH7f5u6QJlWWbX6rNm/ZB4EV0k+hfkeS8qhpc6fPNA+f/FzYNGv9bVR2yVPUZv1m0JEmSJK1aAw9MR9FNqH18koNGWyuNQlX91zYZuPNXaqIVsJGthtoW4DBgXVXd1ObzOgc4Zo7zjwc+ufhWzcwglSRJkqQ+2dIHJkla9TZUhtoWYG82XZRhfSvbTJInAvuz6QqKj06yNsllSY4dtn1THO4nSZIkqU9memB61lwXbL39Y2ubXXZZ1kpJ0lJ46M472XDvD7dowYsibBg+x2i3JIMrVK5ZxBxyxwHnVtWGgbInVtUtSX4CuDjJNVX19WEra5BKkiRJ0thpq8mdBLD1zjuz11uXfFE5SVpyt/7JcIt8bhx+TqrvzbO63y3AvgP7+7SymRwHvGGwoKpuaT9vSnIp3XxVQwepHO4nSZIkqU8W9MBUVWuq6tCqOnTr7R+7YpWTpJVWwAa2GmpbgCuAA5Psn2RbukDUedNPSvIUYGfgiwNlOyfZrn3eDXgucN30a7eEQSpJkiRJfbKgByZJ0uJV1UPAycAFwPXAp6vq2iTvSXL0wKnHAedUVQ2UPRVYm+QrwCXAqYOrAg7D4X6SJEmSeqOqHkoy9cC0NXBGVV074mpJ0sgUC54Efbj7V50PnD+t7F3T9n9vhuv+GXjaUtbFIJUkSZKkXpnpgUmSJtnGCRkIZ5BKkiRJkiSpp6pgw/ATp48Vg1SSJEmSJEm9FTayfMP9+sQglSRJkiRJUk8Vk5NJNRmtlCRJkiRJUq+ZSSVJkiRJktRjGyYkx8gglSRJkiRJUk8VYWM5J5UkSZIkSZJGzEwqSZIkSZIkjVQBGydk4nSDVJIkSZIkSb0VNuBwP0mSJEmSJI3QJGVSTUYrJUmSJEmS1GtmUkmSJEmSJPWYw/0kSZIkSZI0UlWZmOF+BqkkSZIkSZJ6bINBKkmSJEmSJI1SARsd7idJkiRJkqTRiplUkiRJkiRJGq0CNtZkZFJNRihOkiRJkiRJvWYmlSRJkiRJUo9tmJAcI4NUkiRJkiRJPVVkYob7GaSSJEmSJEnqsY1mUkmSJEmSJGmUqmCDmVSSJEmSJEkatUkZ7jcZ+WKSJEmSJEnqNTOpJEmSJEmSeqqbOH0ycowMUkmSJEmSJPXYBiZjuJ9BKkmSJEmSpJ4qJmdOKoNUkiRJkiRJvTU5w/0mo5WSJEmSJEljaiMZaluIJEcmuSHJuiSnzHD8l5J8N8lVbfvlgWMnJLmxbScstp1mUkmSJEmSJPVUFWxYpuF+SbYGPgi8CFgPXJHkvKq6btqpn6qqk6dduwvwu8ChdKMSr2zX3jVsfcykkiRJkiRJmkyHAeuq6qaqehA4Bzhmgde+BLiwqu5sgakLgSMXUxmDVJIkSZIkST22sbYaagN2S7J2YDtp2q33Bm4e2F/fyqb7hSRXJzk3yb5beO2CzRukSnJGktuTfHWgbJckF7Yxhxcm2bmVJ8kH2jjGq5M8czGVkyT1n/2EJEmStHyKsLGG24DvVdWhA9uaIarwOWC/qno6XbbUWUvZvkELyaQ6k83TtU4BLqqqA4GL2j7AUcCBbTsJ+NDSVFOS1GNnYj8hSZIkLZtlnDj9FmDfgf19WtnDquqOqnqg7X4E+JmFXrul5g1SVdUXgDunFR/DI5Gzs4BjB8rPrs5lwE5J9lxMBSVJ/WY/IUmSJC2fgsVkUs3nCuDAJPsn2RY4Djhv8IRp/71+NHB9+3wB8OIkO7eREy9uZUMbdnW/Parqtvb528Ae7fNs4xFvY5o2DvIkgEfzY0NWQ5LUU/YTkiRJ0hJp80stuap6KMnJdMGlrYEzquraJO8B1lbVecBvJDkaeIju5fQvtWvvTPL7dIEugPdU1fSX11tk2CDVw6qqktQQ160B1gDskF22+HpJ0niwn5AkSZL6q6rOB86fVvaugc/vAN4xy7VnAGcsVV2GDcV9Zyrdq/28vZUv+XhESdJYsp+QJEmSlsKQQ/0WONyvV4YNUp0HnNA+nwB8dqD8dW31pmcD9wwM95AkTQ77CUkS4CqwkrRYxbJOnN4r8wapknwS+CLwk0nWJzkROBV4UZIbgRe2fejSw24C1gF/Bvz6stRaktQb9hOSpHmciavAStKiTEom1bxzUlXV8bMcOmKGcwt4w2IrJUkaH/YTkqS5VNUXkuw3rfgY4Pnt81nApcDbGVgFFrgsyU5J9jTrVtIkm1rdbxIseuJ0SZIkSdpCS7oK7NY777x8NZWkHjBIJUmSJEnLbClWgd3uCfu6CqykVasYz6F7wxh24nRJkiRJGparwEqSNmOQSpIkSdJKcxVYSdoCk7K6n8P9JEmSJC2btgrs84HdkqwHfpdu1ddPtxVhvwW8sp1+PvBSulVg7wNev+IVlqS+KeekkiRJkqRFcxVYSVocV/eTJEmSJElSLxikkiRJkiRJ0ki5up8kSZIkSZK0gsykkiRJkiRJ6rGakEwqg1SSJEmSJEk9thGDVJIkSZIkSRqhKidOlyRJkiRJUg843E+SJEmSJEkjNjmr+xmkkiRJkiRJ6rFJyaTaatQVkCRJkiRJksykkiRJkiRJ6qnCidMlSZIkSZI0atWt8DcJDFJJkiRJkiT12EbMpJIkSZIkSdIIFZMzcbpBKkmSJEmSpN6Kc1JJkiRJkiRp9CZlTqqtRl0BSZIkSZIkyUwqSZIkSZKkHpuUOanMpJIkSZIkSeqpqi5INcy2EEmOTHJDknVJTpnh+FuSXJfk6iQXJXniwLENSa5q23mLbauZVJIkSZIkST22XBOnJ9ka+CDwImA9cEWS86rquoHTvgwcWlX3Jfk14L8Br2rH/q2qDlmq+phJJUmSJEmS1GNdNtWWbwtwGLCuqm6qqgeBc4BjNv3uuqSq7mu7lwH7LGXbBhmkkiRJkiRJ6rFlHO63N3DzwP76VjabE4G/G9h/dJK1SS5LcuyWt2xTDveTJEmSJElanXZLsnZgf01VrRnmRkleAxwKPG+g+IlVdUuSnwAuTnJNVX192MoapJIkSZIkSeqpYuGToM/ge1V16BzHbwH2Hdjfp5VtIskLgXcCz6uqBx6uW9Ut7edNSS4FngEMHaRyuJ8kSZIkSVKP1ZDbAlwBHJhk/yTbAscBm6zSl+QZwIeBo6vq9oHynZNs1z7vBjwXGJxwfYsZpJIkSZpwF9x61airIEmSZlPLNydVVT0EnAxcAFwPfLqqrk3yniRHt9P+O7A98JdJrkoyFcR6KrA2yVeAS4BTp60KuMUc7idNgKmHj5fstWQrg0qSVompPsK+QpKkHltgWtRQt646Hzh/Wtm7Bj6/cJbr/hl42lLWxSCVtMoNvh33AUSSNB/7CklaHQ5482UArDvt2SOuiZbCIuakGisGqaQJ5AOIJAnmHuZnXyFJ420qOHXAmy8zULUK1DJmUvWJc1JJq9h8c4w4B4kkaT72FZI03gaDVVLfGaSSVqmFPlRccOtVPoBI0gTy335JWr1mCkgZrBpfxfJNnN43BqkkOZRDksaMASZJ0lzmGt637rRnG6gaNwVUhtvGjEEqqYcWm93kw4skrX72E5KkYTlH1fipGm4bNwapJEmSJEnqETOdtJkachszru4nrTK+HZckzcV+QpL6z0wnbWo855cahplUkiRJE8IAlSStXmZfaTWYN0iVZN8klyS5Lsm1Sd7YyndJcmGSG9vPnVt5knwgybokVyd55nI3QlqttvRhYpiHDydN12LZT0ijsxJBJ/sJSVpZwwabzL5a5SZkuN9CMqkeAt5aVQcBzwbekOQg4BTgoqo6ELio7QMcBRzYtpOADy15rSVJfWI/IY0Bs6gkaTxMBZuWMzPq66/602W7t5ZBQVWG2sbNvEGqqrqtqv6lff4BcD2wN3AMcFY77Szg2Pb5GODs6lwG7JRkzyWvuaRN+PChUbGfkCTNxYxbaTjLmRn1pE/96rLdW8vETKrNJdkPeAZwObBHVd3WDn0b2KN93hu4eeCy9a1M0gIME2wyQKW+sJ+Qlp/9hMaQGbeStGgZchsvCw5SJdke+CvgTVX1/cFjVbXFMbokJyVZm2Ttj3hgSy6VJPWQ/YQ0GhfcetWcQSgDVBo1M26l5eNk6RPETKpHJHkU3YPHx6vqr1vxd6Y6i/bz9lZ+C7DvwOX7tLJNVNWaqjq0qg59FNsNW39p1Zt6+JjtIcOHD/WB/YQ0ejP1FfYR6pulzLgdfJmx4d4fLludpVGaLwjlZOkTxCBVJ0mAjwLXV9X7Bg6dB5zQPp8AfHag/HVtLPmzgXsGOh9Ji+DDh/rIfkLql6m+YSn6CFf201Ja6ozbwZcZW2//2CWsqdQf6057ttlSmijbLOCc5wKvBa5JMvVfO78NnAp8OsmJwLeAV7Zj5wMvBdYB9wGvX9IaSxNuKQNTPnxoidhPSD3jSwz1zVwZt1V12zAZt9JqdMAcybTQAAAc0UlEQVSbL9ssO2pwfypgZQbVhClgDFfqG8a8Qaqq+idmn23riBnOL+ANi6yXJGlM2E9IkuaygIzbU9k84/bkJOcAz8KMW02Q+YJPBqcmV43h0L1hLCSTSpIkSZKGZcatJC2WQSpJkiRJWhwzbiVpCTjcT9JKcw4RSdJc7CckSZpMmZBMqnlX95MkSdLkcXENSZK00sykkiaUDx+SJEmSNAYK56SSJEmSJEnSqMU5qSRJkiRJktQDZlJJkiRJkiRp5AxSSZIkSZIkaeQMUklarZw0XZLGzwW3XrVi32U/IUlSjxQTMyfVVqOugKTOSj58SJIkSZLUNwapJEmSJEmSeiw13LageydHJrkhybokp8xwfLskn2rHL0+y38Cxd7TyG5K8ZLHtNEglSZIkSZLUZzXkNo8kWwMfBI4CDgKOT3LQtNNOBO6qqgOA04D3tmsPAo4Dfgo4Evj/2/2GZpBKkiRJkiRpMh0GrKuqm6rqQeAc4Jhp5xwDnNU+nwsckSSt/JyqeqCqvgGsa/cbmkEqSZIkSZJWsa+/6k9HXQUt0jIO99sbuHlgf30rm/GcqnoIuAfYdYHXbhFX95MkSdLDXNlPklafJ33qV0ddBS3W8Kv77ZZk7cD+mqpaswQ1WhYGqaQJ48OHJEmSJI2RBc4vNYvvVdWhcxy/Bdh3YH+fVjbTOeuTbAPsCNyxwGu3iMP9JEmSeu6CW68adRUkSdLqdAVwYJL9k2xLNxH6edPOOQ84oX1+BXBxVVUrP66t/rc/cCDwpcVUxkwqqQd8+JAkSZIkzWr4TKq5b1v1UJKTgQuArYEzquraJO8B1lbVecBHgY8lWQfcSRfIop33aeA64CHgDVW1YTH1MUglSZIkSZLUYwucBH0oVXU+cP60sncNfL4f+MVZrv1D4A+Xqi4O95MkSZIkaZVyZb9VoobcxoyZVJIkSQJcXEOSViNX9lslxjDgNAyDVNIE8eFDkiRJksZLanmH+/WJw/0kSZIkSVqFHOqncWMmlTQhzKKSJM3FfkKSVh+H+q0ilVHXYEUYpJIkSZpwBqgkSeo5h/tJWi18+JAkSZL6y2F5ms/UvFRbuo0bg1RSDyxnEMkAlSSNP/sJSVrdHJanedWQ25gxSCVJkjShDFBJUn8sVTaVWVmr0JBZVGZSSeoVHz4kafXw33RJWt2WKpvKrKxVykwqSStpqR8+fJiRpNVnKf9tt5+QJEl9Y5BK6pGX7HWIDw2SpDktRV9hXyNJ/bfQYXsO75sQE5JJtc2oKyBp6fnwIUmSJI23qWF7cwWhnvSpX3V434QYx/mlhmGQSuqhqSDTBbdeNeKaSJL66iV7HTJUP+GLDEkaLwahNEkMUkk9tiUPID50SNLkWehLDfsISZLGnJlUkvrABwtJ0nzsKyRJWsVqcob7OXG6JEmSJEmSRs5MKkmSJEmSpD6bkEwqg1SSJEmSJEl9ZpBKkiRJkiRJoxSck0qSJEmSFi3Jo5N8KclXklyb5N2tfP8klydZl+RTSbZt5du1/XXt+H6jrL8k9UINuY0Zg1SSJEmSltMDwOFVdTBwCHBkkmcD7wVOq6oDgLuAE9v5JwJ3tfLT2nmSNLna6n7DbONm3iCVbz4kSXOxn5AkzaU697bdR7WtgMOBc1v5WcCx7fMxbZ92/IgkWaHqSlI/mUn1MN98SJLmYj8hSZpTkq2TXAXcDlwIfB24u6oeaqesB/Zun/cGbgZox+8Bdp3hniclWZtk7YZ7f7jcTZAkrYB5g1S++ZAkzcV+QpI0n6raUFWHAPsAhwFPWYJ7rqmqQ6vq0K23f+yi6yhJvWYm1SOW482HJGn1sJ+QJC1EVd0NXAI8B9gpydRq4/sAt7TPtwD7ArTjOwJ3rHBVJalXnJNqwHK8+RhMz/0RDyz2dpKkEbKfkCTNJsnuSXZqnx8DvAi4ni5Y9Yp22gnAZ9vn89o+7fjFVTWGj1qStITMpNrcUr75GEzPfRTbDVl9SVKf2E9IkmawJ3BJkquBK4ALq+rzwNuBtyRZR5dR+9F2/keBXVv5W4BTRlBnSeqPYQNUYxik2ma+E5LsDvyoqu4eePPxXh5583EOM7/5+CK++ZCkVc9+QpI0l6q6GnjGDOU30WXfTi+/H/jFFaiaJI2NcRy6N4yFZFL55kOSNBf7CUmSJGmVSbJLkguT3Nh+7jzDOYck+WKSa5NcneRVA8fOTPKNJFe17ZD5vnPeTCrffEiS5mI/IUmSJC2z0WRSnQJcVFWnJjml7b992jn3Aa+rqhuT7AVcmeSCNg0IwNuq6lwWaIvmpJIkSZIkSdLKGtHqfscAZ7XPZwHHTj+hqv61qm5sn2+lW+1792G/0CCVJEmSJElSn41m4vQ9quq29vnbwB5znZzkMGBb4OsDxX/YhgGelmTe1ZDmHe4nSZIkSZKkEVlcwGm3JGsH9tdU1ZqpnST/APz4DNe9c5MqVFUye25Wkj2BjwEnVNXGVvwOuuDWtsAauqGC75mrsgapJEmSJEmSeiptG9L3qurQ2Q5W1Qtn/d7kO0n2rKrbWhDq9lnO2wH4W+CdVXXZwL2nsrAeSPLnwG/OV1mH+0mSJEmSJPXZaIb7nQec0D6fAHx2+glJtgU+A5w9fYL0FtgiSejms/rqfF9okEqSJEmSJEnTnQq8KMmNwAvbPkkOTfKRds4rgZ8DfinJVW07pB37eJJrgGuA3YA/mO8LHe4nSZIkSZLUY0uwUt8Wq6o7gCNmKF8L/HL7/BfAX8xy/eFb+p0GqSRJkiRJkvpsBEGqUTBIJUmSJEmS1GcGqSRJkiRJkjRSNZrhfqNgkEqSJEmSJKnPDFJJkiRJkiRp1CYlk2qrUVdAkiRJkiRJMpNKkiRJkiSpzyYkk8oglSRJkiRJUo9NynA/g1SSJEmSJEl9VZhJJUmSJEmSpB4wSCVJkiRJkqRRCpMz3M/V/SRJkiRJkjRyZlJJkiRJkiT12YRkUhmkkiRJkiRJ6rHUZESpDFJJkiRJkiT1lav7SZIkSZIkqQ8mZeJ0g1SSJEmSJEl9ZpBKkiRJkiRJozYpmVRbjboCkiRJkiRJkplUkiRJkiRJfTYhmVQGqSRJkiRJkvqqJme4n0EqSZIkSZKkPjNIJUmSJEmSpFEKZlJJkiRJkiSpD2oyolSu7idJkiRJkqSRM5NKkiRJkiSpxxzuJ0mSJEmSpNEqnDhdkiRJkiRJo5eNo67BynBOKkmSJEnLLsnWSb6c5PNtf/8klydZl+RTSbZt5du1/XXt+H6jrLck9UINuY0Zg1SSJEmSVsIbgesH9t8LnFZVBwB3ASe28hOBu1r5ae08SZpoqeG2RX1nskuSC5Pc2H7uPMt5G5Jc1bbzBspnfBkxF4NUkiRJkpZVkn2AlwEfafsBDgfObaecBRzbPh/T9mnHj2jnS9JkKqBquG1xTgEuqqoDgYva/kz+raoOadvRA+WzvYyYlUEqSZIkScvt/cBvAVOzquwK3F1VD7X99cDe7fPewM0A7fg97XxJ0soafGkw+DJhXvO8jJiVQSpJkiRJyybJy4Hbq+rKJb7vSUnWJlm74d4fLuWtJal3FjHcb7epfyvbdtIWfO0eVXVb+/xtYI9Zznt0u/dlSaYCUXO9jJiVq/tJkiRJWk7PBY5O8lLg0cAOwOnATkm2aQ8w+wC3tPNvAfYF1ifZBtgRuGP6TatqDbAGYLsn7DuG0wNL0hYY/l+571XVobMdTPIPwI/PcOidm3x9VSWzznL1xKq6JclPABcnuYYuC3aLmUklSZIkadlU1Tuqap+q2g84Dri4ql4NXAK8op12AvDZ9vm8tk87fnHV4idWkaRxFZZv4vSqemFV/fQM22eB7yTZE6D9vH2We9zSft4EXAo8g+7lwk7tZQNs+jJiVgapJEmSJI3C24G3JFlHNyzko638o8CurfwtzD5RryRNhmEnTV98fH/wpcHgy4SHJdk5yXbt82502bPXtZcLs72MmNWCg1RJtk7y5SSfb/szLiWYZLu2v64d32+h3yFJGl/2E5Kk+VTVpVX18vb5pqo6rKoOqKpfrKoHWvn9bf+Advym0dZakkZvuTKp5nEq8KIkNwIvbPskOTTJR9o5TwXWJvkKXVDq1Kq6rh2b7WXErLYkk+qNwPUD+7MtJXgicFcrP62dJ0la/ewnJEmSpFWiqu6oqiOq6sA2LPDOVr62qn65ff7nqnpaVR3cfn504PoZX0bMZUFBqiT7AC8DPtL251pKcHCJwnOBI9r5kqRVyn5CkiRJWkY15DZmFppJ9X7gt4CNbX+upQT3Bm4GaMfvaedvYnDJ2B8xbzBNktRv9hOSJEnSMhnRcL8VN2+QKsnLgdur6sql/OKqWlNVh1bVoY9iu6W8tSRpBdlPSJIkScuogI013DZmtpn/FJ4LHJ3kpcCjgR2A02lLCba34INLCd4C7Ausb0sN7ki39KAkaXWyn5AkSZKW0/jFm4YybyZVVb2jqvapqv2A44CLq+rVzL6U4OASha9o50/IH6ckTR77CUmSJGl5OdxvfrMtJfhRYNdW/hbglMVVUZI0puwnJEmSpKVQNdw2ZhYy3O9hVXUpcGn7fBNw2Azn3A/84hLUTZI0ZuwnJEmSJA1ri4JUkiRJkiRJWlnjOHRvGAapJEmSJEmS+qqYmInTDVJJkiRJkiT1VICM4fxSwzBIJUmSJEmS1GcbR12BlWGQSpIkSZIkqcfMpJIkSZIkSdJoTdCcVFuNugKSJEmSJEmSmVSSJEmSJEm9VeBwP0mSJEmSJI1aJiNGZZBKkiRJkiSp18ykkiRJkiRJ0kgVZOOoK7EyDFJJkiRJkiT12YRkUrm6nyRJkiRJkkbOTCpJkiRJkqQ+m4xEKoNUkiRJkiRJfZYJGe5nkEqSJEmSJKnPDFJJkiRJkiRppApwdT9JkiRJkiSNUiiH+0mSJEmSJKkHJiRItdWoKyBJkiRJkiSZSSVJkiRJktRnZlJJkiRJkiRppKYmTh9mW4QkuyS5MMmN7efOM5zzgiRXDWz3Jzm2HTszyTcGjh0y33capJIkSZIkSeqxVA21LdIpwEVVdSBwUdvfRFVdUlWHVNUhwOHAfcD/HDjlbVPHq+qq+b7QIJUkSZIkSVKfVQ23Lc4xwFnt81nAsfOc/wrg76rqvmG/0DmpJEmSJI21B29ef+833/SbN4y6HkPaDfjeqCsxJOs+GuNa93GtNyxt3Z+45ZcsScBpGHtU1W3t87eBPeY5/zjgfdPK/jDJu2iZWFX1wFw3MEglSZIkadzdUFWHjroSw0iy1rqvPOu+8sa13jDedQd2S7J2YH9NVa2Z2knyD8CPz3DdOwd3qqqSzBopS7In8DTggoHid9AFt7YF1gBvB94zV2UNUkmSJEmSJPVVsZhMqu/NFWCrqhfOdizJd5LsWVW3tSDU7XN8zyuBz1TVjwbuPZWF9UCSPwd+c77KOieVJEmSJElSn41gdT/gPOCE9vkE4LNznHs88MnBghbYIkno5rP66nxfaJBKkiRJ0rhbM/8pvWXdR8O6r7xxrTf0oO4jWt3vVOBFSW4EXtj2SXJoko88XLdkP2Bf4B+nXf/xJNcA19DN6/UH832hw/0kSZIkjbXB+VXGjXUfDeu+8sa13tCTuo9g4vSqugM4YobytcAvD+x/E9h7hvMO39LvNEglSZIkSZLUVwVsHMnqfivOIJUkSZIkSVJv1UgyqUbBOakkSZIkja0kRya5Icm6JKeMuj7TJTkjye1JvjpQtkuSC5Pc2H7u3MqT5AOtLVcneeYI671vkkuSXJfk2iRvHKO6PzrJl5J8pdX93a18/ySXtzp+Ksm2rXy7tr+uHd9vVHWfkmTrJF9O8vm2PxZ1T/LNJNckuSrJ2lbW+9+ZVp+dkpyb5GtJrk/ynHGp+2pikEqSJEnSWEqyNfBB4CjgIOD4JAeNtlabORM4clrZKcBFVXUgcFHbh64dB7btJOBDK1THmTwEvLWqDgKeDbyh/dmOQ90fAA6vqoOBQ4AjkzwbeC9wWlUdANwFnNjOPxG4q5Wf1s4btTcC1w/sj1PdX1BVh1TVoW1/HH5nAE4H/r6qngIcTPfn35+6Vw23jRmDVJIkSZLG1WHAuqq6qaoeBM4BjhlxnTZRVV8A7pxWfAxwVvt8Ft3S7FPlZ1fnMmCnqSXcV1pV3VZV/9I+/4DugX1vxqPuVVX3tt1Hta2Aw4FzW/n0uk+16VzgiCRZoepuJsk+wMuAj7T9MCZ1n0Xvf2eS7Aj8HPBRgKp6sKrupk91n5AgVS/mpPoBd937D3XuDaOuxxLaDfjeqCuxRGxLP62mtsDqas9St+WJS3ivsWU/0Wu2pZ9WU1tgdbXHfmJp7Q3cPLC/HnjWiOqyJfaoqtva528De7TPM7Vnb+A2RqgNIXsGcDljUveWZXclcABdtt3Xgbur6qFp9YOBulfVQ0nuAXZldP/uvB/4LeBxbX9XxqfuBfzPJAV8uK2KNw6/M/sD3wX+PMnBdL87b6QvdXfi9BV3w0Aq4NhLsna1tMe29NNqagusrvasprb0jP1ET9mWflpNbYHV1Z7V1BYtjaqq9kDfS0m2B/4KeFNVfX8wSafPda+qDcAhSXYCPgM8ZcRVWpAkLwdur6orkzx/1PUZwr+vqluSPB64MMnXBg/2+HdmG+CZwH+pqsuTnM4jQ/uAUde9oDaO5qtXmMP9JEmSJI2rW4B9B/b3aWV9952poUHt5+2tvFftSfIougDVx6vqr1vxWNR9ShuydQnwHLohWVOJGoP1e7ju7fiOwB0rXNUpzwWOTvJNuuGrh9PNlTQOdaeqbmk/b6cLDh7GePzOrAfWV9Xlbf9cuqBVf+o+IcP9DFJJkiRJGldXAAe2lc+2BY4DzhtxnRbiPOCE9vkE4LMD5a9rK4c9G7hnYKjRimrzGn0UuL6q3jdwaBzqvnvLoCLJY4AX0c2pdQnwinba9LpPtekVwMVVo3m6r6p3VNU+VbUf3e/zxVX1asag7kkem+RxU5+BFwNfZQx+Z6rq28DNSX6yFR0BXMcY1H216ctwvzWjrsASW03tsS39tJraAqurPaupLX2y2v5cV1N7bEs/raa2wOpqz2pqy8i1OXhOBi4AtgbOqKprR1ytTST5JPB8YLck64HfBU4FPp3kROBbwCvb6ecDLwXWAfcBr1/xCj/iucBrgWuSXNXKfpvxqPuewFltXqqtgE9X1eeTXAeck+QPgC/TJsluPz+WZB3dJPfHjaLS83g7/a/7HsBn2pDQbYBPVNXfJ7mC/v/OAPwX4OMt4H1Tq89W9KHuEzQnVUYUZJUkSZIkSdI8dtx2j/rZPYaLP/79+g9cOU5zIfYlk0qSJEmSJEkzmZAEo5HPSZXkyCQ3JFmX5JT5rxitJGckuT3JVwfKdklyYZIb28+dW3mSfKC17eokzxxdzTeXZN8klyS5Lsm1Sd7Yyse1PY9O8qUkX2nteXcr3z/J5a3en2rpmyTZru2va8f3G2X9Z5Jk6yRfTvL5tj+WbUnyzSTXJLkqydpWNq6/ZzslOTfJ15Jcn+Q549qWcWE/MTqrqZ+wj+h9W+wnetgWSVJfDDlp+hgGtkYapEo3RviDwFHAQcDxSQ4aZZ0W4EzgyGllpwAXVdWBwEU8slTlUcCBbTsJ+NAK1XGhHgLeWlUHAc8G3tD+/Me1PQ8Ah1fVwcAhwJHpJrF7L3BaVR0A3AWc2M4/EbirlZ/WzuubN9JN8jhlnNvygqo6ZCDVdFx/z04H/r6qngIcTPf3M65t6T37iZFbTf2EfUS/2wL2E31siySpDwrYuHG4bcyMOpPqMGBdVd1UVQ/SLbF5zIjrNKeq+gLdhHSDjgHOap/PAo4dKD+7OpfRLRu658rUdH5VdVtV/Uv7/AO6/4jam/FtT1XVvW33UW0rumVbz23l09sz1c5zgSOSbpa/PkiyD/Ay4CNtP4xpW2Yxdr9nSXYEfo42UWVVPdiWNR67towR+4kRWk39hH1Ef9syh7H7PbOfkCQtGzOpVsTewM0D++tb2bjZY2C5yW/TrWoAY9S+lvr/DOByxrg9bejDVcDtwIXA14G7q+qhdspgnR9uTzt+D7DrytZ4Tu8HfguYCn/vyvi2pYD/meTKJCe1snH8Pdsf+C7w522IzUfSLa87jm0ZF6vlz3Dsf0dWQz9hH9HbtoD9xJQ+tUWSpBU36iDVqlPdcoljFa5Msj3wV8Cbqur7g8fGrT1VtaGqDgH2ocvAeMqIqzSUJC8Hbq+qK0ddlyXy76vqmXTDGt6Q5OcGD47R79k2wDOBD1XVM4Af8siQDWCs2qIRGcffkdXST9hH9Jr9hCRJczGTakXcAuw7sL9PKxs335lKzW4/b2/lvW9fkkfRPXh8vKr+uhWPbXumtNT6S4D/297dhFpRxnEc//70IkWIQkovGhQkgWupxE3YC9aiNyyMKAm3tmljL4s2LWpTqzaCgURlIohS0gVRaCcWLfIF4SKFV4hANIIWIfffYubGKdJDx2xmrt8PDGfmOc/MPP/LXB7mf555Zj3N0Pn5N1mOtvnPeNrvlwEX/uemXskG4MkkP9A83rSRZo6LIcZCVZ1vP38G9tPcHA7xOpsFZqvqWLu9j+ZmZIixDMVC+RsO9hpZiP2EfUSvYgHsJ0b271MskqTeKJibcBmYrpNUx4E17dtolgBbgIMdt2kSB4Gt7fpW4MBI+cvtm1seBH4ZGerduXY+il3A6ap6f+SrocazMsnydv1m4FGa+VOOApvban+PZz7OzcCR9tfNzlXVG1W1uqrupvm/OFJVLzLAWJLckmTp/DrwGHCCAV5nVfUTcC7JfW3Rw8ApBhjLgNhPdGgh9RP2Ef2MBewn6GkskqQeKaiam2gZmqnxVa6fqrqcZDswDSwGPqqqk122aZwknwEPASuSzAJvA+8Ce5NsA34Enm+rHwKeAGaA34BX/vcGX90G4CXg+3aODoA3GW48dwC707wNbBGwt6q+SHIK2JPkHeA72slM28+Pk8zQTHK8pYtG/0s7GF4stwH7m3tdpoBPq+qrJMcZ5nX2KvBJmzA5S9O+RQwzlt6zn+jcQuon7CP6G4v9RH9jkST1xQBHRU0iPfohTZIkSZIkSSOWTa2s9Usne8H19KVd31bVuv+4SddN14/7SZIkSZIkSd0+7idJkiRJkqSrqIK54c0vNQmTVJIkSZIkSX12g0zVZJJKkiRJkiSpx8qRVJIkSZIkSepWOZJKkiRJkiRJHStgziSVJEmSJEmSulY3xuN+i7pugCRJkiRJkmSSSpIkSZIkqacKqLmaaLkWSZ5LcjLJXJJ1V6m3KcmZJDNJXh8pvyfJsbb88yRLxp3TJJUkSZIkSVJfVTWP+02yXJsTwLPA11eqkGQx8CHwOLAWeCHJ2vbr94APqupe4CKwbdwJTVJJkiRJkiT1WBcjqarqdFWdGVPtfmCmqs5W1e/AHuCpJAE2AvvaeruBp8ed04nTJUmSJEmS+qy/E6evAs6NbM8CDwC3Apeq6vJI+apxBzNJJUmSJEmS1FO/cnH6cO1bMeHuNyX5ZmR7Z1XtnN9Ichi4/R/2e6uqDkx4zomZpJIkSZIkSeqpqtp0HY/9yDUe4jxw18j26rbsArA8yVQ7mmq+/Kqck0qSJEmSJEmTOA6sad/ktwTYAhysqgKOApvbeluBsSOzTFJJkiRJkiTpL5I8k2QWWA98mWS6Lb8zySGAdpTUdmAaOA3sraqT7SF2AK8lmaGZo2rX2HM2yS1JkiRJkiSpO46kkiRJkiRJUudMUkmSJEmSJKlzJqkkSZIkSZLUOZNUkiRJkiRJ6pxJKkmSJEmSJHXOJJUkSZIkSZI6Z5JKkiRJkiRJnTNJJUmSJEmSpM79ASVi65zz/gxNAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 1440x720 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plotDiff(M.transpose(FLIP_TOP_BOTTOM), P.transpose(FLIP_TOP_BOTTOM))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<pre>\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"</pre>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Define multiple general polygons\n",
"\n",
"Modified shape from [unit test of](https://github.com/facebookresearch/maskrcnn-benchmark/blob/b8c5bcafa02e4a7489b5a79bf4609933f98c9599/tests/test_segmentation_mask.py) PR #150"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
"poly = [[[423.0, 306.5, 406.5, 277.0, 400.0, 271.5, 389.5, 277.0, 387.5, 292.0,\n",
" 384.5, 295.0, 374.5, 220.0, 378.5, 210.0, 391.0, 200.5, 404.0, 199.5,\n",
" 414.0, 203.5, 425.5, 221.0, 438.5, 297.0, 423.0, 306.5],\n",
" [100, 100, 200, 100, 200, 200, 100, 200],\n",
" [width-200, height-200, width-100, height-200, width-100, height-100, width-200, height-100]\n",
" ]] \n",
"\n",
"width = 640\n",
"height = 480\n",
"size = (width, height)\n",
"box = [400, 250, 500, 300]\n",
"\n",
"P = SegmentationMask(poly, size, 'poly')\n",
"M = SegmentationMask(poly, size, 'poly').convert('mask')"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7f865c48a710>"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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AAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLiEAAAAEAxcQgAAACgmDgEAAAAUEwcAgAAACgmDgEAAAAUE4cAAAAAiolDAAAAAMXEIQAAAIBi4hAAAABAMXEIAAAAoJg4BAAAAFBMHAIAAAAoJg4BAAAAFBOHAAAAAIqJQwAAAADFxCEAAACAYuIQAAAAQDFxCAAAAKCYOAQAAABQTBwCAAAAKCYOAQAAABQThwAAAACKiUMAAAAAxcQhAAAAgGLi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\n",
"text/plain": [
"<Figure size 1440x1440 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(20, 20))\n",
"plt.title('Mask')\n",
"plt.imshow(M.instances.masks[0])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## TEST: Conversion [PASS]"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7f865c343c88>"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1440x1440 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"M_hat = M.convert('poly').convert('mask')\n",
"P_hat = P.convert('mask').convert('poly')\n",
"\n",
"plt.figure(figsize=(20,20))\n",
"\n",
"plt.subplot(1, 2, 1)\n",
"diff = M.instances.masks - M_hat.instances.masks\n",
"plt.title('(Mask) - (Mask > Poly > Mask) = %4.2f'%(diff.sum().item()))\n",
"plt.imshow(diff[0])\n",
"\n",
"plt.subplot(1, 2, 2)\n",
"# Mask conversion for Poly is necessary for comparison and plotting\n",
"diff = P.convert('mask').instances.masks - P_hat.convert('mask').instances.masks\n",
"plt.title('(Poly > Mask) - (Poly > Mask > Poly > Mask) = %4.2f'%(diff.sum().item()))\n",
"plt.imshow(diff[0])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## TEST: Crop [PASS]"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1440x720 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plotDiff(M.crop(box), P.crop(box), 'crop')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## TEST: Resize [PASS]"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1440x720 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"new_size = 1000, 100\n",
"plotDiff(M.resize(new_size), P.resize(new_size), 'resize')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## TEST: Transpose [Pass]"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"FLIP_LEFT_RIGHT = 0\n",
"FLIP_TOP_BOTTOM = 1"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKkAAAFGCAYAAAChacxOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3XucZWV95/vPl0bQqNyRcFNQMEpiQKcHMZ4TFVBBDZijEYgXdMiLSaKJGqNidDSay+DMmRA94xE7QgCjgiExoiEyhEtyMhGkiQgCEhrU0ICi3BQJIN2/88d6CnZXV3VV7dpVe+/an7ev9aq9nrXW3r+nu+zF/q3f8zypKiRJkiRJkqRh2mrYAUiSJEmSJEkmqSRJkiRJkjR0JqkkSZIkSZI0dCapJEmSJEmSNHQmqSRJkiRJkjR0JqkkSZIkSZI0dCapJEmSJEmSJlCS05PckeQbsxxPko8mWZfk6iTP6Tl2fJIb23b8IOIxSSVJkiRJkjSZzgCO2MLxI4H923Yi8HGAJDsBHwCeCxwMfCDJjosNxiSVJEmSJEnSBKqqfwTu2sIpRwNnVecyYIckuwMvBS6sqruq6m7gQrac7JoXk1SSJEmSJEmayZ7ALT3761vbbO2LsvVi30CSJEmSJElL46UvenzdedeGvq698uoHrwUe6GlaU1VrBhLYEjBJJUmSJEmSNKLuvGsDX73gyX1du2r3Gx+oqtWL+Phbgb179vdqbbcCL5zWfukiPgdwuJ8kSZIkSdLIKmBjn/8bgPOAN7RV/g4B7q2q24ELgJck2bFNmP6S1rYoVlJJkiRJkiSNrGJDDSThtJkkn6WriNolyXq6FfseA1BVpwLnAy8D1gH3A29qx+5K8gfAFe2tPlRVW5qAfV5MUkmSJEmSJI2orpKqlua9q46b43gBb57l2OnA6YOMxySVJEmSJEnSCBvQ0L2RZ5JKkiRJkiRpRBXFhlqaSqpRY5JKkiRJkiRphC3VcL9R4+p+kiRJkiRJGjorqSRJkiRJkkZUARsmpJLKJJUkSZIkSdIIm5ThfiapJEmSJEmSRlTBxEyc7pxUWjZJ/muSty3TZ+2TpJJslohNsluS65NsuxyxDFKSM5L84bDjkKRxN6h7UpJvJzl8Huf9UpJzFvt5kiRpMm3scxs3Jqm0LJLsCrwB+ETbf2FLIn1+2nkHtvZLlyqWqvoecAlw4qDfO8mlLf4Dp7V/vrW/cNCfKUlamFnuSRuT3JfkR0luSPKmQX5mVX0R+NkkPz/I95UkSStfUWzocxs3Jqm0XN4InF9V/97T9n3geUl27mk7HvjXZYjn08B/nu1gkl2TpM/3/le6Lz9T77Uz8Dy6/kqShu+NbH5Puq2qngBsB7wb+LMkBwz4cz/LEjwgkSRJK1zBhj63cWOSSsvlSOAfprU9BPwNcCxAklXAMXQJpEck+UiSW5L8MMmVSf7PnmMHJ1nbjn0vyZ/M9OFJXtWGZPxca7oceGqSp8wS738CvpXkg0n2XWBfPw0c0/oDcBzw+dbf3ri/kuSeJLcn+Z9JtmnHkuSUJHe0fl3TE3dvn56Y5JIkH11EQk2SJtFM9yQAqvM3wN3AAQBJjkpybfs3+9Ikz5x+XZKfTnJ/74OXJM9J8v0kj2lNlwIvH3RnJEmSVgqTVFouzwJumKH9LB6tOnop8A3gtmnnXAEcBOwEfAb4yySPbcc+AnykqrYDngZ8bvoHtCEbHwYOr6pvAFTVw8A64MDp57fjH6ZLnj0JWNuSQa9P8lPz6OttwHXAS9r+G1o/e20A3g7sQldldRjwm+3YS4BfBJ4ObA+8BrhzWp92Bi4C/ndV/XbVhMyiJ0mDMds9iSRbJfllYAfgmiRPp6uAehuwK3A+8MWpBwtTquq7dEmo1/Q0vx44u6p+0vavB/ZJst0A+yJJkla4wjmppEHbAfjR9Maq+mdgpyQ/w8zJHKrqL6rqzqp6uKr+B7At8DPt8E+A/ZLsUlX3VdVl0y5/G/BO4IVVtW7asR+1uGZUVZdV1W8AewAfp6uIWp/kk/Po71nAG5I8A9ihqr4y7b2vbO//cFV9m25elBf09OmJwDOAVNX1VXV7z+V70FUA/GVVvW8esUiSNjXTPWmPJPcAPwA+ALy+qm6gq/D926q6sCWb/m/gccAvzPC+ZwKvg0eqg48DPtVzfOozZ733SJIkbS5s6HMbNyaptFzupku8zORTwFuAF9ENi9tEkt9tq/Hd275AbE9XgQRwAl3F0TeTXJHkFdMufyfwsapaP8PnPhG4Z67Aq+pB4GrgKrohe5sNvZvBXwOHtn59avrBJE9P8qUk303yQ+CPp/pUVRcD/xP4GHBHkjXTnrq/nO4L0qnziEOStLmZ7km3VdUOVbVTVR1UVWe39j2A70ydVFUbgVuAPWd43y8AB7Rh4i8G7q2qr/Ycn/rMOe89kiRJUwrYWP1t48YklZbL1XTJpJl8im6o2/lVdX/vgTb/1Lvohk/sWFU7APdClxKuqhur6ji6YXkfBs5N8viet3gJ8L4kr5r2vlsD+wFfny3gJDsneUuSrwIXA6uAF1XVIXN1tvXj74DfYIYkFV1l1jeB/dtQxd+b6lO7/qNV9R/o5kN5Ol2ybcqfAV8Gzp/WV0nS/GzpnjTdbcAj8xe2OQD3Bm6dfmJVPUA37Px1dEP9pv/7/0zg21X1wz5iliRJE8xKKmmwzufR4WybqKpvtWPvneHwE4GH6VbG2zrJ++lWXgIgyeuS7NqebE89me4denstcATwsSRH9bQfTPdF4TvMIMkJwLdbXB8E9q6qd1fV9XN1tMfvAS9ow/lm6tcPgfvakMDf6Pns/5jkuW2i3R8DD7D5cOK30M2n8sUkj1tATJKkLdyTZvA54OVJDmv/Lr8DeBD451nOP4tu9cCj2DxJ9QK6BxiSJEnzVpikkgbtLOBlsyVUquqfqmr6hOkAF9BVDf0r3XCLB+iGWUw5Arg2yX10k6gfO21Jcarq68Ar6JYTP7I1v5YtD5f7CvCUqvqVqvrbqtowZw8379NtVfVPsxz+XeBX6eYn+TPgnJ5j27W2u+n6fCfw36e9d9EtY74e+ELPRPKSpLlt8Z7Uq81L9Trg/6Gbr+qXgF+qqodmOf9/0z1Y+JcZHoQcRzcHoSRJkmYQFwXTcknyx8AdVfWnQ47jSXQTjz+7Dc2QJE2YpbwnJbkY+ExVfbKn7ZfoJmN/zexXSpIkbe5nf36b+syXduvr2oOesv7Kqlo94JCWjJVUWjZV9XvDTlC1OO6oqmeaoJKkybVU96Qk/xF4DptWyFJVXzRBJSnJf03ytmX6rH2SVJuLdfqx3drCRNsu8jN2TfLN3srUJP85yaL/fU1yaZJfm8d5P59ktiHYI21LfUzyVz2jQDThHO63SEmOSHJDknVJTlqKz5AkjS/vE1qJkpwJ/D3wtqr60bDjkTRakuwKvIE27DfJC1sS6fPTzjuwtV+6VLFU1feAS+imj1iMk4AzpqbbSLIN8D7aVBU9ibL72vbtQd/3q+pq4J5WsTpQLd6Hkuwyrf1rrV/7DPoze3wY+MNBv2mSlyf5pyT3tJXGP5lktlXYp/4OL0lyf0tIHj7t+NunVixPcnpv4nNY165ERdjAVn1t42bgESdZBXwMOJJuZbLjkhww6M+RJI0n7xNaqarq+KravqrOGHYskkbSG+lWs+6dP/X7wPOS7NzTdjzdfKxL7dPAf+734pYUOB74i57mo4FvVtX0FVB3qKon0M3N9/4kR/T7ubPYYl+S9DdOqvMturin3utZwE8t4v3mpaq+CmyXZNDDtLanS37tQbfq7J5Mm/92ms8CXwN2plvo6tyWcCXJS+kSlYfRrYT7VLpFp4Z97Yq0sdLXNm6WIq12MLCuqm5uk4qeTfePlSRJ4H1CkjSZjqSbF7XXQ8DfAMfCIw9yjqFLujwiyUeS3NKqRq5M8n/2HDs4ydp27HtJ/mSmD0/yqlYZ9HOt6XLgqUme0md/ngvcU1Xr5+jjI6rqK3Srb/9ci+kXklyR5N728xdmiHubJHe15NBU25Nahc2urelS4LAtVNP8fpLrkrwzyU8vqJfdSq1v6Nk/nm4Bjt4YX96qq37Y/p5+v+fYY5P8RZI7W/XSFTMlzZLsnuTqJO/sab4UePkC492iqvpMVX25qu6vqrvpFmx6/kznJnk63RD2D1TVv1fVXwHXAK9qpxwPnFZV17b3+gO6ZOzQrl2pHO63OHuy6epr61ubJEngfUKSNJmeBdwwQ/tZPJoEeSnwDWD6qtdXAAcBOwGfAf4yj67u/BHgI1W1HfA04HPTPyDJm+iGjx1eVd8AqKqHgXXAgQPsz2x9JJ3nAz8LfC3JTsDfAh+lq5b5E+Bvp1WV0fNA63U9zccBF1XV99s5twI/AX5mlljfDPw28PPADUnOS/LLSR4zj35eRlfR9MyWRDyWTavHAH5M93e4A11S6TeSvLIdO56uemnv1s9fBzZZjTzJvnTJvf9ZVb1VTdczy99Pkie3pNds26/Oo28Av0iXOJzJzwI3TxvC/vXWPnX869OO7db+Dod17QoVNtRWfW3jZrNJ9JZLkhNpY6BXseo//BTbDSsUSRpZD/BjHqoHx+8RyAB4n5CkuU3yfWIM7QBsNl9dVf1zkp2S/AxdouMs4HHTzulNivyPJO+jS8h8nS45s1+SXarqB3RJlV5vA/4T8MJpVU+0eHYYYH9m7CPwA7pikO8CJ1XVRUleD9xYVZ9q53w2yW8DvwScMe36M+kScydVtzz964H/Nt++VNVGujkD/z7d/Eu/Arwd+ESST1TVf5mjr1PVVP9AlzjaZDhjVV3as3t1ks8CL6CrkvsJXXJqvzZ/1pXT3vsAunm83lNVn11An/5ttmPzleTFdEm0585yyhOAe6e13cujDxenH596/cQhXnvnzF3RuFiKJNWtdFniKXsx7f/EAFW1BlgDsF12qufmsCUIRZLG2+V10bBDWAreJyRpQFbofWKlupvuS/RMPgW8BXgRXUJpkyqYJL8LnEA3j1AB2wFTk3mfAHwI+GaSbwEfrKov9Vz+TuBDMySoaPHcM70xyZOB66b223xS8+nPbH3cpVVu9doD+M60tu8wQ3V1VV2e5H7ghUluB/YDzpt22ox9meG9fpTkauAqusqv2aqven0K+EdgX6YN9QNI8lzgZLphjNsA2wJ/2XPt3sDZSXagq8J6b1X9pB1/LV1F27kzfO68+tSPJIfQVeW9uqpmmwPtPtjsKeF2PJqInH586vWPhnjtilTAxjGcBL0fS9HLK4D9k+ybbnWHY9n8HxBJ0uTyPiFJmkRXA0+f5dingN+km1j9/t4Dbf6pdwGvAXasqh3oKkcCUFU3VtVxwJPohvSdm+TxPW/xEuB9SV417X23pkv29A6bor3nv1XVE6a2BfRnS32c7ja6Sa97PZkZHlw1Z9IN+Xs9cG5VPTB1IMmedMmhGYcatnP2SnJSkuvohg9+Hziwql4zV6BV9R26CdRfBvz1DKd8hu6/Zfauqu2BU3n07+cnVfXBqjoA+AXgFWw6x9Xv01WafaYNJ+z1TGb4+2n9eXIeXTVxpu21W/izeHaL9z9VbTHTfS3dvGW9iccDeXR44LVsOhzxQOB7VXXnEK9dsZyTqk8tQ/4W4AK6UsjPVdVsY1wlSRPG+4QkaUKdTzcEbDNV9a127L0zHH4i8DBdUmXrJO+np4okyeuS7NqGtE1V3Wzsuf5a4AjgY0mO6mk/GPh2S8D046vADi1BNGXWPs7gfODpSX41ydZJjqEb+valWc7/C+CX6RJV06uZXgBcXFUPznRhm8j8WrqqqV8H9q+qP2hD5ubrBODQqvrxDMeeCNxVVQ8kOZieSrgkL0ryrJaA+iHd8L/ev5+f0A0/fDxwVpLe7+gvAP5upmCmJxJn2D4903Vt4vwvA79VVV/cUodbhdVVwAfaBPC/TDev11+1U84CTkhyQKsSex9tqOawrl2pqiZnTqolibiqzq+qp1fV06rqj5biMyRJ48v7hCRpAp0FvCzJ42Y6WFX/VFXTJ0yH7qHOl4F/pRsO9wCbLkByBHBtkvvoJlE/tqo2mZi7qr5OV8HzZ0mObM2vpav46Uub0PwMNp3Q/IvAM5LsMY/r72wxvYNuHqF3Aa9o82rNdP4twL/QjXz6/6YdnqsvfwPsUVVvqqp/bPNaLUhV3VRVa2c5/JvAh5L8CHg/m05e/9N0Q/l+SPdw7h/oKud63/sh4P8CdgNOT7JVkv8I3FdVX11orHN4B7ArcFpP1dUjDwuTnJqk98/yWGA13VDOk+mGB05NWP9lurnBLgH+je738wMjcO2KtJH0tY2b9PH/z4FzrhFJmtnldRE/rLvG7+4yYN4nJGlm3ifGS5I/Bu6oqj8dchxPokuWPLt32Fwf77MrXcLo2VOJsbbwyQFV9baBBLvp550O3FZV7+tp+3ngE1X1vEF/3jAl+SvgtKo6f9ixaPj2f9bj6iPnPa2va1/+1GuvrKrVAw5pyQxtdT9JkiRJmiRV9XvDjgGgqu6gm+9ose/zfeAZ09rWLPZ9Z5JkH7pqo2dP+7yrgRWVoAKoqlfNfZY0GEmOoKvEXAV8sqpOnnb8FLqFHQB+CnhSmx+PJBuAa9qxf6uq3mHFC2aSSpIkSdJImesLkyZLkj8A3g781zZ/lzRhsmTzS7X50j4GvBhYD1yR5Lyq6l3h8+095/8WmyaL/72qDhpUPOM3i5YkSZKkFavnC9ORdBNpH5fkgOFGpWGqqv/SJgN3HktNpAI2slVf2zwcDKyrqpvb/GhnA0dv4fzjgM8uvlczM0klSZIkaZQs9AuTJK14Gyp9bfOwJ5suxrC+tW0myVOAfYGLe5ofm2RtksuSvLLf/k1xuJ8kSZKkUTLTF6bnbumCVU94fG29005LGpQkDcLDd93Fhvt+vKAFL4qwof8ao12S9K5MuWYRc8cdC5xbVRt62p5SVbcmeSpwcZJrquqmfoM1SSVJkiRp7LRV5E4EWLXjjuzxjoEvJidJA3fb/+hvcc+N/c9J9YM5Vve7Fdi7Z3+v1jaTY4E39zZU1a3t581JLqWbr6rvJJXD/SRJkiSNknl9YaqqNVW1uqpWr3rC45ctOElabgVsYKu+tnm4Atg/yb5JtqFLRJ03/aQkzwB2BL7S07Zjkm3b612A5wPXTb92IUxSSZIkSRol8/rCJElavKp6GHgLcAFwPfC5qro2yYeSHNVz6rHA2VVVPW3PBNYm+TpwCXBy76qA/XC4nyRJkqSRUVUPJ5n6wrQKOL2qrh1yWJI0NMW8J0Hv7/2rzgfOn9b2/mn7vz/Ddf8MPGuQsZikkiRJkjRSZvrCJEmTbOOEDIQzSSVJkiRJkjSiqmBD/xOnjxWTVJIkSZIkSSMrbGTphvuNEpNUkiRJkiRJI6qYnEqqyeilJEmSJEmSRpqVVJIkSZIkSSNsw4TUGJmkkiRJkiRJGlFF2FjOSSVJkiRJkqQhs5JKkiRJkiRJQ1XAxgmZON0klSRJkiRJ0sgKG3C4nyRJkiRJkoZokiqpJqOXkiRJkiRJGmlWUkmSJEmSJI0wh/tJkiRJkiRpqKoyMcP9TFJJkiRJkiSNsA0mqSRJkiRJkjRMBWx0uJ8kSZIkSZKGK1ZSSZIkSZIkabgK2FiTUUk1Gak4SZIkSZIkjTQrqSRJkiRJkkbYhgmpMTJJJUmSJEmSNKKKTMxwP5NUkiRJkiRJI2yjlVSSJEmSJEkapirYYCWVJEmSJEmShm1ShvtNRr2YJEmSJEmSRpqVVJIkSZIkSSOqmzh9MmqMTFJJkiRJkiSNsA1MxnA/k1SSJEmSJEkjqpicOalMUkmSJEmSJI2syRnuNxm9lCRJkiRJGlMbSV/bfCQ5IskNSdYlOWmG429M8v0kV7Xt13qOHZ/kxrYdv9h+WkklSZIkSZI0oqpgwxIN90uyCvgY8GJgPXBFkvOq6rppp55TVW+Zdu1OwAeA1XSjEq9s197dbzxWUkmSJEmSJE2mg4F1VXVzVT0EnA0cPc9rXwpcWFV3tcTUhcARiwnGJJUkSZIkSdII21hb9bUBuyRZ27OdOO2t9wRu6dlf39qme1WSq5Ocm2TvBV47b3MmqZKcnuSOJN/oadspyYVtzOGFSXZs7Uny0TaO8eokz1lMcJKk0ed9QpIkSVo6RdhY/W3AD6pqdc+2po8QvgjsU1U/T1ctdeYg+9drPpVUZ7B5udZJwEVVtT9wUdsHOBLYv20nAh8fTJiSpBF2Bt4nJEmSpCWzhBOn3wrs3bO/V2t7RFXdWVUPtt1PAv9hvtcu1JwTp1fVPybZZ1rz0cAL2+szgUuBd7f2s6qqgMuS7JBk96q6fTFBSlp6F9x21bBDGKiX7nHQsEOYGN4npMmwku4T3iMkSeOkYKoqailcAeyfZF+6BNOxwK/2njDtv9ePAq5vry8A/nhq1ATwEuA9iwmm39X9dusJ8LvAbu31bOMRN/vy0cZBngjwWH6qzzAkSSPK+4QkSZI0IG1+qYGrqoeTvIUu4bQKOL2qrk3yIWBtVZ0H/HaSo4CHgbuAN7Zr70ryB3SJLoAPVdVdi4mn3yTVI6qqklQf160B1gBsl50WfL0kaTx4n5AkSZJGV1WdD5w/re39Pa/fwywVUlV1OnD6oGLpNxX3vSS7Q1f2BdzR2gc+HlGSNJa8T0iSJEmD0Oek6Us4RHDJ9JukOg84vr0+HvhCT/sb2upNhwD3Os+IJE0k7xOSJMBVYCVpsYolnTh9pMyZpEryWeArwM8kWZ/kBOBk4MVJbgQOb/vQlYfdDKwD/gz4zSWJWpI0MrxPSJLmcAauAitJizIplVTzWd3vuFkOHTbDuQW8ebFBSZLGh/cJSdKWuAqsNJr2e/tlrDvlkGGH0ZebjjmVp53z68MOY9ks8ep+I2XRE6dLkiRJ0gINdBXYVTvuOP2wJK0oJqkkSZIkaYkNYhXYbZ+8t6vASlqxivEcutePfidOlyRJkqR+uQqsJGkzJqkkSZIkLTdXgZWkBZiU1f0c7idJkiRpybRVYF8I7JJkPfABulVfP9dWhP0O8Jp2+vnAy+hWgb0feNOyByxJo6ack0qSJEmSFs1VYCVpcVzdT5IkSZIkSSPBJJUkSZIkSZKGytX9JEmSJEmSpGVkJZUkSZIkSdIIqwmppDJJJUmSJEmSNMI2YpJKkiRJkiRJQ1TlxOmSJEmSJEkaAQ73kyRJkiRJ0pBNzup+JqkkSZIkSZJG2KRUUm017AAkSZIkSZIkK6kkSZIkSZJGVOHE6ZIkSZIkSRq26lb4mwQmqSRJkiRJkkbYRqykkiRJkiRJ0hAVkzNxukkqSZIkSZKkkRXnpJIkSZIkSdLwTcqcVFsNOwBJkiRJkiTJSipJkiRJkqQRNilzUllJJUmSJEmSNKKquiRVP9t8JDkiyQ1J1iU5aYbjv5PkuiRXJ7koyVN6jm1IclXbzltsX62kkiRJkiRJGmFLNXF6klXAx4AXA+uBK5KcV1XX9Zz2NWB1Vd2f5DeA/wYc0479e1UdNKh4rKSSJEmSJEkaYV011cK3eTgYWFdVN1fVQ8DZwNGbfnZdUlX3t93LgL0G2bdeJqkkSZIkSZJG2BIO99sTuKVnf31rm80JwN/17D82ydoklyV55cJ7timH+0mSJEmSJK1MuyRZ27O/pqrW9PNGSV4HrAZe0NP8lKq6NclTgYuTXFNVN/UbrEkqSZIkSZKkEVXMfxL0GfygqlZv4fitwN49+3u1tk0kORx4L/CCqnrwkdiqbm0/b05yKfBsoO8klcP9JEmSJEmSRlj1uc3DFcD+SfZNsg1wLLDJKn1Jng18Ajiqqu7oad8xybbt9S7A84HeCdcXzEoqSZIkSZKkUVUsppJqy29d9XCStwAXAKuA06vq2iQfAtZW1XnAfweeAPxlEoB/q6qjgGcCn0iyka4I6uRpqwIumEkqSZIkSZKkUTbPsqi+3rrqfOD8aW3v73l9+CzX/TPwrEHGYpJKkiRJkiRphC1VJdWoMUklSZIkSZI0wmoJK6lGiROnS5IkSZIkaeispJIkSZIkSRpRhcP9JEmSJEmSNGwFmKSSJEmSJEnSsE3KnFQmqSRJkiRJkkaZSSpJkiRJkiQNVyZmTipX95MkSZIkSdLQzZmkSrJ3kkuSXJfk2iRvbe07JbkwyY3t546tPUk+mmRdkquTPGepOyFJGh7vE5IkSdISqz63MTOfSqqHgXdU1QHAIcCbkxwAnARcVFX7Axe1fYAjgf3bdiLw8YFHLUkaJd4nJEmSpKVSUJW+tnEzZ5Kqqm6vqn9pr38EXA/sCRwNnNlOOxN4ZXt9NHBWdS4Ddkiy+8AjlySNBO8TkqQtseJWkgZgQiqpFjRxepJ9gGcDlwO7VdXt7dB3gd3a6z2BW3ouW9/abkcT54LbrprXeS/d46AljkRz8e9Ag+B9QgvhPWK8+PegRZiquP2XJE8ErkxyIfBGuorbk5OcRFdx+242rbh9Ll3F7XOHErkkjYzxq4rqx7wnTk/yBOCvgLdV1Q97j1XVgnN0SU5MsjbJ2p/w4EIu1Yi74LarHtkWco2k8eZ9QvPVzz3C+4Q0vqy41ULddMypww5hIqw75ZBhh9C3p53z68MOYflNSCXVvJJUSR5D98Xj01X11635e1M3i/bzjtZ+K7B3z+V7tbZNVNWaqlpdVasfw7b9xq8VxC8h0vjyPqH5Wsy/894jpPG3yIrb6e/1yMOMDff9eMli1mDt9/bL5jxnKgFhskrqYZKqkyTAacD1VfUnPYfOA45vr48HvtDT/oY2lvwQ4N6em49WOL9ASJPH+4SWk/cZaXwNuuK292HGqic8foCRailMJacWUr0zkdUy0oSbz5xUzwdeD1yTZOq/DH8POBn4XJITgO8Ar2nHzgdeBqwD7gfeNNCIteJNfQFx7gtpbHif0LwMKsF0wW1XeY+QxsyWKm6r6vZ+Km41PvZ7+2VjPbRMGroCxnClvn7MmaSqqn9i9hm6Dpvh/ALevMi4NIYG/XTbLyHSePA+ofnwHiFNrnlU3J7M5hW3b0lyNt2E6VbcjrlBJahuOuZUq6s0sWoMh+71Y94Tp0tb4vALSdJy894jjY2pittDk1xPDJFLAAAd1UlEQVTVtpfRJadenORG4PC2D13F7c10Fbd/BvzmEGLWgMxnDqr5MkGliTYhc1LNZ7ifJElS30wmSZPNitvJNuhhflZTaWJNyHA/K6m0aEv55cMvNpI03vx3XJIm1yCrqKaYoNKkSvW3jRuTVFoUv3xIkobJ+5AkjS4nS5e0UCapJEnSkjCBJElaCjcdc+qwQ5CWV7/zUVlJpUnilw9J0my8R0jS5FqKYX7SZEs3J1U/25hx4nRJkiRJkqRRNoZVUf0wSaW++IRckiRJ0kyci0paAiapJEmSRttL9zho2CFIkpaZK/xpIpmkkiRJkiRJ0lAVYzm/VD+cOF2SJEmSJElDZ5JKI81hHJI0fpy3UJImlyv7SUsj1d82r/dOjkhyQ5J1SU6a4fi2Sc5pxy9Psk/Psfe09huSvHSx/TRJJUmSJEkaCzcdc+qwQ5CGo/rc5pBkFfAx4EjgAOC4JAdMO+0E4O6q2g84Bfhwu/YA4FjgZ4EjgP+3vV/fTFJpwXxCLkmSJGkmruwnjZ2DgXVVdXNVPQScDRw97ZyjgTPb63OBw5KktZ9dVQ9W1beAde39+maSSpIkSZIkaYQt4XC/PYFbevbXt7YZz6mqh4F7gZ3nee2CuLqfJEmSJGksPO2cXx92CNJw9L+63y5J1vbsr6mqNQOIaElYSSVJksaSi2tI0mhx0nRpifQ7H1VXSfWDqlrds01PUN0K7N2zv1drm/GcJFsD2wN3zvPaBTFJJUmSBsZ5CyVJksbKFcD+SfZNsg3dROjnTTvnPOD49vrVwMVVVa392Lb6377A/sBXFxOMw/0kSZIkSZJG2fzml1r421Y9nOQtwAXAKuD0qro2yYeAtVV1HnAa8Kkk64C76BJZtPM+B1wHPAy8uao2LCYek1QaWQ7jkCRJksbHUq/sd9MxpzonlSbWPCdB70tVnQ+cP63t/T2vHwB+ZZZr/wj4o0HFYpJKC+IwDkmSJEmSltkSJqlGiUkqSZIkSZKkUTYhSSonTpckSZIkLcpyrOznUD9NqlT/27gxSSVJkgbCIeGSJElaDIf7SZKksePiGpI0WpZ60nRp4lWGHcGyMEmlefMJuSRJkiRJQzCGQ/f64XA/SZIkSdJIu+mYU4cdgjRUzkklDZHDOCRJkqTxsByTpksTr/rcxozD/SRJkiRJkkbVmFZF9cNKKkmStGjOWyhJWoy5qrGeds6vL1Mk0oiakEoqk1SSJEmSpL71u7Jf7zxTve/h8EFpcjncT/MyiCfkvfNM+cRdkjTdfO8TzlsoSePvpmNOnbU6qt+kl7SijWFVVD+spNKymP6Fwi8YkqRe3ickabI4fE9aGFf3kwZkti8aL93joEc2SdLkmus+IUkaXf0Mzesd5rcU50saXyapJEnS0MwnCWWiSpJWFquopD5MyMTpzkk1YCttrqXFfjHo53q/jEhayVbSfWLq3+uV1CdJ0sIsdP6oLc1FNd1+b7/M+akkgDEdutcPK6m0ZEw2SZK2xPuEJE2efqqorLySJoeVVJIkadmZoJIkSVoAK6mkTj/DOBb65cMvK5IkSdLK1c/k5w71k3pMyJxUJqkkSdKyWsyDCR9qSNJ46nfIXj+rB0orTejmpOpnGzcmqTRwfoGQJEnSlCSPTfLVJF9Pcm2SD7b2fZNcnmRdknOSbNPat23769rxfYYZvxavnyqqKVZTSY2VVJIkSVu20CHh/T7I8AGINNYeBA6tqgOBg4AjkhwCfBg4par2A+4GTmjnnwDc3dpPaedpRM1V6bSQ1fwkzaLPKqoVWUnlkw8txGKHcPglRBo/3ie0XLxHSOOpOve13ce0rYBDgXNb+5nAK9vro9s+7fhhSbJM4WqB5qp0MkElDYiVVI/wyccE62fSdEkTx/uE5sUkkzS5kqxKchVwB3AhcBNwT1U93E5ZD+zZXu8J3ALQjt8L7DzDe56YZG2StRvu+/FSd0GStAzmTFL55GOyLaS6yS8f0mTyPjHZvEdImo+q2lBVBwF7AQcDzxjAe66pqtVVtXrVEx6/6Bg1OFNDABczF5WkaayketRSPPnQeJnry4VfPqTJ5n1isjlcW9J8VdU9wCXA84AdkmzdDu0F3Npe3wrsDdCObw/cucyhahGmhgA61E8aHOek6rEUTz56y3N/woOLfTstA7+ESJqN9wnB7PcJ7x3SZEuya5Id2uvHAS8GrqdLVr26nXY88IX2+ry2Tzt+cVWN4VctSRogK6k2N8gnH73luY9h2z7D1zBM/xLilw9JU7xPCLwvSNrM7sAlSa4GrgAurKovAe8GfifJOrqK2tPa+acBO7f23wFOGkLMkjQ6+k1QjWGSauu5TkiyK/CTqrqn58nHh3n0ycfZzPzk4yv45GNF80uIJPA+oZl5j5A0paquBp49Q/vNdNW309sfAH5lGUKTpLExjkP3+jGfSiqffEiStsT7hCRJkrTCJNkpyYVJbmw/d5zhnIOSfCXJtUmuTnJMz7EzknwryVVtm/Mp5pyVVD75kCRtifcJSZIkaYkNp5LqJOCiqjo5yUlt/93TzrkfeENV3ZhkD+DKJBe0aUAA3llV5zJPC5qTSpIkSZIkSctrSKv7HQ2c2V6fCbxy+glV9a9VdWN7fRvdat+79vuBJqkkSZIkSZJG2XAmTt+tqm5vr78L7Lalk5McDGwD3NTT/EdtGOApSeZcDWnO4X6SJEmSJEkaksUlnHZJsrZnf01VrZnaSfL3wE/PcN17NwmhqpLZa7OS7A58Cji+qja25vfQJbe2AdbQDRX80JaCNUklSZIkSZI0otK2Pv2gqlbPdrCqDp/1c5PvJdm9qm5vSag7ZjlvO+BvgfdW1WU97z1VhfVgkj8HfneuYB3uJ0mSJEmSNMqGM9zvPOD49vp44AvTT0iyDfB54KzpE6S3xBZJQjef1Tfm+kCTVJIkSZIkSZruZODFSW4EDm/7JFmd5JPtnNcAvwi8MclVbTuoHft0kmuAa4BdgD+c6wMd7idJkiRJkjTCBrBS34JV1Z3AYTO0rwV+rb3+C+AvZrn+0IV+pkkqSZIkSZKkUTaEJNUwmKSSJEmSJEkaZSapJEmSJEmSNFQ1nOF+w2CSSpIkSZIkaZSZpJIkSZIkSdKwTUol1VbDDkCSJEmSJEmykkqSJEmSJGmUTUgllUkqSZIkSZKkETYpw/1MUkmSJEmSJI2qwkoqSZIkSZIkjQCTVJIkSZIkSRqmMDnD/VzdT5IkSZIkSUNnJZUkSZIkSdIom5BKKpNUkiRJkiRJIyw1GVkqk1SSJEmSJEmjytX9JEmSJEmSNAomZeJ0k1SSJEmSJEmjzCSVJEmSJEmShm1SKqm2GnYAkiRJkiRJkpVUkiRJkiRJo2xCKqlMUkmSJEmSJI2qmpzhfiapJEmSJEmSRplJKkmSJEmSJA1TsJJKkiRJkiRJo6AmI0vl6n6SJEmSJEkaOiupJEmSJEmSRpjD/SRJkiRJkjRchROnS5IkSZIkafiycdgRLA/npJIkSZK05JKsSvK1JF9q+/smuTzJuiTnJNmmtW/b9te14/sMM25JGgnV5zZmrKQasJfucdCwQ5AkjTDvE5Im2FuB64Ht2v6HgVOq6uwkpwInAB9vP++uqv2SHNvOO2YYAUvSqBjGnFRJdgLOAfYBvg28pqrunuG8DcA1bfffquqo1r4vcDawM3Al8PqqemhLn2kllSRJkqQllWQv4OXAJ9t+gEOBc9spZwKvbK+Pbvu044e18yVpMhVQ1d+2OCcBF1XV/sBFbX8m/15VB7XtqJ72qYcR+wF30z2E2CKTVJIkSZKW2p8C7wKmZlXZGbinqh5u++uBPdvrPYFbANrxe9v5kqTl1fvQoPdhwpzmeBgxK5NUkiRJkpZMklcAd1TVlQN+3xOTrE2ydsN9Px7kW0vSyEn1twG7TP1b2bYTF/Cxu1XV7e31d4HdZjnvse29L0sylYja0sOIWTknlSRJkqSl9HzgqCQvAx5LNyfVR4AdkmzdvsDsBdzazr8V2BtYn2RrYHvgzulvWlVrgDUA2z557zGcHliSFqD/f+V+UFWrZzuY5O+Bn57h0Hs3+fiqSmadGespVXVrkqcCFye5hq4KdsGspJIkSZK0ZKrqPVW1V1XtAxwLXFxVrwUuAV7dTjse+EJ7fV7bpx2/uGrxE6tI0rgKi6qk2qKqOryqfm6G7QvA95LsDtB+3jHLe9zaft4MXAo8m+7hwg7tYQNs+jBiViapJEmSJA3Du4HfSbKObljIaa39NGDn1v47zD5RryRNhn4nTV98fr/3oUHvw4RHJNkxybbt9S501bPXtYcLsz2MmNW8k1RJViX5WpIvtf19k1yeZF2Sc5Js09q3bfvr2vF95vsZkqTx5X1CkjSXqrq0ql7RXt9cVQdX1X5V9StV9WBrf6Dt79eO3zzcqCVp+JaqkmoOJwMvTnIjcHjbJ8nqJJ9s5zwTWJvk63RJqZOr6rp2bLaHEbNaSCXVW4Hre/ZnW0rwBODu1n5KO0+StPJ5n5AkSZJWiKq6s6oOq6r927DAu1r72qr6tfb6n6vqWVV1YPt5Ws/1Mz6M2JJ5JamS7AW8HPhk29/SUoK9SxSeCxzWzpckrVDeJyRJkqQlVH1uY2a+lVR/CrwL2Nj2t7SU4J7ALQDt+L3t/E30Lhn7E+ZMpkmSRpv3CUmSJGmJDGm437KbM0mV5BXAHVV15SA/uKrWVNXqqlr9GLYd5FtLkpaR9wlJkiRpCRWwsfrbxszWc5/C84GjkrwMeCywHfAR2lKC7Sl471KCtwJ7A+vbUoPb0y09KElambxPSJIkSUtp/PJNfZmzkqqq3lNVe1XVPsCxwMVV9VpmX0qwd4nCV7fzJ+SPU5Imj/cJSZIkaWk53G9usy0leBqwc2v/HeCkxYUoSRpT3ickSZKkQajqbxsz8xnu94iquhS4tL2+GTh4hnMeAH5lALFJksaM9wlJkiRJ/VpQkkqSJEmSJEnLaxyH7vXDJJUkSZIkSdKoKiZm4nSTVJIkSZIkSSMqQMZwfql+mKSSJEmSJEkaZRuHHcDyMEklSZIkSZI0wqykkiRJkiRJ0nBN0JxUWw07AEmSJEmSJMlKKkmSJEmSpJFV4HA/SZIkSZIkDVsmI0dlkkqSJEmSJGmkWUklSZIkSZKkoSrIxmEHsTxMUkmSJEmSJI2yCamkcnU/SZIkSZIkDZ2VVJIkSZIkSaNsMgqpTFJJkiRJkiSNskzIcD+TVJIkSZIkSaPMJJUkSZIkSZKGqgBX95MkSZIkSdIwhXK4nyRJkiRJkkbAhCSpthp2AJIkSZIkSZKVVJIkSZIkSaPMSipJkiRJkiQN1dTE6f1si5BkpyQXJrmx/dxxhnNelOSqnu2BJK9sx85I8q2eYwfN9ZkmqSRJkiRJkkZYqvraFukk4KKq2h+4qO1voqouqaqDquog4FDgfuB/9ZzyzqnjVXXVXB9okkqSJEmSJGmUVfW3Lc7RwJnt9ZnAK+c4/9XA31XV/f1+oHNSSZIkSRprD92y/r5vv+13bxh2HH3aBfjBsIPok7EPx7jGPq5xw2Bjf8rCLxlIwqkfu1XV7e31d4Hd5jj/WOBPprX9UZL30yqxqurBLb2BSSpJkiRJ4+6Gqlo97CD6kWStsS8/Y19+4xo3jHfswC5J1vbsr6mqNVM7Sf4e+OkZrntv705VVZJZM2VJdgeeBVzQ0/weuuTWNsAa4N3Ah7YUrEkqSZIkSZKkUVUsppLqB1tKsFXV4bMdS/K9JLtX1e0tCXXHFj7nNcDnq+onPe89VYX1YJI/B353rmCdk0qSJEmSJGmUDWF1P+A84Pj2+njgC1s49zjgs70NLbFFktDNZ/WNuT7QJJUkSZKkcbdm7lNGlrEPh7Evv3GNG0Yg9iGt7ncy8OIkNwKHt32SrE7yyUdiS/YB9gb+Ydr1n05yDXAN3bxefzjXBzrcT5IkSdJY651fZdwY+3AY+/Ib17hhRGIfwsTpVXUncNgM7WuBX+vZ/zaw5wznHbrQzzRJJUmSJEmSNKoK2DiU1f2WnUkqSZIkSZKkkVVDqaQaBuekkiRJkjS2khyR5IYk65KcNOx4pktyepI7knyjp22nJBcmubH93LG1J8lHW1+uTvKcIca9d5JLklyX5Nokbx2j2B+b5KtJvt5i/2Br3zfJ5S3Gc5Js09q3bfvr2vF9hhX7lCSrknwtyZfa/ljEnuTbSa5JclWSta1t5H9nWjw7JDk3yTeTXJ/keeMS+0pikkqSJEnSWEqyCvgYcCRwAHBckgOGG9VmzgCOmNZ2EnBRVe0PXNT2oevH/m07Efj4MsU4k4eBd1TVAcAhwJvbn+04xP4gcGhVHQgcBByR5BDgw8ApVbUfcDdwQjv/BODu1n5KO2/Y3gpc37M/TrG/qKoOqqrVbX8cfmcAPgJ8uaqeARxI9+c/OrFX9beNGZNUkiRJksbVwcC6qrq5qh4CzgaOHnJMm6iqfwTumtZ8NHBme30m3dLsU+1nVecyYIepJdyXW1XdXlX/0l7/iO4L+56MR+xVVfe13ce0rYBDgXNb+/TYp/p0LnBYkixTuJtJshfwcuCTbT+MSeyzGPnfmSTbA78InAZQVQ9V1T2MUuwTkqQaiTmpfsTd9/19nXvDsOMYoF2AHww7iAGxL6NpJfUFVlZ/Bt2XpwzwvcaW94mRZl9G00rqC6ys/nifGKw9gVt69tcDzx1SLAuxW1Xd3l5/F9itvZ6pP3sCtzNEbQjZs4HLGZPYW5XdlcB+dNV2NwH3VNXD0+KDntir6uEk9wI7M7x/d/4UeBfwxLa/M+MTewH/K0kBn2ir4o3D78y+wPeBP09yIN3vzlsZldidOH3Z3dBTCjj2kqxdKf2xL6NpJfUFVlZ/VlJfRoz3iRFlX0bTSuoLrKz+rKS+aDCqqtoX+pGU5AnAXwFvq6of9hbpjHLsVbUBOCjJDsDngWcMOaR5SfIK4I6qujLJC4cdTx/+j6q6NcmTgAuTfLP34Aj/zmwNPAf4raq6PMlHeHRoHzDs2Atq43A+epk53E+SJEnSuLoV2Ltnf6/WNuq+NzU0qP28o7WPVH+SPIYuQfXpqvrr1jwWsU9pQ7YuAZ5HNyRrqlCjN75HYm/HtwfuXOZQpzwfOCrJt+mGrx5KN1fSOMROVd3aft5Blxw8mPH4nVkPrK+qy9v+uXRJq9GJfUKG+5mkkiRJkjSurgD2byufbQMcC5w35Jjm4zzg+Pb6eOALPe1vaCuHHQLc2zPUaFm1eY1OA66vqj/pOTQOse/aKqhI8jjgxXRzal0CvLqdNj32qT69Gri4ajjf7qvqPVW1V1XtQ/f7fHFVvZYxiD3J45M8ceo18BLgG4zB70xVfRe4JcnPtKbDgOsYg9hXmlEZ7rdm2AEM2Erqj30ZTSupL7Cy+rOS+jJKVtqf60rqj30ZTSupL7Cy+rOS+jJ0bQ6etwAXAKuA06vq2iGHtYkknwVeCOySZD3wAeBk4HNJTgC+A7ymnX4+8DJgHXA/8KZlD/hRzwdeD1yT5KrW9nuMR+y7A2e2eam2Aj5XVV9Kch1wdpI/BL5GmyS7/fxUknV0k9wfO4yg5/BuRj/23YDPtyGhWwOfqaovJ7mC0f+dAfgt4NMt4X1zi2crRiH2CZqTKkNKskqSJEmSJGkO22+zW/3Cbv3lH7+8/qNXjtNciKNSSSVJkiRJkqSZTEiB0dDnpEpyRJIbkqxLctLcVwxXktOT3JHkGz1tOyW5MMmN7eeOrT1JPtr6dnWS5wwv8s0l2TvJJUmuS3Jtkre29nHtz2OTfDXJ11t/Ptja901yeYv7nFa+SZJt2/66dnyfYcY/kySrknwtyZfa/lj2Jcm3k1yT5Koka1vbuP6e7ZDk3CTfTHJ9kueNa1/GhfeJ4VlJ9wnvESPfF+8TI9gXSdKo6HPS9DFMbA01SZVujPDHgCOBA4DjkhwwzJjm4QzgiGltJwEXVdX+wEU8ulTlkcD+bTsR+PgyxThfDwPvqKoDgEOAN7c//3Htz4PAoVV1IHAQcES6Sew+DJxSVfsBdwMntPNPAO5u7ae080bNW+kmeZwyzn15UVUd1FNqOq6/Zx8BvlxVzwAOpPv7Gde+jDzvE0O3ku4T3iNGuy/gfWIU+yJJGgUFbNzY3zZmhl1JdTCwrqpurqqH6JbYPHrIMW1RVf0j3YR0vY4GzmyvzwRe2dN+VnUuo1s2dPfliXRuVXV7Vf1Le/0juv+I2pPx7U9V1X1t9zFtK7plW89t7dP7M9XPc4HDkm6Wv1GQZC/g5cAn234Y077MYux+z5JsD/wibaLKqnqoLWs8dn0ZI94nhmgl3Se8R4xuX7Zg7H7PvE9IkpaMlVTLYk/glp799a1t3OzWs9zkd+lWNYAx6l8r/X82cDlj3J829OEq4A7gQuAm4J6qerid0hvzI/1px+8Fdl7eiLfoT4F3AVPp750Z374U8L+SXJnkxNY2jr9n+wLfB/78/2/vbkKtKMMAjv8fu0lRopDSh1coSApXJVKJEWEfWERfWBhREi4ziDb2sWjToja1ikAykLBMLFFKuiAK7cSkRX4gXKTwCiWIVtQi7D4t5j01Rd5DR70zc/z/YDhn3plz5n0uc3mY57zzTrnF5v2oHq/bxVi6Ylj+hp0/R4YhT5gjWhsLmCd62hSLJEnTruki1dDJ6nGJnSpXRsSVwKfAi5n5c31b1+LJzD8y8xZglGoExs0Nd2kgEfEQcCIz9zfdl/PkzsxcTHVbw/MRcVd9Y4fOsxFgMfBeZt4K/Mrft2wAnYpFDeniOTIsecIc0WrmCUmSpuJIqmlxHFhQWx8tbV3zY29odnk9UdpbH19EXEp14bEpMz8rzZ2Np6cMrd8DLKUaOt97kmW9z3/FU7bPBk5Oc1fPZhnwcER8R3V703KqOS66GAuZeby8ngC2UV0cdvE8mwAmMnNvWd9KdTHSxVi6Ylj+hp09R4YxT5gjWhULYJ6ofb5NsUiSWiNhcsClY5ouUu0DFpan0cwEVgE7Gu7TIHYAq8v71cD2Wvuz5cktdwA/1YZ6N67MR7EBOJyZb9c2dTWeeRExp7y/HLiPav6UPcDKstu/4+nFuRLYXX7dbFxmvpKZo5l5PdX/xe7MfJoOxhIRV0TErN574H7gAB08zzLzB+BYRNxUmu4BDtHBWDrEPNGgYcoT5oh2xgLmCVoaiySpRRIyJwdaumak/y4XTmaeiYi1wBhwCfBBZh5ssk/9RMTHwN3A3IiYAF4H3gS2RMQa4HvgybL7TuBBYBz4DXhu2js8tWXAM8C3ZY4OgFfpbjzXAhujehrYDGBLZn4eEYeAzRHxBvANZTLT8vphRIxTTXK8qolO/0/r6F4sVwPbqmtdRoCPMvPLiNhHN8+zF4BNpWBylKp/M+hmLK1nnmjcMOUJc0R7YzFPtDcWSVJbdHBU1CCiRT+kSZIkSZIkqWb2yLxcOmuwB1yPnd6wPzOXnOcuXTBN3+4nSZIkSZIkNXu7nyRJkiRJkqaQCZPdm19qEBapJEmSJEmS2uwimarJIpUkSZIkSVKLpSOpJEmSJEmS1Kx0JJUkSZIkSZIalsCkRSpJkiRJkiQ1LS+O2/1mNN0BSZIkSZIkySKVJEmSJElSSyWQkznQci4i4omIOBgRkxGxZIr9VkTEkYgYj4iXa+03RMTe0v5JRMzsd0yLVJIkSZIkSW2VWd3uN8hybg4AjwNfnW2HiLgEeBd4AFgEPBURi8rmt4B3MvNG4BSwpt8BLVJJkiRJkiS1WBMjqTLzcGYe6bPbbcB4Zh7NzN+BzcAjERHAcmBr2W8j8Gi/YzpxuiRJkiRJUpu1d+L0+cCx2voEcDtwFXA6M8/U2uf3+zKLVJIkSZIkSS31C6fGduXWuQN+/LKI+Lq2vj4z1/dWImIXcM1/fO61zNw+4DEHZpFKkiRJkiSppTJzxQX87nvP8SuOAwtq66Ol7SQwJyJGymiqXvuUnJNKkiRJkiRJg9gHLCxP8psJrAJ2ZGYCe4CVZb/VQN+RWRapJEmSJEmS9A8R8VhETABLgS8iYqy0XxcROwHKKKm1wBhwGNiSmQfLV6wDXoqIcao5qjb0PWZV3JIkSZIkSZKa40gqSZIkSZIkNc4ilSRJkiRJkhpnkUqSJEmSJEmNs0glSZIkSZKkxlmkkiRJkiRJUuMsUkmSJEmSJKlxFqkkSZIkSZLUOItUkiRJkiRJatyfu5XocE9ZvoUAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 1440x720 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plotDiff(M.transpose(FLIP_LEFT_RIGHT), P.transpose(FLIP_LEFT_RIGHT))"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1440x720 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plotDiff(M.transpose(FLIP_TOP_BOTTOM), P.transpose(FLIP_TOP_BOTTOM))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<pre>\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"</pre>"
]
}
],
"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.7.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment