Spaces:
Runtime error
Runtime error
import tensorflow as tf | |
import numpy as np | |
import streamlit as st | |
import cv2 | |
import av | |
import mediapipe as mp | |
from streamlit_webrtc import webrtc_streamer, VideoTransformerBase, RTCConfiguration, VideoProcessorBase, WebRtcMode | |
# Initializing the Model | |
mpHands = mp.solutions.hands | |
hands = mpHands.Hands() | |
# Initializing the drawing utils for drawing the landmarks on image | |
mpDraw = mp.solutions.drawing_utils | |
mpDrawingStyle = mp.solutions.drawing_styles | |
# Load the Trained model of Sign Language | |
model = tf.keras.models.load_model('ASLmodelF.h5') | |
RTC_CONFIGURATION = RTCConfiguration({"iceServers": [{"urls": ["stun:stun.l.google.com:19302"]}]}) | |
ASLimg = cv2.imread('ASLimg.JPG') | |
label = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', | |
'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'] | |
# cap = cv2.VideoCapture(0) | |
class signDetection(VideoTransformerBase): | |
def transfrom(self, frame): | |
img = frame.to_ndarray(format="bgr24") | |
imgRGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) | |
lmsList = [] | |
result = hands.process(imgRGB) | |
if result.multi_hand_landmarks: | |
handLms = result.multi_hand_landmarks[0] | |
for lm in handLms.landmark: | |
h, w, c = img.shape | |
lmsList.append(lm.x) | |
lmsList.append(lm.y) | |
mpDraw.draw_landmarks(img, handLms, mpHands.HAND_CONNECTIONS, mpDrawingStyle.get_default_hand_landmarks_style(), | |
mpDrawingStyle.get_default_hand_connections_style()) | |
lmsList = [lmsList] | |
lmsList = np.array(lmsList) | |
r = model.predict(lmsList) | |
r = np.argmax(r) | |
cv2.putText(img, f'Result = {label[r]}', (50, 40), cv2.FONT_HERSHEY_DUPLEX, 1, (0, 0, 255), 2) | |
# return av.VideoFrame.from_ndarray(img, format='bgr24') | |
return img | |
def main(): | |
st.title('Real Time Sign Language Detection') | |
st.header('Webcam Live Feed') | |
st.write("Click on start to use webcam and detect finger spellings") | |
webrtc_streamer(key='key', mode=WebRtcMode.SENDRECV, rtc_configuration=RTC_CONFIGURATION, video_processor_factory=signDetection) | |
with st.sidebar: | |
st.header('Finger Spellings') | |
st.image(image=ASLimg) | |
st.markdown('**Created by:** Manish Kumar') | |
st.markdown('Github Link: [ASL-Recognition](https://github.com/ManishKumar219/ASL-Recognition)') | |
if __name__ == "__main__": | |
main() |