summaryrefslogtreecommitdiff
path: root/megapixels/notebooks/datasets
diff options
context:
space:
mode:
authoradamhrv <adam@ahprojects.com>2018-12-14 17:22:57 +0100
committeradamhrv <adam@ahprojects.com>2018-12-14 17:22:57 +0100
commit1690cfb4cc7b7277afca4016c295927cc4f7fafb (patch)
treefa9130c2eb0f24f71cf3cede2477bf565d27433c /megapixels/notebooks/datasets
parent5891e2f13ae9dfead0e1794c399e5ff813e694d3 (diff)
add pose filter
Diffstat (limited to 'megapixels/notebooks/datasets')
-rw-r--r--megapixels/notebooks/datasets/vgg_face2/filter_pose.ipynb1655
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
+}