gregmerritt commited on
Commit
af510b4
·
verified ·
1 Parent(s): 2157c1a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -9
app.py CHANGED
@@ -37,22 +37,26 @@ model.eval()
37
  emotion_labels = ['Angry', 'Disgust', 'Fear', 'Happy', 'Sad', 'Surprise', 'Neutral']
38
 
39
  # Define preprocessing
 
 
 
40
  transform = transforms.Compose([
41
- transforms.Grayscale(),
42
  transforms.Resize((48, 48)),
43
  transforms.ToTensor(),
44
  ])
45
 
46
  def predict_emotion(image):
47
  if image is None:
48
- return "No image uploaded."
49
- try:
50
- image = transform(image).unsqueeze(0).to(device)
51
- output = model(image)
52
- _, predicted = torch.max(output, 1)
53
- return emotion_labels[predicted.item()]
54
- except Exception as e:
55
- return f"⚠️ Error: {e}"
 
56
 
57
  # Launch Gradio interface
58
  demo = gr.Interface(
 
37
  emotion_labels = ['Angry', 'Disgust', 'Fear', 'Happy', 'Sad', 'Surprise', 'Neutral']
38
 
39
  # Define preprocessing
40
+ from PIL import ImageOps
41
+ import torchvision.transforms as transforms
42
+
43
  transform = transforms.Compose([
44
+ transforms.Grayscale(num_output_channels=1),
45
  transforms.Resize((48, 48)),
46
  transforms.ToTensor(),
47
  ])
48
 
49
  def predict_emotion(image):
50
  if image is None:
51
+ return "No image provided"
52
+
53
+ image = ImageOps.grayscale(image) # Convert to grayscale
54
+ image = image.resize((48, 48)) # Resize to training shape
55
+ img_tensor = transform(image).unsqueeze(0).to(device) # Transform and batch
56
+
57
+ output = model(img_tensor)
58
+ prediction = output.argmax(dim=1).item()
59
+ return EMOTIONS[prediction]
60
 
61
  # Launch Gradio interface
62
  demo = gr.Interface(