Пример #1
0
    def __init__(self, model_dir, sess, 
            use_mu=False, ret_c_centers=False, ret_c5=False,
            checkpoint=None):
        assert not (ret_c_centers and ret_c5)
        self.sess = sess
        self.ret_c5 = ret_c5
        self.ret_c_centers = ret_c_centers
        self.images = tf.placeholder(tf.float32, [None, vh, vw, 3])    
        ret = vss(self.images, False, True, 
                ret_mu=use_mu, ret_c_centers=ret_c_centers,
                ret_c5=ret_c5)
        if ret_c5:
            self.descriptor = ret[0]
            self.c5 = ret[1]
        elif ret_c_centers:
            self.descriptor = ret[0]
            self.cc = ret[1]
        else:
            self.descriptor = ret if not use_mu else tf.reduce_mean(ret, axis=0, keepdims=True)

        saver = tf.train.Saver()
        if checkpoint is None:
            ckpt = tf.train.get_checkpoint_state(model_dir)
            cpath = ckpt.model_checkpoint_path
        else:
            cpath = checkpoint
        print("loading model: ", cpath)
        saver.restore(self.sess, cpath)
Пример #2
0
def show_example(image_fl, model_dir):
    im = cv2.cvtColor(cv2.resize(cv2.imread(image_fl), 
        (vw, vh)), cv2.COLOR_BGR2RGB)[np.newaxis, ...] / 255.0
    _im = tf.placeholder_with_default(im.astype(np.float32), im.shape)
    _, _, rec, seg, _, _, _ = vss(_im, False)
    with tf.Session() as sess:
        sess.run(tf.global_variables_initializer())
        rec, seg = sess.run([rec, seg])
        rec = (255*np.squeeze(rec)).astype(np.uint8)
        seg = np.argmax(np.squeeze(seg), axis=-1)
        rgb_seg = np.zeros(rec.shape).astype(np.uint8)
    
        np.random.seed(0)
        for i in range(N_CLASSES):
            c = np.random.rand(3)
            case = seg==i
            rgb_seg[case, :] = c
        if not os.path.isdir('plots'):
            os.mkdir('plots')
        cv2.imwrite('plots/seg.jpg', rgb_seg)
        cv2.imwrite('plots/rec.jpg', rec)