1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
import os
from options.test_options import TestOptions
from data import CreateRecursiveDataLoader
from models import create_model
from util.visualizer import Visualizer
from util.util import mkdirs
from util import html
from shutil import move, copyfile
from PIL import Image, ImageOps
from skimage.transform import resize
from scipy.misc import imresize
from shutil import copyfile, rmtree
import time as time
import numpy as np
import cv2
import subprocess
from time import sleep
if __name__ == '__main__':
opt = TestOptions().parse()
opt.nThreads = 1 # test code only supports nThreads = 1
opt.batchSize = 1 # test code only supports batchSize = 1
opt.serial_batches = True # no shuffle
opt.no_flip = True # no flip
opt.experiment = opt.start_img.split("/")[-1].split(".")[0]
render_dir = opt.results_dir + opt.name + "/exp:" + opt.experiment + "/"
if os.path.exists(render_dir):
rmtree(render_dir)
mkdirs(render_dir)
cmd = ("convert", opt.start_img, '-canny', '0x1+10%+30%', render_dir + "frame_00000.png")
process = subprocess.Popen(cmd, stdout=subprocess.PIPE)
output, error = process.communicate()
data_loader = CreateRecursiveDataLoader(opt)
dataset = data_loader.load_data()
ds = dataset.dataset
model = create_model(opt)
visualizer = Visualizer(opt)
# create website
web_dir = os.path.join(opt.results_dir, opt.name, '%s_%s' % (opt.phase, opt.which_epoch))
webpage = html.HTML(web_dir, 'Experiment = %s, Phase = %s, Epoch = %s' % (opt.name, opt.phase, opt.which_epoch))
# test
last_im = None
for i, data in enumerate(data_loader):
if i >= opt.how_many:
break
model.set_input(data)
model.test()
visuals = model.get_current_visuals()
img_path = model.get_image_paths()
print('%04d: process image... %s' % (i, img_path))
ims = visualizer.save_images(webpage, visuals, img_path, aspect_ratio=opt.aspect_ratio)
if dataset.name() == 'RecursiveDatasetDataLoader':
# print(visuals.keys())
im = visuals['fake_B']
tmp_path = render_dir + "frame_{:05d}_tmp.png".format(i+1)
edges_path = render_dir + "frame_{:05d}.png".format(i+1)
render_path = render_dir + "ren_{:05d}.png".format(i+1)
# s = 256
# p = 8
# im = imresize(im, (s-p, s-p), interp='bicubic')
# image_pil = Image.fromarray(im)
# image_pil = ImageOps.expand(image_pil, p)
# image_pil.save(save_path)
# copyfile(save_path, final_path)
#if last_im is not None:
# frac_a = 999/1000
# frac_b = 1/1000
# tmp_im = im.copy()
# array_a = np.multiply(im, frac_a)
# array_b = np.multiply(last_im, frac_b)
# # im = np.add(array_a, array_b).astype('int8')
# # print(im.shape, im.dtype)
# last_im = np.roll(tmp_im, 1, axis=1)
#else:
# last_im = im.copy()
# print(im.shape, im.dtype)
image_pil = Image.fromarray(im, mode='RGB')
image_pil.save(tmp_path)
os.rename(tmp_path, render_path)
cmd = ("convert", render_path, '-canny', '0x1+10%+30%', tmp_path)
process = subprocess.Popen(cmd, stdout=subprocess.PIPE)
output, error = process.communicate()
os.rename(tmp_path, edges_path)
webpage.save()
os.remove(render_dir + "frame_00000.png")
t = time.time()
t /= 60
t %= 525600
video_fn = opt.name + "_" + opt.experiment + "_canny_" + str(opt.how_many) + "_" + str(int(t)) + ".mp4"
cmd = ("/usr/bin/ffmpeg", "-i", render_dir + "ren_%05d.png", "-y", "-c:v", "libx264", "-vf", "fps=30", "-pix_fmt", "yuv420p", render_dir + video_fn)
process = subprocess.Popen(cmd, stdout=subprocess.PIPE)
output, error = process.communicate()
print("________")
cmd = ("scp", render_dir + video_fn, "jules@asdf.us:asdf/neural/")
process = subprocess.Popen(cmd, stdout=subprocess.PIPE)
output, error = process.communicate()
print("https://asdf.us/neural/" + video_fn)
|