本文整理汇总了Python中PoseTools.crop_images方法的典型用法代码示例。如果您正苦于以下问题:Python PoseTools.crop_images方法的具体用法?Python PoseTools.crop_images怎么用?Python PoseTools.crop_images使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PoseTools
的用法示例。
在下文中一共展示了PoseTools.crop_images方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: classify_movie
# 需要导入模块: import PoseTools [as 别名]
# 或者: from PoseTools import crop_images [as 别名]
def classify_movie(self, movie_name, sess, end_frame=-1, start_frame=0, flipud=False):
# maxframes if specificied reads that many frames
# start at specifies where to start reading.
conf = self.conf
cap = movies.Movie(movie_name)
n_frames = int(cap.get_n_frames())
# figure out how many frames to read
if end_frame > 0:
if end_frame > n_frames:
print('End frame requested exceeds number of frames in the video. Tracking only till last valid frame')
else:
n_frames = end_frame - start_frame
else:
n_frames = n_frames - start_frame
# pre allocate results
bsize = conf.batch_size
n_batches = int(math.ceil(float(n_frames)/ bsize))
pred_locs = np.zeros([n_frames, conf.n_classes, 2])
pred_max_scores = np.zeros([n_frames, conf.n_classes])
pred_scores = np.zeros([n_frames,] + self.pred.get_shape().as_list()[1:])
all_f = np.zeros((bsize,) + conf.imsz + (1,))
for curl in range(n_batches):
ndx_start = curl * bsize
ndx_end = min(n_frames, (curl + 1) * bsize)
ppe = min(ndx_end - ndx_start, bsize)
for ii in range(ppe):
fnum = ndx_start + ii + start_frame
frame_in = cap.get_frame(fnum)
if len(frame_in) == 2:
frame_in = frame_in[0]
if frame_in.ndim == 2:
frame_in = frame_in[:, :, np.newaxis]
frame_in = PoseTools.crop_images(frame_in, conf)
if flipud:
frame_in = np.flipud(frame_in)
all_f[ii, ...] = frame_in[..., 0:conf.imgDim]
# converting to uint8 is really really important!!!!!
xs, _ = PoseTools.preprocess_ims(all_f, in_locs=np.zeros([bsize,self.conf.n_classes, 2]),
conf=self.conf, distort=False, scale=self.conf.unet_rescale)
self.fd[self.ph['x']] = xs
self.fd[self.ph['phase_train']] = False
# self.fd[self.ph['keep_prob']] = 1.
pred = sess.run(self.pred, self.fd)
base_locs = PoseTools.get_pred_locs(pred)
base_locs = base_locs*conf.unet_rescale
pred_locs[ndx_start:ndx_end, :, :] = base_locs[:ppe, :, :]
pred_max_scores[ndx_start:ndx_end, :] = pred[:ppe, :, :, :].max(axis=(1,2))
pred_scores[ndx_start:ndx_end, :, :, :] = pred[:ppe, :, :, :]
sys.stdout.write('.')
if curl % 20 == 19:
sys.stdout.write('\n')
cap.close()
return pred_locs, pred_scores, pred_max_scores
示例2: create_pred_movie
# 需要导入模块: import PoseTools [as 别名]
# 或者: from PoseTools import crop_images [as 别名]
def create_pred_movie(self, movie_name, out_movie, max_frames=-1, flipud=False, trace=True):
conf = self.conf
sess = self.init_net(0,True)
predLocs, pred_scores, pred_max_scores = self.classify_movie(movie_name, sess, end_frame=max_frames, flipud=flipud)
tdir = tempfile.mkdtemp()
cap = movies.Movie(movie_name)
nframes = int(cap.get_n_frames())
if max_frames > 0:
nframes = max_frames
fig = mpl.figure.Figure(figsize=(9, 4))
canvas = FigureCanvasAgg(fig)
sc = self.conf.unet_rescale
color = cm.hsv(np.linspace(0, 1 - 1./conf.n_classes, conf.n_classes))
trace_len = 30
for curl in range(nframes):
frame_in = cap.get_frame(curl)
if len(frame_in) == 2:
frame_in = frame_in[0]
if frame_in.ndim == 2:
frame_in = frame_in[:,:, np.newaxis]
frame_in = PoseTools.crop_images(frame_in, conf)
if flipud:
frame_in = np.flipud(frame_in)
fig.clf()
ax1 = fig.add_subplot(1, 1, 1)
if frame_in.shape[2] == 1:
ax1.imshow(frame_in[:,:,0], cmap=cm.gray)
else:
ax1.imshow(frame_in)
xlim = ax1.get_xlim()
ylim = ax1.get_ylim()
ax1.scatter(predLocs[curl, :, 0],
predLocs[curl, :, 1],
c=color*0.9, linewidths=0,
edgecolors='face',marker='+',s=45)
if trace:
for ndx in range(conf.n_classes):
curc = color[ndx,:].copy()
curc[3] = 0.5
e = np.maximum(0,curl-trace_len)
ax1.plot(predLocs[e:curl,ndx,0],
predLocs[e:curl, ndx, 1],
c = curc,lw=0.8)
ax1.axis('off')
ax1.set_xlim(xlim)
ax1.set_ylim(ylim)
fname = "test_{:06d}.png".format(curl)
# to printout without X.
# From: http://www.dalkescientific.com/writings/diary/archive/2005/04/23/matplotlib_without_gui.html
# The size * the dpi gives the final image size
# a4"x4" image * 80 dpi ==> 320x320 pixel image
canvas.print_figure(os.path.join(tdir, fname), dpi=160)
# below is the easy way.
# plt.savefig(os.path.join(tdir,fname))
tfilestr = os.path.join(tdir, 'test_*.png')
mencoder_cmd = "mencoder mf://" + tfilestr + " -frames " + "{:d}".format(
nframes) + " -mf type=png:fps=15 -o " + out_movie + " -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=2000000"
os.system(mencoder_cmd)
cap.close()
tf.reset_default_graph()
示例3: create_full_tf_record
# 需要导入模块: import PoseTools [as 别名]
# 或者: from PoseTools import crop_images [as 别名]
def create_full_tf_record(conf):
lbl = h5py.File(conf.labelfile, 'r')
pts = np.array(lbl['pts'])
ts = np.array(lbl['ts']).squeeze().astype('int')
exp_id = np.array(lbl['expidx']).squeeze().astype('int')
view = conf.view
count = 0
val_count = 0
create_val_data(conf)
is_val, local_dirs, sel_dirs = load_val_data(conf)
train_filename = os.path.join(conf.cachedir, conf.fulltrainfilename)
env = tf.python_io.TFRecordWriter(train_filename + '.tfrecords')
for ndx, dirname in enumerate(local_dirs):
if not sel_dirs[ndx]:
continue
exp_name = conf.getexpname(dirname)
frames = np.where(exp_id == (ndx + 1))[0]
cap = cv2.VideoCapture(local_dirs[ndx])
cur_env = env
for curl in frames:
fnum = ts[curl]
if fnum > cap.get(cvc.FRAME_COUNT):
if fnum > cap.get(cvc.FRAME_COUNT) + 1:
raise ValueError('Accessing frames beyond ' +
'the length of the video for' +
' {} expid {:d} '.format(exp_name, ndx) +
' at t {:d}'.format(fnum)
)
continue
frame_in = myutils.readframe(cap, fnum - 1)
c_loc = conf.cropLoc[tuple(frame_in.shape[0:2])]
frame_in = PoseTools.crop_images(frame_in, conf)
frame_in = frame_in[:, :, 0:1]
cur_loc = np.round(pts[curl, :, view, :]).astype('int')
cur_loc[:, 0] = cur_loc[:, 0] - c_loc[1] # ugh, the nasty x-y business.
cur_loc[:, 1] = cur_loc[:, 1] - c_loc[0]
cur_loc = cur_loc.clip(min=0.1)
rows = frame_in.shape[0]
cols = frame_in.shape[1]
if np.ndim(frame_in) > 2:
depth = frame_in.shape[2]
else:
depth = 1
image_raw = frame_in.tostring()
example = tf.train.Example(features=tf.train.Features(feature={
'height': int64_feature(rows),
'width': int64_feature(cols),
'depth': int64_feature(depth),
'locs': float_feature(cur_loc.flatten()),
'expndx': float_feature(ndx),
'ts': float_feature(curl),
'image_raw': bytes_feature(image_raw)}))
cur_env.write(example.SerializeToString())
count += 1
cap.release() # close the movie handles
print('Done %d of %d movies, count:%d val:%d' % (ndx, len(local_dirs), count, val_count))
env.close() # close the database
print('%d,%d number of pos examples added to the db and val-db' % (count, val_count))