Spaces:
Build error
Build error
File size: 2,230 Bytes
bb3ea39 f4b82b2 880da41 497a5c7 bb3ea39 f4b82b2 9651aac f4b82b2 c9dadbf f4b82b2 351ead9 f4b82b2 c9dadbf f4b82b2 9651aac c9dadbf 4e8ced7 9651aac c9dadbf f4b82b2 497a5c7 f4b82b2 c9dadbf 497a5c7 f4b82b2 1a2db09 f4b82b2 1a2db09 f4b82b2 1a2db09 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
import gradio as gr
import torch
import matplotlib.pyplot as plt
from torchvision import transforms
import fire_network
# Possible Scales for multiscale inference
scales = [2.0, 1.414, 1.0, 0.707, 0.5, 0.353, 0.25]
device = 'cpu'
# Load net
state = torch.load('fire.pth', map_location='cpu')
state['net_params']['pretrained'] = None # no need for imagenet pretrained model
net = fire_network.init_network(**state['net_params']).to(device)
net.load_state_dict(state['state_dict'])
transform = transforms.Compose([
transforms.Resize(1024),
transforms.ToTensor(),
transforms.Normalize(**dict(zip(["mean", "std"], net.runtime['mean_std'])))
])
# which sf
sf_idx_ = [55, 14, 5, 4, 52, 57, 40, 9]
col = plt.get_cmap('tab10')
def generate_matching_superfeatures(im1, im2, scale_id=6, threshold=50):
im1_tensor = transform(im1)
im2_tensor = transform(im2)
# im1_cv = cv2.imread(im1)
# im2_cv = cv2.imread(im2)
# extract features
with torch.no_grad():
output1 = net.get_superfeatures(im1.to(device), scales=scales)
feats1 = output1[0]
attns1 = output1[1]
strenghts1 = output1[2]
output2 = net.get_superfeatures(im2.to(device), scales=scales)
feats2 = output2[0]
attns2 = output2[1]
strenghts2 = output2[2]
print(len(feats1))
# print(feats1.shape)
print(feats1[0].shape)
# print(attns1.shape)
# print(strenghts1.shape)
# GRADIO APP
title = "Visualizing Super-features"
description = "TBD"
article = "<p style='text-align: center'><a href='https://github.com/naver/fire' target='_blank'>Original Github Repo</a></p>"
iface = gr.Interface(
fn=generate_matching_superfeatures,
inputs=[
gr.inputs.Image(shape=(240, 240), type="pil"),
gr.inputs.Image(shape=(240, 240), type="pil"),
gr.inputs.Slider(minimum=1, maximum=7, step=1, default=2, label="Scale"),
gr.inputs.Slider(minimum=1, maximum=255, step=25, default=50, label="Binarizatio Threshold")],
outputs="plot",
enable_queue=True,
title=title,
description=description,
article=article,
examples=[["chateau_1.png", "chateau_2.png", 6, 50]],
)
iface.launch()
|