Spaces:
Runtime error
Runtime error
File size: 2,476 Bytes
3a7370e b171c43 3a7370e b171c43 3a7370e b171c43 3a7370e b171c43 3a7370e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
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() |