├── Expression.ipynb
├── README.md
├── StudentDetails
└── StudentDetails.csv
├── TrainingImageLabel
└── Trainner.yml
├── emotion.h5
├── haarcascade_frontalface_default.xml
├── predict.py
├── setup.py
├── test.py
└── train.py
/Expression.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "nbformat": 4,
3 | "nbformat_minor": 0,
4 | "metadata": {
5 | "colab": {
6 | "name": "Expression.ipynb",
7 | "provenance": [],
8 | "toc_visible": true
9 | },
10 | "kernelspec": {
11 | "name": "python3",
12 | "display_name": "Python 3"
13 | },
14 | "language_info": {
15 | "name": "python"
16 | },
17 | "accelerator": "GPU"
18 | },
19 | "cells": [
20 | {
21 | "cell_type": "code",
22 | "execution_count": null,
23 | "metadata": {
24 | "colab": {
25 | "base_uri": "https://localhost:8080/"
26 | },
27 | "id": "SQOhvRt61vQH",
28 | "outputId": "889203c5-3ae9-4db4-9d49-ad8ba50c1884"
29 | },
30 | "outputs": [
31 | {
32 | "output_type": "stream",
33 | "name": "stdout",
34 | "text": [
35 | "Cloning into 'facial_expressions'...\n",
36 | "remote: Enumerating objects: 14214, done.\u001b[K\n",
37 | "remote: Total 14214 (delta 0), reused 0 (delta 0), pack-reused 14214\u001b[K\n",
38 | "Receiving objects: 100% (14214/14214), 239.65 MiB | 34.50 MiB/s, done.\n",
39 | "Resolving deltas: 100% (223/223), done.\n",
40 | "Checking out files: 100% (13996/13996), done.\n"
41 | ]
42 | }
43 | ],
44 | "source": [
45 | "!git clone 'https://github.com/muxspace/facial_expressions'"
46 | ]
47 | },
48 | {
49 | "cell_type": "code",
50 | "source": [
51 | "import pandas as pd\n",
52 | "import numpy as np\n",
53 | "import cv2\n",
54 | "\n"
55 | ],
56 | "metadata": {
57 | "id": "adBT4blV15Vd"
58 | },
59 | "execution_count": null,
60 | "outputs": []
61 | },
62 | {
63 | "cell_type": "code",
64 | "source": [
65 | "details=pd.read_csv(\"/content/facial_expressions/data/legend.csv\")\n",
66 | "details"
67 | ],
68 | "metadata": {
69 | "colab": {
70 | "base_uri": "https://localhost:8080/",
71 | "height": 424
72 | },
73 | "id": "d-X2g6UH2Hb4",
74 | "outputId": "8104a5cc-6e29-4c41-959d-4a1057b09746"
75 | },
76 | "execution_count": null,
77 | "outputs": [
78 | {
79 | "output_type": "execute_result",
80 | "data": {
81 | "text/plain": [
82 | " user.id image emotion\n",
83 | "0 628 facial-expressions_2868588k.jpg anger\n",
84 | "1 628 facial-expressions_2868585k.jpg surprise\n",
85 | "2 628 facial-expressions_2868584k.jpg disgust\n",
86 | "3 628 facial-expressions_2868582k.jpg fear\n",
87 | "4 dwdii Aaron_Eckhart_0001.jpg neutral\n",
88 | "... ... ... ...\n",
89 | "13685 jhamski SharmilaTagore_80.jpg HAPPINESS\n",
90 | "13686 jhamski SharmilaTagore_81.jpg HAPPINESS\n",
91 | "13687 jhamski SharmilaTagore_82.jpg HAPPINESS\n",
92 | "13688 jhamski SharmilaTagore_83.jpg HAPPINESS\n",
93 | "13689 jhamski SharmilaTagore_9.jpg HAPPINESS\n",
94 | "\n",
95 | "[13690 rows x 3 columns]"
96 | ],
97 | "text/html": [
98 | "\n",
99 | "
\n",
100 | "
\n",
101 | "
\n",
102 | "\n",
115 | "
\n",
116 | " \n",
117 | " \n",
118 | " | \n",
119 | " user.id | \n",
120 | " image | \n",
121 | " emotion | \n",
122 | "
\n",
123 | " \n",
124 | " \n",
125 | " \n",
126 | " 0 | \n",
127 | " 628 | \n",
128 | " facial-expressions_2868588k.jpg | \n",
129 | " anger | \n",
130 | "
\n",
131 | " \n",
132 | " 1 | \n",
133 | " 628 | \n",
134 | " facial-expressions_2868585k.jpg | \n",
135 | " surprise | \n",
136 | "
\n",
137 | " \n",
138 | " 2 | \n",
139 | " 628 | \n",
140 | " facial-expressions_2868584k.jpg | \n",
141 | " disgust | \n",
142 | "
\n",
143 | " \n",
144 | " 3 | \n",
145 | " 628 | \n",
146 | " facial-expressions_2868582k.jpg | \n",
147 | " fear | \n",
148 | "
\n",
149 | " \n",
150 | " 4 | \n",
151 | " dwdii | \n",
152 | " Aaron_Eckhart_0001.jpg | \n",
153 | " neutral | \n",
154 | "
\n",
155 | " \n",
156 | " ... | \n",
157 | " ... | \n",
158 | " ... | \n",
159 | " ... | \n",
160 | "
\n",
161 | " \n",
162 | " 13685 | \n",
163 | " jhamski | \n",
164 | " SharmilaTagore_80.jpg | \n",
165 | " HAPPINESS | \n",
166 | "
\n",
167 | " \n",
168 | " 13686 | \n",
169 | " jhamski | \n",
170 | " SharmilaTagore_81.jpg | \n",
171 | " HAPPINESS | \n",
172 | "
\n",
173 | " \n",
174 | " 13687 | \n",
175 | " jhamski | \n",
176 | " SharmilaTagore_82.jpg | \n",
177 | " HAPPINESS | \n",
178 | "
\n",
179 | " \n",
180 | " 13688 | \n",
181 | " jhamski | \n",
182 | " SharmilaTagore_83.jpg | \n",
183 | " HAPPINESS | \n",
184 | "
\n",
185 | " \n",
186 | " 13689 | \n",
187 | " jhamski | \n",
188 | " SharmilaTagore_9.jpg | \n",
189 | " HAPPINESS | \n",
190 | "
\n",
191 | " \n",
192 | "
\n",
193 | "
13690 rows × 3 columns
\n",
194 | "
\n",
195 | "
\n",
205 | " \n",
206 | " \n",
243 | "\n",
244 | " \n",
268 | "
\n",
269 | "
\n",
270 | " "
271 | ]
272 | },
273 | "metadata": {},
274 | "execution_count": 3
275 | }
276 | ]
277 | },
278 | {
279 | "cell_type": "code",
280 | "source": [
281 | "temp=details.values\n",
282 | "temp[2]"
283 | ],
284 | "metadata": {
285 | "colab": {
286 | "base_uri": "https://localhost:8080/"
287 | },
288 | "id": "TnTQE3L59Sak",
289 | "outputId": "885ffa24-603e-4ed9-d231-f6e6989ae2f6"
290 | },
291 | "execution_count": null,
292 | "outputs": [
293 | {
294 | "output_type": "execute_result",
295 | "data": {
296 | "text/plain": [
297 | "array(['628', 'facial-expressions_2868584k.jpg', 'disgust'], dtype=object)"
298 | ]
299 | },
300 | "metadata": {},
301 | "execution_count": 4
302 | }
303 | ]
304 | },
305 | {
306 | "cell_type": "code",
307 | "source": [
308 | "emo=np.unique(details.emotion)\n",
309 | "for i in range(len(emo)):\n",
310 | " emo[i]=emo[i].lower()\n",
311 | "emo =list(set(emo))\n",
312 | "emo "
313 | ],
314 | "metadata": {
315 | "colab": {
316 | "base_uri": "https://localhost:8080/"
317 | },
318 | "id": "WeU7rpJ72Y9N",
319 | "outputId": "1b42a917-2d7f-4582-a602-574fe4d229b1"
320 | },
321 | "execution_count": null,
322 | "outputs": [
323 | {
324 | "output_type": "execute_result",
325 | "data": {
326 | "text/plain": [
327 | "['sadness',\n",
328 | " 'fear',\n",
329 | " 'contempt',\n",
330 | " 'neutral',\n",
331 | " 'happiness',\n",
332 | " 'surprise',\n",
333 | " 'disgust',\n",
334 | " 'anger']"
335 | ]
336 | },
337 | "metadata": {},
338 | "execution_count": 5
339 | }
340 | ]
341 | },
342 | {
343 | "cell_type": "code",
344 | "source": [
345 | "data={}\n",
346 | "for row in temp:\n",
347 | " key=row[2].lower()\n",
348 | " if key in data:\n",
349 | " data[key].append(row[1])\n",
350 | " else:\n",
351 | " data[key]=[row[1]]\n"
352 | ],
353 | "metadata": {
354 | "id": "mMOZzCBr8YkZ"
355 | },
356 | "execution_count": null,
357 | "outputs": []
358 | },
359 | {
360 | "cell_type": "code",
361 | "source": [
362 | "data.keys()"
363 | ],
364 | "metadata": {
365 | "colab": {
366 | "base_uri": "https://localhost:8080/"
367 | },
368 | "id": "F8txPhjE9AMh",
369 | "outputId": "467f9698-78af-4dd3-8217-097b2ab95fac"
370 | },
371 | "execution_count": null,
372 | "outputs": [
373 | {
374 | "output_type": "execute_result",
375 | "data": {
376 | "text/plain": [
377 | "dict_keys(['anger', 'surprise', 'disgust', 'fear', 'neutral', 'happiness', 'sadness', 'contempt'])"
378 | ]
379 | },
380 | "metadata": {},
381 | "execution_count": 7
382 | }
383 | ]
384 | },
385 | {
386 | "cell_type": "code",
387 | "source": [
388 | "import os\n",
389 | "os.mkdir('Master data')\n",
390 | "os.mkdir('Master data/train')\n",
391 | "os.mkdir('Master data/test')"
392 | ],
393 | "metadata": {
394 | "id": "Op1eO1oP2nB-"
395 | },
396 | "execution_count": null,
397 | "outputs": []
398 | },
399 | {
400 | "cell_type": "code",
401 | "source": [
402 | "for emot in emo:\n",
403 | " os.mkdir(os.path.join('Master data/train',emot))\n",
404 | " os.mkdir(os.path.join('Master data/test',emot))"
405 | ],
406 | "metadata": {
407 | "id": "g9dY0WFs4_Xj"
408 | },
409 | "execution_count": null,
410 | "outputs": []
411 | },
412 | {
413 | "cell_type": "code",
414 | "source": [
415 | "from shutil import copyfile\n",
416 | "split_size=0.8\n",
417 | "for emotion, image in data.items():\n",
418 | " trainsize=int(split_size*len(image))\n",
419 | " train_images=image[:trainsize]\n",
420 | " test_images=image[trainsize:]\n",
421 | " for imag in train_images:\n",
422 | " source=os.path.join(\"/content/facial_expressions/images\",imag)\n",
423 | " dest=os.path.join(\"/content/Master data/train\",emotion,imag)\n",
424 | " copyfile(source,dest)\n",
425 | " for imag in test_images:\n",
426 | " source=os.path.join(\"/content/facial_expressions/images\",imag)\n",
427 | " dest=os.path.join(\"/content/Master data/test\",emotion,imag)\n",
428 | " copyfile(source,dest) "
429 | ],
430 | "metadata": {
431 | "id": "256jpVtK5auB"
432 | },
433 | "execution_count": null,
434 | "outputs": []
435 | },
436 | {
437 | "cell_type": "code",
438 | "source": [
439 | "import tensorflow as tf\n",
440 | "from keras.preprocessing.image import ImageDataGenerator\n",
441 | "from tensorflow.keras.optimizers import Adam\n",
442 | "from keras.callbacks import EarlyStopping\n",
443 | "from keras.layers import MaxPool2D,Conv2D,Flatten,Dense\n",
444 | "from keras.models import Sequential"
445 | ],
446 | "metadata": {
447 | "id": "ENcDY2xeAJR3"
448 | },
449 | "execution_count": null,
450 | "outputs": []
451 | },
452 | {
453 | "cell_type": "code",
454 | "source": [
455 | "from keras.backend import categorical_crossentropy\n",
456 | "model=Sequential([Conv2D(16,(3,3),activation='relu',input_shape=(100,100,3)),MaxPool2D(2,2)\n",
457 | ",Conv2D(32,(3,3),activation='relu'),MaxPool2D(2,2),\n",
458 | "Conv2D(64,(3,3),activation='relu'),MaxPool2D(2,2),\n",
459 | "Conv2D(128,(3,3),activation='relu'),MaxPool2D(2,2),\n",
460 | "Conv2D(256,(3,3),activation='relu'),MaxPool2D(2,2),\n",
461 | "Flatten(),\n",
462 | "Dense(1700,activation='relu'),\n",
463 | "\n",
464 | "\n",
465 | "\n",
466 | "\n",
467 | "\n",
468 | "\n",
469 | "\n",
470 | "\n",
471 | "\n",
472 | "\n",
473 | "\n",
474 | "\n",
475 | "\n",
476 | "\n",
477 | "\n",
478 | "\n",
479 | "\n",
480 | "\n",
481 | "\n",
482 | "\n",
483 | "\n",
484 | "\n",
485 | "\n",
486 | "\n",
487 | "\n",
488 | "\n",
489 | "\n",
490 | "\n",
491 | "\n",
492 | "\n",
493 | "\n",
494 | "\n",
495 | "\n",
496 | "\n",
497 | "\n",
498 | "\n",
499 | "\n",
500 | "\n",
501 | "\n",
502 | "\n",
503 | "\n",
504 | "\n",
505 | "\n",
506 | "\n",
507 | "\n",
508 | "\n",
509 | "\n",
510 | "\n",
511 | "\n",
512 | "\n",
513 | "\n",
514 | "\n",
515 | "\n",
516 | "\n",
517 | "\n",
518 | "\n",
519 | "\n",
520 | "\n",
521 | "\n",
522 | "\n",
523 | "\n",
524 | "\n",
525 | "\n",
526 | "\n",
527 | "\n",
528 | "\n",
529 | "\n",
530 | "\n",
531 | "\n",
532 | "\n",
533 | "\n",
534 | "\n",
535 | "\n",
536 | "\n",
537 | "\n",
538 | "\n",
539 | "\n",
540 | "\n",
541 | "\n",
542 | "\n",
543 | "\n",
544 | "\n",
545 | "\n",
546 | "\n",
547 | "\n",
548 | "\n",
549 | "\n",
550 | "\n",
551 | "\n",
552 | "\n",
553 | "\n",
554 | "\n",
555 | "\n",
556 | "\n",
557 | "\n",
558 | "\n",
559 | "\n",
560 | "\n",
561 | "\n",
562 | "\n",
563 | "\n",
564 | "\n",
565 | "\n",
566 | "\n",
567 | "\n",
568 | "\n",
569 | "\n",
570 | "\n",
571 | "\n",
572 | "\n",
573 | "\n",
574 | "\n",
575 | "\n",
576 | "\n",
577 | "\n",
578 | "\n",
579 | "\n",
580 | "\n",
581 | "\n",
582 | "\n",
583 | "\n",
584 | "\n",
585 | "\n",
586 | "\n",
587 | "\n",
588 | "\n",
589 | "\n",
590 | "\n",
591 | "\n",
592 | "\n",
593 | "\n",
594 | "\n",
595 | "\n",
596 | "\n",
597 | "\n",
598 | "\n",
599 | "\n",
600 | "\n",
601 | "\n",
602 | "\n",
603 | "\n",
604 | "\n",
605 | "\n",
606 | "\n",
607 | "\n",
608 | "\n",
609 | "\n",
610 | "\n",
611 | "\n",
612 | "\n",
613 | "\n",
614 | "\n",
615 | "\n",
616 | "\n",
617 | "\n",
618 | "\n",
619 | "\n",
620 | "\n",
621 | "\n",
622 | "\n",
623 | "\n",
624 | "\n",
625 | "\n",
626 | "\n",
627 | "\n",
628 | "\n",
629 | "\n",
630 | "\n",
631 | "\n",
632 | "\n",
633 | "\n",
634 | "\n",
635 | "\n",
636 | "\n",
637 | "\n",
638 | "\n",
639 | "\n",
640 | "\n",
641 | "\n",
642 | "\n",
643 | "\n",
644 | "\n",
645 | "\n",
646 | "\n",
647 | "\n",
648 | "\n",
649 | "\n",
650 | "\n",
651 | "\n",
652 | "\n",
653 | "\n",
654 | "\n",
655 | "\n",
656 | "\n",
657 | "\n",
658 | "\n",
659 | "\n",
660 | "\n",
661 | "\n",
662 | "\n",
663 | "\n",
664 | "\n",
665 | "\n",
666 | "\n",
667 | "\n",
668 | "\n",
669 | "\n",
670 | "\n",
671 | "\n",
672 | "\n",
673 | "\n",
674 | "\n",
675 | "\n",
676 | "\n",
677 | "\n",
678 | "\n",
679 | "\n",
680 | "\n",
681 | "\n",
682 | "\n",
683 | "\n",
684 | "\n",
685 | "\n",
686 | "\n",
687 | "\n",
688 | "\n",
689 | "\n",
690 | "\n",
691 | "\n",
692 | "\n",
693 | "\n",
694 | "\n",
695 | "\n",
696 | "\n",
697 | "\n",
698 | "\n",
699 | "\n",
700 | "\n",
701 | "\n",
702 | "\n",
703 | "\n",
704 | "\n",
705 | "\n",
706 | "\n",
707 | "\n",
708 | "\n",
709 | "\n",
710 | "\n",
711 | "\n",
712 | "\n",
713 | "\n",
714 | "\n",
715 | "\n",
716 | "\n",
717 | "\n",
718 | "\n",
719 | "\n",
720 | "\n",
721 | "\n",
722 | "\n",
723 | "\n",
724 | "\n",
725 | "\n",
726 | "\n",
727 | "\n",
728 | "\n",
729 | "\n",
730 | "\n",
731 | "\n",
732 | "\n",
733 | "\n",
734 | "\n",
735 | "\n",
736 | "\n",
737 | "\n",
738 | "\n",
739 | "\n",
740 | "\n",
741 | "\n",
742 | "\n",
743 | "\n",
744 | "\n",
745 | "\n",
746 | "\n",
747 | "\n",
748 | "\n",
749 | "\n",
750 | "\n",
751 | "\n",
752 | "\n",
753 | "\n",
754 | "\n",
755 | "\n",
756 | "\n",
757 | "\n",
758 | "\n",
759 | "\n",
760 | "\n",
761 | "\n",
762 | "\n",
763 | "\n",
764 | "\n",
765 | "\n",
766 | "\n",
767 | "\n",
768 | "\n",
769 | "\n",
770 | "\n",
771 | "\n",
772 | "\n",
773 | "\n",
774 | "\n",
775 | "\n",
776 | "\n",
777 | "\n",
778 | "\n",
779 | "\n",
780 | "\n",
781 | "\n",
782 | "\n",
783 | "\n",
784 | "\n",
785 | "\n",
786 | "\n",
787 | "\n",
788 | "\n",
789 | "\n",
790 | "\n",
791 | "\n",
792 | "\n",
793 | "\n",
794 | "\n",
795 | "\n",
796 | "\n",
797 | "\n",
798 | "\n",
799 | "\n",
800 | "\n",
801 | "\n",
802 | "\n",
803 | "\n",
804 | "\n",
805 | "\n",
806 | "\n",
807 | "\n",
808 | "\n",
809 | "\n",
810 | "\n",
811 | "\n",
812 | "\n",
813 | "\n",
814 | "\n",
815 | "\n",
816 | "\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 | "Dense(8,activation='softmax')\n",
838 | "])\n",
839 | "model.compile(optimizer=Adam(learning_rate=0.001),loss='categorical_crossentropy',metrics=['acc'])\n",
840 | "model.summary()"
841 | ],
842 | "metadata": {
843 | "colab": {
844 | "base_uri": "https://localhost:8080/"
845 | },
846 | "id": "KccahdVSi2Wz",
847 | "outputId": "3a8e65cc-201c-48fa-fcbe-3cd4a1152618"
848 | },
849 | "execution_count": null,
850 | "outputs": [
851 | {
852 | "output_type": "stream",
853 | "name": "stdout",
854 | "text": [
855 | "Model: \"sequential\"\n",
856 | "_________________________________________________________________\n",
857 | " Layer (type) Output Shape Param # \n",
858 | "=================================================================\n",
859 | " conv2d (Conv2D) (None, 98, 98, 16) 448 \n",
860 | " \n",
861 | " max_pooling2d (MaxPooling2D (None, 49, 49, 16) 0 \n",
862 | " ) \n",
863 | " \n",
864 | " conv2d_1 (Conv2D) (None, 47, 47, 32) 4640 \n",
865 | " \n",
866 | " max_pooling2d_1 (MaxPooling (None, 23, 23, 32) 0 \n",
867 | " 2D) \n",
868 | " \n",
869 | " conv2d_2 (Conv2D) (None, 21, 21, 64) 18496 \n",
870 | " \n",
871 | " max_pooling2d_2 (MaxPooling (None, 10, 10, 64) 0 \n",
872 | " 2D) \n",
873 | " \n",
874 | " conv2d_3 (Conv2D) (None, 8, 8, 128) 73856 \n",
875 | " \n",
876 | " max_pooling2d_3 (MaxPooling (None, 4, 4, 128) 0 \n",
877 | " 2D) \n",
878 | " \n",
879 | " conv2d_4 (Conv2D) (None, 2, 2, 256) 295168 \n",
880 | " \n",
881 | " max_pooling2d_4 (MaxPooling (None, 1, 1, 256) 0 \n",
882 | " 2D) \n",
883 | " \n",
884 | " flatten (Flatten) (None, 256) 0 \n",
885 | " \n",
886 | " dense (Dense) (None, 1700) 436900 \n",
887 | " \n",
888 | " dense_1 (Dense) (None, 8) 13608 \n",
889 | " \n",
890 | "=================================================================\n",
891 | "Total params: 843,116\n",
892 | "Trainable params: 843,116\n",
893 | "Non-trainable params: 0\n",
894 | "_________________________________________________________________\n"
895 | ]
896 | }
897 | ]
898 | },
899 | {
900 | "cell_type": "code",
901 | "source": [
902 | "train_dir=\"/content/Master data/train\"\n",
903 | "test_dir=\"/content/Master data/test\"\n",
904 | "trainDataGen=ImageDataGenerator(rescale=1.0/255)\n",
905 | "train_gen=trainDataGen.flow_from_directory(train_dir,class_mode='categorical',target_size=(100,100),batch_size=128)\n",
906 | "testDataGen=ImageDataGenerator(rescale=1.0/255)\n",
907 | "test_gen=testDataGen.flow_from_directory(test_dir,class_mode='categorical',target_size=(100,100),batch_size=128)"
908 | ],
909 | "metadata": {
910 | "colab": {
911 | "base_uri": "https://localhost:8080/"
912 | },
913 | "id": "hNITs9iSpNu0",
914 | "outputId": "8358ef28-1fa6-4df9-9637-ffd8b4435f3a"
915 | },
916 | "execution_count": null,
917 | "outputs": [
918 | {
919 | "output_type": "stream",
920 | "name": "stdout",
921 | "text": [
922 | "Found 10941 images belonging to 8 classes.\n",
923 | "Found 2742 images belonging to 8 classes.\n"
924 | ]
925 | }
926 | ]
927 | },
928 | {
929 | "cell_type": "code",
930 | "source": [
931 | "es=EarlyStopping(monitor='val_acc',patience=30,min_delta=.01)"
932 | ],
933 | "metadata": {
934 | "id": "LBICIUE8r4tO"
935 | },
936 | "execution_count": null,
937 | "outputs": []
938 | },
939 | {
940 | "cell_type": "code",
941 | "source": [
942 | "history=model.fit_generator(train_gen,epochs=1000,verbose=1,callbacks=[es],validation_data=test_gen)"
943 | ],
944 | "metadata": {
945 | "colab": {
946 | "base_uri": "https://localhost:8080/"
947 | },
948 | "id": "BRCnvNSvsKow",
949 | "outputId": "fa91aff3-835b-42bb-c156-dcfa85d6becf"
950 | },
951 | "execution_count": null,
952 | "outputs": [
953 | {
954 | "output_type": "stream",
955 | "name": "stderr",
956 | "text": [
957 | "/usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py:1: UserWarning: `Model.fit_generator` is deprecated and will be removed in a future version. Please use `Model.fit`, which supports generators.\n",
958 | " \"\"\"Entry point for launching an IPython kernel.\n"
959 | ]
960 | },
961 | {
962 | "output_type": "stream",
963 | "name": "stdout",
964 | "text": [
965 | "Epoch 1/1000\n",
966 | "86/86 [==============================] - 32s 229ms/step - loss: 1.0403 - acc: 0.4873 - val_loss: 2.3669 - val_acc: 0.4774\n",
967 | "Epoch 2/1000\n",
968 | "86/86 [==============================] - 19s 216ms/step - loss: 0.9820 - acc: 0.4989 - val_loss: 1.7554 - val_acc: 0.4781\n",
969 | "Epoch 3/1000\n",
970 | "86/86 [==============================] - 19s 217ms/step - loss: 0.9867 - acc: 0.4992 - val_loss: 2.5927 - val_acc: 0.4752\n",
971 | "Epoch 4/1000\n",
972 | "86/86 [==============================] - 19s 218ms/step - loss: 0.9702 - acc: 0.5064 - val_loss: 2.3583 - val_acc: 0.4756\n",
973 | "Epoch 5/1000\n",
974 | "86/86 [==============================] - 19s 219ms/step - loss: 0.9739 - acc: 0.5030 - val_loss: 2.2435 - val_acc: 0.4712\n",
975 | "Epoch 6/1000\n",
976 | "86/86 [==============================] - 19s 221ms/step - loss: 0.8582 - acc: 0.6218 - val_loss: 3.1374 - val_acc: 0.6291\n",
977 | "Epoch 7/1000\n",
978 | "86/86 [==============================] - 19s 223ms/step - loss: 0.6169 - acc: 0.8014 - val_loss: 2.0845 - val_acc: 0.6637\n",
979 | "Epoch 8/1000\n",
980 | "86/86 [==============================] - 18s 213ms/step - loss: 0.5306 - acc: 0.8333 - val_loss: 3.1474 - val_acc: 0.6466\n",
981 | "Epoch 9/1000\n",
982 | "86/86 [==============================] - 19s 216ms/step - loss: 0.4802 - acc: 0.8440 - val_loss: 1.8560 - val_acc: 0.6670\n",
983 | "Epoch 10/1000\n",
984 | "86/86 [==============================] - 19s 218ms/step - loss: 0.4257 - acc: 0.8603 - val_loss: 1.4336 - val_acc: 0.7017\n",
985 | "Epoch 11/1000\n",
986 | "86/86 [==============================] - 19s 219ms/step - loss: 0.4209 - acc: 0.8616 - val_loss: 2.9286 - val_acc: 0.6791\n",
987 | "Epoch 12/1000\n",
988 | "86/86 [==============================] - 19s 216ms/step - loss: 0.3830 - acc: 0.8754 - val_loss: 1.7599 - val_acc: 0.6871\n",
989 | "Epoch 13/1000\n",
990 | "86/86 [==============================] - 19s 216ms/step - loss: 0.3500 - acc: 0.8846 - val_loss: 2.3302 - val_acc: 0.6838\n",
991 | "Epoch 14/1000\n",
992 | "86/86 [==============================] - 19s 216ms/step - loss: 0.3209 - acc: 0.8944 - val_loss: 2.8619 - val_acc: 0.6929\n",
993 | "Epoch 15/1000\n",
994 | "86/86 [==============================] - 19s 217ms/step - loss: 0.2884 - acc: 0.9064 - val_loss: 2.4292 - val_acc: 0.6958\n",
995 | "Epoch 16/1000\n",
996 | "86/86 [==============================] - 19s 217ms/step - loss: 0.2737 - acc: 0.9108 - val_loss: 2.6809 - val_acc: 0.6853\n",
997 | "Epoch 17/1000\n",
998 | "86/86 [==============================] - 19s 217ms/step - loss: 0.2572 - acc: 0.9137 - val_loss: 2.5226 - val_acc: 0.6878\n",
999 | "Epoch 18/1000\n",
1000 | "86/86 [==============================] - 19s 216ms/step - loss: 0.2209 - acc: 0.9275 - val_loss: 2.6460 - val_acc: 0.6842\n",
1001 | "Epoch 19/1000\n",
1002 | "86/86 [==============================] - 19s 217ms/step - loss: 0.2090 - acc: 0.9304 - val_loss: 2.3867 - val_acc: 0.6893\n",
1003 | "Epoch 20/1000\n",
1004 | "86/86 [==============================] - 18s 214ms/step - loss: 0.1746 - acc: 0.9436 - val_loss: 3.1614 - val_acc: 0.6765\n",
1005 | "Epoch 21/1000\n",
1006 | "86/86 [==============================] - 18s 215ms/step - loss: 0.1541 - acc: 0.9485 - val_loss: 3.2219 - val_acc: 0.6743\n",
1007 | "Epoch 22/1000\n",
1008 | "86/86 [==============================] - 19s 215ms/step - loss: 0.1291 - acc: 0.9566 - val_loss: 3.6555 - val_acc: 0.6758\n",
1009 | "Epoch 23/1000\n",
1010 | "86/86 [==============================] - 19s 216ms/step - loss: 0.1237 - acc: 0.9580 - val_loss: 3.8537 - val_acc: 0.6765\n",
1011 | "Epoch 24/1000\n",
1012 | "86/86 [==============================] - 19s 216ms/step - loss: 0.0811 - acc: 0.9731 - val_loss: 4.4303 - val_acc: 0.6659\n",
1013 | "Epoch 25/1000\n",
1014 | "86/86 [==============================] - 18s 214ms/step - loss: 0.0716 - acc: 0.9750 - val_loss: 3.9458 - val_acc: 0.6838\n",
1015 | "Epoch 26/1000\n",
1016 | "86/86 [==============================] - 18s 214ms/step - loss: 0.0632 - acc: 0.9789 - val_loss: 5.2945 - val_acc: 0.6776\n",
1017 | "Epoch 27/1000\n",
1018 | "86/86 [==============================] - 19s 216ms/step - loss: 0.0605 - acc: 0.9785 - val_loss: 4.1507 - val_acc: 0.6882\n",
1019 | "Epoch 28/1000\n",
1020 | "86/86 [==============================] - 19s 216ms/step - loss: 0.0466 - acc: 0.9833 - val_loss: 5.5182 - val_acc: 0.6667\n",
1021 | "Epoch 29/1000\n",
1022 | "86/86 [==============================] - 18s 215ms/step - loss: 0.0568 - acc: 0.9795 - val_loss: 3.9056 - val_acc: 0.6780\n",
1023 | "Epoch 30/1000\n",
1024 | "86/86 [==============================] - 19s 216ms/step - loss: 0.0857 - acc: 0.9704 - val_loss: 4.0164 - val_acc: 0.6656\n",
1025 | "Epoch 31/1000\n",
1026 | "86/86 [==============================] - 19s 217ms/step - loss: 0.0390 - acc: 0.9864 - val_loss: 5.0939 - val_acc: 0.6699\n",
1027 | "Epoch 32/1000\n",
1028 | "86/86 [==============================] - 19s 215ms/step - loss: 0.0252 - acc: 0.9913 - val_loss: 6.2623 - val_acc: 0.6710\n",
1029 | "Epoch 33/1000\n",
1030 | "86/86 [==============================] - 19s 216ms/step - loss: 0.0261 - acc: 0.9914 - val_loss: 5.1072 - val_acc: 0.6845\n",
1031 | "Epoch 34/1000\n",
1032 | "86/86 [==============================] - 19s 216ms/step - loss: 0.0493 - acc: 0.9830 - val_loss: 4.9720 - val_acc: 0.6794\n",
1033 | "Epoch 35/1000\n",
1034 | "86/86 [==============================] - 18s 214ms/step - loss: 0.0294 - acc: 0.9891 - val_loss: 5.4506 - val_acc: 0.6678\n",
1035 | "Epoch 36/1000\n",
1036 | "86/86 [==============================] - 18s 214ms/step - loss: 0.0190 - acc: 0.9938 - val_loss: 5.5592 - val_acc: 0.6900\n",
1037 | "Epoch 37/1000\n",
1038 | "86/86 [==============================] - 18s 214ms/step - loss: 0.0157 - acc: 0.9950 - val_loss: 5.6489 - val_acc: 0.6794\n",
1039 | "Epoch 38/1000\n",
1040 | "86/86 [==============================] - 19s 216ms/step - loss: 0.0140 - acc: 0.9958 - val_loss: 6.4873 - val_acc: 0.6586\n",
1041 | "Epoch 39/1000\n",
1042 | "86/86 [==============================] - 18s 214ms/step - loss: 0.0180 - acc: 0.9939 - val_loss: 6.4593 - val_acc: 0.6674\n",
1043 | "Epoch 40/1000\n",
1044 | "86/86 [==============================] - 19s 218ms/step - loss: 0.0312 - acc: 0.9899 - val_loss: 5.7097 - val_acc: 0.6718\n"
1045 | ]
1046 | }
1047 | ]
1048 | },
1049 | {
1050 | "cell_type": "code",
1051 | "source": [
1052 | "import matplotlib.pyplot as plt\n"
1053 | ],
1054 | "metadata": {
1055 | "id": "Z8JL4fE-w_76"
1056 | },
1057 | "execution_count": null,
1058 | "outputs": []
1059 | },
1060 | {
1061 | "cell_type": "code",
1062 | "source": [
1063 | "history.history.keys()"
1064 | ],
1065 | "metadata": {
1066 | "colab": {
1067 | "base_uri": "https://localhost:8080/"
1068 | },
1069 | "id": "pE5qzhfry5oQ",
1070 | "outputId": "87ab78f6-f230-482d-e388-916498d8e0a7"
1071 | },
1072 | "execution_count": null,
1073 | "outputs": [
1074 | {
1075 | "output_type": "execute_result",
1076 | "data": {
1077 | "text/plain": [
1078 | "dict_keys(['loss', 'acc', 'val_loss', 'val_acc'])"
1079 | ]
1080 | },
1081 | "metadata": {},
1082 | "execution_count": 17
1083 | }
1084 | ]
1085 | },
1086 | {
1087 | "cell_type": "code",
1088 | "source": [
1089 | "plt.plot(history.history['loss'])\n",
1090 | "plt.plot(history.history['acc'])"
1091 | ],
1092 | "metadata": {
1093 | "colab": {
1094 | "base_uri": "https://localhost:8080/",
1095 | "height": 282
1096 | },
1097 | "id": "nRr0dIthzIyA",
1098 | "outputId": "7438b836-4943-4dde-f327-54f628fbd9b5"
1099 | },
1100 | "execution_count": null,
1101 | "outputs": [
1102 | {
1103 | "output_type": "execute_result",
1104 | "data": {
1105 | "text/plain": [
1106 | "[]"
1107 | ]
1108 | },
1109 | "metadata": {},
1110 | "execution_count": 18
1111 | },
1112 | {
1113 | "output_type": "display_data",
1114 | "data": {
1115 | "text/plain": [
1116 | ""
1117 | ],
1118 | "image/png": "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\n"
1119 | },
1120 | "metadata": {
1121 | "needs_background": "light"
1122 | }
1123 | }
1124 | ]
1125 | },
1126 | {
1127 | "cell_type": "code",
1128 | "source": [
1129 | "plt.plot(history.history['val_loss'])\n",
1130 | "plt.plot(history.history['val_acc'])"
1131 | ],
1132 | "metadata": {
1133 | "colab": {
1134 | "base_uri": "https://localhost:8080/",
1135 | "height": 282
1136 | },
1137 | "id": "nU_hfXMfzklK",
1138 | "outputId": "ca2762f8-39e5-44f3-b940-942213b79a0d"
1139 | },
1140 | "execution_count": null,
1141 | "outputs": [
1142 | {
1143 | "output_type": "execute_result",
1144 | "data": {
1145 | "text/plain": [
1146 | "[]"
1147 | ]
1148 | },
1149 | "metadata": {},
1150 | "execution_count": 19
1151 | },
1152 | {
1153 | "output_type": "display_data",
1154 | "data": {
1155 | "text/plain": [
1156 | ""
1157 | ],
1158 | "image/png": "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\n"
1159 | },
1160 | "metadata": {
1161 | "needs_background": "light"
1162 | }
1163 | }
1164 | ]
1165 | },
1166 | {
1167 | "cell_type": "code",
1168 | "source": [
1169 | "model.save(\"emotion.h5\")"
1170 | ],
1171 | "metadata": {
1172 | "id": "eFc2Hi9po9WS"
1173 | },
1174 | "execution_count": null,
1175 | "outputs": []
1176 | },
1177 | {
1178 | "cell_type": "code",
1179 | "source": [
1180 | "img=cv2.imread('/content/Master data/train/disgust/Avinash_2.jpg')\n",
1181 | "img=cv2.resize(img,(100,100))\n",
1182 | "img=img.reshape(1,100,100,3)\n",
1183 | "res=model.predict(img)\n",
1184 | "key=list(data.keys())\n",
1185 | "key[np.argmax(res)]"
1186 | ],
1187 | "metadata": {
1188 | "colab": {
1189 | "base_uri": "https://localhost:8080/",
1190 | "height": 35
1191 | },
1192 | "id": "G-EPMwxCw87C",
1193 | "outputId": "2978abba-52de-4f4b-8842-5cb39d331f35"
1194 | },
1195 | "execution_count": null,
1196 | "outputs": [
1197 | {
1198 | "output_type": "execute_result",
1199 | "data": {
1200 | "text/plain": [
1201 | "'neutral'"
1202 | ],
1203 | "application/vnd.google.colaboratory.intrinsic+json": {
1204 | "type": "string"
1205 | }
1206 | },
1207 | "metadata": {},
1208 | "execution_count": 42
1209 | }
1210 | ]
1211 | },
1212 | {
1213 | "cell_type": "code",
1214 | "source": [
1215 | ""
1216 | ],
1217 | "metadata": {
1218 | "id": "xZgPImF020rF"
1219 | },
1220 | "execution_count": null,
1221 | "outputs": []
1222 | },
1223 | {
1224 | "cell_type": "code",
1225 | "source": [
1226 | "img=cv2.imread('/content/Master data/train/disgust/Avinash_2.jpg')\n",
1227 | "from google.colab.patches import cv2_imshow\n",
1228 | "cv2_imshow(img)"
1229 | ],
1230 | "metadata": {
1231 | "colab": {
1232 | "base_uri": "https://localhost:8080/",
1233 | "height": 196
1234 | },
1235 | "id": "1C0Cdne8xllR",
1236 | "outputId": "7b411a4f-5adc-4d2d-a96d-ed2e9df3a6d1"
1237 | },
1238 | "execution_count": null,
1239 | "outputs": [
1240 | {
1241 | "output_type": "display_data",
1242 | "data": {
1243 | "text/plain": [
1244 | ""
1245 | ],
1246 | "image/png": "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\n"
1247 | },
1248 | "metadata": {}
1249 | }
1250 | ]
1251 | },
1252 | {
1253 | "cell_type": "code",
1254 | "source": [
1255 | "img=cv2.resize(img,(100,100))\n",
1256 | "cv2_imshow(img)"
1257 | ],
1258 | "metadata": {
1259 | "colab": {
1260 | "base_uri": "https://localhost:8080/",
1261 | "height": 117
1262 | },
1263 | "id": "icQXRALDyD1Z",
1264 | "outputId": "eea09ef6-5fa4-41b0-86d9-5dbf0da305c2"
1265 | },
1266 | "execution_count": null,
1267 | "outputs": [
1268 | {
1269 | "output_type": "display_data",
1270 | "data": {
1271 | "text/plain": [
1272 | ""
1273 | ],
1274 | "image/png": "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\n"
1275 | },
1276 | "metadata": {}
1277 | }
1278 | ]
1279 | },
1280 | {
1281 | "cell_type": "code",
1282 | "source": [
1283 | "img=img.reshape(1,100,100,3)"
1284 | ],
1285 | "metadata": {
1286 | "id": "gBljZHoQz4vG"
1287 | },
1288 | "execution_count": null,
1289 | "outputs": []
1290 | },
1291 | {
1292 | "cell_type": "code",
1293 | "source": [
1294 | ""
1295 | ],
1296 | "metadata": {
1297 | "colab": {
1298 | "base_uri": "https://localhost:8080/",
1299 | "height": 35
1300 | },
1301 | "id": "lHPHe0vux38L",
1302 | "outputId": "4ffb7478-baa3-4cc8-cc92-b0395eeaf30d"
1303 | },
1304 | "execution_count": null,
1305 | "outputs": [
1306 | {
1307 | "output_type": "execute_result",
1308 | "data": {
1309 | "application/vnd.google.colaboratory.intrinsic+json": {
1310 | "type": "string"
1311 | },
1312 | "text/plain": [
1313 | "'anger'"
1314 | ]
1315 | },
1316 | "metadata": {},
1317 | "execution_count": 83
1318 | }
1319 | ]
1320 | },
1321 | {
1322 | "cell_type": "code",
1323 | "source": [
1324 | "res"
1325 | ],
1326 | "metadata": {
1327 | "colab": {
1328 | "base_uri": "https://localhost:8080/"
1329 | },
1330 | "id": "Qcrm_97Z06LD",
1331 | "outputId": "5bc8d826-21c8-4111-9460-b6ed4ec4913f"
1332 | },
1333 | "execution_count": null,
1334 | "outputs": [
1335 | {
1336 | "output_type": "execute_result",
1337 | "data": {
1338 | "text/plain": [
1339 | ""
1340 | ]
1341 | },
1342 | "metadata": {},
1343 | "execution_count": 73
1344 | }
1345 | ]
1346 | },
1347 | {
1348 | "cell_type": "code",
1349 | "source": [
1350 | ""
1351 | ],
1352 | "metadata": {
1353 | "colab": {
1354 | "base_uri": "https://localhost:8080/",
1355 | "height": 35
1356 | },
1357 | "id": "iLhpuW-I0FQe",
1358 | "outputId": "5d161379-26f9-49d7-df7b-0412eba0017c"
1359 | },
1360 | "execution_count": null,
1361 | "outputs": [
1362 | {
1363 | "output_type": "execute_result",
1364 | "data": {
1365 | "application/vnd.google.colaboratory.intrinsic+json": {
1366 | "type": "string"
1367 | },
1368 | "text/plain": [
1369 | "'anger'"
1370 | ]
1371 | },
1372 | "metadata": {},
1373 | "execution_count": 82
1374 | }
1375 | ]
1376 | },
1377 | {
1378 | "cell_type": "code",
1379 | "source": [
1380 | "# import pickle\n",
1381 | "# with open('emotion.pkl','wb') as f1:\n",
1382 | "# pickle.dump(model,f1)\n"
1383 | ],
1384 | "metadata": {
1385 | "id": "CKDIMETd1sUN"
1386 | },
1387 | "execution_count": null,
1388 | "outputs": []
1389 | }
1390 | ]
1391 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Face and Emotion Detection
2 |  
3 | 
4 |
--------------------------------------------------------------------------------
/StudentDetails/StudentDetails.csv:
--------------------------------------------------------------------------------
1 | Id,Name
2 |
--------------------------------------------------------------------------------
/emotion.h5:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/praxton74/Face-and-Emotion-Detection/b5e00a35e8abee70138fce4c5866b28785898287/emotion.h5
--------------------------------------------------------------------------------
/predict.py:
--------------------------------------------------------------------------------
1 | from keras.models import load_model
2 | import cv2
3 | import tensorflow
4 | import numpy as np
5 | model = load_model('emotion.h5')
6 | def predict(img):
7 | key=['anger', 'surprise', 'disgust', 'fear', 'neutral', 'happiness', 'sadness', 'contempt']
8 | img = cv2.resize(img, (100, 100))
9 | img = img.reshape(1, 100, 100, 3)
10 | res= model.predict(img)
11 | return (key[np.argmax(res)])
--------------------------------------------------------------------------------
/setup.py:
--------------------------------------------------------------------------------
1 | from cx_Freeze import setup, Executable
2 | import sys,os
3 | PYTHON_INSTALL_DIR = os.path.dirname(os.path.dirname(os.__file__))
4 | os.environ['TCL_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tcl8.6')
5 | os.environ['TK_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tk8.6')
6 |
7 | base = None
8 |
9 | if sys.platform == 'win32':
10 | base = None
11 |
12 |
13 | executables = [Executable("train.py", base=base)]
14 |
15 | packages = ["idna","os","sys","cx_Freeze","tkinter","cv2","setup",
16 | "numpy","PIL","pandas","datetime","time"]
17 | options = {
18 | 'build_exe': {
19 |
20 | 'packages':packages,
21 | },
22 |
23 | }
24 |
25 | setup(
26 | name = "ToolBox",
27 | options = options,
28 | version = "0.0.1",
29 | description = 'Vision ToolBox',
30 | executables = executables
31 | )
32 |
33 | #write python setup build
--------------------------------------------------------------------------------
/test.py:
--------------------------------------------------------------------------------
1 | from predict import *
2 | import tensorflow
3 | import cv2
4 | img=cv2.imread('TrainingImage/ Sajal.2.30.jpg')
5 | print(predict(img))
--------------------------------------------------------------------------------
/train.py:
--------------------------------------------------------------------------------
1 | import tkinter as tk
2 | from tkinter import Message ,Text
3 | import cv2,os
4 | import shutil
5 | import csv
6 | import h5py
7 | import numpy as np
8 | from PIL import Image, ImageTk
9 | import pandas as pd
10 | import datetime
11 | import time
12 | import tkinter.ttk as ttk
13 | import tkinter.font as font
14 |
15 | from keras.models import load_model
16 |
17 | model=load_model('emotion.h5')
18 |
19 | window = tk.Tk()
20 | window.title("Face_Recogniser")
21 |
22 | dialog_title = 'QUIT'
23 | dialog_text = 'Are you sure?'
24 |
25 | window.configure(background='blue')
26 |
27 |
28 | window.grid_rowconfigure(0, weight=1)
29 | window.grid_columnconfigure(0, weight=1)
30 |
31 | lbl = tk.Label(window, text="Enter ID",width=20 ,height=2 ,fg="red" ,bg="yellow" ,font=('times', 15, ' bold ') )
32 | lbl.place(x=400, y=200)
33 |
34 | txt = tk.Entry(window,width=20 ,bg="yellow" ,fg="red",font=('times', 15, ' bold '))
35 | txt.place(x=700, y=215)
36 |
37 | lbl2 = tk.Label(window, text="Enter Name",width=20 ,fg="red" ,bg="yellow" ,height=2 ,font=('times', 15, ' bold '))
38 | lbl2.place(x=400, y=300)
39 |
40 | txt2 = tk.Entry(window,width=20 ,bg="yellow" ,fg="red",font=('times', 15, ' bold ') )
41 | txt2.place(x=700, y=315)
42 |
43 | lbl3 = tk.Label(window, text="Notification : ",width=20 ,fg="red" ,bg="yellow" ,height=2 ,font=('times', 15, ' bold underline '))
44 | lbl3.place(x=400, y=400)
45 |
46 | message = tk.Label(window, text="" ,bg="yellow" ,fg="red" ,width=30 ,height=2, activebackground = "yellow" ,font=('times', 15, ' bold '))
47 | message.place(x=700, y=400)
48 |
49 | lbl3 = tk.Label(window, text="Attendance : ",width=20 ,fg="red" ,bg="yellow" ,height=2 ,font=('times', 15, ' bold underline'))
50 | lbl3.place(x=400, y=650)
51 |
52 |
53 | message2 = tk.Label(window, text="" ,fg="red" ,bg="yellow",activeforeground = "green",width=30 ,height=2 ,font=('times', 15, ' bold '))
54 | message2.place(x=700, y=650)
55 |
56 | def clear():
57 | txt.delete(0, 'end')
58 | res = ""
59 | message.configure(text= res)
60 |
61 | def clear2():
62 | txt2.delete(0, 'end')
63 | res = ""
64 | message.configure(text= res)
65 |
66 | def is_number(s):
67 | try:
68 | float(s)
69 | return True
70 | except ValueError:
71 | pass
72 |
73 | try:
74 | import unicodedata
75 | unicodedata.numeric(s)
76 | return True
77 | except (TypeError, ValueError):
78 | pass
79 |
80 | return False
81 |
82 | def TakeImages():
83 | Id=(txt.get())
84 | name=(txt2.get())
85 | if(is_number(Id) and name.isalpha()):
86 | cam = cv2.VideoCapture(0)
87 | harcascadePath = "haarcascade_frontalface_default.xml"
88 | detector=cv2.CascadeClassifier(harcascadePath)
89 | sampleNum=0
90 | while(True):
91 | ret, img = cam.read()
92 | gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
93 | faces = detector.detectMultiScale(gray, 1.3, 5)
94 | for (x,y,w,h) in faces:
95 | cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
96 | #incrementing sample number
97 | sampleNum=sampleNum+1
98 | #saving the captured face in the dataset folder TrainingImage
99 | cv2.imwrite("TrainingImage\ "+name +"."+Id +'.'+ str(sampleNum) + ".jpg", gray[y:y+h,x:x+w])
100 | #display the frame
101 | cv2.imshow('frame',img)
102 | #wait for 100 miliseconds
103 | if cv2.waitKey(100) & 0xFF == ord('q'):
104 | break
105 | # break if the sample number is morethan 100
106 | elif sampleNum>60:
107 | break
108 | cam.release()
109 | cv2.destroyAllWindows()
110 | res = "Images Saved for ID : " + Id +" Name : "+ name
111 | row = [Id , name]
112 | with open('StudentDetails\StudentDetails.csv','a+') as csvFile:
113 | writer = csv.writer(csvFile)
114 | writer.writerow(row)
115 | csvFile.close()
116 | message.configure(text= res)
117 | else:
118 | if(is_number(Id)):
119 | res = "Enter Alphabetical Name"
120 | message.configure(text= res)
121 | if(name.isalpha()):
122 | res = "Enter Numeric Id"
123 | message.configure(text= res)
124 |
125 | def TrainImages():
126 | recognizer = cv2.face_LBPHFaceRecognizer.create()#recognizer = cv2.face.LBPHFaceRecognizer_create()#$cv2.createLBPHFaceRecognizer()
127 | harcascadePath = "haarcascade_frontalface_default.xml"
128 | detector =cv2.CascadeClassifier(harcascadePath)
129 | faces,Id = getImagesAndLabels("TrainingImage")
130 | recognizer.train(faces, np.array(Id))
131 | recognizer.save("TrainingImageLabel\Trainner.yml")
132 | res = "Image Trained"#+",".join(str(f) for f in Id)
133 | message.configure(text= res)
134 |
135 | def getImagesAndLabels(path):
136 | #get the path of all the files in the folder
137 | imagePaths=[os.path.join(path,f) for f in os.listdir(path)]
138 | #print(imagePaths)
139 |
140 | #create empth face list
141 | faces=[]
142 | #create empty ID list
143 | Ids=[]
144 | #now looping through all the image paths and loading the Ids and the images
145 | for imagePath in imagePaths:
146 | #loading the image and converting it to gray scale
147 | pilImage=Image.open(imagePath).convert('L')
148 | #Now we are converting the PIL image into numpy array
149 | imageNp=np.array(pilImage,'uint8')
150 | #getting the Id from the image
151 | Id=int(os.path.split(imagePath)[-1].split(".")[1])
152 | # extract the face from the training image sample
153 | faces.append(imageNp)
154 | Ids.append(Id)
155 | return faces,Ids
156 |
157 | def TrackImages():
158 | recognizer = cv2.face.LBPHFaceRecognizer_create()#cv2.createLBPHFaceRecognizer()
159 | recognizer.read("TrainingImageLabel\Trainner.yml")
160 | harcascadePath = "haarcascade_frontalface_default.xml"
161 | faceCascade = cv2.CascadeClassifier(harcascadePath);
162 | df=pd.read_csv("StudentDetails\StudentDetails.csv")
163 | cam = cv2.VideoCapture(0)
164 | font = cv2.FONT_HERSHEY_SIMPLEX
165 | col_names = ['Id','Name','Date','Time']
166 | attendance = pd.DataFrame(columns = col_names)
167 | while True:
168 | ret, im =cam.read()
169 | gray=cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
170 | faces=faceCascade.detectMultiScale(gray, 1.2,5)
171 | for(x,y,w,h) in faces:
172 | cv2.rectangle(im,(x,y),(x+w,y+h),(225,0,0),2)
173 | Id, conf = recognizer.predict(gray[y:y+h,x:x+w])
174 | if(conf < 50):
175 | ts = time.time()
176 | date = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d')
177 | timeStamp = datetime.datetime.fromtimestamp(ts).strftime('%H:%M:%S')
178 | aa=df.loc[df['Id'] == Id]['Name'].values
179 | tt=str(Id)+"-"+aa
180 | attendance.loc[len(attendance)] = [Id,aa,date,timeStamp]
181 |
182 | else:
183 | Id='Unknown'
184 | tt=str(Id)
185 | if(conf > 75):
186 | noOfFile=len(os.listdir("ImagesUnknown"))+1
187 | cv2.imwrite("ImagesUnknown\Image"+str(noOfFile) + ".jpg", im[y:y+h,x:x+w])
188 | cv2.putText(im,str(tt),(x,y+h), font, 1,(255,255,255),2)
189 | attendance=attendance.drop_duplicates(subset=['Id'],keep='first')
190 | cv2.imshow('im',im)
191 | if (cv2.waitKey(1)==ord('q')):
192 | break
193 | ts = time.time()
194 | date = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d')
195 | timeStamp = datetime.datetime.fromtimestamp(ts).strftime('%H:%M:%S')
196 | Hour,Minute,Second=timeStamp.split(":")
197 | fileName="Attendance\Attendance_"+date+"_"+Hour+"-"+Minute+"-"+Second+".csv"
198 | attendance.to_csv(fileName,index=False)
199 | cam.release()
200 | cv2.destroyAllWindows()
201 | #print(attendance)
202 | res=attendance
203 | message2.configure(text= res)
204 |
205 | def SendMail():
206 | return 0
207 |
208 | clearButton = tk.Button(window, text="Clear", command=clear ,fg="red" ,bg="yellow" ,width=20 ,height=2 ,activebackground = "Red" ,font=('times', 15, ' bold '))
209 | clearButton.place(x=950, y=200)
210 | clearButton2 = tk.Button(window, text="Clear", command=clear2 ,fg="red" ,bg="yellow" ,width=20 ,height=2, activebackground = "Red" ,font=('times', 15, ' bold '))
211 | clearButton2.place(x=950, y=300)
212 | takeImg = tk.Button(window, text="Take Images", command=TakeImages ,fg="red" ,bg="yellow" ,width=20 ,height=3, activebackground = "Red" ,font=('times', 15, ' bold '))
213 | takeImg.place(x=200, y=500)
214 | trainImg = tk.Button(window, text="Train Images", command=TrainImages ,fg="red" ,bg="yellow" ,width=20 ,height=3, activebackground = "Red" ,font=('times', 15, ' bold '))
215 | trainImg.place(x=500, y=500)
216 | trackImg = tk.Button(window, text="Track Images", command=TrackImages ,fg="red" ,bg="yellow" ,width=20 ,height=3, activebackground = "Red" ,font=('times', 15, ' bold '))
217 | trackImg.place(x=800, y=500)
218 |
219 | send=tk.Button(window, text="Send Mail", command=SendMail ,fg="red" ,bg="yellow" ,width=20 ,height=3, activebackground = "Red" ,font=('times', 12, ' bold '))
220 | send.place(x=1100, y=50)
221 |
222 |
223 | quitWindow = tk.Button(window, text="Quit", command=window.destroy ,fg="red" ,bg="yellow" ,width=20 ,height=3, activebackground = "Red" ,font=('times', 15, ' bold '))
224 | quitWindow.place(x=1100, y=500)
225 | copyWrite = tk.Text(window, background=window.cget("background"), borderwidth=0,font=('times', 30, 'italic bold underline'))
226 | copyWrite.tag_configure("superscript", offset=10)
227 | copyWrite.insert("insert", "Developed by Himanshu")
228 | copyWrite.configure(state="disabled",fg="red" )
229 | copyWrite.pack(side="left")
230 | copyWrite.place(x=800, y=750)
231 |
232 | window.mainloop()
--------------------------------------------------------------------------------