Spaces:
Sleeping
Sleeping
Delete model.py
Browse files
model.py
DELETED
@@ -1,42 +0,0 @@
|
|
1 |
-
import joblib
|
2 |
-
import pandas as pd
|
3 |
-
import numpy as np
|
4 |
-
from landmarks import normalize_landmarks, calculate_angles
|
5 |
-
import streamlit as st
|
6 |
-
@st.cache_resource
|
7 |
-
def load_model():
|
8 |
-
"""Load the pre-trained Random Forest model."""
|
9 |
-
try:
|
10 |
-
return joblib.load('best_random_forest_model.pkl')
|
11 |
-
except Exception as e:
|
12 |
-
st.error(f"Error loading model: {e}")
|
13 |
-
return None
|
14 |
-
|
15 |
-
def process_and_predict(image, model):
|
16 |
-
"""
|
17 |
-
Process the uploaded image to extract hand landmarks and predict the ASL sign.
|
18 |
-
|
19 |
-
Parameters:
|
20 |
-
image (numpy.ndarray): The uploaded image.
|
21 |
-
model (sklearn.base.BaseEstimator): The pre-trained model.
|
22 |
-
|
23 |
-
Returns:
|
24 |
-
tuple: A tuple containing predicted probabilities and landmarks.
|
25 |
-
"""
|
26 |
-
mp_hands = mp.solutions.hands
|
27 |
-
with mp_hands.Hands(static_image_mode=True, max_num_hands=1, min_detection_confidence=0.5) as hands:
|
28 |
-
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
|
29 |
-
results = hands.process(image_rgb)
|
30 |
-
|
31 |
-
if results.multi_hand_landmarks:
|
32 |
-
landmarks = np.array([[lm.x, lm.y] for lm in results.multi_hand_landmarks[0].landmark])
|
33 |
-
landmarks_normalized = normalize_landmarks(landmarks)
|
34 |
-
angles = calculate_angles(landmarks_normalized)
|
35 |
-
|
36 |
-
angle_columns = [f'angle_{i}' for i in range(len(angles))]
|
37 |
-
angles_df = pd.DataFrame([angles], columns=angle_columns)
|
38 |
-
|
39 |
-
probabilities = model.predict_proba(angles_df)[0]
|
40 |
-
return probabilities, landmarks
|
41 |
-
|
42 |
-
return None, None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|