import streamlit as st
from streamlit_webrtc import webrtc_streamer
import av
import cv2
import numpy as np
import mediapipe as mp
from keras.models import load_model
model = load_model("my_model.h5")
label = np.load("labels.npy")
holistic = mp.solutions.holistic
hands = mp.solutions.hands
holis = holistic.Holistic()
drawing = mp.solutions.drawing_utils
class EmotionProcessor:
def revc(self, frame):
frm = frame.to_ndarray(format="bgr24")
####################
frm = cv2.flip(frm, 1)
res = holis.process(cv2.cvtColor(frm, cv2.COLOR_BGR2RGB))
lst = []
if res.face_landmarks:
for i in res.face_landmarks.landmark:
lst.append(i.x - res.face_landmarks.landmark[1].x)
lst.append(i.y - res.face_landmarks.landmark[1].y)
if res.left_hand_landmarks:
for i in res.left_hand_landmarks.landmark:
lst.append(i.x - res.left_hand_landmarks.landmark[8].x)
lst.append(i.y - res.left_hand_landmarks.landmark[8].y)
else:
for i in range(42):
lst.append(0.0)
if res.right_hand_landmarks:
for i in res.right_hand_landmarks.landmark:
lst.append(i.x - res.right_hand_landmarks.landmark[8].x)
lst.append(i.y - res.right_hand_landmarks.landmark[8].y)
else:
for i in range(42):
lst.append(0.0)
lst = np.array(lst).reshape(1, -1)
pred = label[np.argmax(model.predict(lst))]
print(pred)
cv2.putText(frm, pred, (50, 50), cv2.FONT_ITALIC, 1, (255, 0, 0), 2)
drawing.draw_landmarks(frm, res.face_landmarks, holistic.FACEMESH_CONTOURS)
drawing.draw_landmarks(frm, res.left_hand_landmarks, hands.HAND_CONNECTIONS)
drawing.draw_landmarks(frm, res.right_hand_landmarks, hands.HAND_CONNECTIONS)
######################
return av.VideoFrame.from_ndarray(frm, format="bgr24")
lang = st.text_input("Language")
singer = st.text_input("Singer")
if lang and singer:
webrtc_streamer(key="key", desired_playing_state=True, video_processor_factory=EmotionProcessor)
btn = st.button("Click")
![Screenshot 2024-03-02 135730|690x194](upload://x7dFAr4tJxPfdNdx4GCV7SJCq3H.jpeg)
![Screenshot 2024-03-02 135656|690x118](upload://h2jR4MD2cAqxCSSP7DpXWXrWWC3.jpeg)
Could you check to see if your .h5 file is in the same directory as your main app file (according to the provided path in the code).
Also can you check if the spelling of the file name used in the code and the actual file has matching file names.
This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.