def test_render_at_all(): W = 320 H = 240 eo = likelihood.EvaluateObj(H, W) eo.set_params(14, 5, 3) i1 = eo.render_source(100, 100, np.pi /2., np.pi/2) pylab.imshow(i1, interpolation='nearest', origin='lower', vmin=0, vmax=1.0, cmap=pylab.cm.gray)
def test_render_source_coords(): W = 320 H = 240 eo = likelihood.EvaluateObj(H, W) eo.set_params(14, 5, 3) for x in range(0, W, 20): for y in range(0, H, 20): for phi in np.arange(0, 4*np.pi, 4): for theta in np.arange(0, np.pi, 4): i1 = eo.render_source(x, y, phi, theta)
def pf_run(infile, outfile, posnoise, velnoise, PARTICLEN, FRAMEN, NOISE, log): np.random.seed(0) print "Loading data..." d = pickle.load(open(infile)) print "done!" env = util.Environmentz((1.5, 2), (240, 320)) eo = likelihood.EvaluateObj(240, 320) eo.set_params(10, 4, 2) le = likelihood.LikelihoodEvaluator(env, eo, log) model_inst = model.LinearModel(env, le, POS_NOISE_STD=posnoise, VELOCITY_NOISE_STD=velnoise) y = d['video'][:FRAMEN] weights, particles = pf.particle_filter(y, model_inst, len(y), PARTICLEN) np.savez_compressed(outfile, weights=weights, particles=particles)
def render(env, state, DIODE_SEP = 10, FRONT_PIX = 4, BACK_PIX =2): gc = env.gc eo = likelihood.EvaluateObj(*env.image_dim) eo.set_params(DIODE_SEP, FRONT_PIX, BACK_PIX) images = np.zeros((len(state), env.image_dim[0], env.image_dim[1]), dtype=np.uint8) for si, s in enumerate(state): i_x, i_y = gc.real_to_image(s['x'], s['y']) img = eo.render_source(i_x, i_y, s['phi'], s['theta']) x = img*255 x.flat[x.flat > 255] = 255 images[si] = x return images
0import numpy as np import cPickle as pickle from matplotlib import pylab import likelihood import util import model np.random.seed(0) d = pickle.load(open('simulate.pickle')) env = util.Environment((1.5, 2), (240, 320)) eo = likelihood.EvaluateObj(240, 320) eo.set_params(10, 4, 2) le = likelihood.LikelihoodEvaluator(env, eo) model_inst = model.LinearModel(env, le) PARTICLEN = 4000 for frameno in range(1, 300, 30): print "frame", frameno prior_states = model_inst.sample_latent_from_prior(PARTICLEN) img = d['video'][frameno] scores = np.zeros(PARTICLEN) for si, state in enumerate(prior_states):
#pylab.imshow(x_normed[10], interpolation='nearest', # cmap=pylab.cm.gray) #pylab.show np.savez_compressed('frames.npz', x_reg=x_reg, x_normed = x_normed) # now #plotting.plot_state_timeseries(state, DIODE_SEP) #pylab.show() IMG_WIDTH = 320 IMG_HEIGHT = 240 PPM = 50 gc = util.GeomConverter((IMG_WIDTH, IMG_HEIGHT), (PPM, PPM), (0.0, 0.0)) eo = likelihood.EvaluateObj(IMG_WIDTH, IMG_HEIGHT) eo.set_params(14, 4, 2) frames = np.load('frames.npz') phi_range = np.linspace(0.0, 2*np.pi, 8) x_range = np.linspace(0.0, IMG_WIDTH/PPM*0.98, IMG_WIDTH/4) y_range = np.linspace(0.0, IMG_HEIGHT/PPM*0.98, IMG_HEIGHT/4) for frame_no, frame in enumerate(frames['x_normed']): print frame_no deltas = np.zeros((len(phi_range), len(x_range), len(y_range)), dtype=np.float) for phi_i, phi in enumerate(phi_range): for x_i, x in enumerate(x_range): for y_i, y in enumerate(y_range): i_x, i_y = gc.real_to_image(x, y)