def predict(self):
        self.predict_setup()

        self.sess.run(tf.global_variables_initializer())
        self.sess.run(tf.local_variables_initializer())

        # load checkpoint
        checkpointfile = self.conf.modeldir + '/model.ckpt-' + str(self.conf.valid_step)
        self.load(self.loader, checkpointfile)

        # Start queue threads.
        threads = tf.train.start_queue_runners(coord=self.coord, sess=self.sess)

        # img_name_list
        image_list, _ = read_labeled_image_list('', self.conf.test_data_list)

        # Predict!
        for step in range(self.conf.test_num_steps):
            preds = self.sess.run(self.pred)
            predmatrix = preds[0, :, :, 0, :]
            check = np.sum(predmatrix,axis=2)

            for i in range(self.conf.num_classes):
                img_name = image_list[step].split('/')[2].split('.')[0]
                # Save raw predictions, i.e. each pixel is an integer between [0,20].
                im = Image.fromarray(preds[0, :, :, 0, i], mode='L')
                if not os.path.isdir(self.conf.out_dir + "/prediction/" + str(i)):
                    os.mkdir(self.conf.out_dir + "/prediction/" + str(i))
                filename = '/%s_mask.png' % (img_name)
                im.save(self.conf.out_dir + '/prediction/' + str(i) + filename)

                # Save predictions for visualization.
                # See utils/label_utils.py for color setting
                # Need to be modified based on datasets.
                if self.conf.visual:
                    #msk = decode_labels(preds[:, :, :, :, i], num_classes=self.conf.num_classes) #old version
                    #im = Image.fromarray(msk[0], mode='RGB') #old version
                    if not os.path.isdir(self.conf.out_dir + '/visual_prediction/' + str(i)):
                        os.mkdir(self.conf.out_dir + '/visual_prediction/' + str(i))
                    filename = '/%s_mask_visual.png' % (img_name)
                    print("saving Image")
                    #im.save(self.conf.out_dir + '/visual_prediction/' + str(i) + filename) #old version
                    plt.imsave(self.conf.out_dir + '/visual_prediction/' + str(i) + filename, preds[0, :, :, 0, i])

            if step % 100 == 0:
                print('step {:d}'.format(step))

        print('The output files has been saved to {}'.format(self.conf.out_dir))

        # finish
        self.coord.request_stop()
        self.coord.join(threads)
Beispiel #2
0
    def predict(self):
        normal_color = "\033[0;37;40m"
        self.predict_setup()

        self.sess.run(tf.global_variables_initializer())
        self.sess.run(tf.local_variables_initializer())

        # load checkpoint
        checkpointfile = self.conf.modeldir + '/model.ckpt-' + str(
            self.conf.test_step)
        self.load(self.loader, checkpointfile)

        # Start queue threads.
        threads = tf.train.start_queue_runners(coord=self.coord,
                                               sess=self.sess)

        # img_name_list
        image_list, _ = read_labeled_image_list('', self.conf.test_data_list)

        # Predict!
        for step in range(self.conf.test_num_steps):
            preds, raw_preds = self.sess.run([self.pred, raw_output_])
            img_name = image_list[step].split('/')[2].split('.')[0]

            # Save raw predictions, i.e. each pixel is an integer between [0,20].
            prior1 = self.conf.prior
            im = Image.fromarray(preds[0, :, :, 0], mode='L')
            filename = '/%s_mask.png' % (img_name)
            im.save(self.conf.out_dir + '/prediction' + '/' + str(prior1) +
                    filename)

            # Save predictions for visualization.
            # See utils/label_utils.py for color setting
            # Need to be modified based on datasets.
            if self.conf.visual:
                msk = decode_labels(preds, num_classes=self.conf.num_classes)
                im = Image.fromarray(msk[0], mode='RGB')
                filename = '/%s_mask_visual.png' % (img_name)
                im.save(self.conf.out_dir + '/visual_prediction' + '/' +
                        str(prior1) + filename)

            if step % 100 == 0:
                print('step {:d}'.format(step))

        print(
            'The output files has been saved to {}'.format(self.conf.out_dir) +
            normal_color)

        # finish
        self.coord.request_stop()
        self.coord.join(threads)
    def predict(self):
        self.predict_setup()

        self.sess.run(tf.global_variables_initializer())
        self.sess.run(tf.local_variables_initializer())

        # load checkpoint
        #checkpointfile = self.conf.modeldir+ '/model.ckpt-' + str(self.conf.valid_step)
        #checkpointfile = 'deeplab_resnet_init.ckpt'
        checkpointfile = tf.train.latest_checkpoint("./model_multigpu_bs10/")
        #checkpointfile = './model_crf_test0'+ '/model.ckpt-' + '0'
        self.load(self.loader, checkpointfile)

        # Start queue threads.
        threads = tf.train.start_queue_runners(coord=self.coord,
                                               sess=self.sess)

        # img_name_list
        image_list, _ = read_labeled_image_list('', self.conf.test_data_list)

        # Predict!
        for step in range(self.conf.test_num_steps):
            preds = self.sess.run(self.pred)
            resized_dec = self.sess.run(self.resized_decoder100)
            img_name = image_list[step].split('/')[2].split('.')[0]
            # Save raw predictions, i.e. each pixel is an integer between [0,20].
            im = Image.fromarray(preds[0, :, :, 0], mode='L')
            filename = '/%s_mask.png' % (img_name)
            im.save(self.conf.out_dir + '/prediction' + filename)
            #resized = Image.fromarray(resized_dec[0], mode='RGB')
            #fn = '/%s_resized_dec.png' % (img_name)
            #resized.save(self.conf.out_dir + '/resized_decoding' + fn)

            # Save predictions for visualization.
            # See utils/label_utils.py for color setting
            # Need to be modified based on datasets.
            if self.conf.visual:
                msk = decode_labels(preds, num_classes=self.conf.num_classes)
                im = Image.fromarray(msk[0], mode='RGB')
                filename = '/%s_mask_visual.png' % (img_name)
                im.save(self.conf.out_dir + '/visual_prediction' + filename)

            if step % 100 == 0:
                print('step {:d}'.format(step))

        print('The output files has been saved to {}'.format(
            self.conf.out_dir))

        # finish
        self.coord.request_stop()
        self.coord.join(threads)
    def predict(self):
        self.predict_setup()

        self.sess.run([tf.global_variables_initializer(), tf.local_variables_initializer()])

        # checkpoing_file
        checkpoint_file = tf.train.latest_checkpoint(self.conf.modeldir)
        if (not os.path.exists("{}.meta".format(checkpoint_file))) and (self.conf.pretrain_file is not None):
            self.load(self.loader, self.conf.pretrain_file)
        elif os.path.exists("{}.meta".format(checkpoint_file)):
            self.load(self.loader, checkpoint_file)

        # Start queue threads.
        threads = tf.train.start_queue_runners(coord=self.coord, sess=self.sess)

        # img_name_list
        image_list, _ = read_labeled_image_list('', self.conf.test_data_list)

        # Predict!
        for step in range(self.conf.test_num_steps):
            preds = self.sess.run(self.pred)

            img_name = image_list[step].split('/')[2].split('.')[0]
            # Save raw predictions, i.e. each pixel is an integer between [0,20].
            im = Image.fromarray(preds[0, :, :, 0], mode='L')
            filename = '/%s_mask.png' % (img_name)
            im.save(self.conf.out_dir + '/prediction' + filename)

            # Save predictions for visualization.
            if self.conf.visual:
                msk = decode_labels(preds, num_classes=self.conf.num_classes)
                im = Image.fromarray(msk[0], mode='RGB')
                im.save(self.conf.out_dir + '/visual_prediction' + '/{}_mask_visual.png'.format(img_name))
                # 原图
                origin_image = "{}{}".format(self.conf.data_dir, image_list[step])
                im = Image.open(origin_image)
                filename, ext = os.path.splitext(filename)
                im.save(self.conf.out_dir + '/visual_prediction' + filename + "_original" + ext)

            if step % 100 == 0:
                print('step {:d}'.format(step))

        print('The output files has been saved to {}'.format(self.conf.out_dir))

        # finish
        self.coord.request_stop()
        self.coord.join(threads)
        pass
Beispiel #5
0
    def predict(self):
        self.predict_setup()

        self.sess.run([
            tf.local_variables_initializer(),
            tf.global_variables_initializer()
        ])

        # load checkpoint
        self.load(
            self.loader,
            self.conf.modeldir + '/model.ckpt-' + str(self.conf.valid_step))

        # Start queue threads.
        threads = tf.train.start_queue_runners(coord=self.coord,
                                               sess=self.sess)

        # img_name_list
        image_list, _ = read_labeled_image_list('', self.conf.test_data_list)

        # Predict!
        for step in range(self.conf.test_num_steps):
            preds = self.sess.run(self.pred)

            img_name = image_list[step].split('/')[2].split('.')[0]
            # Save raw predictions, i.e. each pixel is an integer between [0,20].
            im = Image.fromarray(preds[0, :, :, 0], mode='L')
            im.save(self.conf.out_dir +
                    '/prediction/{}_mask.png'.format(img_name))

            if self.conf.visual:
                msk = decode_labels(preds, num_classes=self.conf.num_classes)
                im = Image.fromarray(msk[0], mode='RGB')
                im.save(
                    self.conf.out_dir +
                    '/visual_prediction/{}_mask_visual.png'.format(img_name))

            if step % 100 == 0:
                print('step {:d}'.format(step))

        print('The output files has been saved to {}'.format(
            self.conf.out_dir))

        # finish
        self.coord.request_stop()
        self.coord.join(threads)
        pass
	def predict(self):
		self.predict_setup()

		self.sess.run(tf.global_variables_initializer())
		self.sess.run(tf.local_variables_initializer())

		# load checkpoint
		checkpointfile = self.conf.modeldir+ '/model.ckpt-' + str(self.conf.valid_step)
		self.load(self.loader, checkpointfile)

		# Start queue threads.
		threads = tf.train.start_queue_runners(coord=self.coord, sess=self.sess)

		# img_name_list
		image_list, _ = read_labeled_image_list('', self.conf.test_data_list)

		# Predict!
		for step in range(self.conf.test_num_steps):
			preds = self.sess.run(self.pred)

			img_name = image_list[step].split('/')[2].split('.')[0]
			# Save raw predictions, i.e. each pixel is an integer between [0,20].
			im = Image.fromarray(preds[0,:,:,0], mode='L')
			filename = '/%s_mask.png' % (img_name)
			im.save(self.conf.out_dir + '/prediction' + filename)

			# Save predictions for visualization.
			# See utils/label_utils.py for color setting
			# Need to be modified based on datasets.
			if self.conf.visual:
				msk = decode_labels(preds, num_classes=self.conf.num_classes)
				im = Image.fromarray(msk[0], mode='RGB')
				filename = '/%s_mask_visual.png' % (img_name)
				im.save(self.conf.out_dir + '/visual_prediction' + filename)

			if step % 100 == 0:
				print('step {:d}'.format(step))

		print('The output files has been saved to {}'.format(self.conf.out_dir))

		# finish
		self.coord.request_stop()
		self.coord.join(threads)
Beispiel #7
0
    def predict(self):
        self.predict_setup()

        self.sess.run(tf.global_variables_initializer())
        self.sess.run(tf.local_variables_initializer())

        # load checkpoint
        checkpointfile = self.conf.modeldir + '/model.ckpt-' + str(
            self.conf.valid_step)
        self.load(self.loader, checkpointfile)

        # Start queue threads.
        threads = tf.train.start_queue_runners(coord=self.coord,
                                               sess=self.sess)

        # img_name_list
        image_list, _ = read_labeled_image_list('', self.conf.test_data_list)

        # Predict!
        for step in range(self.conf.test_num_steps):
            preds = self.sess.run(self.pred)
            predmatrix = preds[0, :, :, 0, :]
            check = np.sum(predmatrix, axis=2)
            groesse = predmatrix.shape
            inhalt = ""
            zeile = ""
            datei = "../superpixel.zip"
            img_name = image_list[step].split('/')[2].split('.')[0]
            preddict = {}
            countdict = {}
            meanpred = {}
            with zipfile.ZipFile(datei) as z:
                inhalt = z.open(img_name + ".csv")
                spdf = pd.read_csv(inhalt, header=None)
                sparray = spdf.values
                z.close()
            if not (sparray.shape[0] == groesse[0]
                    and sparray.shape[1] == groesse[1]):
                print("ERROR WITH IMAGE: ", img_name,
                      "\tThey dont have the same size")
                continue

            for x in range(groesse[0]):
                for y in range(groesse[1]):
                    superpixel = sparray[x, y]
                    #initialize dict:
                    if superpixel not in preddict.keys():
                        preddict[superpixel] = [0.0] * self.conf.num_classes
                        countdict[superpixel] = 0
                        meanpred[superpixel] = [0.0] * self.conf.num_classes
                    countdict[superpixel] += 1
                    for klasse in range(groesse[2]):
                        preddict[superpixel][klasse] += predmatrix[x, y,
                                                                   klasse]

            towrite = ""
            spliste = list(preddict.keys())
            spliste = sorted(spliste)
            for sp in spliste:
                towrite += str(sp)
                for k in range(self.conf.num_classes):
                    meanpred[sp][k] = round(preddict[sp][k] / countdict[sp], 3)
                    towrite += "," + str(meanpred[sp][k])
                towrite += "\n"

            with open(
                    self.conf.out_dir + '/visual_prediction/probsp_eins/' +
                    img_name + ".csv", 'w') as f:
                f.write(towrite)
            if step < 100:
                print("saving: ", img_name)

            # for i in range(self.conf.num_classes):
            #     img_name = image_list[step].split('/')[2].split('.')[0]
            #     # Save raw predictions, i.e. each pixel is an integer between [0,20].
            #     im = Image.fromarray(preds[0, :, :, 0, i], mode='L')
            #     if not os.path.isdir(self.conf.out_dir + "/prediction/" + str(i)):
            #         os.mkdir(self.conf.out_dir + "/prediction/" + str(i))
            #     filename = '/%s_mask.png' % (img_name)
            #     im.save(self.conf.out_dir + '/prediction/' + str(i) + filename)
            #
            #     # Save predictions for visualization.
            #     # See utils/label_utils.py for color setting
            #     # Need to be modified based on datasets.
            #     if self.conf.visual:
            #         #msk = decode_labels(preds[:, :, :, :, i], num_classes=self.conf.num_classes) #old version
            #         #im = Image.fromarray(msk[0], mode='RGB') #old version
            #         if not os.path.isdir(self.conf.out_dir + '/visual_prediction/' + str(i)):
            #             os.mkdir(self.conf.out_dir + '/visual_prediction/' + str(i))
            #         filename = '/%s_mask_visual.png' % (img_name)
            #         print("saving Image")
            #         #im.save(self.conf.out_dir + '/visual_prediction/' + str(i) + filename) #old version
            #         plt.imsave(self.conf.out_dir + '/visual_prediction/' + str(i) + filename, preds[0, :, :, 0, i])

            if step % 100 == 0:
                print('step {:d}'.format(step))

        print('The output files has been saved to {}'.format(
            self.conf.out_dir))

        # finish
        self.coord.request_stop()
        self.coord.join(threads)
Beispiel #8
0
    def predict(self):
        self.predict_setup()

        self.sess.run(tf.global_variables_initializer())
        self.sess.run(tf.local_variables_initializer())

        # load checkpoint
        checkpointfile = self.conf.modeldir + '/model.ckpt-' + str(
            self.conf.valid_step)
        self.load(self.loader, checkpointfile)

        # Start queue threads.
        threads = tf.train.start_queue_runners(coord=self.coord,
                                               sess=self.sess)

        # img_name_list
        image_list, _ = read_labeled_image_list('', self.conf.test_data_list)

        # Predict!
        for step in range(self.conf.test_num_steps):
            preds = self.sess.run(self.pred)
            predmatrix = preds[0, :, :, 0, :]
            check = np.sum(predmatrix, axis=2)
            groesse = predmatrix.shape
            inhalt = ""
            zeile = ""
            for x in range(groesse[0]):
                for y in range(groesse[1]):
                    zeile = str(x) + "," + str(y)
                    for klasse in range(groesse[2]):
                        zeile += "," + str(predmatrix[x, y, klasse])
                    inhalt += zeile + "\n"
            img_name = image_list[step].split('/')[2].split('.')[0]
            with open(
                    self.conf.out_dir + '/visual_prediction/probcsv_eins/' +
                    img_name + ".csv", 'w') as f:
                f.write(inhalt)
            if step < 100:
                print("saving: ", img_name)

            # for i in range(self.conf.num_classes):
            #     img_name = image_list[step].split('/')[2].split('.')[0]
            #     # Save raw predictions, i.e. each pixel is an integer between [0,20].
            #     im = Image.fromarray(preds[0, :, :, 0, i], mode='L')
            #     if not os.path.isdir(self.conf.out_dir + "/prediction/" + str(i)):
            #         os.mkdir(self.conf.out_dir + "/prediction/" + str(i))
            #     filename = '/%s_mask.png' % (img_name)
            #     im.save(self.conf.out_dir + '/prediction/' + str(i) + filename)
            #
            #     # Save predictions for visualization.
            #     # See utils/label_utils.py for color setting
            #     # Need to be modified based on datasets.
            #     if self.conf.visual:
            #         #msk = decode_labels(preds[:, :, :, :, i], num_classes=self.conf.num_classes) #old version
            #         #im = Image.fromarray(msk[0], mode='RGB') #old version
            #         if not os.path.isdir(self.conf.out_dir + '/visual_prediction/' + str(i)):
            #             os.mkdir(self.conf.out_dir + '/visual_prediction/' + str(i))
            #         filename = '/%s_mask_visual.png' % (img_name)
            #         print("saving Image")
            #         #im.save(self.conf.out_dir + '/visual_prediction/' + str(i) + filename) #old version
            #         plt.imsave(self.conf.out_dir + '/visual_prediction/' + str(i) + filename, preds[0, :, :, 0, i])

            if step % 100 == 0:
                print('step {:d}'.format(step))

        print('The output files has been saved to {}'.format(
            self.conf.out_dir))

        # finish
        self.coord.request_stop()
        self.coord.join(threads)
    inp_h = json_dict["input_h"]
    asp = inp_w / inp_h

    with tf.Session() as sess:
        print("load graph")
        with tf.gfile.GFile(model_path, 'rb') as f:
            graph_def = tf.GraphDef()
        graph_def.ParseFromString(f.read())

        sess.graph.as_default()
        tf.import_graph_def(graph_def, name='')

        input = sess.graph.get_tensor_by_name(input)
        output = sess.graph.get_tensor_by_name(output)

        image_list, label_list = read_labeled_image_list(
            data_path, eval_list_path)

        true_pos = np.zeros(num_classes)
        false_pos = np.zeros(num_classes)
        false_neg = np.zeros(num_classes)
        IoU = [0] * num_classes
        t_sum = 0

        for i, img_path in enumerate(image_list):
            img = cv2.imread(img_path)
            label = cv2.imread(label_list[i])
            img, label = resize_with_padding(img, label,
                                             asp)  # ///ресайз и паддинг\\\
            one_ch_label = label[:, :, 0]
            t = timer()
            # with tf.Session() as sess: