예제 #1
0
 def make_omega_pred(self, use_optcam=False):
     return OmegasPred(
         config=self.config,
         smpl=self.smpl,
         use_optcam=use_optcam,
         vis_max_batch=self.batch_size,
         is_training=False,
     )
예제 #2
0
    def build_test_model(self):
        B, T = self.batch_size, self.sequence_length
        I_t = tf.reshape(self.images_pl,
                         (B * T, self.img_size, self.img_size, 3))
        img_feat, phi_var_scope = self.f_image_enc(
            I_t,
            is_training=False,
            reuse=False,
        )
        img_feat_full = tf.reshape(img_feat, (B, T, -1))
        omega_mean = tf.tile(self.theta_mean, (self.sequence_length, 1))

        if self.pred_mode == 'pred':
            movie_strips = self.f_temporal_enc(
                is_training=False,
                net=img_feat_full,
                num_conv_layers=self.num_conv_layers,
            )
        elif self.pred_mode == 'hal':
            movie_strips = self.f_hal(img_feat_full)
        else:
            raise Exception('Pred mode {} not recognized'.format(
                self.pred_mode))

        omegas_raw, deltas_pred = batch_pred_omega(
            input_features=movie_strips,
            batch_size=self.batch_size,
            sequence_length=self.sequence_length,
            num_output=self.num_output,
            is_training=False,
            omega_mean=omega_mean,
            scope='single_view_ief',
            predict_delta_keys=self.omegas_pred.keys(),
            use_optcam=self.use_optcam,
            use_delta_from_pred=True,
        )
        self.omegas_pred[0].append_batched(omegas_raw)
        for k in deltas_pred.keys():
            self.omegas_pred[k].append_batched(deltas_pred[k])
            if self.use_optcam:
                self.omegas_pred[k].set_cams(self.omegas_pred[0].get_cams())
        OmegasPred.compute_all_smpl()
        self.update_encoder_vars()