mp-02 commited on
Commit
a3a5528
·
verified ·
1 Parent(s): 0f12594

Update inference.py

Browse files
Files changed (1) hide show
  1. inference.py +25 -24
inference.py CHANGED
@@ -16,23 +16,6 @@ model.to(device)
16
 
17
  import json
18
 
19
- boxes, words = OCR(image)
20
- # Preprocessa l'immagine e il testo con il processore di LayoutLMv3
21
- encoding = processor(image, words=words, boxes=boxes, return_tensors="pt", padding="max_length", truncation=True)
22
-
23
- # Esegui l'inferenza con il modello fine-tuned
24
- with torch.no_grad():
25
- outputs = model(**encoding)
26
-
27
- # Ottieni le etichette previste dal modello
28
- logits = outputs.logits
29
- predicted_ids = logits.argmax(-1).squeeze().tolist()
30
-
31
- predictions = outputs.logits.argmax(-1).squeeze().tolist()
32
- token_boxes = encoding.bbox.squeeze().tolist()
33
- probabilities = torch.softmax(outputs.logits, dim=-1)
34
- confidence_scores = probabilities.max(-1).values.squeeze().tolist()
35
-
36
  # Mappa gli ID predetti nelle etichette di classificazione
37
  labels = processor.tokenizer.convert_ids_to_tokens(predicted_ids)
38
 
@@ -53,12 +36,30 @@ def create_json_output(words, labels, boxes):
53
  json_output = json.dumps(output, indent=4)
54
  return json_output
55
 
56
- # Crea il JSON usando i risultati ottenuti
57
- json_result = create_json_output(words, labels, boxes)
58
-
59
- for prediction, box, confidence in zip(true_predictions, true_boxes, true_confidence_scores):
60
- draw.rectangle(box)
61
- draw.text((box[0]+10, box[1]-10), text=prediction+ ", "+ str(confidence), font=font, fill="black", font_size="15")
62
 
63
- return image, json_result
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
64
 
 
16
 
17
  import json
18
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  # Mappa gli ID predetti nelle etichette di classificazione
20
  labels = processor.tokenizer.convert_ids_to_tokens(predicted_ids)
21
 
 
36
  json_output = json.dumps(output, indent=4)
37
  return json_output
38
 
39
+ def prediction()
 
 
 
 
 
40
 
41
+ boxes, words = OCR(image)
42
+ # Preprocessa l'immagine e il testo con il processore di LayoutLMv3
43
+ encoding = processor(image, words=words, boxes=boxes, return_tensors="pt", padding="max_length", truncation=True)
44
+
45
+ # Esegui l'inferenza con il modello fine-tuned
46
+ with torch.no_grad():
47
+ outputs = model(**encoding)
48
+
49
+ # Ottieni le etichette previste dal modello
50
+ logits = outputs.logits
51
+ predicted_ids = logits.argmax(-1).squeeze().tolist()
52
+
53
+ predictions = outputs.logits.argmax(-1).squeeze().tolist()
54
+ token_boxes = encoding.bbox.squeeze().tolist()
55
+ probabilities = torch.softmax(outputs.logits, dim=-1)
56
+ confidence_scores = probabilities.max(-1).values.squeeze().tolist()
57
+ # Crea il JSON usando i risultati ottenuti
58
+ json_result = create_json_output(words, labels, boxes)
59
+
60
+ for prediction, box, confidence in zip(true_predictions, true_boxes, true_confidence_scores):
61
+ draw.rectangle(box)
62
+ draw.text((box[0]+10, box[1]-10), text=prediction+ ", "+ str(confidence), font=font, fill="black", font_size="15")
63
+
64
+ return image, json_result
65