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()