DHEIVER commited on
Commit
b0fa5f2
·
verified ·
1 Parent(s): db99b27

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +29 -9
app.py CHANGED
@@ -5,28 +5,48 @@ from torchvision import transforms, models
5
  import pickle
6
  from resnest.torch import resnest50
7
 
8
- # Carregar nomes das classes e criar mapeamento para português
9
  with open('class_names.pkl', 'rb') as f:
10
  class_names_en = pickle.load(f)
11
 
12
- # Dicionário de tradução das classes para português
 
 
 
13
  class_names_pt = {
14
  'apple': 'maçã',
 
 
15
  'banana': 'banana',
 
16
  'cherry': 'cereja',
17
- 'chico': 'sapoti', # nome em português para chico/fruit
 
18
  'grape': 'uva',
 
19
  'kiwi': 'kiwi',
 
20
  'mango': 'manga',
 
21
  'orange': 'laranja',
 
22
  'pear': 'pera',
23
- 'tomato': 'tomate'
 
 
24
  }
25
 
26
- # Criar lista de nomes em português na mesma ordem que class_names_en
27
- class_names = [class_names_pt[en] for en in class_names_en]
 
 
 
 
 
 
 
28
 
29
- # Carregar o modelo treinado
30
  device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
31
 
32
  model = resnest50(pretrained=None)
@@ -68,13 +88,13 @@ def predict_image(img):
68
  top3_probs, top3_indices = torch.topk(probabilities, 3)
69
 
70
  results = {
71
- class_names[i]: p.item()
72
  for p, i in zip(top3_probs, top3_indices)
73
  }
74
 
75
  # Obter a melhor previsão
76
  best_class = class_names[top3_indices[0]]
77
- best_conf = top3_probs[0].item() * 100
78
 
79
  # Salvar resultados
80
  with open('/tmp/prediction_results.txt', 'a') as f:
 
5
  import pickle
6
  from resnest.torch import resnest50
7
 
8
+ # Carregar nomes das classes originais
9
  with open('class_names.pkl', 'rb') as f:
10
  class_names_en = pickle.load(f)
11
 
12
+ # Imprimir as classes originais para debug
13
+ print("Classes originais encontradas:", class_names_en)
14
+
15
+ # Dicionário de tradução mais completo (incluindo variações)
16
  class_names_pt = {
17
  'apple': 'maçã',
18
+ 'Apple': 'maçã',
19
+ 'Apple 10': 'maçã', # adicionando variações
20
  'banana': 'banana',
21
+ 'Banana': 'banana',
22
  'cherry': 'cereja',
23
+ 'Cherry': 'cereja',
24
+ 'chico': 'sapoti',
25
  'grape': 'uva',
26
+ 'Grape': 'uva',
27
  'kiwi': 'kiwi',
28
+ 'Kiwi': 'kiwi',
29
  'mango': 'manga',
30
+ 'Mango': 'manga',
31
  'orange': 'laranja',
32
+ 'Orange': 'laranja',
33
  'pear': 'pera',
34
+ 'Pear': 'pera',
35
+ 'tomato': 'tomate',
36
+ 'Tomato': 'tomate'
37
  }
38
 
39
+ # Criar lista de nomes em português, usando o nome original se não houver tradução
40
+ class_names = []
41
+ for en in class_names_en:
42
+ # Remover números e espaços extras para normalizar
43
+ base_name = ''.join([i for i in en if not i.isdigit()]).strip()
44
+ translated = class_names_pt.get(base_name, class_names_pt.get(en, en))
45
+ class_names.append(translated)
46
+
47
+ print("Classes traduzidas:", class_names)
48
 
49
+ # Restante do código permanece igual...
50
  device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
51
 
52
  model = resnest50(pretrained=None)
 
88
  top3_probs, top3_indices = torch.topk(probabilities, 3)
89
 
90
  results = {
91
+ class_names[i]: float(p)
92
  for p, i in zip(top3_probs, top3_indices)
93
  }
94
 
95
  # Obter a melhor previsão
96
  best_class = class_names[top3_indices[0]]
97
+ best_conf = float(top3_probs[0]) * 100
98
 
99
  # Salvar resultados
100
  with open('/tmp/prediction_results.txt', 'a') as f: