def visualize(relevances, images_tensor=None, name='', y_labels=''): n, w, h, dim = relevances.shape heatmaps = [] #import pdb;pdb.set_trace() if images_tensor is not None: assert relevances.shape == images_tensor.shape, 'Relevances shape != Images shape' for h, heat in enumerate(relevances): if images_tensor is not None: input_image = images_tensor[h] maps = render.hm_to_rgb(heat, input_image, scaling=3, sigma=2) else: maps = render.hm_to_rgb(heat, scaling=3, sigma=2) heatmaps.append(maps) R = np.array(heatmaps) with tf.name_scope(name): if (y_labels != ''): rel_imgs = tf.cast(R, tf.float32).eval() for i, rel_img in enumerate(rel_imgs): cv2.putText(rel_img, str(y_labels[i]), (2, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, 255) rel_imgs[i] = cv2.cvtColor( (np.asarray(rel_img, dtype='float32') * 255).astype( np.uint8), cv2.COLOR_RGB2BGR) #output to directory: #cv2.imwrite(os.path.join("heat_maps",str(i)+".jpg"),rel_imgs[i]) return tf.summary.image('relevance', tf.cast(rel_imgs, tf.float32), n).eval() else: img = tf.summary.image('relevance', tf.cast(R, tf.float32), n) return img.eval()
def visualize(relevances, images_tensor=None, name=''): n, w, h, dim = relevances.shape heatmaps = [] #import pdb;pdb.set_trace() if images_tensor is not None: assert relevances.shape == images_tensor.shape, 'Relevances shape != Images shape' for h, heat in enumerate(relevances): if images_tensor is not None: input_image = images_tensor[h] maps = render.hm_to_rgb(heat, input_image, scaling=3, sigma=2) else: maps = render.hm_to_rgb(heat, scaling=3, sigma=2) heatmaps.append(maps) R = np.array(heatmaps) with tf.name_scope(name): img = tf.summary.image('relevance', tf.cast(R, tf.float32), n) return img.eval()
def visualize(relevances, images_tensor): n, dim = relevances.shape heatmap = relevances.reshape([n, 28, 28, 1]) input_images = images_tensor.reshape([n, 28, 28, 1]) heatmaps = [] for h, heat in enumerate(heatmap): input_image = input_images[h] maps = render.hm_to_rgb(heat, input_image, scaling=3, sigma=2) heatmaps.append(maps) R = np.array(heatmaps) with tf.name_scope('input_reshape'): img = tf.summary.image('input', tf.cast(R, tf.float32), n) return img.eval()
def visualize(relevances, images_tensor=None, image_show=False, image_save=False): n, w, h, dim = relevances.shape heatmaps = [] count = 0 #import pdb;pdb.set_trace() if images_tensor is not None: assert relevances.shape == images_tensor.shape, 'Relevances shape != Images shape' for h, heat in enumerate(relevances): if images_tensor is not None: input_image = images_tensor[h] maps = render.hm_to_rgb(heat, input_image, scaling=3, sigma=2) else: maps = render.hm_to_rgb(heat, scaling=3, sigma=2) heatmaps.append(maps) if image_show: plt.imshow(maps) if image_save: plt.imsave('saved_image/' + str(count), maps, format="png") count += 1 R = np.array(heatmaps)
def visualize(relevances, images_tensor): n = FLAGS.batch_size heatmap = np.sum(relevances.reshape([n, 224, 224, 3]),axis=3) input_images = images_tensor.reshape([n, 224, 224, 3]) heatmaps = [] for h, heat in enumerate(heatmap): input_image = input_images[h] maps = render.hm_to_rgb(heat, input_image, scaling=3, sigma=1,cmap = 'seismic') heatmaps.append(maps) imageio.imsave('./result/imgnet/'+FLAGS.relevance_method+'/heatmap' + str(h) + '.jpg', maps,vmax=1,vmin=-1) imageio.imsave( './result/imgnet/' + FLAGS.relevance_method + '/img' + str(h) + '.jpg', render.enlarge_image(input_image,3)) np.save('./result/imgnet/' + FLAGS.relevance_method + '/' + '_heatmap.npy', relevances) R = np.array(heatmaps) with tf.name_scope('input_reshape'): img = tf.summary.image('input', tf.cast(R, tf.float32), n) return img.eval()
def visualize(relevances, images_tensor): n = len(relevances) for j in range(n): heatmaps = [] for i in range(32): heatmap = relevances[j, i, :, :, :] input_images = images_tensor[j, i, :, :, :] maps = render.hm_to_rgb(np.squeeze(heatmap), scaling=8, sigma=2, cmap='bwr') img = input_images if heatmaps == []: heatmaps = np.expand_dims(maps,0) imgs = np.expand_dims(img,0) else: heatmaps = np.concatenate([heatmaps,np.expand_dims(maps,0)],0) imgs = np.concatenate([imgs,np.expand_dims(img,0)],0) imageio.mimsave('./Demo_img/heatmap'+str(j)+'.gif', heatmaps) R = np.array(heatmaps) with tf.name_scope('input_reshape'): img = tf.summary.image('input', tf.cast(R, tf.float32), n) return img.eval()