Beispiel #1
0
learning_rate = 0.001
beta = 4
n_disp = 5
n_disp_validation = 20
loss_type = 'min'
output_type = 'axis'

log_dir = os.path.join(args.logdir, args.name)
if not tf.gfile.Exists(log_dir):
    tf.gfile.MakeDirs(log_dir)
if not tf.gfile.Exists(args.save_dir):
    tf.gfile.MakeDirs(args.save_dir)

# Prepare input queues
train_reader = ImageReader(args.dataset, batch_size=args.batch_size, 
                           image_size=image_size,
                           randomise=True, augment=True, centre_crop=False,
                           convert_to_axis=(output_type=='axis'))
if args.validate:
    validation_reader = ImageReader(args.validate, batch_size=args.batch_size, 
                            image_size=image_size, randomise=True,
                            centre_crop=False, convert_to_axis=(output_type=='axis'))

# tf Graph input
k = 6 if output_type == 'axis' else 7
x = tf.placeholder(tf.float32, [None, None, None, 3], name="InputData")
y = tf.placeholder(tf.float32, [None, k], name="LabelData")

# Define the network
poseNet = Posenet(endpoint='Mixed_5b', n_fc=256, loss_type=loss_type, output_type=output_type)
train_output, train_loss, train_summaries = poseNet.create_trainable(x, y, beta=beta, learn_beta=True, dropout=0.5)
if args.validate:
import argparse
from time import sleep

import matplotlib.pyplot as plt

from posenet.core.image_reader import ImageReader


parser = argparse.ArgumentParser()
parser.add_argument('--dataset', action='store', required=True)
args = parser.parse_args()


input_size = 224
crop_size = 200
reader = ImageReader(args.dataset, batch_size=16, 
                    image_size=[input_size, input_size], 
                    randomise=True, augment=True, crop_size=[crop_size, crop_size])

fig = plt.figure(num=None, figsize=(6, 6), dpi=80, facecolor='w')
image, label = reader.next_batch()
for j in range(16):
    fig.add_subplot(4, 4, j+1)
    plt.imshow((1+image[j])/2.0, aspect='auto')
    plt.axis('off')
plt.subplots_adjust(hspace=0, wspace=0)
plt.show()
Beispiel #3
0
                    help='''Connect consecutive camera positions with lines''')
parser.add_argument('--rings', action='store', nargs='*', required=False)
parser.add_argument('--plot_gt', action='store_true')
parser.add_argument('--plot_diff', action='store_true')
parser.add_argument('-u', '--uncertainty', action='store_true')
args = parser.parse_args()

if not args.model or args.plot_gt or args.plot_diff:
    _, labels = read_label_file(args.dataset)
    positions_gt = np.array([l[0:3] for l in labels])
    orientations_gt = np.array([l[3:7] for l in labels])

if args.model:
    input_size = 256
    test_reader = ImageReader(args.dataset,
                              batch_size=1,
                              image_size=[input_size, input_size],
                              randomise=False)
    n_images = test_reader.total_images()

    positions = np.empty([0, 3])
    orientations = np.empty([0, 4])
    if args.uncertainty:
        std_x = []
        std_q = []

    with Localiser(args.model, uncertainty=args.uncertainty) as localiser:
        for i in range(n_images):
            images_feed, labels_feed = test_reader.next_batch()

            # Make prediction
            predicted = localiser.localise(images_feed)
Beispiel #4
0
n_input = 224
learning_rate = 0.001
beta = 4
n_disp = 5
n_disp_validation = 20

log_dir = os.path.join(args.logdir, args.name)
if not tf.gfile.Exists(log_dir):
    tf.gfile.MakeDirs(log_dir)
if not tf.gfile.Exists(args.save_dir):
    tf.gfile.MakeDirs(args.save_dir)

# Prepare input queues
train_reader = ImageReader(args.dataset, batch_size=args.batch_size, 
                           image_size=[n_input, n_input],
                           random_crop=False, randomise=True,
                           augment=True)
if args.validate:
    validation_reader = ImageReader(args.validate, batch_size=args.batch_size, 
                                   image_size=[n_input, n_input],
                                   random_crop=False, randomise=True)

# tf Graph input
x = tf.placeholder(tf.float32, [None, n_input, n_input, 3], name="InputData")
y = tf.placeholder(tf.float32, [None, 7], name="LabelData")

# Define the network
poseNet = Posenet(endpoint='Mixed_5b', n_fc=256)
train_output, train_loss, train_summaries = poseNet.create_trainable(x, y, beta=beta, learn_beta=True)
if args.validate:
    validation_output, validation_loss, validation_summaries = poseNet.create_validation(x, y)
Beispiel #5
0
from posenet.utils import rotate_by_quaternion

output_type = 'axis' if args.axis else 'quat'

if not args.model or args.plot_gt or args.plot_diff:
    _, labels = read_label_file(args.dataset,
                                convert_to_axis=args.convert_to_axis)
    positions_gt = np.array([l[0:3] for l in labels])
    orientations_gt = np.array([l[3:] for l in labels])

if args.model:
    input_size = [256, 455]
    crop_size = [256, 256]
    test_reader = ImageReader(args.dataset,
                              batch_size=1,
                              image_size=input_size,
                              crop_size=crop_size,
                              centre_crop=True,
                              randomise=False)
    n_images = test_reader.total_images()

    positions = []
    orientations = []
    if args.uncertainty:
        std_x = []
        std_q = []

    with Localiser(args.model,
                   uncertainty=args.uncertainty,
                   output_type=output_type,
                   dropout=0.3) as localiser:
        for i in range(n_images):
Beispiel #6
0
import argparse
from time import sleep

import matplotlib.pyplot as plt

from posenet.core.image_reader import ImageReader

parser = argparse.ArgumentParser()
parser.add_argument('--dataset', action='store', required=True)
args = parser.parse_args()

input_size = 224
reader = ImageReader(args.dataset,
                     batch_size=16,
                     image_size=[input_size, input_size],
                     random_crop=False,
                     randomise=True,
                     augment=True,
                     normalise=False)

fig = plt.figure(num=None, figsize=(6, 6), dpi=80, facecolor='w')
image, label = reader.next_batch()
for j in range(16):
    fig.add_subplot(4, 4, j + 1)
    plt.imshow(image[j], aspect='auto')
    plt.axis('off')
plt.subplots_adjust(hspace=0, wspace=0)
plt.show()