All Projects → harshbg → Sign Language Interpreter Using Deep Learning

harshbg / Sign Language Interpreter Using Deep Learning

Licence: mit
A sign language interpreter using live video feed from the camera.

Programming Languages

python
139335 projects - #7 most used programming language
language
365 projects

Projects that are alternatives of or similar to Sign Language Interpreter Using Deep Learning

Har Keras Cnn
Human Activity Recognition (HAR) with 1D Convolutional Neural Network in Python and Keras
Stars: ✭ 97 (-38.22%)
Mutual labels:  data-science, deep-neural-networks, convolutional-neural-networks
Tensorflow object counting api
🚀 The TensorFlow Object Counting API is an open source framework built on top of TensorFlow and Keras that makes it easy to develop object counting systems!
Stars: ✭ 956 (+508.92%)
Mutual labels:  data-science, deep-neural-networks, opencv
Vehicle counting tensorflow
🚘 "MORE THAN VEHICLE COUNTING!" This project provides prediction for speed, color and size of the vehicles with TensorFlow Object Counting API.
Stars: ✭ 582 (+270.7%)
Mutual labels:  data-science, deep-neural-networks, opencv
Lenet 5
PyTorch implementation of LeNet-5 with live visualization
Stars: ✭ 122 (-22.29%)
Mutual labels:  deep-neural-networks, convolutional-neural-networks
Sigmoidal ai
Tutoriais de Python, Data Science, Machine Learning e Deep Learning - Sigmoidal
Stars: ✭ 103 (-34.39%)
Mutual labels:  data-science, convolutional-neural-networks
Selfdrivingcar
A collection of all projects pertaining to different layers in the SDC software stack
Stars: ✭ 107 (-31.85%)
Mutual labels:  deep-neural-networks, opencv
Intelegent lock
lock mechanism with face recognition and liveness detection
Stars: ✭ 134 (-14.65%)
Mutual labels:  opencv, convolutional-neural-networks
Hyperdensenet
This repository contains the code of HyperDenseNet, a hyper-densely connected CNN to segment medical images in multi-modal image scenarios.
Stars: ✭ 124 (-21.02%)
Mutual labels:  deep-neural-networks, convolutional-neural-networks
Deep Steganography
Hiding Images within other images using Deep Learning
Stars: ✭ 136 (-13.38%)
Mutual labels:  deep-neural-networks, convolutional-neural-networks
Shainet
SHAInet - a pure Crystal machine learning library
Stars: ✭ 143 (-8.92%)
Mutual labels:  deep-neural-networks, convolutional-neural-networks
Bender
Easily craft fast Neural Networks on iOS! Use TensorFlow models. Metal under the hood.
Stars: ✭ 1,728 (+1000.64%)
Mutual labels:  deep-neural-networks, convolutional-neural-networks
Livianet
This repository contains the code of LiviaNET, a 3D fully convolutional neural network that was employed in our work: "3D fully convolutional networks for subcortical segmentation in MRI: A large-scale study"
Stars: ✭ 143 (-8.92%)
Mutual labels:  deep-neural-networks, convolutional-neural-networks
Models
DLTK Model Zoo
Stars: ✭ 101 (-35.67%)
Mutual labels:  data-science, deep-neural-networks
Top Deep Learning
Top 200 deep learning Github repositories sorted by the number of stars.
Stars: ✭ 1,365 (+769.43%)
Mutual labels:  deep-neural-networks, convolutional-neural-networks
Deepway
This project is an aid to the blind. Till date there has been no technological advancement in the way the blind navigate. So I have used deep learning particularly convolutional neural networks so that they can navigate through the streets.
Stars: ✭ 118 (-24.84%)
Mutual labels:  opencv, convolutional-neural-networks
Awslambdaface
Perform deep neural network based face detection and recognition in the cloud (via AWS lambda) with zero model configuration or tuning.
Stars: ✭ 98 (-37.58%)
Mutual labels:  deep-neural-networks, convolutional-neural-networks
Pytorch convlstm
convolutional lstm implementation in pytorch
Stars: ✭ 126 (-19.75%)
Mutual labels:  deep-neural-networks, convolutional-neural-networks
Mariana
The Cutest Deep Learning Framework which is also a wonderful Declarative Language
Stars: ✭ 151 (-3.82%)
Mutual labels:  data-science, deep-neural-networks
Grenade
Deep Learning in Haskell
Stars: ✭ 1,338 (+752.23%)
Mutual labels:  deep-neural-networks, convolutional-neural-networks
Pytorch Learners Tutorial
PyTorch tutorial for learners
Stars: ✭ 97 (-38.22%)
Mutual labels:  deep-neural-networks, convolutional-neural-networks

Stars Forks GitHub contributors Language GitHub HitCount

Sign Language Interpreter using Deep Learning

A sign language interpreter using live video feed from the camera. The project was completed in 24 hours as part of HackUNT-19, the University of North Texas's annual Hackathon. You can view the project demo on YouTube.

Table of contents

General info

The theme at HACK UNT 19 was to use technology to improve accessibility by finding a creative solution to benefit the lives of those with a disability. We wanted to make it easy for 70 million deaf people across the world to be independent of translators for there daily communication needs, so we designed the app to work as a personal translator 24*7 for the deaf people.

Demo

Example screenshot

Example screenshot

Example screenshot

The entire demo of the project can be found on YouTube.

Screenshots

Example screenshot Example screenshot

Technologies and Tools

  • Python
  • TensorFlow
  • Keras
  • OpenCV

Setup

  • Use comand promt to setup environment by using install_packages.txt and install_packages_gpu.txt files.

pyton -m pip r install_packages.txt

This will help you in installing all the libraries required for the project.

Process

  • Run set_hand_histogram.py to set the hand histogram for creating gestures.
  • Once you get a good histogram, save it in the code folder, or you can use the histogram created by us that can be found here.
  • Added gestures and label them using OpenCV which uses webcam feed. by running create_gestures.py and stores them in a database. Alternately, you can use the gestures created by us here.
  • Add different variations to the captured gestures by flipping all the images by using Rotate_images.py.
  • Run load_images.py to split all the captured gestures into training, validation and test set.
  • To view all the gestures, run display_gestures.py .
  • Train the model using Keras by running cnn_model_train.py.
  • Run final.py. This will open up the gesture recognition window which will use your webcam to interpret the trained American Sign Language gestures.

Code Examples

# Model Traiining using CNN

import numpy as np
import pickle
import cv2, os
from glob import glob
from keras import optimizers
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import Dropout
from keras.layers import Flatten
from keras.layers.convolutional import Conv2D
from keras.layers.convolutional import MaxPooling2D
from keras.utils import np_utils
from keras.callbacks import ModelCheckpoint
from keras import backend as K
K.set_image_dim_ordering('tf')

os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'

def get_image_size():
	img = cv2.imread('gestures/1/100.jpg', 0)
	return img.shape

def get_num_of_classes():
	return len(glob('gestures/*'))

image_x, image_y = get_image_size()

def cnn_model():
	num_of_classes = get_num_of_classes()
	model = Sequential()
	model.add(Conv2D(16, (2,2), input_shape=(image_x, image_y, 1), activation='relu'))
	model.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2), padding='same'))
	model.add(Conv2D(32, (3,3), activation='relu'))
	model.add(MaxPooling2D(pool_size=(3, 3), strides=(3, 3), padding='same'))
	model.add(Conv2D(64, (5,5), activation='relu'))
	model.add(MaxPooling2D(pool_size=(5, 5), strides=(5, 5), padding='same'))
	model.add(Flatten())
	model.add(Dense(128, activation='relu'))
	model.add(Dropout(0.2))
	model.add(Dense(num_of_classes, activation='softmax'))
	sgd = optimizers.SGD(lr=1e-2)
	model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy'])
	filepath="cnn_model_keras2.h5"
	checkpoint1 = ModelCheckpoint(filepath, monitor='val_acc', verbose=1, save_best_only=True, mode='max')
	callbacks_list = [checkpoint1]
	#from keras.utils import plot_model
	#plot_model(model, to_file='model.png', show_shapes=True)
	return model, callbacks_list

def train():
	with open("train_images", "rb") as f:
		train_images = np.array(pickle.load(f))
	with open("train_labels", "rb") as f:
		train_labels = np.array(pickle.load(f), dtype=np.int32)

	with open("val_images", "rb") as f:
		val_images = np.array(pickle.load(f))
	with open("val_labels", "rb") as f:
		val_labels = np.array(pickle.load(f), dtype=np.int32)

	train_images = np.reshape(train_images, (train_images.shape[0], image_x, image_y, 1))
	val_images = np.reshape(val_images, (val_images.shape[0], image_x, image_y, 1))
	train_labels = np_utils.to_categorical(train_labels)
	val_labels = np_utils.to_categorical(val_labels)

	print(val_labels.shape)

	model, callbacks_list = cnn_model()
	model.summary()
	model.fit(train_images, train_labels, validation_data=(val_images, val_labels), epochs=15, batch_size=500, callbacks=callbacks_list)
	scores = model.evaluate(val_images, val_labels, verbose=0)
	print("CNN Error: %.2f%%" % (100-scores[1]*100))
	#model.save('cnn_model_keras2.h5')

train()
K.clear_session();

Features

Our model was able to predict the 44 characters in the ASL with a prediction accuracy >95%.

Features that can be added:

  • Deploy the project on cloud and create an API for using it.
  • Increase the vocabulary of our model
  • Incorporate feedback mechanism to make the model more robust
  • Add more sign languages

Status

Project is: finished. Our team was the winner of the UNT Hackaton 2019. You can find the our final submission post on devpost. If you would like us to implement the project end-to-end for you please book a session.

Contact

Created by me with my teammates Siddharth Oza, Ashish Sharma, and Manish Shukla.

If you loved what you read here and feel like we can collaborate to produce some exciting stuff, or if you just want to shoot a question, please feel free to connect with me on email, LinkedIn, or Twitter. My other projects can be found here.

GitHub Twitter

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].