Charles Kabui
commited on
Commit
·
1d814bd
1
Parent(s):
ff111cc
pre_message_style
Browse files
main.py
CHANGED
@@ -22,7 +22,7 @@ cache = {
|
|
22 |
'original_document_image_1': None,
|
23 |
'original_document_image_2': None
|
24 |
}
|
25 |
-
pre_message_style = '
|
26 |
visualize_bboxes_on_image_kwargs = {
|
27 |
'label_text_color': 'white',
|
28 |
'label_fill_color': 'black',
|
@@ -45,7 +45,8 @@ def similarity_fn(model: lp.Detectron2LayoutModel, document_image_1: Image.Image
|
|
45 |
show_vectors_type = False
|
46 |
try:
|
47 |
if document_image_1 is None or document_image_2 is None:
|
48 |
-
message =
|
|
|
49 |
else:
|
50 |
input_document_image_1_hash = str(average_hash(document_image_1))
|
51 |
input_document_image_2_hash = str(average_hash(document_image_2))
|
@@ -54,6 +55,7 @@ def similarity_fn(model: lp.Detectron2LayoutModel, document_image_1: Image.Image
|
|
54 |
document_image_1_features = cache['document_image_1_features']
|
55 |
document_image_1 = cache['original_document_image_1']
|
56 |
else:
|
|
|
57 |
document_image_1_features = get_features(
|
58 |
document_image_1, model, label_names)
|
59 |
cache['document_image_1_features'] = document_image_1_features
|
@@ -63,11 +65,13 @@ def similarity_fn(model: lp.Detectron2LayoutModel, document_image_1: Image.Image
|
|
63 |
document_image_2_features = cache['document_image_2_features']
|
64 |
document_image_2 = cache['original_document_image_2']
|
65 |
else:
|
|
|
66 |
document_image_2_features = get_features(
|
67 |
document_image_2, model, label_names)
|
68 |
cache['document_image_2_features'] = document_image_2_features
|
69 |
cache['original_document_image_2'] = document_image_2
|
70 |
|
|
|
71 |
[[similarity]] = cosine_similarity(
|
72 |
[
|
73 |
cache['document_image_1_features'][vectors_type]
|
@@ -75,7 +79,9 @@ def similarity_fn(model: lp.Detectron2LayoutModel, document_image_1: Image.Image
|
|
75 |
[
|
76 |
cache['document_image_2_features'][vectors_type]
|
77 |
])
|
78 |
-
message = f'
|
|
|
|
|
79 |
document_image_1 = visualize_bboxes_on_image(
|
80 |
image=document_image_1,
|
81 |
bboxes=cache['document_image_1_features'][annotations['predicted_bboxes']],
|
@@ -106,9 +112,10 @@ def similarity_fn(model: lp.Detectron2LayoutModel, document_image_1: Image.Image
|
|
106 |
|
107 |
show_vectors_type = True
|
108 |
except Exception as e:
|
109 |
-
message = f'<pre style="
|
|
|
110 |
return [
|
111 |
-
gr.HTML(message, visible=True),
|
112 |
document_image_1,
|
113 |
document_image_2,
|
114 |
gr.Dropdown(visible=show_vectors_type)
|
|
|
22 |
'original_document_image_1': None,
|
23 |
'original_document_image_2': None
|
24 |
}
|
25 |
+
pre_message_style = 'border:2px solid pink;padding:4px;border-radius:4px;font-size: 16px;font-weight: 700;background-image: linear-gradient(to bottom right, #e0e619, #ffffff, #FF77CC, rgb(255, 122, 89));'
|
26 |
visualize_bboxes_on_image_kwargs = {
|
27 |
'label_text_color': 'white',
|
28 |
'label_fill_color': 'black',
|
|
|
45 |
show_vectors_type = False
|
46 |
try:
|
47 |
if document_image_1 is None or document_image_2 is None:
|
48 |
+
message = 'Please load both the documents to compare.'
|
49 |
+
gr.Info(message)
|
50 |
else:
|
51 |
input_document_image_1_hash = str(average_hash(document_image_1))
|
52 |
input_document_image_2_hash = str(average_hash(document_image_2))
|
|
|
55 |
document_image_1_features = cache['document_image_1_features']
|
56 |
document_image_1 = cache['original_document_image_1']
|
57 |
else:
|
58 |
+
gr.Info('Generating features for document 1')
|
59 |
document_image_1_features = get_features(
|
60 |
document_image_1, model, label_names)
|
61 |
cache['document_image_1_features'] = document_image_1_features
|
|
|
65 |
document_image_2_features = cache['document_image_2_features']
|
66 |
document_image_2 = cache['original_document_image_2']
|
67 |
else:
|
68 |
+
gr.Info('Generating features for document 2')
|
69 |
document_image_2_features = get_features(
|
70 |
document_image_2, model, label_names)
|
71 |
cache['document_image_2_features'] = document_image_2_features
|
72 |
cache['original_document_image_2'] = document_image_2
|
73 |
|
74 |
+
gr.Info('Calculating similarity')
|
75 |
[[similarity]] = cosine_similarity(
|
76 |
[
|
77 |
cache['document_image_1_features'][vectors_type]
|
|
|
79 |
[
|
80 |
cache['document_image_2_features'][vectors_type]
|
81 |
])
|
82 |
+
message = f'Similarity between the two documents is: {round(similarity, 4)}'
|
83 |
+
gr.Info(message)
|
84 |
+
gr.Info('Visualizing the bounding boxes for the predicted layout elements on the documents.')
|
85 |
document_image_1 = visualize_bboxes_on_image(
|
86 |
image=document_image_1,
|
87 |
bboxes=cache['document_image_1_features'][annotations['predicted_bboxes']],
|
|
|
112 |
|
113 |
show_vectors_type = True
|
114 |
except Exception as e:
|
115 |
+
message = f'<pre style="overflow:auto;">{traceback.format_exc()}</pre>'
|
116 |
+
gr.Info(message)
|
117 |
return [
|
118 |
+
gr.HTML(f'<div style="{pre_message_style}">{message}</div>', visible=True),
|
119 |
document_image_1,
|
120 |
document_image_2,
|
121 |
gr.Dropdown(visible=show_vectors_type)
|