Skip to content

Instantly share code, notes, and snippets.

@godardt
Last active March 16, 2021 02:07
Show Gist options
  • Select an option

  • Save godardt/33ec0172590ab9f2e3a6b757c9f9dcb4 to your computer and use it in GitHub Desktop.

Select an option

Save godardt/33ec0172590ab9f2e3a6b757c9f9dcb4 to your computer and use it in GitHub Desktop.
Planet: Understanding the Amazon deforestation from Space challenge
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Planet: Understanding the Amazon deforestation from Space challenge"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Special thanks to the kernel contributors of this challenge (especially @anokas and @Kaggoo) who helped me find a starting point for this notebook.\n",
"\n",
"The whole code including the `data_helper.py` and `keras_helper.py` files are available on github [here](https://github.com/EKami/planet-amazon-deforestation) and the notebook can be found on the same github [here](https://github.com/EKami/planet-amazon-deforestation/blob/master/notebooks/amazon_forest_notebook.ipynb)\n",
"\n",
"**If you found this notebook useful some upvotes would be greatly appreciated! :) **"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Start by adding the helper files to the python path"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import sys\n",
"\n",
"sys.path.append('../src')\n",
"sys.path.append('../tests')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Import required modules"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Using TensorFlow backend.\n"
]
}
],
"source": [
"import os\n",
"import gc\n",
"import bcolz\n",
"import numpy as np\n",
"import pandas as pd\n",
"import seaborn as sns\n",
"import tensorflow as tf\n",
"import matplotlib.pyplot as plt\n",
"import matplotlib.image as mpimg\n",
"from keras.optimizers import Adam\n",
"from keras.callbacks import ModelCheckpoint, EarlyStopping, ReduceLROnPlateau, History\n",
"import vgg16\n",
"import data_helper\n",
"from data_helper import AmazonPreprocessor\n",
"from kaggle_data.downloader import KaggleDataDownloader\n",
"\n",
"%matplotlib inline\n",
"%config InlineBackend.figure_format = 'retina'"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Print tensorflow version for reuse (the Keras module is used directly from the tensorflow framework)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'1.9.0-rc2'"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tf.__version__"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Download the competition files\n",
"Download the dataset files and extract them automatically with the help of [Kaggle data downloader](https://github.com/EKami/kaggle-data-downloader)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"\r",
" \r",
"\r",
"train-jpg.tar.7z N/A% | | ETA: --:--:-- 0.0 s/B"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"downloading https://www.kaggle.com/c/planet-understanding-the-amazon-from-space/download/train-jpg.tar.7z to ../input/train-jpg.tar.7z\n",
"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"train-jpg.tar.7z 100% |############################| Time: 0:00:54 10.9 MiB/s\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Extracting ../input/train-jpg.tar.7z to ../input/ ...\n",
"Extraction finished\n",
"Extracting ../input/train-jpg.tar to ../input/ ...\n",
"Extraction finished\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\r",
" \r",
"\r",
"test-jpg.tar.7z N/A% | | ETA: --:--:-- 0.0 s/B"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"downloading https://www.kaggle.com/c/planet-understanding-the-amazon-from-space/download/test-jpg.tar.7z to ../input/test-jpg.tar.7z\n",
"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"test-jpg.tar.7z 100% |#############################| Time: 0:01:00 10.0 MiB/s\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Extracting ../input/test-jpg.tar.7z to ../input/ ...\n",
"Extraction finished\n",
"Extracting ../input/test-jpg.tar to ../input/ ...\n",
"Extraction finished\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\r",
" \r",
"\r",
"test-jpg-additional.tar.7z N/A% | | ETA: --:--:-- 0.0 s/B"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"downloading https://www.kaggle.com/c/planet-understanding-the-amazon-from-space/download/test-jpg-additional.tar.7z to ../input/test-jpg-additional.tar.7z\n",
"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"test-jpg-additional.tar.7z 100% |##################| Time: 0:00:31 9.8 MiB/s\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Extracting ../input/test-jpg-additional.tar.7z to ../input/ ...\n",
"Extraction finished\n",
"Extracting ../input/test-jpg-additional.tar to ../input/ ...\n",
"Extraction finished\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\r",
" \r",
"\r",
"train_v2.csv.zip N/A% | | ETA: --:--:-- 0.0 s/B"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"downloading https://www.kaggle.com/c/planet-understanding-the-amazon-from-space/download/train_v2.csv.zip to ../input/train_v2.csv.zip\n",
"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"train_v2.csv.zip 100% |############################| Time: 0:00:00 290.8 KiB/s\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Extracting ../input/train_v2.csv.zip to ../input/ ...\n",
"Extraction finished\n"
]
}
],
"source": [
"competition_name = \"planet-understanding-the-amazon-from-space\"\n",
"\n",
"train, train_u = \"train-jpg.tar.7z\", \"train-jpg.tar\"\n",
"test, test_u = \"test-jpg.tar.7z\", \"test-jpg.tar\"\n",
"test_additional, test_additional_u = \"test-jpg-additional.tar.7z\", \"test-jpg-additional.tar\"\n",
"test_labels = \"train_v2.csv.zip\"\n",
"destination_path = \"../input/\"\n",
"is_datasets_present = False\n",
"\n",
"# If the folders already exists then the files may already be extracted\n",
"# This is a bit hacky but it's sufficient for our needs\n",
"datasets_path = data_helper.get_jpeg_data_files_paths()\n",
"for dir_path in datasets_path:\n",
" if os.path.exists(dir_path):\n",
" is_datasets_present = True\n",
"\n",
"if not is_datasets_present:\n",
" # Put your Kaggle user name and password in a $KAGGLE_USER and $KAGGLE_PASSWD env vars respectively\n",
" downloader = KaggleDataDownloader(os.getenv(\"KAGGLE_USER\"), os.getenv(\"KAGGLE_PASSWD\"), competition_name)\n",
" \n",
" train_output_path = downloader.download_dataset(train, destination_path)\n",
" downloader.decompress(train_output_path, destination_path) # Outputs a tar file\n",
" downloader.decompress(destination_path + train_u, destination_path) # Extract the content of the previous tar file\n",
" os.remove(train_output_path) # Removes the 7z file\n",
" os.remove(destination_path + train_u) # Removes the tar file\n",
" \n",
" test_output_path = downloader.download_dataset(test, destination_path)\n",
" downloader.decompress(test_output_path, destination_path) # Outputs a tar file\n",
" downloader.decompress(destination_path + test_u, destination_path) # Extract the content of the previous tar file\n",
" os.remove(test_output_path) # Removes the 7z file\n",
" os.remove(destination_path + test_u) # Removes the tar file\n",
" \n",
" test_add_output_path = downloader.download_dataset(test_additional, destination_path)\n",
" downloader.decompress(test_add_output_path, destination_path) # Outputs a tar file\n",
" downloader.decompress(destination_path + test_additional_u, destination_path) # Extract the content of the previous tar file\n",
" os.remove(test_add_output_path) # Removes the 7z file\n",
" os.remove(destination_path + test_additional_u) # Removes the tar file\n",
" \n",
" test_labels_output_path = downloader.download_dataset(test_labels, destination_path)\n",
" downloader.decompress(test_labels_output_path, destination_path) # Outputs a csv file\n",
" os.remove(test_labels_output_path) # Removes the zip file\n",
"else:\n",
" print(\"All datasets are present.\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Inspect image labels\n",
"Visualize what the training set looks like"
]
},
{
"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>image_name</th>\n",
" <th>tags</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>train_0</td>\n",
" <td>haze primary</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>train_1</td>\n",
" <td>agriculture clear primary water</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>train_2</td>\n",
" <td>clear primary</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>train_3</td>\n",
" <td>clear primary</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>train_4</td>\n",
" <td>agriculture clear habitation primary road</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" image_name tags\n",
"0 train_0 haze primary\n",
"1 train_1 agriculture clear primary water\n",
"2 train_2 clear primary\n",
"3 train_3 clear primary\n",
"4 train_4 agriculture clear habitation primary road"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"train_jpeg_dir, test_jpeg_dir, test_jpeg_additional, train_csv_file = data_helper.get_jpeg_data_files_paths()\n",
"labels_df = pd.read_csv(train_csv_file)\n",
"labels_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Each image can be tagged with multiple tags, lets list all uniques tags"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"There is 17 unique labels including {'primary', 'haze', 'bare_ground', 'blow_down', 'artisinal_mine', 'blooming', 'slash_burn', 'water', 'habitation', 'clear', 'partly_cloudy', 'road', 'selective_logging', 'cultivation', 'conventional_mine', 'cloudy', 'agriculture'}\n"
]
}
],
"source": [
"# Print all unique tags\n",
"from itertools import chain\n",
"labels_list = list(chain.from_iterable([tags.split(\" \") for tags in labels_df['tags'].values]))\n",
"labels_set = set(labels_list)\n",
"print(\"There is {} unique labels including {}\".format(len(labels_set), labels_set))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Repartition of each labels"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7efd09f5a240>"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1152x576 with 1 Axes>"
]
},
"metadata": {
"image/png": {
"height": 467,
"width": 1010
}
},
"output_type": "display_data"
}
],
"source": [
"# Histogram of label instances\n",
"labels_s = pd.Series(labels_list).value_counts() # To sort them by count\n",
"fig, ax = plt.subplots(figsize=(16, 8))\n",
"sns.barplot(x=labels_s, y=labels_s.index, orient='h')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Images\n",
"Visualize some chip images to know what we are dealing with.\n",
"Lets vizualise 1 chip for the 17 images to get a sense of their differences."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
@chengzhan
Copy link

Thanks!
Very nice!

@godardt
Copy link
Author

godardt commented Jun 22, 2017

You're welcome :)

@jamesben6688
Copy link

jamesben6688 commented Oct 11, 2017

Amazing script! But I couldn't find the data_helper.preprocess_test_data() function, seems there is not such a function in data_helper.py

@sroziewski
Copy link

Hi!
The github links don't work!
All best

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment