Spaces:
Sleeping
Sleeping
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() | |