369 lines
953 KiB
Plaintext
369 lines
953 KiB
Plaintext
|
{
|
||
|
"cells": [
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"# Starter Code ADE20K\n",
|
||
|
"This notebook contains a tutorial on how to explore data in ADE20K"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 19,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"name": "stdout",
|
||
|
"output_type": "stream",
|
||
|
"text": [
|
||
|
"The autoreload extension is already loaded. To reload it, use:\n",
|
||
|
" %reload_ext autoreload\n"
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"%load_ext autoreload\n",
|
||
|
"%autoreload 2\n",
|
||
|
"import IPython.display\n",
|
||
|
"import matplotlib.pyplot as plt\n",
|
||
|
"import cv2\n",
|
||
|
"import numpy as np\n",
|
||
|
"import pickle as pkl\n",
|
||
|
"import utils_ade20k"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 20,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"name": "stdout",
|
||
|
"output_type": "stream",
|
||
|
"text": [
|
||
|
"ade20k_starter.ipynb index_ade20k.pkl \u001b[0m\u001b[01;34m__pycache__\u001b[0m/ utils_ade20k.py\r\n"
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"ls "
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"## Dataset index"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 21,
|
||
|
"metadata": {},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"# Load index with global information about ADE20K\n",
|
||
|
"DATASET_PATH = '/data/vision/torralba/datasets/ade20k/release/'\n",
|
||
|
"index_file = 'index_ade20k.pkl'\n",
|
||
|
"with open(index_file, 'rb') as f:\n",
|
||
|
" index_ade20k = pkl.load(f)"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 22,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"name": "stdout",
|
||
|
"output_type": "stream",
|
||
|
"text": [
|
||
|
"File loaded, description of the attributes:\n",
|
||
|
"--------------------------------------------\n",
|
||
|
"* filename: array of length N=27574 with the image file names\n",
|
||
|
"* folder: array of length N with the image folder names.\n",
|
||
|
"* scene: array of length N providing the scene name (same classes as the Places database) for each image.\n",
|
||
|
"* objectIsPart: array of size [C, N] counting how many times an object is a part in each image. objectIsPart[c,i]=m if in image i object class c is a part of another object m times. For objects, objectIsPart[c,i]=0, and for parts we will find: objectIsPart[c,i] = objectPresence(c,i)\n",
|
||
|
"* objectPresence: array of size [C, N] with the object counts per image. objectPresence(c,i)=n if in image i there are n instances of object class c.\n",
|
||
|
"* objectcounts: array of length C with the number of instances for each object class.\n",
|
||
|
"* objectnames: array of length C with the object class names.\n",
|
||
|
"* proportionClassIsPart: array of length C with the proportion of times that class c behaves as a part. If proportionClassIsPart[c]=0 then it means that this is a main object (e.g., car, chair, ...). See bellow for a discussion on the utility of this variable.\n",
|
||
|
"* wordnet_found: array of length C. It indicates if the objectname was found in Wordnet.\n",
|
||
|
"* wordnet_level1: list of length C. WordNet associated.\n",
|
||
|
"* wordnet_synset: list of length C. WordNet synset for each object name. Shows the full hierarchy separated by .\n",
|
||
|
"* wordnet_hypernym: list of length C. WordNet hypernyms for each object name.\n",
|
||
|
"* wordnet_gloss: list of length C. WordNet definition.\n",
|
||
|
"* wordnet_synonyms: list of length C. Synonyms for the WordNet definition.\n",
|
||
|
"* wordnet_frequency: array of length C. How many times each wordnet appears\n",
|
||
|
"--------------------------------------------\n",
|
||
|
"\n",
|
||
|
"The dataset has 27574 images\n",
|
||
|
"The image at index 20390 is ADE_train_00020391.jpg\n",
|
||
|
"It is located at ADE20K_2021_17_01/images/ADE/training/home_or_hotel/bedroom/ADE_train_00020391.jpg\n",
|
||
|
"It happens in a /bedroom\n",
|
||
|
"It has 21.0 objects, of which 2.0 are parts\n",
|
||
|
"The most common object is object painting, picture (1734), which appears 3.0 times\n"
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"\n",
|
||
|
"print(\"File loaded, description of the attributes:\")\n",
|
||
|
"print('--------------------------------------------')\n",
|
||
|
"for attribute_name, desc in index_ade20k['description'].items():\n",
|
||
|
" print('* {}: {}'.format(attribute_name, desc))\n",
|
||
|
"print('--------------------------------------------\\n')\n",
|
||
|
"\n",
|
||
|
"i = 20390\n",
|
||
|
"nfiles = len(index_ade20k['filename'])\n",
|
||
|
"file_name = index_ade20k['filename'][i]\n",
|
||
|
"num_obj = index_ade20k['objectPresence'][:, i].sum()\n",
|
||
|
"num_parts = index_ade20k['objectIsPart'][:, i].sum()\n",
|
||
|
"count_obj = index_ade20k['objectPresence'][:, i].max()\n",
|
||
|
"obj_id = np.where(index_ade20k['objectPresence'][:, i] == count_obj)[0][0]\n",
|
||
|
"obj_name = index_ade20k['objectnames'][obj_id]\n",
|
||
|
"full_file_name = '{}/{}'.format(index_ade20k['folder'][i], index_ade20k['filename'][i])\n",
|
||
|
"print(\"The dataset has {} images\".format(nfiles))\n",
|
||
|
"print(\"The image at index {} is {}\".format(i, file_name))\n",
|
||
|
"print(\"It is located at {}\".format(full_file_name))\n",
|
||
|
"print(\"It happens in a {}\".format(index_ade20k['scene'][i]))\n",
|
||
|
"print(\"It has {} objects, of which {} are parts\".format(num_obj, num_parts))\n",
|
||
|
"print(\"The most common object is object {} ({}), which appears {} times\".format(obj_name, obj_id, count_obj))"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 27,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"text/plain": [
|
||
|
"'ADE20K_2021_17_01/images/ADE/training/transportation/airport_terminal'"
|
||
|
]
|
||
|
},
|
||
|
"execution_count": 27,
|
||
|
"metadata": {},
|
||
|
"output_type": "execute_result"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"index_ade20k['folder'][0]"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"## Loading a segmentation object\n",
|
||
|
"We will visualize the same obejct we were studying before"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 30,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"text/plain": [
|
||
|
"Counter({'training': 25574, 'validation': 2000})"
|
||
|
]
|
||
|
},
|
||
|
"execution_count": 30,
|
||
|
"metadata": {},
|
||
|
"output_type": "execute_result"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"from collections import Counter\n",
|
||
|
"Counter([x.split('/')[-3] for x in index_ade20k['folder']])"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 8,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "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
|
||
|
"text/plain": [
|
||
|
"<Figure size 1080x360 with 1 Axes>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {
|
||
|
"needs_background": "light"
|
||
|
},
|
||
|
"output_type": "display_data"
|
||
|
},
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "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\n",
|
||
|
"text/plain": [
|
||
|
"<Figure size 360x360 with 1 Axes>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {
|
||
|
"needs_background": "light"
|
||
|
},
|
||
|
"output_type": "display_data"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"root_path = DATASET_PATH\n",
|
||
|
"info = utils_ade20k.loadAde20K('{}/{}'.format(root_path, full_file_name))\n",
|
||
|
"img = cv2.imread(info['img_name'])[:,:,::-1]\n",
|
||
|
"seg = cv2.imread(info['segm_name'])[:,:,::-1]\n",
|
||
|
"seg_mask = seg.copy()\n",
|
||
|
"seg_mask[info['class_mask'] != obj_id+1] *= 0\n",
|
||
|
"plt.figure(figsize=(15,5))\n",
|
||
|
"\n",
|
||
|
"plt.imshow(np.concatenate([img, seg, seg_mask], 1))\n",
|
||
|
"plt.axis('off')\n",
|
||
|
"if len(info['partclass_mask']):\n",
|
||
|
" plt.figure(figsize=(5*len(info['partclass_mask']), 5))\n",
|
||
|
" plt.title('Parts')\n",
|
||
|
" plt.imshow(np.concatenate(info['partclass_mask'],1))\n",
|
||
|
" plt.axis('off')\n",
|
||
|
"\n"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"You can also inspect the attributes `info['objects']` and `info['parts']` for information about object names, attributes etc."
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"## Amodal segmentation and Polygons\n",
|
||
|
"We also provide access to the original polygons annotated, as well as the amodal segmentation of object instances"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 9,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"text/plain": [
|
||
|
"(-0.5, 3071.5, 681.5, -0.5)"
|
||
|
]
|
||
|
},
|
||
|
"execution_count": 9,
|
||
|
"metadata": {},
|
||
|
"output_type": "execute_result"
|
||
|
},
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "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\n",
|
||
|
"text/plain": [
|
||
|
"<Figure size 1080x360 with 1 Axes>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {
|
||
|
"needs_background": "light"
|
||
|
},
|
||
|
"output_type": "display_data"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"# We have a segmentation for every object instance, showing object bounds without occlusions\n",
|
||
|
"instances = [4, 5, 7]\n",
|
||
|
"images = []\n",
|
||
|
"for instance in instances:\n",
|
||
|
" file_instance = '{}/{}/instance_{:03}_{}'.format(\n",
|
||
|
" root_path, full_file_name.replace('.jpg', ''), instance, file_name.replace('.jpg', '.png'))\n",
|
||
|
" aux = cv2.imread(file_instance)\n",
|
||
|
" images.append(aux)\n",
|
||
|
"plt.figure(figsize=(5*len(images), 5))\n",
|
||
|
"plt.imshow(np.concatenate(images, 1))\n",
|
||
|
"plt.axis('off')"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"Finally we can get the original polygons"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 10,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"text/plain": [
|
||
|
"(-0.5, 1023.5, 681.5, -0.5)"
|
||
|
]
|
||
|
},
|
||
|
"execution_count": 10,
|
||
|
"metadata": {},
|
||
|
"output_type": "execute_result"
|
||
|
},
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "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
|
||
|
"text/plain": [
|
||
|
"<Figure size 1080x1080 with 1 Axes>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {
|
||
|
"needs_background": "light"
|
||
|
},
|
||
|
"output_type": "display_data"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"img = utils_ade20k.plot_polygon('{}/{}'.format(root_path, full_file_name), info)\n",
|
||
|
"plt.figure(figsize=(15,15))\n",
|
||
|
"plt.imshow(img[:, :, ::-1])\n",
|
||
|
"plt.axis('off')"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": null,
|
||
|
"metadata": {},
|
||
|
"outputs": [],
|
||
|
"source": []
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": null,
|
||
|
"metadata": {},
|
||
|
"outputs": [],
|
||
|
"source": []
|
||
|
}
|
||
|
],
|
||
|
"metadata": {
|
||
|
"kernelspec": {
|
||
|
"display_name": "Python 3",
|
||
|
"language": "python",
|
||
|
"name": "python3"
|
||
|
},
|
||
|
"language_info": {
|
||
|
"codemirror_mode": {
|
||
|
"name": "ipython",
|
||
|
"version": 3
|
||
|
},
|
||
|
"file_extension": ".py",
|
||
|
"mimetype": "text/x-python",
|
||
|
"name": "python",
|
||
|
"nbconvert_exporter": "python",
|
||
|
"pygments_lexer": "ipython3",
|
||
|
"version": "3.7.1"
|
||
|
}
|
||
|
},
|
||
|
"nbformat": 4,
|
||
|
"nbformat_minor": 2
|
||
|
}
|