def getIimg(image_filename, net, number_of_classes): from tf_image_segmentation.models.fcn_32s import FCN_32s im = Image.open(image_filename) heatMap = np.empty((im.size[1], im.size[0], number_of_classes)) image_filename_placeholder = tf.placeholder(tf.string) feed_dict_to_use = {image_filename_placeholder: image_filename} image_tensor = tf.read_file(image_filename_placeholder) image_tensor = tf.image.decode_jpeg(image_tensor, channels=3) # Fake batch for image and annotation by adding leading empty axis. image_batch_tensor = tf.expand_dims(image_tensor, axis=0) # Be careful: after adaptation, network returns final labels and not logits FCN_32s = adapt_network_for_any_size_input(FCN_32s, 32) if imgNum == 0 and net_reuse == 0: upsampled_logit, fcn_16s_variables_mapping_train = FCN_32s( image_batch_tensor=image_batch_tensor, number_of_classes=number_of_classes, is_training=False, reuse=None) else: upsampled_logit, fcn_16s_variables_mapping_train = FCN_32s( image_batch_tensor=image_batch_tensor, number_of_classes=number_of_classes, is_training=False, reuse=True) pred = tf.argmax(upsampled_logit, dimension=3) probabilities = tf.nn.softmax(upsampled_logit) initializer = tf.local_variables_initializer() saver = tf.train.Saver() cmap = plt.get_cmap('bwr') with tf.Session() as sess: sess.run(initializer) saver.restore(sess, net) image_np, pred_np, probabilities_np = sess.run( [image_tensor, pred, probabilities], feed_dict=feed_dict_to_use) for i in range(0, number_of_classes): heatMap[:, :, i] = probabilities_np.squeeze()[:, :, i] iimg = heatMap.cumsum(axis=0).cumsum(axis=1) return iimg
# # img = cv2.imread(image_filename) image_filename_placeholder = tf.placeholder(tf.string) # feed_dict_to_use = {image_filename_placeholder: image_filename} image_tensor = tf.read_file(image_filename_placeholder) image_tensor = tf.image.decode_jpeg(image_tensor, channels=3) # Fake batch for image and annotation by adding leading empty axis. image_batch_tensor = tf.expand_dims(image_tensor, axis=0) # Be careful: after adaptation, network returns final labels and not logits FCN_32s = adapt_network_for_any_size_input(FCN_32s, 32) # if imgNum == 0: # reuse_var = False # else: # reuse_var = True upsampled_logit, fcn_16s_variables_mapping_train = FCN_32s( image_batch_tensor=image_batch_tensor, number_of_classes=number_of_classes, is_training=False, reuse=False) imgNum += 1 upsampled_logit_resized = tf.image.resize_images(upsampled_logit,