Spaces:
Build error
Build error
| import os | |
| import cv2 | |
| import numpy as np | |
| import streamlit as st | |
| from datetime import datetime | |
| from huggingface_hub import HfApi | |
| # Constants | |
| KNOWN_FACES_DIR = "known_faces" | |
| IMG_SIZE = (200, 200) | |
| # Initialize Hugging Face API | |
| api = HfApi() | |
| # Helper Function to upload image to Hugging Face | |
| def upload_to_huggingface(image_path, repo_id="LovnishVerma/face__emotion_detection"): | |
| try: | |
| api.upload_file( | |
| path_or_fileobj=image_path, | |
| path_in_repo=os.path.basename(image_path), # Name of the image in the repo | |
| repo_id=repo_id, | |
| repo_type="dataset" # You can also set it as "model" if uploading to a model repo | |
| ) | |
| st.success(f"Photo uploaded to Hugging Face repository: {repo_id}") | |
| except Exception as e: | |
| st.error(f"Error uploading photo: {e}") | |
| # Streamlit App | |
| st.title("Webcam Photo Capture and Upload to Hugging Face") | |
| st.sidebar.title("Options") | |
| option = st.sidebar.selectbox("Choose an action", ["Home", "Capture Photo"]) | |
| if option == "Home": | |
| st.write("Capture a photo using your webcam and upload it to Hugging Face.") | |
| elif option == "Capture Photo": | |
| # Ask the user to capture a photo using webcam | |
| photo = st.camera_input("Capture a photo") | |
| if photo is not None: | |
| # Convert the uploaded photo to an image (using PIL or OpenCV) | |
| img = cv2.imdecode(np.frombuffer(photo.getvalue(), np.uint8), cv2.IMREAD_COLOR) | |
| if img is not None: | |
| # Save the photo to a temporary file | |
| timestamp = datetime.now().strftime("%Y%m%d%H%M%S") | |
| photo_path = f"temp_photo_{timestamp}.jpg" | |
| cv2.imwrite(photo_path, img) | |
| # Display the photo | |
| st.image(img, caption="Captured Photo", channels="BGR") | |
| # Ask the user if they want to upload the photo | |
| if st.button("Upload Photo to Hugging Face"): | |
| # Replace with your Hugging Face repository | |
| upload_to_huggingface(photo_path, repo_id="your-username/your-repo") | |
| # Optionally, delete the temporary photo file after upload | |
| os.remove(photo_path) | |