Exemple #1
0
def evaluate(args):
    content_image = utils.tensor_load_rgbimage(args.content_image,
                                               size=args.content_size,
                                               keep_asp=True)
    content_image = content_image.unsqueeze(0)
    style = utils.tensor_load_rgbimage(args.style_image, size=args.style_size)
    style = style.unsqueeze(0)
    style = utils.preprocess_batch(style)

    style_model = Net(ngf=args.ngf)
    style_model.load_state_dict(torch.load(args.model), False)

    if args.cuda:
        style_model.cuda()
        content_image = content_image.cuda()
        style = style.cuda()

    style_v = Variable(style)

    content_image = Variable(utils.preprocess_batch(content_image))
    style_model.setTarget(style_v)

    output = style_model(content_image)
    output = utils.color_match(output, style_v)
    utils.tensor_save_bgrimage(output.data[0], args.output_image, args.cuda)
def color_map(frame: np.array,
              start_x: int = 0,
              start_y: int = 0) -> Dict[str, float]:
    """
    Creates a color mapping for the passed frame 
    """
    m = dict()
    for r, row in enumerate(frame):
        for c, col in enumerate(row):
            key = f"{c + start_x}|{r + start_y}"
            if key in m:
                raise Exception(f"Duplicate key {key}")
            m[key] = color_match(col, REFERENCE_COLOR, DM_THRESH, DA_THRESH)
    return m
Exemple #3
0
      xP=[x.replace('lfw','lfw_aegan') for x in P]
      xQ=[x.replace('lfw','lfw_aegan') for x in Q]
      PF=model.mean_F(utils.image_feed(xP[:K],image_dims))
      QF=model.mean_F(utils.image_feed(xQ[:K],image_dims))
      if config.scaling=='beta':
        WF=(QF-PF)/((QF-PF)**2).mean()
      elif config.scaling=='none':
        WF=(QF-PF)
      max_iter=config.iter
      init=o
      # for each interpolation step
      for delta in delta_params:
        print(xX,b,delta)
        t2=time.time()
        Y=model.F_inverse(XF+WF*delta,max_iter=max_iter,initial_image=init)
        t3=time.time()
        print('{} minutes to reconstruct'.format((t3-t2)/60.0))
        result[-1].append(Y)
        max_iter=config.iter//2
        init=Y
  result=numpy.asarray(result)
  original=numpy.asarray(original)
  if 'color' in postprocess:
    result=utils.color_match(numpy.expand_dims(original,1),result)
  m=imageutils.montage(numpy.concatenate([numpy.expand_dims(original,1),result],axis=1))
  imageutils.write('results/demo1.png',m)
  print('Output is results/demo1.png')
  t1=time.time()
  print('{} minutes ({} minutes per image).'.format((t1-t0)/60.0,(t1-t0)/60.0/result.shape[0]/result.shape[1]))

Exemple #4
0
     t2=time.time()
     Y=model.F_inverse(XF+WF*delta,max_iter=max_iter,initial_image=init)
     t3=time.time()
     print('{} minutes to reconstruct'.format((t3-t2)/60.0))
     result.append(Y)
     max_iter=config.iter//2
     init=Y
   result=numpy.asarray([result])
   original=numpy.asarray([original])
   X_mask=prefix_path+'-mask.png'
   if 'mask' in postprocess and os.path.exists(X_mask):
     mask=imageutils.resize(imageutils.read(X_mask),image_dims)
     result*=mask
     result+=original*(1-mask)
   if 'color' in postprocess:
     result=utils.color_match(numpy.asarray([original]),result)
   if 'mask' in postprocess and os.path.exists(X_mask):
     result*=mask
     result+=original*(1-mask)
   if config.include_original:
     m=imageutils.montage(numpy.concatenate([numpy.expand_dims(original,1),result],axis=1))
   else:
     m=imageutils.montage(result)
   if config.output:
     opath=config.output
   else:
     opath='{}_{}_{}{}.{}'.format(prefix_path,timestamp,config.method,postfix_comment,config.output_format)
   imageutils.write(opath,m)
   opathlist.append(opath)
 print('Outputs are {}'.format(' '.join(opathlist)))
 t1=time.time()
Exemple #5
0
    delta = delta0
    while delta <= delta1:
        print('Starting frame #{:06}, {}'.format(i + 1,
                                                 (time.time() - t0) / 60.0))
        result = model.F_inverse(XF + WF * delta,
                                 max_iter=max_iter,
                                 initial_image=init)
        max_iter = config.step_iter
        init = result
        i = i + 1
        delta = delta + ddelta
        if 'mask' in postprocess and os.path.exists(X_mask):
            result *= mask
            result += original * (1 - mask)
        if 'color' in postprocess:
            result = utils.color_match(numpy.asarray([original]),
                                       numpy.asarray([[result]]))[0, 0]
        if 'mask' in postprocess and os.path.exists(X_mask):
            result *= mask
            result += original * (1 - mask)
        imageutils.write(
            prefix_path + postfix_comment + '/{:06}.png'.format(i), result)

    # generate movie
    cmd = [
        'ffmpeg', '-y', '-f', 'image2', '-i',
        prefix_path + postfix_comment + '/%06d.png', '-crf', '19', '-g', '60',
        '-r', '30', '-s', '{}x{}'.format(original.shape[1], original.shape[0]),
        '-pix_fmt', 'yuv420p', prefix_path + postfix_comment +
        '_movie.{}'.format(config.output_format)
    ]
    print(' '.join(pipes.quote(x) for x in cmd))