Skip to content

Instantly share code, notes, and snippets.

@cedrickchee
Forked from binga/pascal_pandas.ipynb
Last active May 30, 2018 09:30
Show Gist options
  • Save cedrickchee/10e61334aee8fefe3dbad93406d39efb to your computer and use it in GitHub Desktop.
Save cedrickchee/10e61334aee8fefe3dbad93406d39efb to your computer and use it in GitHub Desktop.
A quick way to get the bounding boxes in fastai CSV format ready for bounding box regression using Pandas.

This gist was being mentioned by Jeremy in fast.ai deep learning part 2 2018, lesson 9 video. In this lesson, we are learning multi-class object detection (computer vision) using the pascal-multi.ipynb notebook.

One of the fast.ai's students pointed out that by using Pandas, we can do things much simpler than using Python collections.defaultdict and shared this gist.

The more you get to know Pandas, the more often you realize it is a good way to solve lots of different problems.

Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import json\n",
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"dict_keys(['images', 'type', 'annotations', 'categories'])\n"
]
}
],
"source": [
"with open(\"../PASCAL_VOC/pascal_train2007.json\") as i:\n",
" d = json.load(i)\n",
"\n",
"print(d.keys())\n",
" \n",
"categories = pd.DataFrame(d['categories'])\n",
"annotations = pd.DataFrame(d['annotations'])\n",
"images = pd.DataFrame(d['images'])"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>file_name</th>\n",
" <th>height</th>\n",
" <th>id</th>\n",
" <th>width</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>000012.jpg</td>\n",
" <td>333</td>\n",
" <td>12</td>\n",
" <td>500</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>000017.jpg</td>\n",
" <td>364</td>\n",
" <td>17</td>\n",
" <td>480</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>000023.jpg</td>\n",
" <td>500</td>\n",
" <td>23</td>\n",
" <td>334</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>000026.jpg</td>\n",
" <td>333</td>\n",
" <td>26</td>\n",
" <td>500</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>000032.jpg</td>\n",
" <td>281</td>\n",
" <td>32</td>\n",
" <td>500</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" file_name height id width\n",
"0 000012.jpg 333 12 500\n",
"1 000017.jpg 364 17 480\n",
"2 000023.jpg 500 23 334\n",
"3 000026.jpg 333 26 500\n",
"4 000032.jpg 281 32 500"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"images.head()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>name</th>\n",
" <th>supercategory</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>aeroplane</td>\n",
" <td>none</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2</td>\n",
" <td>bicycle</td>\n",
" <td>none</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>3</td>\n",
" <td>bird</td>\n",
" <td>none</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4</td>\n",
" <td>boat</td>\n",
" <td>none</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5</td>\n",
" <td>bottle</td>\n",
" <td>none</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id name supercategory\n",
"0 1 aeroplane none\n",
"1 2 bicycle none\n",
"2 3 bird none\n",
"3 4 boat none\n",
"4 5 bottle none"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"categories.head()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>area</th>\n",
" <th>bbox</th>\n",
" <th>category_id</th>\n",
" <th>id</th>\n",
" <th>ignore</th>\n",
" <th>image_id</th>\n",
" <th>iscrowd</th>\n",
" <th>segmentation</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>34104</td>\n",
" <td>[155, 96, 196, 174]</td>\n",
" <td>7</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>12</td>\n",
" <td>0</td>\n",
" <td>[[155, 96, 155, 270, 351, 270, 351, 96]]</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>13110</td>\n",
" <td>[184, 61, 95, 138]</td>\n",
" <td>15</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>17</td>\n",
" <td>0</td>\n",
" <td>[[184, 61, 184, 199, 279, 199, 279, 61]]</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>81326</td>\n",
" <td>[89, 77, 314, 259]</td>\n",
" <td>13</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>17</td>\n",
" <td>0</td>\n",
" <td>[[89, 77, 89, 336, 403, 336, 403, 77]]</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>64227</td>\n",
" <td>[8, 229, 237, 271]</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>23</td>\n",
" <td>0</td>\n",
" <td>[[8, 229, 8, 500, 245, 500, 245, 229]]</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>29505</td>\n",
" <td>[229, 219, 105, 281]</td>\n",
" <td>2</td>\n",
" <td>5</td>\n",
" <td>0</td>\n",
" <td>23</td>\n",
" <td>0</td>\n",
" <td>[[229, 219, 229, 500, 334, 500, 334, 219]]</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" area bbox category_id id ignore image_id iscrowd \\\n",
"0 34104 [155, 96, 196, 174] 7 1 0 12 0 \n",
"1 13110 [184, 61, 95, 138] 15 2 0 17 0 \n",
"2 81326 [89, 77, 314, 259] 13 3 0 17 0 \n",
"3 64227 [8, 229, 237, 271] 2 4 0 23 0 \n",
"4 29505 [229, 219, 105, 281] 2 5 0 23 0 \n",
"\n",
" segmentation \n",
"0 [[155, 96, 155, 270, 351, 270, 351, 96]] \n",
"1 [[184, 61, 184, 199, 279, 199, 279, 61]] \n",
"2 [[89, 77, 89, 336, 403, 336, 403, 77]] \n",
"3 [[8, 229, 8, 500, 245, 500, 245, 229]] \n",
"4 [[229, 219, 229, 500, 334, 500, 334, 219]] "
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"annotations.head()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>area</th>\n",
" <th>bbox</th>\n",
" <th>category_id</th>\n",
" <th>id_x</th>\n",
" <th>ignore</th>\n",
" <th>image_id</th>\n",
" <th>iscrowd</th>\n",
" <th>segmentation</th>\n",
" <th>id_y</th>\n",
" <th>name</th>\n",
" <th>supercategory</th>\n",
" <th>file_name</th>\n",
" <th>height</th>\n",
" <th>id</th>\n",
" <th>width</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>34104</td>\n",
" <td>[155, 96, 196, 174]</td>\n",
" <td>7</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>12</td>\n",
" <td>0</td>\n",
" <td>[[155, 96, 155, 270, 351, 270, 351, 96]]</td>\n",
" <td>7</td>\n",
" <td>car</td>\n",
" <td>none</td>\n",
" <td>000012.jpg</td>\n",
" <td>333</td>\n",
" <td>12</td>\n",
" <td>500</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>13110</td>\n",
" <td>[184, 61, 95, 138]</td>\n",
" <td>15</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>17</td>\n",
" <td>0</td>\n",
" <td>[[184, 61, 184, 199, 279, 199, 279, 61]]</td>\n",
" <td>15</td>\n",
" <td>person</td>\n",
" <td>none</td>\n",
" <td>000017.jpg</td>\n",
" <td>364</td>\n",
" <td>17</td>\n",
" <td>480</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>81326</td>\n",
" <td>[89, 77, 314, 259]</td>\n",
" <td>13</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>17</td>\n",
" <td>0</td>\n",
" <td>[[89, 77, 89, 336, 403, 336, 403, 77]]</td>\n",
" <td>13</td>\n",
" <td>horse</td>\n",
" <td>none</td>\n",
" <td>000017.jpg</td>\n",
" <td>364</td>\n",
" <td>17</td>\n",
" <td>480</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>64227</td>\n",
" <td>[8, 229, 237, 271]</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>23</td>\n",
" <td>0</td>\n",
" <td>[[8, 229, 8, 500, 245, 500, 245, 229]]</td>\n",
" <td>2</td>\n",
" <td>bicycle</td>\n",
" <td>none</td>\n",
" <td>000023.jpg</td>\n",
" <td>500</td>\n",
" <td>23</td>\n",
" <td>334</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>29505</td>\n",
" <td>[229, 219, 105, 281]</td>\n",
" <td>2</td>\n",
" <td>5</td>\n",
" <td>0</td>\n",
" <td>23</td>\n",
" <td>0</td>\n",
" <td>[[229, 219, 229, 500, 334, 500, 334, 219]]</td>\n",
" <td>2</td>\n",
" <td>bicycle</td>\n",
" <td>none</td>\n",
" <td>000023.jpg</td>\n",
" <td>500</td>\n",
" <td>23</td>\n",
" <td>334</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" area bbox category_id id_x ignore image_id iscrowd \\\n",
"0 34104 [155, 96, 196, 174] 7 1 0 12 0 \n",
"1 13110 [184, 61, 95, 138] 15 2 0 17 0 \n",
"2 81326 [89, 77, 314, 259] 13 3 0 17 0 \n",
"3 64227 [8, 229, 237, 271] 2 4 0 23 0 \n",
"4 29505 [229, 219, 105, 281] 2 5 0 23 0 \n",
"\n",
" segmentation id_y name supercategory \\\n",
"0 [[155, 96, 155, 270, 351, 270, 351, 96]] 7 car none \n",
"1 [[184, 61, 184, 199, 279, 199, 279, 61]] 15 person none \n",
"2 [[89, 77, 89, 336, 403, 336, 403, 77]] 13 horse none \n",
"3 [[8, 229, 8, 500, 245, 500, 245, 229]] 2 bicycle none \n",
"4 [[229, 219, 229, 500, 334, 500, 334, 219]] 2 bicycle none \n",
"\n",
" file_name height id width \n",
"0 000012.jpg 333 12 500 \n",
"1 000017.jpg 364 17 480 \n",
"2 000017.jpg 364 17 480 \n",
"3 000023.jpg 500 23 334 \n",
"4 000023.jpg 500 23 334 "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data = (annotations\n",
" .merge(categories, how='left', left_on='category_id', right_on='id')\n",
" .merge(images, how='left', left_on='image_id', right_on='id'))\n",
"data.head()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>file_name</th>\n",
" <th>area</th>\n",
" <th>bbox</th>\n",
" <th>image_id</th>\n",
" <th>name</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>000012.jpg</td>\n",
" <td>34104</td>\n",
" <td>[155, 96, 196, 174]</td>\n",
" <td>12</td>\n",
" <td>car</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>000017.jpg</td>\n",
" <td>81326</td>\n",
" <td>[89, 77, 314, 259]</td>\n",
" <td>17</td>\n",
" <td>horse</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>000023.jpg</td>\n",
" <td>111101</td>\n",
" <td>[2, 1, 241, 461]</td>\n",
" <td>23</td>\n",
" <td>person</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>000026.jpg</td>\n",
" <td>21824</td>\n",
" <td>[89, 124, 248, 88]</td>\n",
" <td>26</td>\n",
" <td>car</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>000032.jpg</td>\n",
" <td>28832</td>\n",
" <td>[103, 77, 272, 106]</td>\n",
" <td>32</td>\n",
" <td>aeroplane</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" file_name area bbox image_id name\n",
"0 000012.jpg 34104 [155, 96, 196, 174] 12 car\n",
"1 000017.jpg 81326 [89, 77, 314, 259] 17 horse\n",
"2 000023.jpg 111101 [2, 1, 241, 461] 23 person\n",
"3 000026.jpg 21824 [89, 124, 248, 88] 26 car\n",
"4 000032.jpg 28832 [103, 77, 272, 106] 32 aeroplane"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"largest_bbox = data.pivot_table(index='file_name', values='area', aggfunc=max).reset_index()\n",
"largest_bbox = largest_bbox.merge(data[['area', 'bbox', 'image_id', 'file_name', 'name']], how='left')\n",
"largest_bbox.head()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>file_name</th>\n",
" <th>area</th>\n",
" <th>bbox</th>\n",
" <th>image_id</th>\n",
" <th>name</th>\n",
" <th>bbox_new</th>\n",
" <th>bbox_str</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>000012.jpg</td>\n",
" <td>34104</td>\n",
" <td>[155, 96, 196, 174]</td>\n",
" <td>12</td>\n",
" <td>car</td>\n",
" <td>[96, 155, 269, 350]</td>\n",
" <td>96 155 269 350</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>000017.jpg</td>\n",
" <td>81326</td>\n",
" <td>[89, 77, 314, 259]</td>\n",
" <td>17</td>\n",
" <td>horse</td>\n",
" <td>[77, 89, 335, 402]</td>\n",
" <td>77 89 335 402</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>000023.jpg</td>\n",
" <td>111101</td>\n",
" <td>[2, 1, 241, 461]</td>\n",
" <td>23</td>\n",
" <td>person</td>\n",
" <td>[1, 2, 461, 242]</td>\n",
" <td>1 2 461 242</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>000026.jpg</td>\n",
" <td>21824</td>\n",
" <td>[89, 124, 248, 88]</td>\n",
" <td>26</td>\n",
" <td>car</td>\n",
" <td>[124, 89, 211, 336]</td>\n",
" <td>124 89 211 336</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>000032.jpg</td>\n",
" <td>28832</td>\n",
" <td>[103, 77, 272, 106]</td>\n",
" <td>32</td>\n",
" <td>aeroplane</td>\n",
" <td>[77, 103, 182, 374]</td>\n",
" <td>77 103 182 374</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" file_name area bbox image_id name \\\n",
"0 000012.jpg 34104 [155, 96, 196, 174] 12 car \n",
"1 000017.jpg 81326 [89, 77, 314, 259] 17 horse \n",
"2 000023.jpg 111101 [2, 1, 241, 461] 23 person \n",
"3 000026.jpg 21824 [89, 124, 248, 88] 26 car \n",
"4 000032.jpg 28832 [103, 77, 272, 106] 32 aeroplane \n",
"\n",
" bbox_new bbox_str \n",
"0 [96, 155, 269, 350] 96 155 269 350 \n",
"1 [77, 89, 335, 402] 77 89 335 402 \n",
"2 [1, 2, 461, 242] 1 2 461 242 \n",
"3 [124, 89, 211, 336] 124 89 211 336 \n",
"4 [77, 103, 182, 374] 77 103 182 374 "
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def bb_hw_pandas(x):\n",
" return [x[1], x[0], x[1]+x[3]-1, x[0]+x[2]-1]\n",
"\n",
"largest_bbox['bbox_new'] = largest_bbox['bbox'].apply(lambda x: bb_hw_pandas(x))\n",
"largest_bbox['bbox_str'] = largest_bbox['bbox_new'].apply(lambda x: ' '.join(str(y) for y in x))\n",
"largest_bbox.head()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"f = \"bbox_dataset.csv\"\n",
"largest_bbox[['file_name', 'bbox_str']].to_csv(f, index=False)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>file_name</th>\n",
" <th>bbox_str</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>000012.jpg</td>\n",
" <td>96 155 269 350</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>000017.jpg</td>\n",
" <td>77 89 335 402</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>000023.jpg</td>\n",
" <td>1 2 461 242</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>000026.jpg</td>\n",
" <td>124 89 211 336</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>000032.jpg</td>\n",
" <td>77 103 182 374</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" file_name bbox_str\n",
"0 000012.jpg 96 155 269 350\n",
"1 000017.jpg 77 89 335 402\n",
"2 000023.jpg 1 2 461 242\n",
"3 000026.jpg 124 89 211 336\n",
"4 000032.jpg 77 103 182 374"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"largest_bbox[['file_name', 'bbox_str']].head()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment