diff options
| author | adamhrv <adam@ahprojects.com> | 2018-12-14 17:22:57 +0100 |
|---|---|---|
| committer | adamhrv <adam@ahprojects.com> | 2018-12-14 17:22:57 +0100 |
| commit | 1690cfb4cc7b7277afca4016c295927cc4f7fafb (patch) | |
| tree | fa9130c2eb0f24f71cf3cede2477bf565d27433c /megapixels/notebooks/datasets | |
| parent | 5891e2f13ae9dfead0e1794c399e5ff813e694d3 (diff) | |
add pose filter
Diffstat (limited to 'megapixels/notebooks/datasets')
| -rw-r--r-- | megapixels/notebooks/datasets/vgg_face2/filter_pose.ipynb | 1655 |
1 files changed, 1655 insertions, 0 deletions
diff --git a/megapixels/notebooks/datasets/vgg_face2/filter_pose.ipynb b/megapixels/notebooks/datasets/vgg_face2/filter_pose.ipynb new file mode 100644 index 00000000..34068b82 --- /dev/null +++ b/megapixels/notebooks/datasets/vgg_face2/filter_pose.ipynb @@ -0,0 +1,1655 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Acessing CSV data" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "%reload_ext autoreload\n", + "%autoreload 2\n", + "\n", + "import os\n", + "from os.path import join\n", + "from glob import glob\n", + "from random import randint\n", + "from pathlib import Path\n", + "\n", + "from tqdm import tqdm_notebook as tqdm\n", + "import numpy as np\n", + "import pandas as pd\n", + "import cv2 as cv\n", + "%matplotlib inline\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "DATA_STORE = '/data_store/'\n", + "dir_datasets = join(DATA_STORE, 'datasets/people')\n", + "dir_lfw = join(dir_datasets, 'vgg_face2')\n", + "dir_lfw_metadata = join(dir_lfw, 'metadata')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Files" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "# set fp_\n", + "fp_identities = join(dir_lfw_metadata, 'identities.csv')\n", + "fp_files = join(dir_lfw_metadata, 'file_meta_updated.csv')\n", + "fp_index = join(dir_lfw_metadata, 'shas.csv')\n", + "fp_rois = join(dir_lfw_metadata, 'rois_dlib_cnn_400.csv')\n", + "fp_uuids = join(dir_lfw_metadata, 'uuids.csv')\n", + "#fp_poses = join(dir_lfw_metadata, 'poses.csv')\n", + "fp_vecs = join(dir_lfw_metadata, 'vecs.csv')" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# load csvs into dataframes\n", + "df_identities = pd.read_csv(fp_identities).set_index('index')\n", + "df_files = pd.read_csv(fp_files).set_index('index')\n", + "df_index = pd.read_csv(fp_index).set_index('index')\n", + "df_rois = pd.read_csv(fp_rois).set_index('index')\n", + "df_uuids = pd.read_csv(fp_uuids).set_index('index')\n", + "#df_poses = pd.read_csv(fp_pose).set_index('index')\n", + "#df_vecs = pd.read_csv(fp_vecs).set_index('index')" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "fp_poses = join(dir_lfw_metadata, 'poses_0_10000.csv')\n", + "df_poses = pd.read_csv(fp_poses).set_index('index')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Identity attributes\n", + "\n", + "- preview identities\n", + "- here the 'index' is unique and refers to the identity\n", + "- in other files it is referred to as 'identity_index'" + ] + }, + { + "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>class_id</th>\n", + " <th>description</th>\n", + " <th>gender</th>\n", + " <th>images</th>\n", + " <th>name</th>\n", + " </tr>\n", + " <tr>\n", + " <th>index</th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>n000001</td>\n", + " <td>Dalai Lama</td>\n", + " <td>m</td>\n", + " <td>424</td>\n", + " <td>14th Dalai Lama</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>n000002</td>\n", + " <td>American singer-songwriter</td>\n", + " <td>f</td>\n", + " <td>315</td>\n", + " <td>A Fine Frenzy</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " class_id description gender images name\n", + "index \n", + "0 n000001 Dalai Lama m 424 14th Dalai Lama\n", + "1 n000002 American singer-songwriter f 315 A Fine Frenzy" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_identities.head(2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### File attributes\n", + "\n", + "- preview files\n", + "- NB: this information is not needed for the website\n", + "- information needed to load an image from the local directory" + ] + }, + { + "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>ext</th>\n", + " <th>fn</th>\n", + " <th>subdir</th>\n", + " </tr>\n", + " <tr>\n", + " <th>index</th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>jpg</td>\n", + " <td>0194_01</td>\n", + " <td>train/n004034</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>jpg</td>\n", + " <td>0132_02</td>\n", + " <td>train/n004034</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " ext fn subdir\n", + "index \n", + "0 jpg 0194_01 train/n004034\n", + "1 jpg 0132_02 train/n004034" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_files.head(2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Index\n", + "\n", + "- every image has an index\n", + "- the `identity_index` refers back to the `identities.csv` file" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "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>sha256</th>\n", + " <th>identity_index</th>\n", + " </tr>\n", + " <tr>\n", + " <th>index</th>\n", + " <th></th>\n", + " <th></th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>a39a1df855cb0c70dc553c5e9afa35b4f7c00f4011ca10...</td>\n", + " <td>6123</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>e360f93613baa68cede6731d2603873cdabd3993841cfd...</td>\n", + " <td>6123</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " sha256 identity_index\n", + "index \n", + "0 a39a1df855cb0c70dc553c5e9afa35b4f7c00f4011ca10... 6123\n", + "1 e360f93613baa68cede6731d2603873cdabd3993841cfd... 6123" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_index.head(2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### ROIs (regions of interest)\n", + "\n", + "- refers to the detected face in image files" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "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>h</th>\n", + " <th>image_height</th>\n", + " <th>image_index</th>\n", + " <th>image_width</th>\n", + " <th>w</th>\n", + " <th>x</th>\n", + " <th>y</th>\n", + " </tr>\n", + " <tr>\n", + " <th>index</th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>0.38</td>\n", + " <td>282</td>\n", + " <td>0</td>\n", + " <td>247</td>\n", + " <td>0.435115</td>\n", + " <td>0.28626</td>\n", + " <td>0.316667</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>0.38</td>\n", + " <td>235</td>\n", + " <td>1</td>\n", + " <td>206</td>\n", + " <td>0.435115</td>\n", + " <td>0.28626</td>\n", + " <td>0.316667</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " h image_height image_index image_width w x \\\n", + "index \n", + "0 0.38 282 0 247 0.435115 0.28626 \n", + "1 0.38 235 1 206 0.435115 0.28626 \n", + "\n", + " y \n", + "index \n", + "0 0.316667 \n", + "1 0.316667 " + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_rois.head(2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### UUIDs\n", + "\n", + "- a separate file that includes the UUID for each image file\n", + "- separated to reduce file size for larger CSVs" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "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>uuid</th>\n", + " </tr>\n", + " <tr>\n", + " <th>index</th>\n", + " <th></th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>88ac6abd-6039-442b-b31f-2db8d575363a</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>73acbc00-2cb5-4260-8db3-b88ca7c29c72</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " uuid\n", + "index \n", + "0 88ac6abd-6039-442b-b31f-2db8d575363a\n", + "1 73acbc00-2cb5-4260-8db3-b88ca7c29c72" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_uuids.head(2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Pose\n", + "\n", + "- a separate file that includes pose information\n", + "- used for filtering out images that are too angled" + ] + }, + { + "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>image_index</th>\n", + " <th>pitch</th>\n", + " <th>roll</th>\n", + " <th>yaw</th>\n", + " </tr>\n", + " <tr>\n", + " <th>index</th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>0</td>\n", + " <td>-2.685769</td>\n", + " <td>4.093920</td>\n", + " <td>-7.937658</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>1</td>\n", + " <td>-10.074321</td>\n", + " <td>-5.795005</td>\n", + " <td>-20.644645</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " image_index pitch roll yaw\n", + "index \n", + "0 0 -2.685769 4.093920 -7.937658\n", + "1 1 -10.074321 -5.795005 -20.644645" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_poses.head(2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Face vectors\n", + "\n", + "- each face vector is associated with an ROI\n", + "- each ROI is associated with an image and an identity" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "#df_vecs.head(2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Utilities" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "# convert above to function\n", + "def roi_idx_to_image(roi_idx):\n", + " ds_roi = df_rois.iloc[roi_idx]\n", + " image_idx = int(ds_roi.image_index)\n", + " # use the image idx to get the file meta\n", + " ds_file = df_files.iloc[image_idx]\n", + " # construct filepath\n", + " fp_match = join(dir_lfw_images, str(ds_file.subdir), f'{ds_file.fn}.{ds_file.ext}')\n", + " im_match = cv.imread(fp_match)\n", + " return im_match " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Operations" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "# define min/max\n", + "yaw_minmax = (-25,25)\n", + "pitch_minmax = (-15,15)\n", + "roll_minmax = (-10,10)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "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_index</th>\n", + " <th>pitch</th>\n", + " <th>roll</th>\n", + " <th>yaw</th>\n", + " <th>valid</th>\n", + " </tr>\n", + " <tr>\n", + " <th>index</th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>0</td>\n", + " <td>-2.685769</td>\n", + " <td>4.093920</td>\n", + " <td>-7.937658</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>1</td>\n", + " <td>-10.074321</td>\n", + " <td>-5.795005</td>\n", + " <td>-20.644645</td>\n", + " <td>0</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " image_index pitch roll yaw valid\n", + "index \n", + "0 0 -2.685769 4.093920 -7.937658 0\n", + "1 1 -10.074321 -5.795005 -20.644645 0" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_poses['valid'] = [0] * len(df_poses)\n", + "df_poses.head(2)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "9347980a72ff4cb6906914338b458162", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=9743), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "# filter out extreme poses\n", + "for ds_pose in tqdm(df_poses.itertuples(), total=len(df_poses)):\n", + " if ds_pose.yaw > yaw_minmax[0] and ds_pose.yaw < yaw_minmax[1] \\\n", + " and ds_pose.roll > roll_minmax[0] and ds_pose.roll < roll_minmax[1] \\\n", + " and ds_pose.pitch > pitch_minmax[0] and ds_pose.pitch < pitch_minmax[1]:\n", + " df_poses.at[ds_pose.Index, 'valid'] = 1" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "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_index</th>\n", + " <th>pitch</th>\n", + " <th>roll</th>\n", + " <th>yaw</th>\n", + " <th>valid</th>\n", + " </tr>\n", + " <tr>\n", + " <th>index</th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>0</td>\n", + " <td>-2.685769</td>\n", + " <td>4.093920</td>\n", + " <td>-7.937658</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>1</td>\n", + " <td>-10.074321</td>\n", + " <td>-5.795005</td>\n", + " <td>-20.644645</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>2</td>\n", + " <td>1.949778</td>\n", + " <td>7.510585</td>\n", + " <td>-1.153938</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>3</td>\n", + " <td>-5.881088</td>\n", + " <td>3.305987</td>\n", + " <td>-16.774452</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>4</td>\n", + " <td>1.323455</td>\n", + " <td>3.552109</td>\n", + " <td>10.937092</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>5</td>\n", + " <td>8.966770</td>\n", + " <td>-20.319039</td>\n", + " <td>-10.666622</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>6</td>\n", + " <td>6.377947</td>\n", + " <td>-0.037838</td>\n", + " <td>-28.297769</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>7</td>\n", + " <td>-5.590547</td>\n", + " <td>-2.513488</td>\n", + " <td>-5.573986</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>8</td>\n", + " <td>7.494141</td>\n", + " <td>-0.587338</td>\n", + " <td>-20.937242</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>9</td>\n", + " <td>-4.547006</td>\n", + " <td>-0.429375</td>\n", + " <td>4.637964</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>10</td>\n", + " <td>-15.974450</td>\n", + " <td>-6.467474</td>\n", + " <td>-0.046817</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", + " <td>11</td>\n", + " <td>-3.349299</td>\n", + " <td>-4.059317</td>\n", + " <td>-4.709007</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>12</th>\n", + " <td>12</td>\n", + " <td>-0.824968</td>\n", + " <td>1.082679</td>\n", + " <td>-14.201574</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13</th>\n", + " <td>13</td>\n", + " <td>7.317298</td>\n", + " <td>-4.628597</td>\n", + " <td>-5.503731</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>14</th>\n", + " <td>14</td>\n", + " <td>-0.250637</td>\n", + " <td>7.168705</td>\n", + " <td>3.593267</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>15</th>\n", + " <td>15</td>\n", + " <td>-1.247407</td>\n", + " <td>-16.101818</td>\n", + " <td>-19.072548</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>16</th>\n", + " <td>16</td>\n", + " <td>6.184959</td>\n", + " <td>-18.960907</td>\n", + " <td>-14.435108</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>17</th>\n", + " <td>17</td>\n", + " <td>0.695174</td>\n", + " <td>10.411116</td>\n", + " <td>18.099205</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>18</th>\n", + " <td>18</td>\n", + " <td>-1.394646</td>\n", + " <td>1.553670</td>\n", + " <td>-13.243177</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>19</th>\n", + " <td>19</td>\n", + " <td>10.329418</td>\n", + " <td>6.057604</td>\n", + " <td>17.509771</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>20</th>\n", + " <td>20</td>\n", + " <td>-6.514906</td>\n", + " <td>-4.057685</td>\n", + " <td>32.285918</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>21</th>\n", + " <td>21</td>\n", + " <td>-3.412718</td>\n", + " <td>3.160722</td>\n", + " <td>-15.998410</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>22</th>\n", + " <td>22</td>\n", + " <td>-2.710659</td>\n", + " <td>3.482632</td>\n", + " <td>8.059692</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>23</th>\n", + " <td>23</td>\n", + " <td>-6.922881</td>\n", + " <td>15.771625</td>\n", + " <td>32.097414</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>24</th>\n", + " <td>24</td>\n", + " <td>-12.692917</td>\n", + " <td>0.502148</td>\n", + " <td>39.767956</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>25</th>\n", + " <td>25</td>\n", + " <td>-3.050506</td>\n", + " <td>26.288576</td>\n", + " <td>22.474047</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>26</th>\n", + " <td>26</td>\n", + " <td>-6.742365</td>\n", + " <td>2.603335</td>\n", + " <td>-3.170223</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>27</th>\n", + " <td>27</td>\n", + " <td>-2.879908</td>\n", + " <td>18.602692</td>\n", + " <td>26.772543</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>28</th>\n", + " <td>28</td>\n", + " <td>-3.475686</td>\n", + " <td>-4.734540</td>\n", + " <td>-12.301176</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>29</th>\n", + " <td>29</td>\n", + " <td>-4.039427</td>\n", + " <td>0.804975</td>\n", + " <td>2.226219</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>...</th>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " </tr>\n", + " <tr>\n", + " <th>70</th>\n", + " <td>70</td>\n", + " <td>9.677210</td>\n", + " <td>-3.644432</td>\n", + " <td>-3.558806</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>71</th>\n", + " <td>71</td>\n", + " <td>-6.304012</td>\n", + " <td>-4.870216</td>\n", + " <td>-35.114834</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>72</th>\n", + " <td>72</td>\n", + " <td>-22.009094</td>\n", + " <td>-21.959437</td>\n", + " <td>-27.393276</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>73</th>\n", + " <td>73</td>\n", + " <td>2.312746</td>\n", + " <td>4.491569</td>\n", + " <td>-2.417103</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>74</th>\n", + " <td>74</td>\n", + " <td>-13.938552</td>\n", + " <td>-3.284886</td>\n", + " <td>25.466661</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>75</th>\n", + " <td>75</td>\n", + " <td>16.797612</td>\n", + " <td>-8.401607</td>\n", + " <td>-6.680254</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>76</th>\n", + " <td>76</td>\n", + " <td>2.383204</td>\n", + " <td>-2.540481</td>\n", + " <td>-14.426500</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>77</th>\n", + " <td>77</td>\n", + " <td>-4.124593</td>\n", + " <td>4.304958</td>\n", + " <td>15.845530</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>78</th>\n", + " <td>78</td>\n", + " <td>-5.543218</td>\n", + " <td>11.190563</td>\n", + " <td>26.671579</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>79</th>\n", + " <td>79</td>\n", + " <td>0.397213</td>\n", + " <td>-7.920712</td>\n", + " <td>-28.444460</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>80</th>\n", + " <td>80</td>\n", + " <td>1.667942</td>\n", + " <td>6.136289</td>\n", + " <td>8.415116</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>81</th>\n", + " <td>81</td>\n", + " <td>4.624359</td>\n", + " <td>17.670332</td>\n", + " <td>-21.905138</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>82</th>\n", + " <td>82</td>\n", + " <td>-0.969493</td>\n", + " <td>-0.082283</td>\n", + " <td>-11.996788</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>83</th>\n", + " <td>83</td>\n", + " <td>0.471210</td>\n", + " <td>-18.823352</td>\n", + " <td>-26.938627</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>84</th>\n", + " <td>84</td>\n", + " <td>-6.293694</td>\n", + " <td>-0.578364</td>\n", + " <td>-26.848660</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>85</th>\n", + " <td>85</td>\n", + " <td>-13.958683</td>\n", + " <td>1.119014</td>\n", + " <td>10.599317</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>86</th>\n", + " <td>86</td>\n", + " <td>-10.010660</td>\n", + " <td>-26.797436</td>\n", + " <td>29.687103</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>87</th>\n", + " <td>87</td>\n", + " <td>-4.656348</td>\n", + " <td>2.832306</td>\n", + " <td>-25.907291</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>88</th>\n", + " <td>88</td>\n", + " <td>-9.667976</td>\n", + " <td>8.499603</td>\n", + " <td>22.987171</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>89</th>\n", + " <td>89</td>\n", + " <td>9.946922</td>\n", + " <td>28.684677</td>\n", + " <td>35.865612</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>90</th>\n", + " <td>90</td>\n", + " <td>-6.696606</td>\n", + " <td>5.226573</td>\n", + " <td>8.460641</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>91</th>\n", + " <td>91</td>\n", + " <td>-6.477469</td>\n", + " <td>-1.916388</td>\n", + " <td>-26.714840</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>92</th>\n", + " <td>92</td>\n", + " <td>-8.298155</td>\n", + " <td>2.883102</td>\n", + " <td>-14.612449</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>93</th>\n", + " <td>93</td>\n", + " <td>10.322117</td>\n", + " <td>0.795814</td>\n", + " <td>-28.988145</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>94</th>\n", + " <td>94</td>\n", + " <td>-2.210425</td>\n", + " <td>-8.356827</td>\n", + " <td>-14.543218</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>95</th>\n", + " <td>95</td>\n", + " <td>-3.996075</td>\n", + " <td>3.014513</td>\n", + " <td>-35.606501</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>96</th>\n", + " <td>96</td>\n", + " <td>-10.600538</td>\n", + " <td>-8.428299</td>\n", + " <td>-26.060704</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>97</th>\n", + " <td>97</td>\n", + " <td>-3.034676</td>\n", + " <td>2.865267</td>\n", + " <td>-0.071917</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>98</th>\n", + " <td>98</td>\n", + " <td>-0.054709</td>\n", + " <td>1.202667</td>\n", + " <td>-11.361823</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>99</th>\n", + " <td>99</td>\n", + " <td>-10.377032</td>\n", + " <td>4.902157</td>\n", + " <td>29.375020</td>\n", + " <td>0</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>100 rows × 5 columns</p>\n", + "</div>" + ], + "text/plain": [ + " image_index pitch roll yaw valid\n", + "index \n", + "0 0 -2.685769 4.093920 -7.937658 1\n", + "1 1 -10.074321 -5.795005 -20.644645 1\n", + "2 2 1.949778 7.510585 -1.153938 1\n", + "3 3 -5.881088 3.305987 -16.774452 1\n", + "4 4 1.323455 3.552109 10.937092 1\n", + "5 5 8.966770 -20.319039 -10.666622 0\n", + "6 6 6.377947 -0.037838 -28.297769 0\n", + "7 7 -5.590547 -2.513488 -5.573986 1\n", + "8 8 7.494141 -0.587338 -20.937242 1\n", + "9 9 -4.547006 -0.429375 4.637964 1\n", + "10 10 -15.974450 -6.467474 -0.046817 0\n", + "11 11 -3.349299 -4.059317 -4.709007 1\n", + "12 12 -0.824968 1.082679 -14.201574 1\n", + "13 13 7.317298 -4.628597 -5.503731 1\n", + "14 14 -0.250637 7.168705 3.593267 1\n", + "15 15 -1.247407 -16.101818 -19.072548 0\n", + "16 16 6.184959 -18.960907 -14.435108 0\n", + "17 17 0.695174 10.411116 18.099205 0\n", + "18 18 -1.394646 1.553670 -13.243177 1\n", + "19 19 10.329418 6.057604 17.509771 1\n", + "20 20 -6.514906 -4.057685 32.285918 0\n", + "21 21 -3.412718 3.160722 -15.998410 1\n", + "22 22 -2.710659 3.482632 8.059692 1\n", + "23 23 -6.922881 15.771625 32.097414 0\n", + "24 24 -12.692917 0.502148 39.767956 0\n", + "25 25 -3.050506 26.288576 22.474047 0\n", + "26 26 -6.742365 2.603335 -3.170223 1\n", + "27 27 -2.879908 18.602692 26.772543 0\n", + "28 28 -3.475686 -4.734540 -12.301176 1\n", + "29 29 -4.039427 0.804975 2.226219 1\n", + "... ... ... ... ... ...\n", + "70 70 9.677210 -3.644432 -3.558806 1\n", + "71 71 -6.304012 -4.870216 -35.114834 0\n", + "72 72 -22.009094 -21.959437 -27.393276 0\n", + "73 73 2.312746 4.491569 -2.417103 1\n", + "74 74 -13.938552 -3.284886 25.466661 0\n", + "75 75 16.797612 -8.401607 -6.680254 0\n", + "76 76 2.383204 -2.540481 -14.426500 1\n", + "77 77 -4.124593 4.304958 15.845530 1\n", + "78 78 -5.543218 11.190563 26.671579 0\n", + "79 79 0.397213 -7.920712 -28.444460 0\n", + "80 80 1.667942 6.136289 8.415116 1\n", + "81 81 4.624359 17.670332 -21.905138 0\n", + "82 82 -0.969493 -0.082283 -11.996788 1\n", + "83 83 0.471210 -18.823352 -26.938627 0\n", + "84 84 -6.293694 -0.578364 -26.848660 0\n", + "85 85 -13.958683 1.119014 10.599317 1\n", + "86 86 -10.010660 -26.797436 29.687103 0\n", + "87 87 -4.656348 2.832306 -25.907291 0\n", + "88 88 -9.667976 8.499603 22.987171 1\n", + "89 89 9.946922 28.684677 35.865612 0\n", + "90 90 -6.696606 5.226573 8.460641 1\n", + "91 91 -6.477469 -1.916388 -26.714840 0\n", + "92 92 -8.298155 2.883102 -14.612449 1\n", + "93 93 10.322117 0.795814 -28.988145 0\n", + "94 94 -2.210425 -8.356827 -14.543218 1\n", + "95 95 -3.996075 3.014513 -35.606501 0\n", + "96 96 -10.600538 -8.428299 -26.060704 0\n", + "97 97 -3.034676 2.865267 -0.071917 1\n", + "98 98 -0.054709 1.202667 -11.361823 1\n", + "99 99 -10.377032 4.902157 29.375020 0\n", + "\n", + "[100 rows x 5 columns]" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_poses.head(100)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "#df_poses_valid = df_poses[df_poses['valid'] == 1]\n", + "df_poses_valid = df_poses.drop(df_poses[df_poses.valid == 0].index, axis=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "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_index</th>\n", + " <th>pitch</th>\n", + " <th>roll</th>\n", + " <th>yaw</th>\n", + " <th>valid</th>\n", + " </tr>\n", + " <tr>\n", + " <th>index</th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>0</td>\n", + " <td>-2.685769</td>\n", + " <td>4.093920</td>\n", + " <td>-7.937658</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>1</td>\n", + " <td>-10.074321</td>\n", + " <td>-5.795005</td>\n", + " <td>-20.644645</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>2</td>\n", + " <td>1.949778</td>\n", + " <td>7.510585</td>\n", + " <td>-1.153938</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>3</td>\n", + " <td>-5.881088</td>\n", + " <td>3.305987</td>\n", + " <td>-16.774452</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>4</td>\n", + " <td>1.323455</td>\n", + " <td>3.552109</td>\n", + " <td>10.937092</td>\n", + " <td>1</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " image_index pitch roll yaw valid\n", + "index \n", + "0 0 -2.685769 4.093920 -7.937658 1\n", + "1 1 -10.074321 -5.795005 -20.644645 1\n", + "2 2 1.949778 7.510585 -1.153938 1\n", + "3 3 -5.881088 3.305987 -16.774452 1\n", + "4 4 1.323455 3.552109 10.937092 1" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_poses.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "pandas.core.frame.DataFrame" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "type(df_poses_valid)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "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_index</th>\n", + " <th>pitch</th>\n", + " <th>roll</th>\n", + " <th>yaw</th>\n", + " <th>valid</th>\n", + " </tr>\n", + " <tr>\n", + " <th>index</th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>0</td>\n", + " <td>-2.685769</td>\n", + " <td>4.093920</td>\n", + " <td>-7.937658</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>1</td>\n", + " <td>-10.074321</td>\n", + " <td>-5.795005</td>\n", + " <td>-20.644645</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>2</td>\n", + " <td>1.949778</td>\n", + " <td>7.510585</td>\n", + " <td>-1.153938</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>3</td>\n", + " <td>-5.881088</td>\n", + " <td>3.305987</td>\n", + " <td>-16.774452</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>4</td>\n", + " <td>1.323455</td>\n", + " <td>3.552109</td>\n", + " <td>10.937092</td>\n", + " <td>1</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " image_index pitch roll yaw valid\n", + "index \n", + "0 0 -2.685769 4.093920 -7.937658 1\n", + "1 1 -10.074321 -5.795005 -20.644645 1\n", + "2 2 1.949778 7.510585 -1.153938 1\n", + "3 3 -5.881088 3.305987 -16.774452 1\n", + "4 4 1.323455 3.552109 10.937092 1" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_poses_valid.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python [conda env:megapixels]", + "language": "python", + "name": "conda-env-megapixels-py" + }, + "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.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} |
