Skip to content

Instantly share code, notes, and snippets.

@botcs
Created April 9, 2019 22:14
Show Gist options
  • Select an option

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

Select an option

Save botcs/a59f3f59e22e5df93e3e5e4f86718af3 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": {},
"outputs": [],
"source": [
"from maskrcnn_benchmark.structures.segmentation_mask import SegmentationMask"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import pycocotools.mask as mask_utils"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"import torch\n",
"import numpy as np\n",
"\n",
"a1 = torch.ones(10, 10).long()\n",
"a2 = np.ones([10, 10], dtype='uint8', order='F')\n",
"b2 = np.zeros([10, 10], dtype='uint8', order='F')\n",
"b2[:5] = 1\n",
"\n",
"rle_masks = [mask_utils.encode(a2), mask_utils.encode(b2)]"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'size': [10, 10], 'counts': b'0T3'},\n",
" {'size': [10, 10], 'counts': b'055000000000000000000'}]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rle_masks"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"sm = SegmentationMask(rle_masks, [10, 10], mode='mask')"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"for m in sm:\n",
" plt.imshow(m.get_mask_tensor())\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.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