Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import torch | |
| from torch import nn | |
| from torchvision import models, transforms | |
| from huggingface_hub import hf_hub_download | |
| from PIL import Image | |
| import os | |
| import logging | |
| import requests | |
| import Bytes io | |
| # Setup logging | |
| logging.basicConfig(level=logging.INFO) | |
| # Define the number of classes | |
| num_classes = 2 | |
| # Download model from Hugging Face | |
| def download_model(): | |
| model_path = hf_hub_download(repo_id="jays009/Restnet50", filename="pytorch_model.bin") | |
| return model_path | |
| # Load the model from Hugging Face | |
| def load_model(model_path): | |
| model = models.resnet50(pretrained=False) | |
| model.fc = nn.Linear(model.fc.in_features, num_classes) | |
| model.load_state_dict(torch.load(model_path, map_location=torch.device("cpu"))) | |
| model.eval() | |
| return model | |
| # Download the model and load it | |
| model_path = download_model() | |
| model = load_model(model_path) | |
| # Define the transformation for the input image | |
| transform = transforms.Compose([ | |
| transforms.Resize(256), | |
| transforms.CenterCrop(224), | |
| transforms.ToTensor(), | |
| transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]), | |
| ]) | |
| # Prediction function for an uploaded image | |
| def predict_from_image(image_url): | |
| try: | |
| # Download the image from the provided URL | |
| response = requests.get(image_url) | |
| image = Image.open(BytesIO(response.content)) | |
| # Process the image... | |
| return {"result": "Image processed successfully"} | |
| except Exception as e: | |
| return {"error": str(e)} | |
| demo = gr.Interface( | |
| fn=predict_from_image, | |
| inputs="text", | |
| outputs="json", | |
| title="Image Processing", | |
| description="Enter a URL to an image", | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch() |