import subprocess # Install the required packages subprocess.check_call(["pip", "install", "--upgrade", "pip"]) subprocess.check_call(["pip", "install", "-U", "transformers"]) subprocess.check_call(["pip", "install", "-U", "accelerate"]) subprocess.check_call(["pip", "install", "datasets"]) subprocess.check_call(["pip", "install", "evaluate"]) subprocess.check_call(["pip", "install", "scikit-learn"]) subprocess.check_call(["pip", "install", "torchvision"]) # Load model directly from transformers import AutoTokenizer, AutoModelForSequenceClassification tokenizer = AutoTokenizer.from_pretrained("rararara9999/Model") model = AutoModelForSequenceClassification.from_pretrained("rararara9999/Model") from transformers import AutoModelForImageClassification, AutoImageProcessor import torch import numpy as np from PIL import Image import streamlit as st # Load the fine-tuned model and image processor model_checkpoint = "rararara9999/Model" model = AutoModelForImageClassification.from_pretrained(model_checkpoint, num_labels=2) image_processor = AutoImageProcessor.from_pretrained(model_checkpoint) # Standalone Test Script def test_model(image_path): # Load and preprocess the image image = Image.open(image_path) inputs = image_processor(images=image, return_tensors="pt") # Get model predictions outputs = model(**inputs) predictions = torch.nn.functional.softmax(outputs.logits, dim=-1) predictions = predictions.cpu().detach().numpy() # Get the index of the largest output value max_index = np.argmax(predictions) labels = ["Wearing Mask", "Not Wearing Mask"] predicted_label = labels[max_index] print(f"The predicted label is {predicted_label}") # Streamlit App for Interactive Testing def main(): st.title("Face Mask Detection with HuggingFace Spaces") st.write("Upload an image to analyze whether the person is wearing a mask:") uploaded_file = st.file_uploader("Choose an image...", type=["jpg", "jpeg", "png"]) if uploaded_file is not None: image = Image.open(uploaded_file) st.image(image, caption='Uploaded Image.', use_column_width=True) st.write("") st.write("Classifying...") # Preprocess the image inputs = image_processor(images=image, return_tensors="pt") # Get model predictions outputs = model(**inputs) predictions = torch.nn.functional.softmax(outputs.logits, dim=-1) predictions = predictions.cpu().detach().numpy() # Get the index of the largest output value max_index = np.argmax(predictions) labels = ["Wearing Mask", "Not Wearing Mask"] predicted_label = labels[max_index] confidence = predictions[max_index] st.write(f"Predicted Label: {predicted_label}") st.write(f"Confidence: {confidence:.2f}") if __name__ == "__main__": main()