File size: 1,363 Bytes
58e450d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from PIL import Image
import pytesseract
import torch
from torchvision import transforms
from transformers import ResNetForImageClassification
import logging

def resize_image(image, max_size=(800, 600)):
    """Resize an image to the specified maximum size."""
    image.thumbnail(max_size)
    return image

def extract_text_from_image(image):
    """Extract text from an image using OCR."""
    try:
        image = resize_image(image)
        text = pytesseract.image_to_string(image)
        return text
    except Exception as e:
        logging.error(f"Error extracting text from image: {e}")
        return ""

def analyze_image(image):
    """Analyze image content using a pre-trained model."""
    try:
        preprocess = transforms.Compose([
            transforms.Resize(256),
            transforms.CenterCrop(224),
            transforms.ToTensor(),
            transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
        ])
        image_tensor = preprocess(image).unsqueeze(0)
        
        # Load ResNet model
        model = ResNetForImageClassification.from_pretrained("microsoft/resnet-50")
        model.eval()
        
        with torch.no_grad():
            output = model(image_tensor)
        return output
    except Exception as e:
        logging.error(f"Error analyzing image: {e}")
        return None