├── ASL.jpg ├── .DS_Store ├── hack36.h5 ├── MISFITS.pdf ├── hack36_2.h5 ├── finalModel.h5 ├── finalModelGray.h5 ├── requirements.txt ├── README.md ├── script.py └── new.ipynb /ASL.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xnaman1/American-Sign-Language-Detection-using-Computer-Vision/HEAD/ASL.jpg -------------------------------------------------------------------------------- /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xnaman1/American-Sign-Language-Detection-using-Computer-Vision/HEAD/.DS_Store -------------------------------------------------------------------------------- /hack36.h5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xnaman1/American-Sign-Language-Detection-using-Computer-Vision/HEAD/hack36.h5 -------------------------------------------------------------------------------- /MISFITS.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xnaman1/American-Sign-Language-Detection-using-Computer-Vision/HEAD/MISFITS.pdf -------------------------------------------------------------------------------- /hack36_2.h5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xnaman1/American-Sign-Language-Detection-using-Computer-Vision/HEAD/hack36_2.h5 -------------------------------------------------------------------------------- /finalModel.h5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xnaman1/American-Sign-Language-Detection-using-Computer-Vision/HEAD/finalModel.h5 -------------------------------------------------------------------------------- /finalModelGray.h5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xnaman1/American-Sign-Language-Detection-using-Computer-Vision/HEAD/finalModelGray.h5 -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | absl-py==0.9.0 2 | astor==0.8.1 3 | attrs==19.3.0 4 | backcall==0.1.0 5 | bleach==3.1.0 6 | certifi==2019.11.28 7 | colorama==0.4.3 8 | comtypes==1.1.7 9 | cycler==0.10.0 10 | decorator==4.4.1 11 | defusedxml==0.6.0 12 | entrypoints==0.3 13 | gast==0.2.2 14 | google-pasta==0.1.8 15 | grpcio==1.27.1 16 | h5py==2.10.0 17 | importlib-metadata==1.5.0 18 | ipykernel==5.1.4 19 | ipython==7.12.0 20 | ipython-genutils==0.2.0 21 | ipywidgets==7.5.1 22 | jedi==0.16.0 23 | Jinja2==2.11.1 24 | joblib==0.14.1 25 | jsonschema==3.2.0 26 | jupyter==1.0.0 27 | jupyter-client==5.3.4 28 | jupyter-console==6.1.0 29 | jupyter-core==4.6.1 30 | Keras==2.3.1 31 | Keras-Applications==1.0.8 32 | Keras-Preprocessing==1.1.0 33 | kiwisolver==1.1.0 34 | Markdown==3.2 35 | MarkupSafe==1.1.1 36 | matplotlib==3.1.3 37 | mistune==0.8.4 38 | nbconvert==5.6.1 39 | nbformat==5.0.4 40 | notebook==6.0.3 41 | numpy==1.18.1 42 | opencv-python==4.2.0.32 43 | opt-einsum==3.1.0 44 | pandas==1.0.1 45 | pandocfilters==1.4.2 46 | parso==0.6.1 47 | pickleshare==0.7.5 48 | Pillow==7.0.0 49 | prometheus-client==0.7.1 50 | prompt-toolkit==3.0.3 51 | protobuf==3.11.3 52 | Pygments==2.5.2 53 | pyparsing==2.4.6 54 | pyrsistent==0.15.7 55 | python-dateutil==2.8.1 56 | pyttsx3==2.81 57 | pytz==2019.3 58 | pywin32==227 59 | pywinpty==0.5.7 60 | PyYAML==5.3 61 | pyzmq==18.1.1 62 | qtconsole==4.6.0 63 | scikit-learn==0.22.1 64 | scipy==1.4.1 65 | Send2Trash==1.5.0 66 | six==1.14.0 67 | sklearn==0.0 68 | tensorboard==1.15.0 69 | tensorflow==1.15.4 70 | tensorflow-estimator==1.15.1 71 | termcolor==1.1.0 72 | terminado==0.8.3 73 | testpath==0.4.4 74 | tornado==6.0.3 75 | traitlets==4.3.3 76 | wcwidth==0.1.8 77 | webencodings==0.5.1 78 | Werkzeug==1.0.0 79 | widgetsnbextension==3.5.1 80 | wincertstore==0.2 81 | wrapt==1.11.2 82 | zipp==2.2.0 83 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Hack36_Project_Team MISFITS 2 | Hack36 MNNIT Allahabad Hackathon Submission 3 | # American Sign Language Detection using Deep Neural Networks 4 | American Sign Language (ASL) is a visual language. With signing, the brain processes linguistic information through the eyes. The shape, placement, and movement of the hands, as well as facial expressions and body movements, all play important parts in conveying information. It is the primary language of many North Americans who are deaf and hard of hearing, and is used by many hearing people as well. The project can be used by dumb people to easily communicate with people who doesn't understand sign language. 5 | ![ASL](https://user-images.githubusercontent.com/35381035/74564913-1e48d600-4f96-11ea-86fa-4e854ec77975.jpg) 6 | 7 | ## Formation of message using finger spelling in ASL 8 | 9 | Fingerspelling is part of ASL and is used to spell out English words. In the fingerspelled alphabet, each letter corresponds to a distinct handshape. Fingerspelling is often used for proper names or to indicate the English word for something. We are using **Convolutional Neural Networks** to predict the sign language letter and combine those predicted letters to form the sentence to be conveyed. 10 | The message will then be converted from text to speech using Python's built-in support. 11 | The input will be provided in real time using the webcam. 12 | 13 | ## Data Source 14 | https://www.kaggle.com/grassknoted/asl-alphabet 15 | 16 | ## Project Demo 17 | https://www.youtube.com/watch?v=mIyWNsGfHAQ 18 | 19 | ### Prediction of Alphabet A 20 | 21 | ![WhatsApp Image 2020-02-16 at 6 15 27 AM](https://user-images.githubusercontent.com/35381035/74597347-064f8000-5084-11ea-9873-284635181e3c.jpeg) 22 | 23 | ### Prediction of Alphabet L 24 | 25 | ![WhatsApp Image 2020-02-16 at 6 14 19 AM](https://user-images.githubusercontent.com/35381035/74597364-4878c180-5084-11ea-8125-607075f8dd57.jpeg) 26 | 27 | ### Final Message 28 | 29 | ![WhatsApp Image 2020-02-16 at 6 13 45 AM](https://user-images.githubusercontent.com/35381035/74597368-5a5a6480-5084-11ea-8164-ccb37b95a272.jpeg) 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /script.py: -------------------------------------------------------------------------------- 1 | import os 2 | import cv2 3 | from tensorflow.keras.models import load_model 4 | import matplotlib.pyplot as plt 5 | import numpy as np 6 | from PIL import Image 7 | import time 8 | import collections 9 | import win32com.client as winc1 10 | 11 | 12 | 13 | v = winc1.Dispatch("SAPI.SpVoice") 14 | 15 | # Loading the model 16 | model = load_model('hack36_2.h5') 17 | 18 | 19 | def max_char(text): 20 | return collections.Counter(text).most_common(1)[0][0] 21 | 22 | # Don't touch this cell 23 | 24 | video = cv2.VideoCapture(0) 25 | text='' 26 | flag=[] 27 | frame_count = 0 28 | while True: 29 | _, frame = video.read() 30 | cv2.rectangle(frame,pt1=(100,100),pt2=(300,300),color=(0,255,0),thickness=6) 31 | 32 | frame_count += 1 33 | 34 | if frame_count%150 == 0: 35 | 36 | im = Image.fromarray(frame, 'RGB') 37 | 38 | img_array = np.asarray(frame) 39 | 40 | clone = img_array[100:300, 100:300].copy() 41 | 42 | clone_resized = cv2.resize(clone, (64,64)) 43 | 44 | img_array=clone_resized/255 45 | 46 | img_final = np.expand_dims(img_array, axis=0) 47 | 48 | prediction = model.predict(img_final) 49 | 50 | label = np.argmax(prediction) 51 | 52 | if label == 0: 53 | ch = 'A' 54 | elif label == 1: 55 | ch = 'B' 56 | elif label == 2: 57 | ch = 'C' 58 | elif label == 3: 59 | ch = 'D' 60 | elif label == 4: 61 | ch = 'E' 62 | elif label == 5: 63 | ch = 'F' 64 | elif label == 6: 65 | ch = 'G' 66 | elif label == 7: 67 | ch = 'H' 68 | elif label == 8: 69 | ch = 'I' 70 | elif label == 9: 71 | ch = 'J' 72 | elif label == 10: 73 | ch = 'K' 74 | elif label == 11: 75 | ch = 'L' 76 | elif label == 12: 77 | ch = 'M' 78 | elif label == 13: 79 | ch = 'N' 80 | elif label == 14: 81 | ch = 'O' 82 | elif label == 15: 83 | ch = 'P' 84 | elif label == 16: 85 | ch = 'Q' 86 | elif label == 17: 87 | ch = 'R' 88 | elif label == 18: 89 | ch = 'S' 90 | elif label == 19: 91 | ch = 'T' 92 | elif label == 20: 93 | ch = 'U' 94 | elif label == 21: 95 | ch = 'V' 96 | elif label == 22: 97 | ch = 'W' 98 | elif label == 23: 99 | ch = 'X' 100 | elif label == 24: 101 | ch = 'Y' 102 | elif label == 25: 103 | ch = 'Z' 104 | 105 | elif label == 26: 106 | # m = max_char(text) 107 | # text=m 108 | # flag=flag+text 109 | # text='' 110 | # Delete 111 | ch='' 112 | # text = '' 113 | 114 | 115 | elif label == 27:#Nothing 116 | # m = max_char(text) 117 | # flag = flag + m 118 | ch='' 119 | 120 | 121 | elif label == 28: # Space 122 | 123 | ch = ' ' 124 | print('space') 125 | 126 | flag.append(ch) 127 | print(ch) 128 | 129 | 130 | 131 | cv2.imshow("Capturing", frame) 132 | key=cv2.waitKey(1) 133 | if key == ord('q'): 134 | break 135 | 136 | text='' 137 | for i in flag: 138 | text+=i 139 | 140 | # for i in range(len(flag)): 141 | # if (i==0 and flag[i] == '*'): 142 | # continue 143 | # elif(flag[i]=='*'): 144 | # text=text+flag[i-1] 145 | 146 | 147 | video.release() 148 | cv2.destroyAllWindows() 149 | 150 | 151 | print(text) 152 | v.Speak(text) -------------------------------------------------------------------------------- /new.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "import os\n", 10 | "\n", 11 | "import tensorflow as tf\n", 12 | "from tensorflow import keras\n", 13 | "\n", 14 | "import numpy as np\n", 15 | "import matplotlib.pyplot as plt\n", 16 | "import cv2\n", 17 | "import pandas as pd\n", 18 | "%matplotlib inline" 19 | ] 20 | }, 21 | { 22 | "cell_type": "code", 23 | "execution_count": 2, 24 | "metadata": {}, 25 | "outputs": [], 26 | "source": [ 27 | "import skimage\n", 28 | "from skimage.transform import resize" 29 | ] 30 | }, 31 | { 32 | "cell_type": "code", 33 | "execution_count": 3, 34 | "metadata": { 35 | "scrolled": true 36 | }, 37 | "outputs": [], 38 | "source": [ 39 | "# ! pip install scikit-learn" 40 | ] 41 | }, 42 | { 43 | "cell_type": "code", 44 | "execution_count": 4, 45 | "metadata": {}, 46 | "outputs": [], 47 | "source": [ 48 | "batch_size = 64\n", 49 | "imageSize = 64\n", 50 | "target_dims = (imageSize, imageSize, 3)\n", 51 | "num_classes = 29\n", 52 | "\n", 53 | "train_len = 87000\n", 54 | "train_dir = r'C:/Users/vatsa/OneDrive/Desktop/Sign language Recognition/asl_alphabet_train/asl_alphabet_train/'\n", 55 | "\n", 56 | "def get_data(folder):\n", 57 | " \"\"\"\n", 58 | " Load the data and labels from the given folder.\n", 59 | " \"\"\"\n", 60 | " X = np.empty((train_len, imageSize, imageSize, 3), dtype=np.float32)\n", 61 | " y = np.empty((train_len,), dtype=np.int)\n", 62 | " cnt = 0\n", 63 | "\n", 64 | " for folderName in os.listdir(folder):\n", 65 | " if not folderName.startswith('.'):\n", 66 | " if folderName in ['A']:\n", 67 | " label = 0\n", 68 | " elif folderName in ['B']:\n", 69 | " label = 1\n", 70 | " elif folderName in ['C']:\n", 71 | " label = 2\n", 72 | " elif folderName in ['D']:\n", 73 | " label = 3\n", 74 | " elif folderName in ['E']:\n", 75 | " label = 4\n", 76 | " elif folderName in ['F']:\n", 77 | " label = 5\n", 78 | " elif folderName in ['G']:\n", 79 | " label = 6\n", 80 | " elif folderName in ['H']:\n", 81 | " label = 7\n", 82 | " elif folderName in ['I']:\n", 83 | " label = 8\n", 84 | " elif folderName in ['J']:\n", 85 | " label = 9\n", 86 | " elif folderName in ['K']:\n", 87 | " label = 10\n", 88 | " elif folderName in ['L']:\n", 89 | " label = 11\n", 90 | " elif folderName in ['M']:\n", 91 | " label = 12\n", 92 | " elif folderName in ['N']:\n", 93 | " label = 13\n", 94 | " elif folderName in ['O']:\n", 95 | " label = 14\n", 96 | " elif folderName in ['P']:\n", 97 | " label = 15\n", 98 | " elif folderName in ['Q']:\n", 99 | " label = 16\n", 100 | " elif folderName in ['R']:\n", 101 | " label = 17\n", 102 | " elif folderName in ['S']:\n", 103 | " label = 18\n", 104 | " elif folderName in ['T']:\n", 105 | " label = 19\n", 106 | " elif folderName in ['U']:\n", 107 | " label = 20\n", 108 | " elif folderName in ['V']:\n", 109 | " label = 21\n", 110 | " elif folderName in ['W']:\n", 111 | " label = 22\n", 112 | " elif folderName in ['X']:\n", 113 | " label = 23\n", 114 | " elif folderName in ['Y']:\n", 115 | " label = 24\n", 116 | " elif folderName in ['Z']:\n", 117 | " label = 25\n", 118 | " elif folderName in ['del']:\n", 119 | " label = 26\n", 120 | " elif folderName in ['nothing']:\n", 121 | " label = 27\n", 122 | " elif folderName in ['space']:\n", 123 | " label = 28 \n", 124 | " else:\n", 125 | " label = 29\n", 126 | " for image_filename in os.listdir(folder + folderName):\n", 127 | " img_file = cv2.imread(folder + folderName + '/' + image_filename)\n", 128 | " if img_file is not None:\n", 129 | " img_file = skimage.transform.resize(img_file, (imageSize, imageSize, 3))\n", 130 | " img_arr = np.asarray(img_file).reshape((-1, imageSize, imageSize, 3))\n", 131 | " \n", 132 | " X[cnt] = img_arr\n", 133 | " y[cnt] = label\n", 134 | " cnt += 1\n", 135 | "# X.append(img_arr)\n", 136 | "# y.append(label)\n", 137 | "# X = np.asarray(X)\n", 138 | "# y = np.asarray(y)\n", 139 | " return X,y\n", 140 | "X_train, y_train = get_data(train_dir)" 141 | ] 142 | }, 143 | { 144 | "cell_type": "code", 145 | "execution_count": 5, 146 | "metadata": {}, 147 | "outputs": [ 148 | { 149 | "data": { 150 | "text/plain": [ 151 | "(87000, 64, 64, 3)" 152 | ] 153 | }, 154 | "execution_count": 5, 155 | "metadata": {}, 156 | "output_type": "execute_result" 157 | } 158 | ], 159 | "source": [ 160 | "X_train.shape" 161 | ] 162 | }, 163 | { 164 | "cell_type": "code", 165 | "execution_count": 6, 166 | "metadata": { 167 | "scrolled": true 168 | }, 169 | "outputs": [ 170 | { 171 | "data": { 172 | "text/plain": [ 173 | "(87000,)" 174 | ] 175 | }, 176 | "execution_count": 6, 177 | "metadata": {}, 178 | "output_type": "execute_result" 179 | } 180 | ], 181 | "source": [ 182 | "y_train.shape" 183 | ] 184 | }, 185 | { 186 | "cell_type": "code", 187 | "execution_count": 7, 188 | "metadata": {}, 189 | "outputs": [ 190 | { 191 | "data": { 192 | "text/plain": [ 193 | "(64, 64, 3)" 194 | ] 195 | }, 196 | "execution_count": 7, 197 | "metadata": {}, 198 | "output_type": "execute_result" 199 | } 200 | ], 201 | "source": [ 202 | "X_train[0].shape" 203 | ] 204 | }, 205 | { 206 | "cell_type": "code", 207 | "execution_count": 8, 208 | "metadata": {}, 209 | "outputs": [ 210 | { 211 | "data": { 212 | "text/plain": [ 213 | "" 214 | ] 215 | }, 216 | "execution_count": 8, 217 | "metadata": {}, 218 | "output_type": "execute_result" 219 | }, 220 | { 221 | "data": { 222 | "image/png": "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\n", 223 | "text/plain": [ 224 | "
" 225 | ] 226 | }, 227 | "metadata": { 228 | "needs_background": "light" 229 | }, 230 | "output_type": "display_data" 231 | } 232 | ], 233 | "source": [ 234 | "plt.imshow(X_train[0])" 235 | ] 236 | }, 237 | { 238 | "cell_type": "code", 239 | "execution_count": 9, 240 | "metadata": {}, 241 | "outputs": [], 242 | "source": [ 243 | "#X_train[0]" 244 | ] 245 | }, 246 | { 247 | "cell_type": "code", 248 | "execution_count": 9, 249 | "metadata": {}, 250 | "outputs": [], 251 | "source": [ 252 | "X_data = X_train\n", 253 | "y_data = y_train" 254 | ] 255 | }, 256 | { 257 | "cell_type": "code", 258 | "execution_count": 10, 259 | "metadata": {}, 260 | "outputs": [], 261 | "source": [ 262 | "from tensorflow.keras.utils import to_categorical" 263 | ] 264 | }, 265 | { 266 | "cell_type": "code", 267 | "execution_count": 13, 268 | "metadata": {}, 269 | "outputs": [], 270 | "source": [ 271 | "y_cat_train = to_categorical(y_train,29)\n", 272 | "y_cat_test = to_categorical(y_test,29)" 273 | ] 274 | }, 275 | { 276 | "cell_type": "code", 277 | "execution_count": 14, 278 | "metadata": {}, 279 | "outputs": [ 280 | { 281 | "data": { 282 | "text/plain": [ 283 | "(60900, 29)" 284 | ] 285 | }, 286 | "execution_count": 14, 287 | "metadata": {}, 288 | "output_type": "execute_result" 289 | } 290 | ], 291 | "source": [ 292 | "y_cat_train.shape" 293 | ] 294 | }, 295 | { 296 | "cell_type": "code", 297 | "execution_count": null, 298 | "metadata": {}, 299 | "outputs": [], 300 | "source": [] 301 | }, 302 | { 303 | "cell_type": "code", 304 | "execution_count": null, 305 | "metadata": {}, 306 | "outputs": [], 307 | "source": [] 308 | }, 309 | { 310 | "cell_type": "code", 311 | "execution_count": 12, 312 | "metadata": {}, 313 | "outputs": [], 314 | "source": [ 315 | "from sklearn.model_selection import train_test_split\n", 316 | "\n", 317 | "X_train, X_test, y_train, y_test = train_test_split(X_data, y_data, test_size=0.3,random_state=42,stratify=y_data)\n", 318 | "#X_test, X_val, y_test, y_val = train_test_split(X_temp, y_temp, test_size=0.5,stratify=y_temp, random_state=42)" 319 | ] 320 | }, 321 | { 322 | "cell_type": "code", 323 | "execution_count": 15, 324 | "metadata": {}, 325 | "outputs": [ 326 | { 327 | "data": { 328 | "text/plain": [ 329 | "(60900, 64, 64, 3)" 330 | ] 331 | }, 332 | "execution_count": 15, 333 | "metadata": {}, 334 | "output_type": "execute_result" 335 | } 336 | ], 337 | "source": [ 338 | "X_train.shape" 339 | ] 340 | }, 341 | { 342 | "cell_type": "code", 343 | "execution_count": 31, 344 | "metadata": {}, 345 | "outputs": [ 346 | { 347 | "data": { 348 | "text/plain": [ 349 | "(60900,)" 350 | ] 351 | }, 352 | "execution_count": 31, 353 | "metadata": {}, 354 | "output_type": "execute_result" 355 | } 356 | ], 357 | "source": [ 358 | "y_train.shape" 359 | ] 360 | }, 361 | { 362 | "cell_type": "code", 363 | "execution_count": 16, 364 | "metadata": {}, 365 | "outputs": [ 366 | { 367 | "name": "stdout", 368 | "output_type": "stream", 369 | "text": [ 370 | "(60900, 64, 64, 3)\n", 371 | "(60900,)\n", 372 | "(26100, 64, 64, 3)\n", 373 | "(26100,)\n", 374 | "(60900, 29)\n", 375 | "(26100, 29)\n" 376 | ] 377 | } 378 | ], 379 | "source": [ 380 | "print(X_train.shape)\n", 381 | "print(y_train.shape)\n", 382 | "print(X_test.shape)\n", 383 | "print(y_test.shape)\n", 384 | "print(y_cat_train.shape)\n", 385 | "print(y_cat_test.shape)" 386 | ] 387 | }, 388 | { 389 | "cell_type": "code", 390 | "execution_count": 17, 391 | "metadata": {}, 392 | "outputs": [ 393 | { 394 | "name": "stdout", 395 | "output_type": "stream", 396 | "text": [ 397 | "(26100, 64, 64, 3)\n", 398 | "(26100,)\n" 399 | ] 400 | } 401 | ], 402 | "source": [ 403 | "print(X_test.shape)\n", 404 | "print(y_test.shape)" 405 | ] 406 | }, 407 | { 408 | "cell_type": "code", 409 | "execution_count": null, 410 | "metadata": { 411 | "scrolled": true 412 | }, 413 | "outputs": [], 414 | "source": [ 415 | "# !pip install keras" 416 | ] 417 | }, 418 | { 419 | "cell_type": "code", 420 | "execution_count": null, 421 | "metadata": {}, 422 | "outputs": [], 423 | "source": [] 424 | }, 425 | { 426 | "cell_type": "code", 427 | "execution_count": null, 428 | "metadata": {}, 429 | "outputs": [], 430 | "source": [] 431 | }, 432 | { 433 | "cell_type": "code", 434 | "execution_count": 20, 435 | "metadata": {}, 436 | "outputs": [ 437 | { 438 | "name": "stderr", 439 | "output_type": "stream", 440 | "text": [ 441 | "Using TensorFlow backend.\n" 442 | ] 443 | } 444 | ], 445 | "source": [ 446 | "from keras.models import Sequential\n", 447 | "from keras.layers import Conv2D, MaxPooling2D, Activation, Dense, Flatten" 448 | ] 449 | }, 450 | { 451 | "cell_type": "code", 452 | "execution_count": 21, 453 | "metadata": {}, 454 | "outputs": [ 455 | { 456 | "name": "stdout", 457 | "output_type": "stream", 458 | "text": [ 459 | "WARNING:tensorflow:From c:\\anaconda3\\envs\\hack36\\lib\\site-packages\\tensorflow_core\\python\\ops\\resource_variable_ops.py:1630: calling BaseResourceVariable.__init__ (from tensorflow.python.ops.resource_variable_ops) with constraint is deprecated and will be removed in a future version.\n", 460 | "Instructions for updating:\n", 461 | "If using Keras pass *_constraint arguments to layers.\n", 462 | "WARNING:tensorflow:From c:\\anaconda3\\envs\\hack36\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:4070: The name tf.nn.max_pool is deprecated. Please use tf.nn.max_pool2d instead.\n", 463 | "\n", 464 | "Model: \"sequential_1\"\n", 465 | "_________________________________________________________________\n", 466 | "Layer (type) Output Shape Param # \n", 467 | "=================================================================\n", 468 | "conv2d_1 (Conv2D) (None, 60, 60, 32) 2432 \n", 469 | "_________________________________________________________________\n", 470 | "activation_1 (Activation) (None, 60, 60, 32) 0 \n", 471 | "_________________________________________________________________\n", 472 | "max_pooling2d_1 (MaxPooling2 (None, 30, 30, 32) 0 \n", 473 | "_________________________________________________________________\n", 474 | "conv2d_2 (Conv2D) (None, 28, 28, 64) 18496 \n", 475 | "_________________________________________________________________\n", 476 | "activation_2 (Activation) (None, 28, 28, 64) 0 \n", 477 | "_________________________________________________________________\n", 478 | "max_pooling2d_2 (MaxPooling2 (None, 14, 14, 64) 0 \n", 479 | "_________________________________________________________________\n", 480 | "conv2d_3 (Conv2D) (None, 12, 12, 64) 36928 \n", 481 | "_________________________________________________________________\n", 482 | "activation_3 (Activation) (None, 12, 12, 64) 0 \n", 483 | "_________________________________________________________________\n", 484 | "max_pooling2d_3 (MaxPooling2 (None, 6, 6, 64) 0 \n", 485 | "_________________________________________________________________\n", 486 | "flatten_1 (Flatten) (None, 2304) 0 \n", 487 | "_________________________________________________________________\n", 488 | "dense_1 (Dense) (None, 128) 295040 \n", 489 | "_________________________________________________________________\n", 490 | "dense_2 (Dense) (None, 29) 3741 \n", 491 | "=================================================================\n", 492 | "Total params: 356,637\n", 493 | "Trainable params: 356,637\n", 494 | "Non-trainable params: 0\n", 495 | "_________________________________________________________________\n" 496 | ] 497 | } 498 | ], 499 | "source": [ 500 | "# Construction of model\n", 501 | "model = Sequential()\n", 502 | "\n", 503 | "model.add(Conv2D(32, (5, 5), input_shape=(64, 64, 3)))\n", 504 | "model.add(Activation('relu'))\n", 505 | "model.add(MaxPooling2D((2, 2)))\n", 506 | "\n", 507 | "model.add(Conv2D(64, (3, 3)))\n", 508 | "model.add(Activation('relu'))\n", 509 | "model.add(MaxPooling2D((2, 2)))\n", 510 | "\n", 511 | "model.add(Conv2D(64, (3, 3)))\n", 512 | "model.add(Activation('relu'))\n", 513 | "model.add(MaxPooling2D((2, 2)))\n", 514 | "\n", 515 | "model.add(Flatten())\n", 516 | "\n", 517 | "model.add(Dense(128, activation='relu'))\n", 518 | "\n", 519 | "model.add(Dense(29, activation='softmax'))\n", 520 | "\n", 521 | "model.summary()" 522 | ] 523 | }, 524 | { 525 | "cell_type": "code", 526 | "execution_count": 22, 527 | "metadata": {}, 528 | "outputs": [], 529 | "source": [ 530 | "from tensorflow.keras.callbacks import EarlyStopping\n", 531 | "early_stop = EarlyStopping(monitor='val_loss',patience=2)\n" 532 | ] 533 | }, 534 | { 535 | "cell_type": "code", 536 | "execution_count": null, 537 | "metadata": {}, 538 | "outputs": [], 539 | "source": [] 540 | }, 541 | { 542 | "cell_type": "code", 543 | "execution_count": 23, 544 | "metadata": {}, 545 | "outputs": [], 546 | "source": [ 547 | "model.compile(optimizer='adam',\n", 548 | " loss='categorical_crossentropy',\n", 549 | " metrics=['accuracy'])" 550 | ] 551 | }, 552 | { 553 | "cell_type": "code", 554 | "execution_count": null, 555 | "metadata": { 556 | "scrolled": true 557 | }, 558 | "outputs": [], 559 | "source": [ 560 | "model.fit(X_train, y_cat_train,\n", 561 | " epochs=50,\n", 562 | " batch_size=64,\n", 563 | " verbose=2,\n", 564 | " validation_data=(X_test, y_cat_test),\n", 565 | " callbacks=[early_stop])" 566 | ] 567 | }, 568 | { 569 | "cell_type": "code", 570 | "execution_count": 52, 571 | "metadata": {}, 572 | "outputs": [], 573 | "source": [ 574 | "from keras.models import load_model" 575 | ] 576 | }, 577 | { 578 | "cell_type": "code", 579 | "execution_count": 53, 580 | "metadata": {}, 581 | "outputs": [], 582 | "source": [ 583 | "model.save('hack36_2.h5')" 584 | ] 585 | }, 586 | { 587 | "cell_type": "code", 588 | "execution_count": null, 589 | "metadata": {}, 590 | "outputs": [], 591 | "source": [] 592 | }, 593 | { 594 | "cell_type": "code", 595 | "execution_count": null, 596 | "metadata": {}, 597 | "outputs": [], 598 | "source": [ 599 | "batch_size = 64\n", 600 | "imageSize = 64\n", 601 | "target_dims = (imageSize, imageSize, 3)\n", 602 | "num_classes = 29\n", 603 | "\n", 604 | "train_len = 87000\n", 605 | "train_dir = r'C:/Users/vatsa/OneDrive/Desktop/Sign language Recognition/asl_alphabet_train/asl_alphabet_train/'\n", 606 | "\n", 607 | "def get_data(folder):\n", 608 | " \"\"\"\n", 609 | " Load the data and labels from the given folder.\n", 610 | " \"\"\"\n", 611 | " X = np.empty((train_len, imageSize, imageSize, 3), dtype=np.float32)\n", 612 | " y = np.empty((train_len,), dtype=np.int)\n", 613 | " cnt = 0\n", 614 | "\n", 615 | " for folderName in os.listdir(folder):\n", 616 | " if not folderName.startswith('.'):\n", 617 | " if folderName in ['A']:\n", 618 | " label = 0\n", 619 | " elif folderName in ['B']:\n", 620 | " label = 1\n", 621 | " elif folderName in ['C']:\n", 622 | " label = 2\n", 623 | " elif folderName in ['D']:\n", 624 | " label = 3\n", 625 | " elif folderName in ['E']:\n", 626 | " label = 4\n", 627 | " elif folderName in ['F']:\n", 628 | " label = 5\n", 629 | " elif folderName in ['G']:\n", 630 | " label = 6\n", 631 | " elif folderName in ['H']:\n", 632 | " label = 7\n", 633 | " elif folderName in ['I']:\n", 634 | " label = 8\n", 635 | " elif folderName in ['J']:\n", 636 | " label = 9\n", 637 | " elif folderName in ['K']:\n", 638 | " label = 10\n", 639 | " elif folderName in ['L']:\n", 640 | " label = 11\n", 641 | " elif folderName in ['M']:\n", 642 | " label = 12\n", 643 | " elif folderName in ['N']:\n", 644 | " label = 13\n", 645 | " elif folderName in ['O']:\n", 646 | " label = 14\n", 647 | " elif folderName in ['P']:\n", 648 | " label = 15\n", 649 | " elif folderName in ['Q']:\n", 650 | " label = 16\n", 651 | " elif folderName in ['R']:\n", 652 | " label = 17\n", 653 | " elif folderName in ['S']:\n", 654 | " label = 18\n", 655 | " elif folderName in ['T']:\n", 656 | " label = 19\n", 657 | " elif folderName in ['U']:\n", 658 | " label = 20\n", 659 | " elif folderName in ['V']:\n", 660 | " label = 21\n", 661 | " elif folderName in ['W']:\n", 662 | " label = 22\n", 663 | " elif folderName in ['X']:\n", 664 | " label = 23\n", 665 | " elif folderName in ['Y']:\n", 666 | " label = 24\n", 667 | " elif folderName in ['Z']:\n", 668 | " label = 25\n", 669 | " elif folderName in ['del']:\n", 670 | " label = 26\n", 671 | " elif folderName in ['nothing']:\n", 672 | " label = 27\n", 673 | " elif folderName in ['space']:\n", 674 | " label = 28 \n", 675 | " else:\n", 676 | " label = 29\n", 677 | " for image_filename in os.listdir(folder + folderName):\n", 678 | " img_file = cv2.imread(folder + folderName + '/' + image_filename)\n", 679 | " if img_file is not None:\n", 680 | " img_file = skimage.transform.resize(img_file, (imageSize, imageSize, 3))\n", 681 | " img_arr = np.asarray(img_file).reshape((-1, imageSize, imageSize, 3))\n", 682 | " \n", 683 | " X[cnt] = img_arr\n", 684 | " y[cnt] = label\n", 685 | " cnt += 1\n", 686 | "# X.append(img_arr)\n", 687 | "# y.append(label)\n", 688 | "# X = np.asarray(X)\n", 689 | "# y = np.asarray(y)\n", 690 | " return X,y\n", 691 | "X_train, y_train = get_data(train_dir) " 692 | ] 693 | }, 694 | { 695 | "cell_type": "code", 696 | "execution_count": null, 697 | "metadata": {}, 698 | "outputs": [], 699 | "source": [] 700 | }, 701 | { 702 | "cell_type": "code", 703 | "execution_count": 52, 704 | "metadata": {}, 705 | "outputs": [ 706 | { 707 | "name": "stdout", 708 | "output_type": "stream", 709 | "text": [ 710 | "28\n", 711 | "C:\\Users\\vatsa\\OneDrive\\Desktop\\Sign language Recognition\\asl_alphabet_test\\asl_alphabet_test\\A_test.jpg\n" 712 | ] 713 | } 714 | ], 715 | "source": [ 716 | "imagepaths = []\n", 717 | "\n", 718 | "# Go through all the files and subdirectories inside a folder and save path to images in a list\n", 719 | "for root, dirs, files in os.walk(r\"C:\\Users\\vatsa\\OneDrive\\Desktop\\Sign language Recognition\\asl_alphabet_test\", topdown=False): \n", 720 | " for name in files:\n", 721 | " path = os.path.join(root, name)\n", 722 | " if path.endswith(\"jpg\"):\n", 723 | " imagepaths.append(path)\n", 724 | "\n", 725 | "print(len(imagepaths))\n", 726 | "print(imagepaths[0])" 727 | ] 728 | }, 729 | { 730 | "cell_type": "code", 731 | "execution_count": null, 732 | "metadata": {}, 733 | "outputs": [], 734 | "source": [ 735 | "X = [] # Image data\n", 736 | "y = [] # Labels\n", 737 | "\n", 738 | "for path in imagepaths:\n", 739 | " img = cv2.imread(path)\n", 740 | " img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)\n", 741 | " img = cv2.resize(img, (320, 120))\n", 742 | " X.append(img)\n", 743 | " \n", 744 | " category = path.split('\\\\')[8]\n", 745 | " label = int(category.split(\"_\")[0])\n", 746 | " y.append(label)\n", 747 | "\n", 748 | "X = np.array(X, dtype=\"uint8\")\n", 749 | "X = X.reshape(len(imagepaths), 64, 64, 3)\n", 750 | "y = np.array(y)\n", 751 | "\n", 752 | "print(\"Images loaded: \", len(X))\n", 753 | "print(\"Labels loaded: \", len(y))\n", 754 | "\n", 755 | "print(y[0], imagepaths[0])" 756 | ] 757 | }, 758 | { 759 | "cell_type": "code", 760 | "execution_count": null, 761 | "metadata": {}, 762 | "outputs": [], 763 | "source": [] 764 | }, 765 | { 766 | "cell_type": "code", 767 | "execution_count": null, 768 | "metadata": {}, 769 | "outputs": [], 770 | "source": [] 771 | }, 772 | { 773 | "cell_type": "code", 774 | "execution_count": null, 775 | "metadata": {}, 776 | "outputs": [], 777 | "source": [] 778 | }, 779 | { 780 | "cell_type": "code", 781 | "execution_count": null, 782 | "metadata": {}, 783 | "outputs": [], 784 | "source": [] 785 | }, 786 | { 787 | "cell_type": "code", 788 | "execution_count": 25, 789 | "metadata": {}, 790 | "outputs": [], 791 | "source": [ 792 | "metrics = pd.DataFrame(model.history.history)" 793 | ] 794 | }, 795 | { 796 | "cell_type": "code", 797 | "execution_count": 26, 798 | "metadata": {}, 799 | "outputs": [ 800 | { 801 | "data": { 802 | "text/html": [ 803 | "
\n", 804 | "\n", 817 | "\n", 818 | " \n", 819 | " \n", 820 | " \n", 821 | " \n", 822 | " \n", 823 | " \n", 824 | " \n", 825 | " \n", 826 | " \n", 827 | " \n", 828 | " \n", 829 | " \n", 830 | " \n", 831 | " \n", 832 | " \n", 833 | " \n", 834 | " \n", 835 | " \n", 836 | " \n", 837 | " \n", 838 | " \n", 839 | " \n", 840 | " \n", 841 | " \n", 842 | " \n", 843 | " \n", 844 | " \n", 845 | " \n", 846 | " \n", 847 | " \n", 848 | " \n", 849 | " \n", 850 | " \n", 851 | " \n", 852 | " \n", 853 | " \n", 854 | " \n", 855 | " \n", 856 | " \n", 857 | " \n", 858 | " \n", 859 | " \n", 860 | " \n", 861 | " \n", 862 | " \n", 863 | " \n", 864 | " \n", 865 | " \n", 866 | " \n", 867 | " \n", 868 | " \n", 869 | " \n", 870 | " \n", 871 | " \n", 872 | " \n", 873 | " \n", 874 | " \n", 875 | " \n", 876 | " \n", 877 | " \n", 878 | " \n", 879 | " \n", 880 | " \n", 881 | " \n", 882 | " \n", 883 | " \n", 884 | " \n", 885 | "
val_lossval_accuracylossaccuracy
00.2330530.9231031.0302380.690739
10.1129550.9627200.1491780.950460
20.0637740.9794250.0733740.976929
30.0325640.9913030.0486750.984910
40.0527430.9831800.0423920.986929
50.0186030.9939850.0301580.991018
60.0756450.9789270.0328820.990246
70.0448890.9892340.0225270.993465
\n", 886 | "
" 887 | ], 888 | "text/plain": [ 889 | " val_loss val_accuracy loss accuracy\n", 890 | "0 0.233053 0.923103 1.030238 0.690739\n", 891 | "1 0.112955 0.962720 0.149178 0.950460\n", 892 | "2 0.063774 0.979425 0.073374 0.976929\n", 893 | "3 0.032564 0.991303 0.048675 0.984910\n", 894 | "4 0.052743 0.983180 0.042392 0.986929\n", 895 | "5 0.018603 0.993985 0.030158 0.991018\n", 896 | "6 0.075645 0.978927 0.032882 0.990246\n", 897 | "7 0.044889 0.989234 0.022527 0.993465" 898 | ] 899 | }, 900 | "execution_count": 26, 901 | "metadata": {}, 902 | "output_type": "execute_result" 903 | } 904 | ], 905 | "source": [ 906 | "metrics" 907 | ] 908 | }, 909 | { 910 | "cell_type": "code", 911 | "execution_count": 27, 912 | "metadata": {}, 913 | "outputs": [ 914 | { 915 | "data": { 916 | "text/plain": [ 917 | "" 918 | ] 919 | }, 920 | "execution_count": 27, 921 | "metadata": {}, 922 | "output_type": "execute_result" 923 | }, 924 | { 925 | "data": { 926 | "image/png": "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\n", 927 | "text/plain": [ 928 | "
" 929 | ] 930 | }, 931 | "metadata": { 932 | "needs_background": "light" 933 | }, 934 | "output_type": "display_data" 935 | } 936 | ], 937 | "source": [ 938 | "metrics[['loss','val_loss']].plot()" 939 | ] 940 | }, 941 | { 942 | "cell_type": "code", 943 | "execution_count": 28, 944 | "metadata": {}, 945 | "outputs": [ 946 | { 947 | "data": { 948 | "text/plain": [ 949 | "" 950 | ] 951 | }, 952 | "execution_count": 28, 953 | "metadata": {}, 954 | "output_type": "execute_result" 955 | }, 956 | { 957 | "data": { 958 | "image/png": "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fvazn+n999+vqqoPPPCA3nvvvX22a25u1jlz5mhnZ6eqql566aX60UcfnfUaBvqdABU6SKaG8zeFB5gZcr8IqB5k2/X0tm3Odd/zdqKxjcN1LXxtzazRegpjTBSsXLmSU6dOUV1dTW1tLbm5uUyfPp377ruPrVu3kpCQwPHjx6mpqWHatGlDPpaq8vDDD5+13zvvvMPNN99Mfr7T9u2eb/6dd97pmWPe5XKRnZ097MlMuidYA/B4PNx6662cOHGCzs7OnvnzB5s3/5prruH1119n8eLFdHV1sXz58nP8aZ0tnKDfAcwXkdnAcZww/2r/jUQkG7gS+Pq57hsp5W7rzxsTr26++WZeeuklTp48yfr163n++eepra1l586dJCUlUVxcfNY88wMZbD8dZL75gSQmJhIIBHruDzW//T333MP999/PF7/4Rd57772eFs9gz3f77bfzd3/3dyxatChiZ6satkevqj7gbuBN4GPg16q6T0TuFJE7Qza9CXhLVVuG2zcilQ+gzO0lNz2JRdMyR+spjDFRsn79ejZv3sxLL73EzTffTGNjI1OmTCEpKYl3332Xo0ePhvU4g+23du1afv3rX+P1OgPG7vnm165dy09/+lMA/H4/TU1NTJ06lVOnTuH1euno6OD1118f8vm657f/5S9/2bN8sHnz16xZQ1VVFS+88AIbNmwI98czpLCOo1fVLaq6QFXnqurfBpc9papPhWzzrKquD2ff0aCqlLu9XDJnMgkJ4b0rG2PGj6VLl3LmzBkKCwuZPn06X/va16ioqKC0tJTnn3+eRYvCm458sP2WLl3Kd7/7Xa688kpKSkp6PgR94oknePfdd1m+fDmrVq1i3759JCUl8YMf/IA1a9Zw/fXXD/ncjz76KLfccguXX355T1sIBp83H+ArX/kKl112WVinQQxH3MxH397l5we/2ctl8/K58cIBD+wxxoyAzUc/9q6//nruu+8+1q5dO+D6c52PPm6mQEhNcvEPN5dYyBtjxq2GhgYWLFhAWlraoCE/EtE/kt8YY0bBnj17eo6F75aSksL7778fpYqGl5OTw8GDByP+uBb0xphhncsRKbFi+fLl7N69O9plRNxI2u1x07oxxoyO1NRUvF7viALGRJaq4vV6SU1NPaf9bERvjBlSUVERHo+H85maxEROamoqRUVF57SPBb0xZkhJSUk93+Y045O1bowxJs5Z0BtjTJyzoDfGmDgXk9+MFZFaILyJK86WD9RFsJzRNJ5qhfFV73iqFcZXveOpVhhf9Z5PrReoasFAK2Iy6M+HiFQM9jXgWDOeaoXxVe94qhXGV73jqVYYX/WOVq3WujHGmDhnQW+MMXEuHoN+U7QLOAfjqVYYX/WOp1phfNU7nmqF8VXvqNQadz16Y4wxfcXjiN4YY0wIC3pjjIlzcRP0IrJORA6IyCEReSja9QxFRJ4WkVMisjfatQxHRGaKyLsi8rGI7BORe6Nd01BEJFVEtovIh8F6fxjtmoYjIi4R2SUig594NEaIyBER2SMiu0Xk3E4DN8ZEJEdEXhKRT4L/fi+Ndk2DEZGFwZ9p96VJRL4dscePhx69iLiAg8DnAQ+wA9igqvujWtggROQKoBl4TlWXRbueoYjIdGC6qn4gIpnATuBLMfyzFSBDVZtFJAn4L+BeVd0W5dIGJSL3A6VAlqpeH+16hiIiR4BSVY35LyCJyC+B/1TVn4tIMpCuqg3Rrms4wTw7DqxR1ZF+cbSPeBnRrwYOqWqlqnYCm4Ebo1zToFR1K1Af7TrCoaonVPWD4O0zwMdAzJ6vUR3NwbtJwUvMjmZEpAj4AvDzaNcST0QkC7gC+AWAqnaOh5APWgu4IxXyED9BXwhUhdz3EMNhNF6JSDGwEojdc7HR0wrZDZwCfqeqsVzvPwMPAIFoFxImBd4SkZ0icke0ixnCHKAWeCbYFvu5iGREu6gwrQdejOQDxkvQD3SOs5gdxY1HIjIJeBn4tqo2RbueoaiqX1UvBIqA1SISk+0xEbkeOKWqO6Ndyzm4TFUvAq4D7gq2IWNRInAR8FNVXQm0ADH92R1AsMX0ReB/RfJx4yXoPcDMkPtFQHWUaok7wV73y8DzqvpKtOsJV/BP9feAdVEuZTCXAV8M9r03A9eIyK+iW9LQVLU6eH0KeBWnbRqLPIAn5K+5l3CCP9ZdB3ygqjWRfNB4CfodwHwRmR18R1wPvBblmuJC8MPNXwAfq+r/F+16hiMiBSKSE7ydBnwO+CS6VQ1MVb+jqkWqWozzb/YdVf16lMsalIhkBD+QJ9gGuRaIySPHVPUkUCUiC4OL1gIxeQBBPxuIcNsG4uRUgqrqE5G7gTcBF/C0qu6LclmDEpEXgauAfBHxAI+o6i+iW9WgLgNuA/YE+94AD6vqlijWNJTpwC+DRy4kAL9W1Zg/bHGcmAq86rz3kwi8oKpvRLekId0DPB8c/FUCG6Ncz5BEJB3nyMH/J+KPHQ+HVxpjjBlcvLRujDHGDMKC3hhj4pwFvTHGxDkLemOMiXMW9MYYE+cs6I0xJs5Z0BtjTJz7v2xjuc8nHA8GAAAAAElFTkSuQmCC\n", 959 | "text/plain": [ 960 | "
" 961 | ] 962 | }, 963 | "metadata": { 964 | "needs_background": "light" 965 | }, 966 | "output_type": "display_data" 967 | } 968 | ], 969 | "source": [ 970 | "metrics[['accuracy','val_accuracy']].plot()" 971 | ] 972 | }, 973 | { 974 | "cell_type": "code", 975 | "execution_count": 29, 976 | "metadata": {}, 977 | "outputs": [ 978 | { 979 | "data": { 980 | "text/plain": [ 981 | "[0.04488939310655076, 0.9892337322235107]" 982 | ] 983 | }, 984 | "execution_count": 29, 985 | "metadata": {}, 986 | "output_type": "execute_result" 987 | } 988 | ], 989 | "source": [ 990 | "model.evaluate(X_test,y_cat_test,verbose=0)" 991 | ] 992 | }, 993 | { 994 | "cell_type": "code", 995 | "execution_count": 44, 996 | "metadata": {}, 997 | "outputs": [], 998 | "source": [ 999 | "predictions = model.predict_classes(X_test)" 1000 | ] 1001 | }, 1002 | { 1003 | "cell_type": "code", 1004 | "execution_count": 47, 1005 | "metadata": {}, 1006 | "outputs": [], 1007 | "source": [ 1008 | "from sklearn.metrics import classification_report, confusion_matrix" 1009 | ] 1010 | }, 1011 | { 1012 | "cell_type": "code", 1013 | "execution_count": 49, 1014 | "metadata": {}, 1015 | "outputs": [ 1016 | { 1017 | "ename": "NameError", 1018 | "evalue": "name 'predictions' is not defined", 1019 | "output_type": "error", 1020 | "traceback": [ 1021 | "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", 1022 | "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", 1023 | "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mclassification_report\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my_test\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mpredictions\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", 1024 | "\u001b[1;31mNameError\u001b[0m: name 'predictions' is not defined" 1025 | ] 1026 | } 1027 | ], 1028 | "source": [ 1029 | "print(classification_report(y_test,predictions))" 1030 | ] 1031 | }, 1032 | { 1033 | "cell_type": "code", 1034 | "execution_count": 45, 1035 | "metadata": {}, 1036 | "outputs": [], 1037 | "source": [ 1038 | "import seaborn as sns" 1039 | ] 1040 | }, 1041 | { 1042 | "cell_type": "code", 1043 | "execution_count": 48, 1044 | "metadata": {}, 1045 | "outputs": [ 1046 | { 1047 | "ename": "NameError", 1048 | "evalue": "name 'predictions' is not defined", 1049 | "output_type": "error", 1050 | "traceback": [ 1051 | "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", 1052 | "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", 1053 | "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0msns\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mheatmap\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mconfusion_matrix\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my_test\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mpredictions\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", 1054 | "\u001b[1;31mNameError\u001b[0m: name 'predictions' is not defined" 1055 | ] 1056 | } 1057 | ], 1058 | "source": [ 1059 | "sns.heatmap(confusion_matrix(y_test,predictions))" 1060 | ] 1061 | }, 1062 | { 1063 | "cell_type": "code", 1064 | "execution_count": 31, 1065 | "metadata": {}, 1066 | "outputs": [], 1067 | "source": [ 1068 | "test_path = 'C:\\\\Users\\\\vatsa\\\\OneDrive\\\\Desktop\\\\Sign language Recognition\\\\asl_alphabet_test\\\\asl_alphabet_test'" 1069 | ] 1070 | }, 1071 | { 1072 | "cell_type": "code", 1073 | "execution_count": 36, 1074 | "metadata": {}, 1075 | "outputs": [ 1076 | { 1077 | "data": { 1078 | "text/plain": [ 1079 | "'A_test.jpg'" 1080 | ] 1081 | }, 1082 | "execution_count": 36, 1083 | "metadata": {}, 1084 | "output_type": "execute_result" 1085 | } 1086 | ], 1087 | "source": [ 1088 | "os.listdir(test_path)[0]" 1089 | ] 1090 | }, 1091 | { 1092 | "cell_type": "code", 1093 | "execution_count": 37, 1094 | "metadata": {}, 1095 | "outputs": [], 1096 | "source": [ 1097 | "test_list = os.listdir(test_path)" 1098 | ] 1099 | }, 1100 | { 1101 | "cell_type": "code", 1102 | "execution_count": 38, 1103 | "metadata": {}, 1104 | "outputs": [ 1105 | { 1106 | "data": { 1107 | "text/plain": [ 1108 | "['A_test.jpg',\n", 1109 | " 'B_test.jpg',\n", 1110 | " 'C_test.jpg',\n", 1111 | " 'D_test.jpg',\n", 1112 | " 'E_test.jpg',\n", 1113 | " 'F_test.jpg',\n", 1114 | " 'G_test.jpg',\n", 1115 | " 'H_test.jpg',\n", 1116 | " 'I_test.jpg',\n", 1117 | " 'J_test.jpg',\n", 1118 | " 'K_test.jpg',\n", 1119 | " 'L_test.jpg',\n", 1120 | " 'M_test.jpg',\n", 1121 | " 'nothing_test.jpg',\n", 1122 | " 'N_test.jpg',\n", 1123 | " 'O_test.jpg',\n", 1124 | " 'P_test.jpg',\n", 1125 | " 'Q_test.jpg',\n", 1126 | " 'R_test.jpg',\n", 1127 | " 'space_test.jpg',\n", 1128 | " 'S_test.jpg',\n", 1129 | " 'T_test.jpg',\n", 1130 | " 'U_test.jpg',\n", 1131 | " 'V_test.jpg',\n", 1132 | " 'W_test.jpg',\n", 1133 | " 'X_test.jpg',\n", 1134 | " 'Y_test.jpg',\n", 1135 | " 'Z_test.jpg']" 1136 | ] 1137 | }, 1138 | "execution_count": 38, 1139 | "metadata": {}, 1140 | "output_type": "execute_result" 1141 | } 1142 | ], 1143 | "source": [ 1144 | "test_list" 1145 | ] 1146 | }, 1147 | { 1148 | "cell_type": "code", 1149 | "execution_count": 50, 1150 | "metadata": {}, 1151 | "outputs": [], 1152 | "source": [ 1153 | "img1 = cv2.imread('C:\\\\Users\\\\vatsa\\\\OneDrive\\\\Desktop\\\\Sign language Recognition\\\\asl_alphabet_test\\\\asl_alphabet_test\\\\A_test.jpg')" 1154 | ] 1155 | }, 1156 | { 1157 | "cell_type": "code", 1158 | "execution_count": 51, 1159 | "metadata": {}, 1160 | "outputs": [ 1161 | { 1162 | "data": { 1163 | "text/plain": [ 1164 | "" 1165 | ] 1166 | }, 1167 | "execution_count": 51, 1168 | "metadata": {}, 1169 | "output_type": "execute_result" 1170 | }, 1171 | { 1172 | "data": { 1173 | "image/png": "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\n", 1174 | "text/plain": [ 1175 | "
" 1176 | ] 1177 | }, 1178 | "metadata": { 1179 | "needs_background": "light" 1180 | }, 1181 | "output_type": "display_data" 1182 | } 1183 | ], 1184 | "source": [ 1185 | "plt.imshow(img1)" 1186 | ] 1187 | }, 1188 | { 1189 | "cell_type": "code", 1190 | "execution_count": null, 1191 | "metadata": {}, 1192 | "outputs": [], 1193 | "source": [] 1194 | } 1195 | ], 1196 | "metadata": { 1197 | "kernelspec": { 1198 | "display_name": "Python 3", 1199 | "language": "python", 1200 | "name": "python3" 1201 | }, 1202 | "language_info": { 1203 | "codemirror_mode": { 1204 | "name": "ipython", 1205 | "version": 3 1206 | }, 1207 | "file_extension": ".py", 1208 | "mimetype": "text/x-python", 1209 | "name": "python", 1210 | "nbconvert_exporter": "python", 1211 | "pygments_lexer": "ipython3", 1212 | "version": "3.6.10" 1213 | } 1214 | }, 1215 | "nbformat": 4, 1216 | "nbformat_minor": 4 1217 | } 1218 | --------------------------------------------------------------------------------