From 7afc2fa94b2efcba91f2a344e054976a03b640ad Mon Sep 17 00:00:00 2001 From: jha11aditya Date: Sun, 7 Mar 2021 12:03:19 +0530 Subject: [PATCH] updated --- 1503.03832.pdf | Bin adience_align-master/.gitignore | 54 + adience_align-master/CREDIT.TXT | 32 + adience_align-master/LICENSE.txt | 21 + adience_align-master/README.md | 49 + .../adiencealign(old)/__init__.py | 0 .../affine_alignment/__init__.py | 0 .../affine_alignment/affine_aligner.py | 20 + .../cascade_detection/__init__.py | 0 .../cascade_detection/cascade_detector.py | 354 + .../cascade_detection/cascade_detector.py.bak | 353 + .../cascade_detection/cascade_face_finder.py | 153 + .../cascade_face_finder.py.bak | 153 + .../adiencealign(old)/common/__init__.py | 0 .../adiencealign(old)/common/drawing.py | 33 + .../adiencealign(old)/common/files.py | 22 + .../adiencealign(old)/common/images.py | 87 + .../adiencealign(old)/common/landmarks.py | 113 + .../adiencealign(old)/common/landmarks.py.bak | 113 + .../landmarks_detection/__init__.py | 0 .../landmarks_detection/landmarks_detector.py | 20 + .../landmarks_detector.py.bak | 20 + .../pipeline/CascadeFaceAligner.py | 148 + .../pipeline/CascadeFaceAligner.py.bak | 148 + .../adiencealign(old)/pipeline/__init__.py | 0 .../Face_small_146filters_-0.65thr.xml | 65460 ++++++++++++++++ .../resources/FiducialFaceDetector | Bin 0 -> 98576 bytes .../resources/FiducialFaceDetector.o | Bin 0 -> 33488 bytes .../resources/FiducialFaceDetector.sh | 3 + .../haarcascade_frontalface_default.xml | 35712 +++++++++ .../resources/lbpcascade_frontalface.xml | 1505 + .../resources/libboost_filesystem.so.1.53.0 | Bin 0 -> 88936 bytes .../resources/libboost_system.so.1.53.0 | Bin 0 -> 14536 bytes .../resources/model_ang_0.txt | 68 + .../adiencealign(old)/tests/.aligned.png | Bin 0 -> 712274 bytes .../adiencealign(old)/tests/__init__.py | 0 .../adiencealign(old)/tests/clear_test.sh | 6 + .../adiencealign(old)/tests/clear_test.sh~ | 4 + .../cascade/1/Fayssal_Mekdad_0002.face.0.png | Bin 0 -> 62064 bytes .../outputs/cascade/1/family-home.face.0.png | Bin 0 -> 66983 bytes .../outputs/cascade/1/family-home.face.1.png | Bin 0 -> 58617 bytes .../outputs/cascade/1/family-home.face.2.png | Bin 0 -> 44658 bytes .../outputs/cascade/1/family-home.face.3.png | Bin 0 -> 45098 bytes .../2/Fayssal_Mekdad_0002.jpg.faces.txt | 2 + .../cascade/2/Fayssal_Mekdad_0002_face_0.png | Bin 0 -> 62064 bytes .../cascade/2/family-home.png.faces.txt | 5 + .../outputs/cascade/2/family-home_face_0.png | Bin 0 -> 69174 bytes .../outputs/cascade/2/family-home_face_1.png | Bin 0 -> 60903 bytes .../outputs/cascade/2/family-home_face_2.png | Bin 0 -> 43045 bytes .../outputs/cascade/2/family-home_face_3.png | Bin 0 -> 44475 bytes .../Fayssal_Mekdad_0002_face_0.aligned.png | Bin 0 -> 446884 bytes ..._Mekdad_0002_face_0.aligned.withpoints.png | Bin 0 -> 459993 bytes .../Meryl_Streep_0013_face_0.aligned.png | Bin 0 -> 712274 bytes ..._Streep_0013_face_0.aligned.withpoints.png | Bin 0 -> 719534 bytes .../pipeline/aligned/a_face_0.aligned.png | Bin 0 -> 660049 bytes .../aligned/a_face_0.aligned.withpoints.png | Bin 0 -> 664875 bytes .../pipeline/aligned/a_face_1.aligned.png | Bin 0 -> 600560 bytes .../aligned/a_face_1.aligned.withpoints.png | Bin 0 -> 600380 bytes .../pipeline/aligned/a_face_2.aligned.png | Bin 0 -> 737233 bytes .../aligned/a_face_2.aligned.withpoints.png | Bin 0 -> 739869 bytes .../aligned/family-home_face_0.aligned.png | Bin 0 -> 759337 bytes .../family-home_face_0.aligned.withpoints.png | Bin 0 -> 758752 bytes .../aligned/family-home_face_1.aligned.png | Bin 0 -> 768240 bytes .../family-home_face_1.aligned.withpoints.png | Bin 0 -> 768490 bytes .../aligned/family-home_face_2.aligned.png | Bin 0 -> 801363 bytes .../family-home_face_2.aligned.withpoints.png | Bin 0 -> 799718 bytes .../aligned/family-home_face_3.aligned.png | Bin 0 -> 712518 bytes .../family-home_face_3.aligned.withpoints.png | Bin 0 -> 712225 bytes .../faces/Fayssal_Mekdad_0002.faces.txt | 2 + .../faces/Fayssal_Mekdad_0002_face_0.cfidu | 70 + .../faces/Fayssal_Mekdad_0002_face_0.jpg | Bin 0 -> 12367 bytes .../faces/Meryl_Streep_0013.faces.txt | 2 + .../faces/Meryl_Streep_0013_face_0.cfidu | 70 + .../faces/Meryl_Streep_0013_face_0.jpg | Bin 0 -> 11549 bytes .../tests/outputs/pipeline/faces/a.faces.txt | 4 + .../outputs/pipeline/faces/a_face_0.cfidu | 70 + .../tests/outputs/pipeline/faces/a_face_0.jpg | Bin 0 -> 10884 bytes .../outputs/pipeline/faces/a_face_1.cfidu | 70 + .../tests/outputs/pipeline/faces/a_face_1.jpg | Bin 0 -> 8301 bytes .../outputs/pipeline/faces/a_face_2.cfidu | 70 + .../tests/outputs/pipeline/faces/a_face_2.jpg | Bin 0 -> 8549 bytes .../pipeline/faces/family-home.faces.txt | 5 + .../pipeline/faces/family-home_face_0.cfidu | 70 + .../pipeline/faces/family-home_face_0.jpg | Bin 0 -> 18446 bytes .../pipeline/faces/family-home_face_1.cfidu | 70 + .../pipeline/faces/family-home_face_1.jpg | Bin 0 -> 16508 bytes .../pipeline/faces/family-home_face_2.cfidu | 70 + .../pipeline/faces/family-home_face_2.jpg | Bin 0 -> 11976 bytes .../pipeline/faces/family-home_face_3.cfidu | 70 + .../pipeline/faces/family-home_face_3.jpg | Bin 0 -> 12250 bytes .../affine_align/Fayssal_Mekdad_0002.cfidu | 70 + .../affine_align/Fayssal_Mekdad_0002.jpg | Bin 0 -> 7767 bytes .../affine_align/Meryl_Streep_0013.cfidu | 70 + .../affine_align/Meryl_Streep_0013.jpg | Bin 0 -> 14794 bytes .../resources/cascade/Fayssal_Mekdad_0002.jpg | Bin 0 -> 7767 bytes .../cascade/Fayssal_Mekdad_0002.jpg.faces.txt | 2 + .../tests/resources/cascade/family-home.png | Bin 0 -> 427813 bytes .../cascade/family-home.png.faces.txt | 5 + .../landmarks/Fayssal_Mekdad_0002.cfidu | 70 + .../landmarks/Fayssal_Mekdad_0002.jpg | Bin 0 -> 7767 bytes .../pipeline/.done.Fayssal_Mekdad_0002 | 0 .../pipeline/.done.Meryl_Streep_0013 | 0 .../tests/resources/pipeline/.done.a | 0 .../resources/pipeline/.done.family-home | 0 .../pipeline/Fayssal_Mekdad_0002.jpg | Bin 0 -> 7767 bytes .../resources/pipeline/Meryl_Streep_0013.jpg | Bin 0 -> 14794 bytes .../tests/resources/pipeline/a.png | Bin 0 -> 324768 bytes .../tests/resources/pipeline/family-home.png | Bin 0 -> 427813 bytes .../tests/test_affine_align.py | 43 + .../tests/test_cascade_detection.py | 104 + .../tests/test_landmarks_detector.py | 52 + .../adiencealign(old)/tests/test_pipeline.py | 41 + adience_align-master/adiencealign/__init__.py | 0 .../adiencealign/affine_alignment/__init__.py | 0 .../affine_alignment/affine_aligner.py | 20 + .../cascade_detection/__init__.py | 0 .../cascade_detection/cascade_detector.py | 354 + .../cascade_detection/cascade_detector.py.bak | 353 + .../cascade_detection/cascade_face_finder.py | 153 + .../cascade_face_finder.py.bak | 153 + .../adiencealign/common/__init__.py | 0 .../adiencealign/common/drawing.py | 33 + .../adiencealign/common/files.py | 22 + .../adiencealign/common/images.py | 87 + .../adiencealign/common/landmarks.py | 113 + .../adiencealign/common/landmarks.py.bak | 113 + .../landmarks_detection/__init__.py | 0 .../landmarks_detection/landmarks_detector.py | 20 + .../landmarks_detector.py.bak | 20 + .../pipeline/CascadeFaceAligner.py | 148 + .../pipeline/CascadeFaceAligner.py.bak | 148 + .../adiencealign/pipeline/__init__.py | 0 .../Face_small_146filters_-0.65thr.xml | 65460 ++++++++++++++++ .../resources/FiducialFaceDetector | Bin 0 -> 98576 bytes .../resources/FiducialFaceDetector.o | Bin 0 -> 33488 bytes .../resources/FiducialFaceDetector.sh | 3 + .../haarcascade_frontalface_default.xml | 35712 +++++++++ .../resources/lbpcascade_frontalface.xml | 1505 + .../resources/libboost_filesystem.so.1.53.0 | Bin 0 -> 88936 bytes .../resources/libboost_system.so.1.53.0 | Bin 0 -> 14536 bytes .../adiencealign/resources/model_ang_0.txt | 68 + .../adiencealign/tests/.aligned.png | Bin 0 -> 712274 bytes .../adiencealign/tests/__init__.py | 0 .../adiencealign/tests/clear_test.sh | 6 + .../adiencealign/tests/clear_test.sh~ | 4 + .../cascade/1/Fayssal_Mekdad_0002.face.0.png | Bin 0 -> 62064 bytes .../outputs/cascade/1/family-home.face.0.png | Bin 0 -> 66983 bytes .../outputs/cascade/1/family-home.face.1.png | Bin 0 -> 58617 bytes .../outputs/cascade/1/family-home.face.2.png | Bin 0 -> 44658 bytes .../outputs/cascade/1/family-home.face.3.png | Bin 0 -> 45098 bytes .../2/Fayssal_Mekdad_0002.jpg.faces.txt | 2 + .../cascade/2/Fayssal_Mekdad_0002_face_0.png | Bin 0 -> 62064 bytes .../cascade/2/family-home.png.faces.txt | 5 + .../outputs/cascade/2/family-home_face_0.png | Bin 0 -> 69174 bytes .../outputs/cascade/2/family-home_face_1.png | Bin 0 -> 60903 bytes .../outputs/cascade/2/family-home_face_2.png | Bin 0 -> 43045 bytes .../outputs/cascade/2/family-home_face_3.png | Bin 0 -> 44475 bytes .../Fayssal_Mekdad_0002_face_0.aligned.png | Bin 0 -> 446884 bytes ..._Mekdad_0002_face_0.aligned.withpoints.png | Bin 0 -> 459993 bytes .../Meryl_Streep_0013_face_0.aligned.png | Bin 0 -> 712274 bytes ..._Streep_0013_face_0.aligned.withpoints.png | Bin 0 -> 719534 bytes .../pipeline/aligned/a_face_0.aligned.png | Bin 0 -> 660049 bytes .../aligned/a_face_0.aligned.withpoints.png | Bin 0 -> 664875 bytes .../pipeline/aligned/a_face_1.aligned.png | Bin 0 -> 600560 bytes .../aligned/a_face_1.aligned.withpoints.png | Bin 0 -> 600380 bytes .../pipeline/aligned/a_face_2.aligned.png | Bin 0 -> 737233 bytes .../aligned/a_face_2.aligned.withpoints.png | Bin 0 -> 739869 bytes .../aligned/family-home_face_0.aligned.png | Bin 0 -> 759337 bytes .../family-home_face_0.aligned.withpoints.png | Bin 0 -> 758752 bytes .../aligned/family-home_face_1.aligned.png | Bin 0 -> 768240 bytes .../family-home_face_1.aligned.withpoints.png | Bin 0 -> 768490 bytes .../aligned/family-home_face_2.aligned.png | Bin 0 -> 801363 bytes .../family-home_face_2.aligned.withpoints.png | Bin 0 -> 799718 bytes .../aligned/family-home_face_3.aligned.png | Bin 0 -> 712518 bytes .../family-home_face_3.aligned.withpoints.png | Bin 0 -> 712225 bytes .../faces/Fayssal_Mekdad_0002.faces.txt | 2 + .../faces/Fayssal_Mekdad_0002_face_0.cfidu | 70 + .../faces/Fayssal_Mekdad_0002_face_0.jpg | Bin 0 -> 12367 bytes .../faces/Meryl_Streep_0013.faces.txt | 2 + .../faces/Meryl_Streep_0013_face_0.cfidu | 70 + .../faces/Meryl_Streep_0013_face_0.jpg | Bin 0 -> 11549 bytes .../tests/outputs/pipeline/faces/a.faces.txt | 4 + .../outputs/pipeline/faces/a_face_0.cfidu | 70 + .../tests/outputs/pipeline/faces/a_face_0.jpg | Bin 0 -> 10884 bytes .../outputs/pipeline/faces/a_face_1.cfidu | 70 + .../tests/outputs/pipeline/faces/a_face_1.jpg | Bin 0 -> 8301 bytes .../outputs/pipeline/faces/a_face_2.cfidu | 70 + .../tests/outputs/pipeline/faces/a_face_2.jpg | Bin 0 -> 8549 bytes .../pipeline/faces/family-home.faces.txt | 5 + .../pipeline/faces/family-home_face_0.cfidu | 70 + .../pipeline/faces/family-home_face_0.jpg | Bin 0 -> 18446 bytes .../pipeline/faces/family-home_face_1.cfidu | 70 + .../pipeline/faces/family-home_face_1.jpg | Bin 0 -> 16508 bytes .../pipeline/faces/family-home_face_2.cfidu | 70 + .../pipeline/faces/family-home_face_2.jpg | Bin 0 -> 11976 bytes .../pipeline/faces/family-home_face_3.cfidu | 70 + .../pipeline/faces/family-home_face_3.jpg | Bin 0 -> 12250 bytes .../affine_align/Fayssal_Mekdad_0002.cfidu | 70 + .../affine_align/Fayssal_Mekdad_0002.jpg | Bin 0 -> 7767 bytes .../affine_align/Meryl_Streep_0013.cfidu | 70 + .../affine_align/Meryl_Streep_0013.jpg | Bin 0 -> 14794 bytes .../resources/cascade/Fayssal_Mekdad_0002.jpg | Bin 0 -> 7767 bytes .../cascade/Fayssal_Mekdad_0002.jpg.faces.txt | 2 + .../tests/resources/cascade/family-home.png | Bin 0 -> 427813 bytes .../cascade/family-home.png.faces.txt | 5 + .../landmarks/Fayssal_Mekdad_0002.cfidu | 70 + .../landmarks/Fayssal_Mekdad_0002.jpg | Bin 0 -> 7767 bytes .../pipeline/.done.Fayssal_Mekdad_0002 | 0 .../pipeline/.done.Meryl_Streep_0013 | 0 .../tests/resources/pipeline/.done.a | 0 .../resources/pipeline/.done.family-home | 0 .../pipeline/Fayssal_Mekdad_0002.jpg | Bin 0 -> 7767 bytes .../resources/pipeline/Meryl_Streep_0013.jpg | Bin 0 -> 14794 bytes .../tests/resources/pipeline/a.png | Bin 0 -> 324768 bytes .../tests/resources/pipeline/family-home.png | Bin 0 -> 427813 bytes .../adiencealign/tests/test_affine_align.py | 43 + .../tests/test_cascade_detection.py | 104 + .../tests/test_landmarks_detector.py | 52 + .../adiencealign/tests/test_pipeline.py | 41 + adience_align-master/setup.py | 21 + adiencealign/__init__.py | 0 adiencealign/__init__.pyc | Bin 0 -> 111 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 171 bytes adiencealign/affine_alignment/__init__.py | 0 .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 167 bytes .../__pycache__/affine_aligner.cpython-38.pyc | Bin 0 -> 1157 bytes .../affine_alignment/affine_aligner.py | 20 + adiencealign/cascade_detection/__init__.py | 0 adiencealign/cascade_detection/__init__.pyc | Bin 0 -> 129 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 189 bytes .../cascade_detector.cpython-38.pyc | Bin 0 -> 13188 bytes .../cascade_face_finder.cpython-38.pyc | Bin 0 -> 5657 bytes .../cascade_detection/cascade_detector.py | 354 + .../cascade_detection/cascade_detector.py.bak | 353 + .../cascade_detection/cascade_face_finder.py | 153 + .../cascade_face_finder.py.bak | 153 + .../cascade_detection/cascade_face_finder.pyc | Bin 0 -> 6353 bytes adiencealign/common/__init__.py | 0 adiencealign/common/__init__.pyc | Bin 0 -> 118 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 178 bytes .../common/__pycache__/files.cpython-38.pyc | Bin 0 -> 756 bytes .../common/__pycache__/images.cpython-38.pyc | Bin 0 -> 2941 bytes .../__pycache__/landmarks.cpython-38.pyc | Bin 0 -> 5577 bytes adiencealign/common/drawing.py | 33 + adiencealign/common/files.py | 22 + adiencealign/common/images.py | 87 + adiencealign/common/images.pyc | Bin 0 -> 3464 bytes adiencealign/common/landmarks.py | 113 + adiencealign/common/landmarks.py.bak | 113 + adiencealign/landmarks_detection/__init__.py | 0 .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 170 bytes .../landmarks_detector.cpython-38.pyc | Bin 0 -> 900 bytes .../landmarks_detection/landmarks_detector.py | 20 + .../landmarks_detector.py.bak | 20 + adiencealign/pipeline/CascadeFaceAligner.py | 148 + .../pipeline/CascadeFaceAligner.py.bak | 148 + adiencealign/pipeline/__init__.py | 0 .../CascadeFaceAligner.cpython-38.pyc | Bin 0 -> 3704 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 159 bytes .../Face_small_146filters_-0.65thr.xml | 65460 ++++++++++++++++ adiencealign/resources/FiducialFaceDetector | Bin 0 -> 98576 bytes adiencealign/resources/FiducialFaceDetector.o | Bin 0 -> 33488 bytes .../resources/FiducialFaceDetector.sh | 3 + .../haarcascade_frontalface_default.xml | 35712 +++++++++ .../resources/lbpcascade_frontalface.xml | 1505 + .../resources/libPartsBasedDetector.so | Bin 0 -> 4465914 bytes .../resources/libboost_filesystem.so.1.53.0 | Bin 0 -> 88936 bytes .../resources/libboost_system.so.1.53.0 | Bin 0 -> 14536 bytes adiencealign/resources/model_ang_0.txt | 68 + adiencealign/tests/.aligned.png | Bin 0 -> 712274 bytes adiencealign/tests/__init__.py | 0 adiencealign/tests/clear_test.sh | 6 + adiencealign/tests/clear_test.sh~ | 4 + .../cascade/1/Fayssal_Mekdad_0002.face.0.png | Bin 0 -> 62064 bytes .../outputs/cascade/1/family-home.face.0.png | Bin 0 -> 66983 bytes .../outputs/cascade/1/family-home.face.1.png | Bin 0 -> 58617 bytes .../outputs/cascade/1/family-home.face.2.png | Bin 0 -> 44658 bytes .../outputs/cascade/1/family-home.face.3.png | Bin 0 -> 45098 bytes .../2/Fayssal_Mekdad_0002.jpg.faces.txt | 2 + .../cascade/2/Fayssal_Mekdad_0002_face_0.png | Bin 0 -> 62064 bytes .../cascade/2/family-home.png.faces.txt | 5 + .../outputs/cascade/2/family-home_face_0.png | Bin 0 -> 69174 bytes .../outputs/cascade/2/family-home_face_1.png | Bin 0 -> 60903 bytes .../outputs/cascade/2/family-home_face_2.png | Bin 0 -> 43045 bytes .../outputs/cascade/2/family-home_face_3.png | Bin 0 -> 44475 bytes .../Fayssal_Mekdad_0002_face_0.aligned.png | Bin 0 -> 446884 bytes ..._Mekdad_0002_face_0.aligned.withpoints.png | Bin 0 -> 459993 bytes .../Meryl_Streep_0013_face_0.aligned.png | Bin 0 -> 712274 bytes ..._Streep_0013_face_0.aligned.withpoints.png | Bin 0 -> 719534 bytes .../pipeline/aligned/a_face_0.aligned.png | Bin 0 -> 660049 bytes .../aligned/a_face_0.aligned.withpoints.png | Bin 0 -> 664875 bytes .../pipeline/aligned/a_face_1.aligned.png | Bin 0 -> 600560 bytes .../aligned/a_face_1.aligned.withpoints.png | Bin 0 -> 600380 bytes .../pipeline/aligned/a_face_2.aligned.png | Bin 0 -> 737233 bytes .../aligned/a_face_2.aligned.withpoints.png | Bin 0 -> 739869 bytes .../aligned/family-home_face_0.aligned.png | Bin 0 -> 759337 bytes .../family-home_face_0.aligned.withpoints.png | Bin 0 -> 758752 bytes .../aligned/family-home_face_1.aligned.png | Bin 0 -> 768240 bytes .../family-home_face_1.aligned.withpoints.png | Bin 0 -> 768490 bytes .../aligned/family-home_face_2.aligned.png | Bin 0 -> 801363 bytes .../family-home_face_2.aligned.withpoints.png | Bin 0 -> 799718 bytes .../aligned/family-home_face_3.aligned.png | Bin 0 -> 712518 bytes .../family-home_face_3.aligned.withpoints.png | Bin 0 -> 712225 bytes .../faces/Fayssal_Mekdad_0002.faces.txt | 2 + .../faces/Fayssal_Mekdad_0002_face_0.cfidu | 70 + .../faces/Fayssal_Mekdad_0002_face_0.jpg | Bin 0 -> 12367 bytes .../faces/Meryl_Streep_0013.faces.txt | 2 + .../faces/Meryl_Streep_0013_face_0.cfidu | 70 + .../faces/Meryl_Streep_0013_face_0.jpg | Bin 0 -> 11549 bytes .../tests/outputs/pipeline/faces/a.faces.txt | 4 + .../outputs/pipeline/faces/a_face_0.cfidu | 70 + .../tests/outputs/pipeline/faces/a_face_0.jpg | Bin 0 -> 10884 bytes .../outputs/pipeline/faces/a_face_1.cfidu | 70 + .../tests/outputs/pipeline/faces/a_face_1.jpg | Bin 0 -> 8301 bytes .../outputs/pipeline/faces/a_face_2.cfidu | 70 + .../tests/outputs/pipeline/faces/a_face_2.jpg | Bin 0 -> 8549 bytes .../pipeline/faces/family-home.faces.txt | 5 + .../pipeline/faces/family-home_face_0.cfidu | 70 + .../pipeline/faces/family-home_face_0.jpg | Bin 0 -> 18446 bytes .../pipeline/faces/family-home_face_1.cfidu | 70 + .../pipeline/faces/family-home_face_1.jpg | Bin 0 -> 16508 bytes .../pipeline/faces/family-home_face_2.cfidu | 70 + .../pipeline/faces/family-home_face_2.jpg | Bin 0 -> 11976 bytes .../pipeline/faces/family-home_face_3.cfidu | 70 + .../pipeline/faces/family-home_face_3.jpg | Bin 0 -> 12250 bytes .../affine_align/Fayssal_Mekdad_0002.cfidu | 70 + .../affine_align/Fayssal_Mekdad_0002.jpg | Bin 0 -> 7767 bytes .../affine_align/Meryl_Streep_0013.cfidu | 70 + .../affine_align/Meryl_Streep_0013.jpg | Bin 0 -> 14794 bytes .../resources/cascade/Fayssal_Mekdad_0002.jpg | Bin 0 -> 7767 bytes .../cascade/Fayssal_Mekdad_0002.jpg.faces.txt | 2 + .../tests/resources/cascade/family-home.png | Bin 0 -> 427813 bytes .../cascade/family-home.png.faces.txt | 5 + .../landmarks/Fayssal_Mekdad_0002.cfidu | 70 + .../landmarks/Fayssal_Mekdad_0002.jpg | Bin 0 -> 7767 bytes .../pipeline/.done.Fayssal_Mekdad_0002 | 0 .../pipeline/.done.Meryl_Streep_0013 | 0 adiencealign/tests/resources/pipeline/.done.a | 0 .../resources/pipeline/.done.family-home | 0 .../pipeline/Fayssal_Mekdad_0002.jpg | Bin 0 -> 7767 bytes .../resources/pipeline/Meryl_Streep_0013.jpg | Bin 0 -> 14794 bytes adiencealign/tests/resources/pipeline/a.png | Bin 0 -> 324768 bytes .../tests/resources/pipeline/family-home.png | Bin 0 -> 427813 bytes adiencealign/tests/test_affine_align.py | 43 + adiencealign/tests/test_cascade_detection.py | 104 + adiencealign/tests/test_landmarks_detector.py | 52 + adiencealign/tests/test_pipeline.py | 41 + astro.png | Bin bkp.py | 0 encoder.py | 0 face1.jpeg | Bin face_cutter.py | 0 faceof_0astro.png | Bin faceof_0face1.jpeg | Bin .../Shapely-1.7.1.dist-info/INSTALLER | 1 + .../Shapely-1.7.1.dist-info/METADATA | 1042 + .../Shapely-1.7.1.dist-info/RECORD | 89 + .../Shapely-1.7.1.dist-info/WHEEL | 5 + .../Shapely-1.7.1.dist-info/top_level.txt | 1 + .../.libs/libgeos--no-undefined-b94097bf.so | Bin 0 -> 2240704 bytes .../.libs/libgeos_c-a68605fd.so.1.13.1 | Bin 0 -> 354216 bytes .../site-packages/shapely/__init__.py | 1 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 164 bytes .../__pycache__/_buildcfg.cpython-38.pyc | Bin 0 -> 5608 bytes .../__pycache__/affinity.cpython-38.pyc | Bin 0 -> 7686 bytes .../shapely/__pycache__/coords.cpython-38.pyc | Bin 0 -> 4869 bytes .../ctypes_declarations.cpython-38.pyc | Bin 0 -> 8079 bytes .../shapely/__pycache__/errors.cpython-38.pyc | Bin 0 -> 1827 bytes .../shapely/__pycache__/geos.cpython-38.pyc | Bin 0 -> 24464 bytes .../shapely/__pycache__/impl.cpython-38.pyc | Bin 0 -> 5274 bytes .../__pycache__/iterops.cpython-38.pyc | Bin 0 -> 1130 bytes .../shapely/__pycache__/linref.cpython-38.pyc | Bin 0 -> 1338 bytes .../shapely/__pycache__/ops.cpython-38.pyc | Bin 0 -> 19425 bytes .../__pycache__/predicates.cpython-38.pyc | Bin 0 -> 1061 bytes .../__pycache__/prepared.cpython-38.pyc | Bin 0 -> 3886 bytes .../__pycache__/strtree.cpython-38.pyc | Bin 0 -> 3861 bytes .../__pycache__/topology.cpython-38.pyc | Bin 0 -> 3187 bytes .../__pycache__/validation.cpython-38.pyc | Bin 0 -> 335 bytes .../shapely/__pycache__/wkb.cpython-38.pyc | Bin 0 -> 1914 bytes .../shapely/__pycache__/wkt.cpython-38.pyc | Bin 0 -> 2336 bytes .../site-packages/shapely/_buildcfg.py | 252 + .../python3.8/site-packages/shapely/_geos.pxi | 60 + .../site-packages/shapely/affinity.py | 263 + .../shapely/algorithms/__init__.py | 0 .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 154 bytes .../algorithms/__pycache__/cga.cpython-38.pyc | Bin 0 -> 1014 bytes .../__pycache__/polylabel.cpython-38.pyc | Bin 0 -> 4017 bytes .../site-packages/shapely/algorithms/cga.py | 16 + .../shapely/algorithms/polylabel.py | 137 + .../python3.8/site-packages/shapely/coords.py | 186 + .../shapely/ctypes_declarations.py | 543 + .../python3.8/site-packages/shapely/errors.py | 37 + .../shapely/examples/__init__.py | 1 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 152 bytes .../__pycache__/dissolve.cpython-38.pyc | Bin 0 -> 1527 bytes .../examples/__pycache__/geoms.cpython-38.pyc | Bin 0 -> 1648 bytes .../__pycache__/intersect.cpython-38.pyc | Bin 0 -> 2050 bytes .../shapely/examples/dissolve.py | 53 + .../site-packages/shapely/examples/geoms.py | 51 + .../shapely/examples/intersect.py | 81 + .../shapely/geometry/__init__.py | 23 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 1090 bytes .../geometry/__pycache__/base.cpython-38.pyc | Bin 0 -> 34454 bytes .../__pycache__/collection.cpython-38.pyc | Bin 0 -> 2438 bytes .../geometry/__pycache__/geo.cpython-38.pyc | Bin 0 -> 5814 bytes .../__pycache__/linestring.cpython-38.pyc | Bin 0 -> 8188 bytes .../multilinestring.cpython-38.pyc | Bin 0 -> 5015 bytes .../__pycache__/multipoint.cpython-38.pyc | Bin 0 -> 5664 bytes .../__pycache__/multipolygon.cpython-38.pyc | Bin 0 -> 6171 bytes .../geometry/__pycache__/point.cpython-38.pyc | Bin 0 -> 6778 bytes .../__pycache__/polygon.cpython-38.pyc | Bin 0 -> 15359 bytes .../geometry/__pycache__/proxy.cpython-38.pyc | Bin 0 -> 1918 bytes .../site-packages/shapely/geometry/base.py | 1033 + .../shapely/geometry/collection.py | 79 + .../site-packages/shapely/geometry/geo.py | 205 + .../shapely/geometry/linestring.py | 266 + .../shapely/geometry/multilinestring.py | 151 + .../shapely/geometry/multipoint.py | 179 + .../shapely/geometry/multipolygon.py | 208 + .../site-packages/shapely/geometry/point.py | 242 + .../site-packages/shapely/geometry/polygon.py | 540 + .../site-packages/shapely/geometry/proxy.py | 52 + .../python3.8/site-packages/shapely/geos.py | 911 + .../python3.8/site-packages/shapely/impl.py | 170 + .../site-packages/shapely/iterops.py | 40 + .../python3.8/site-packages/shapely/linref.py | 24 + .../python3.8/site-packages/shapely/ops.py | 618 + .../site-packages/shapely/predicates.py | 25 + .../site-packages/shapely/prepared.py | 99 + .../shapely/speedups/__init__.py | 99 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 2526 bytes .../shapely/speedups/_speedups.c | 14726 ++++ .../_speedups.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 175912 bytes .../shapely/speedups/_speedups.pyx | 569 + .../site-packages/shapely/strtree.py | 110 + .../site-packages/shapely/topology.py | 78 + .../site-packages/shapely/validation.py | 6 + .../shapely/vectorized/__init__.py | 3 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 299 bytes ..._vectorized.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 188152 bytes .../shapely/vectorized/_vectorized.pyx | 122 + .../python3.8/site-packages/shapely/wkb.py | 55 + .../python3.8/site-packages/shapely/wkt.py | 87 + full_data.csv | 0 hog_offaceof_0astro.png | Bin hog_offaceof_face1.jpeg | Bin hogger.py | 0 main.py | 0 note.txt | 0 opencv-python | 1 + orienter.py | 31 + output/astro.faces.txt | 2 + output/faceof_0astro.png | Bin 0 -> 2528 bytes output/faceof_11076astro.png | Bin 2665 -> 0 bytes output/faceof_3384astro.png | Bin 2447 -> 0 bytes output/hog_offaceof_0astro.png | Bin 0 -> 979 bytes predictor.py | 0 requirements.txt | 0 standardizer.py | 0 subject01.happy.png | Bin subject07.surprised.png | Bin subject09.glasses.png | Bin subject11.surprised.png | Bin subject14.leftlight.png | Bin svm_model.sav | Bin 4639719 -> 3686083 bytes test1.png | Bin tilted.jpg | Bin 0 -> 50912 bytes trainer.py | 9 +- videos/.done.astro | 0 videos/.done.tilted | 0 videos/.done.zzz | 0 videos/astro.png | Bin 0 -> 142441 bytes yaleB12_P00A+000E+00.pgm | 4410 ++ zzz.jpg | Bin 474 files changed, 344974 insertions(+), 1 deletion(-) mode change 100644 => 100755 1503.03832.pdf create mode 100644 adience_align-master/.gitignore create mode 100644 adience_align-master/CREDIT.TXT create mode 100644 adience_align-master/LICENSE.txt create mode 100644 adience_align-master/README.md create mode 100644 adience_align-master/adiencealign(old)/__init__.py create mode 100644 adience_align-master/adiencealign(old)/affine_alignment/__init__.py create mode 100644 adience_align-master/adiencealign(old)/affine_alignment/affine_aligner.py create mode 100644 adience_align-master/adiencealign(old)/cascade_detection/__init__.py create mode 100644 adience_align-master/adiencealign(old)/cascade_detection/cascade_detector.py create mode 100644 adience_align-master/adiencealign(old)/cascade_detection/cascade_detector.py.bak create mode 100644 adience_align-master/adiencealign(old)/cascade_detection/cascade_face_finder.py create mode 100644 adience_align-master/adiencealign(old)/cascade_detection/cascade_face_finder.py.bak create mode 100644 adience_align-master/adiencealign(old)/common/__init__.py create mode 100644 adience_align-master/adiencealign(old)/common/drawing.py create mode 100644 adience_align-master/adiencealign(old)/common/files.py create mode 100644 adience_align-master/adiencealign(old)/common/images.py create mode 100644 adience_align-master/adiencealign(old)/common/landmarks.py create mode 100644 adience_align-master/adiencealign(old)/common/landmarks.py.bak create mode 100644 adience_align-master/adiencealign(old)/landmarks_detection/__init__.py create mode 100644 adience_align-master/adiencealign(old)/landmarks_detection/landmarks_detector.py create mode 100644 adience_align-master/adiencealign(old)/landmarks_detection/landmarks_detector.py.bak create mode 100644 adience_align-master/adiencealign(old)/pipeline/CascadeFaceAligner.py create mode 100644 adience_align-master/adiencealign(old)/pipeline/CascadeFaceAligner.py.bak create mode 100644 adience_align-master/adiencealign(old)/pipeline/__init__.py create mode 100755 adience_align-master/adiencealign(old)/resources/Face_small_146filters_-0.65thr.xml create mode 100755 adience_align-master/adiencealign(old)/resources/FiducialFaceDetector create mode 100644 adience_align-master/adiencealign(old)/resources/FiducialFaceDetector.o create mode 100755 adience_align-master/adiencealign(old)/resources/FiducialFaceDetector.sh create mode 100644 adience_align-master/adiencealign(old)/resources/haarcascade_frontalface_default.xml create mode 100644 adience_align-master/adiencealign(old)/resources/lbpcascade_frontalface.xml create mode 100644 adience_align-master/adiencealign(old)/resources/libboost_filesystem.so.1.53.0 create mode 100644 adience_align-master/adiencealign(old)/resources/libboost_system.so.1.53.0 create mode 100644 adience_align-master/adiencealign(old)/resources/model_ang_0.txt create mode 100644 adience_align-master/adiencealign(old)/tests/.aligned.png create mode 100644 adience_align-master/adiencealign(old)/tests/__init__.py create mode 100755 adience_align-master/adiencealign(old)/tests/clear_test.sh create mode 100755 adience_align-master/adiencealign(old)/tests/clear_test.sh~ create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/cascade/1/Fayssal_Mekdad_0002.face.0.png create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/cascade/1/family-home.face.0.png create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/cascade/1/family-home.face.1.png create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/cascade/1/family-home.face.2.png create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/cascade/1/family-home.face.3.png create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/cascade/2/Fayssal_Mekdad_0002.jpg.faces.txt create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/cascade/2/Fayssal_Mekdad_0002_face_0.png create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/cascade/2/family-home.png.faces.txt create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/cascade/2/family-home_face_0.png create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/cascade/2/family-home_face_1.png create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/cascade/2/family-home_face_2.png create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/cascade/2/family-home_face_3.png create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/aligned/Fayssal_Mekdad_0002_face_0.aligned.png create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/aligned/Fayssal_Mekdad_0002_face_0.aligned.withpoints.png create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/aligned/Meryl_Streep_0013_face_0.aligned.png create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/aligned/Meryl_Streep_0013_face_0.aligned.withpoints.png create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/aligned/a_face_0.aligned.png create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/aligned/a_face_0.aligned.withpoints.png create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/aligned/a_face_1.aligned.png create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/aligned/a_face_1.aligned.withpoints.png create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/aligned/a_face_2.aligned.png create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/aligned/a_face_2.aligned.withpoints.png create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/aligned/family-home_face_0.aligned.png create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/aligned/family-home_face_0.aligned.withpoints.png create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/aligned/family-home_face_1.aligned.png create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/aligned/family-home_face_1.aligned.withpoints.png create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/aligned/family-home_face_2.aligned.png create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/aligned/family-home_face_2.aligned.withpoints.png create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/aligned/family-home_face_3.aligned.png create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/aligned/family-home_face_3.aligned.withpoints.png create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/faces/Fayssal_Mekdad_0002.faces.txt create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/faces/Fayssal_Mekdad_0002_face_0.cfidu create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/faces/Fayssal_Mekdad_0002_face_0.jpg create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/faces/Meryl_Streep_0013.faces.txt create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/faces/Meryl_Streep_0013_face_0.cfidu create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/faces/Meryl_Streep_0013_face_0.jpg create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/faces/a.faces.txt create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/faces/a_face_0.cfidu create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/faces/a_face_0.jpg create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/faces/a_face_1.cfidu create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/faces/a_face_1.jpg create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/faces/a_face_2.cfidu create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/faces/a_face_2.jpg create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/faces/family-home.faces.txt create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/faces/family-home_face_0.cfidu create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/faces/family-home_face_0.jpg create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/faces/family-home_face_1.cfidu create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/faces/family-home_face_1.jpg create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/faces/family-home_face_2.cfidu create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/faces/family-home_face_2.jpg create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/faces/family-home_face_3.cfidu create mode 100644 adience_align-master/adiencealign(old)/tests/outputs/pipeline/faces/family-home_face_3.jpg create mode 100644 adience_align-master/adiencealign(old)/tests/resources/affine_align/Fayssal_Mekdad_0002.cfidu create mode 100644 adience_align-master/adiencealign(old)/tests/resources/affine_align/Fayssal_Mekdad_0002.jpg create mode 100644 adience_align-master/adiencealign(old)/tests/resources/affine_align/Meryl_Streep_0013.cfidu create mode 100644 adience_align-master/adiencealign(old)/tests/resources/affine_align/Meryl_Streep_0013.jpg create mode 100644 adience_align-master/adiencealign(old)/tests/resources/cascade/Fayssal_Mekdad_0002.jpg create mode 100644 adience_align-master/adiencealign(old)/tests/resources/cascade/Fayssal_Mekdad_0002.jpg.faces.txt create mode 100644 adience_align-master/adiencealign(old)/tests/resources/cascade/family-home.png create mode 100644 adience_align-master/adiencealign(old)/tests/resources/cascade/family-home.png.faces.txt create mode 100644 adience_align-master/adiencealign(old)/tests/resources/landmarks/Fayssal_Mekdad_0002.cfidu create mode 100644 adience_align-master/adiencealign(old)/tests/resources/landmarks/Fayssal_Mekdad_0002.jpg create mode 100644 adience_align-master/adiencealign(old)/tests/resources/pipeline/.done.Fayssal_Mekdad_0002 create mode 100644 adience_align-master/adiencealign(old)/tests/resources/pipeline/.done.Meryl_Streep_0013 create mode 100644 adience_align-master/adiencealign(old)/tests/resources/pipeline/.done.a create mode 100644 adience_align-master/adiencealign(old)/tests/resources/pipeline/.done.family-home create mode 100644 adience_align-master/adiencealign(old)/tests/resources/pipeline/Fayssal_Mekdad_0002.jpg create mode 100644 adience_align-master/adiencealign(old)/tests/resources/pipeline/Meryl_Streep_0013.jpg create mode 100644 adience_align-master/adiencealign(old)/tests/resources/pipeline/a.png create mode 100644 adience_align-master/adiencealign(old)/tests/resources/pipeline/family-home.png create mode 100644 adience_align-master/adiencealign(old)/tests/test_affine_align.py create mode 100644 adience_align-master/adiencealign(old)/tests/test_cascade_detection.py create mode 100644 adience_align-master/adiencealign(old)/tests/test_landmarks_detector.py create mode 100644 adience_align-master/adiencealign(old)/tests/test_pipeline.py create mode 100644 adience_align-master/adiencealign/__init__.py create mode 100644 adience_align-master/adiencealign/affine_alignment/__init__.py create mode 100644 adience_align-master/adiencealign/affine_alignment/affine_aligner.py create mode 100644 adience_align-master/adiencealign/cascade_detection/__init__.py create mode 100644 adience_align-master/adiencealign/cascade_detection/cascade_detector.py create mode 100644 adience_align-master/adiencealign/cascade_detection/cascade_detector.py.bak create mode 100644 adience_align-master/adiencealign/cascade_detection/cascade_face_finder.py create mode 100644 adience_align-master/adiencealign/cascade_detection/cascade_face_finder.py.bak create mode 100644 adience_align-master/adiencealign/common/__init__.py create mode 100644 adience_align-master/adiencealign/common/drawing.py create mode 100644 adience_align-master/adiencealign/common/files.py create mode 100644 adience_align-master/adiencealign/common/images.py create mode 100644 adience_align-master/adiencealign/common/landmarks.py create mode 100644 adience_align-master/adiencealign/common/landmarks.py.bak create mode 100644 adience_align-master/adiencealign/landmarks_detection/__init__.py create mode 100644 adience_align-master/adiencealign/landmarks_detection/landmarks_detector.py create mode 100644 adience_align-master/adiencealign/landmarks_detection/landmarks_detector.py.bak create mode 100644 adience_align-master/adiencealign/pipeline/CascadeFaceAligner.py create mode 100644 adience_align-master/adiencealign/pipeline/CascadeFaceAligner.py.bak create mode 100644 adience_align-master/adiencealign/pipeline/__init__.py create mode 100755 adience_align-master/adiencealign/resources/Face_small_146filters_-0.65thr.xml create mode 100755 adience_align-master/adiencealign/resources/FiducialFaceDetector create mode 100644 adience_align-master/adiencealign/resources/FiducialFaceDetector.o create mode 100755 adience_align-master/adiencealign/resources/FiducialFaceDetector.sh create mode 100644 adience_align-master/adiencealign/resources/haarcascade_frontalface_default.xml create mode 100644 adience_align-master/adiencealign/resources/lbpcascade_frontalface.xml create mode 100644 adience_align-master/adiencealign/resources/libboost_filesystem.so.1.53.0 create mode 100644 adience_align-master/adiencealign/resources/libboost_system.so.1.53.0 create mode 100644 adience_align-master/adiencealign/resources/model_ang_0.txt create mode 100644 adience_align-master/adiencealign/tests/.aligned.png create mode 100644 adience_align-master/adiencealign/tests/__init__.py create mode 100755 adience_align-master/adiencealign/tests/clear_test.sh create mode 100755 adience_align-master/adiencealign/tests/clear_test.sh~ create mode 100644 adience_align-master/adiencealign/tests/outputs/cascade/1/Fayssal_Mekdad_0002.face.0.png create mode 100644 adience_align-master/adiencealign/tests/outputs/cascade/1/family-home.face.0.png create mode 100644 adience_align-master/adiencealign/tests/outputs/cascade/1/family-home.face.1.png create mode 100644 adience_align-master/adiencealign/tests/outputs/cascade/1/family-home.face.2.png create mode 100644 adience_align-master/adiencealign/tests/outputs/cascade/1/family-home.face.3.png create mode 100644 adience_align-master/adiencealign/tests/outputs/cascade/2/Fayssal_Mekdad_0002.jpg.faces.txt create mode 100644 adience_align-master/adiencealign/tests/outputs/cascade/2/Fayssal_Mekdad_0002_face_0.png create mode 100644 adience_align-master/adiencealign/tests/outputs/cascade/2/family-home.png.faces.txt create mode 100644 adience_align-master/adiencealign/tests/outputs/cascade/2/family-home_face_0.png create mode 100644 adience_align-master/adiencealign/tests/outputs/cascade/2/family-home_face_1.png create mode 100644 adience_align-master/adiencealign/tests/outputs/cascade/2/family-home_face_2.png create mode 100644 adience_align-master/adiencealign/tests/outputs/cascade/2/family-home_face_3.png create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/aligned/Fayssal_Mekdad_0002_face_0.aligned.png create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/aligned/Fayssal_Mekdad_0002_face_0.aligned.withpoints.png create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/aligned/Meryl_Streep_0013_face_0.aligned.png create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/aligned/Meryl_Streep_0013_face_0.aligned.withpoints.png create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/aligned/a_face_0.aligned.png create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/aligned/a_face_0.aligned.withpoints.png create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/aligned/a_face_1.aligned.png create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/aligned/a_face_1.aligned.withpoints.png create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/aligned/a_face_2.aligned.png create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/aligned/a_face_2.aligned.withpoints.png create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/aligned/family-home_face_0.aligned.png create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/aligned/family-home_face_0.aligned.withpoints.png create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/aligned/family-home_face_1.aligned.png create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/aligned/family-home_face_1.aligned.withpoints.png create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/aligned/family-home_face_2.aligned.png create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/aligned/family-home_face_2.aligned.withpoints.png create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/aligned/family-home_face_3.aligned.png create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/aligned/family-home_face_3.aligned.withpoints.png create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/faces/Fayssal_Mekdad_0002.faces.txt create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/faces/Fayssal_Mekdad_0002_face_0.cfidu create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/faces/Fayssal_Mekdad_0002_face_0.jpg create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/faces/Meryl_Streep_0013.faces.txt create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/faces/Meryl_Streep_0013_face_0.cfidu create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/faces/Meryl_Streep_0013_face_0.jpg create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/faces/a.faces.txt create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/faces/a_face_0.cfidu create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/faces/a_face_0.jpg create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/faces/a_face_1.cfidu create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/faces/a_face_1.jpg create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/faces/a_face_2.cfidu create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/faces/a_face_2.jpg create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/faces/family-home.faces.txt create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/faces/family-home_face_0.cfidu create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/faces/family-home_face_0.jpg create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/faces/family-home_face_1.cfidu create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/faces/family-home_face_1.jpg create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/faces/family-home_face_2.cfidu create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/faces/family-home_face_2.jpg create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/faces/family-home_face_3.cfidu create mode 100644 adience_align-master/adiencealign/tests/outputs/pipeline/faces/family-home_face_3.jpg create mode 100644 adience_align-master/adiencealign/tests/resources/affine_align/Fayssal_Mekdad_0002.cfidu create mode 100644 adience_align-master/adiencealign/tests/resources/affine_align/Fayssal_Mekdad_0002.jpg create mode 100644 adience_align-master/adiencealign/tests/resources/affine_align/Meryl_Streep_0013.cfidu create mode 100644 adience_align-master/adiencealign/tests/resources/affine_align/Meryl_Streep_0013.jpg create mode 100644 adience_align-master/adiencealign/tests/resources/cascade/Fayssal_Mekdad_0002.jpg create mode 100644 adience_align-master/adiencealign/tests/resources/cascade/Fayssal_Mekdad_0002.jpg.faces.txt create mode 100644 adience_align-master/adiencealign/tests/resources/cascade/family-home.png create mode 100644 adience_align-master/adiencealign/tests/resources/cascade/family-home.png.faces.txt create mode 100644 adience_align-master/adiencealign/tests/resources/landmarks/Fayssal_Mekdad_0002.cfidu create mode 100644 adience_align-master/adiencealign/tests/resources/landmarks/Fayssal_Mekdad_0002.jpg create mode 100644 adience_align-master/adiencealign/tests/resources/pipeline/.done.Fayssal_Mekdad_0002 create mode 100644 adience_align-master/adiencealign/tests/resources/pipeline/.done.Meryl_Streep_0013 create mode 100644 adience_align-master/adiencealign/tests/resources/pipeline/.done.a create mode 100644 adience_align-master/adiencealign/tests/resources/pipeline/.done.family-home create mode 100644 adience_align-master/adiencealign/tests/resources/pipeline/Fayssal_Mekdad_0002.jpg create mode 100644 adience_align-master/adiencealign/tests/resources/pipeline/Meryl_Streep_0013.jpg create mode 100644 adience_align-master/adiencealign/tests/resources/pipeline/a.png create mode 100644 adience_align-master/adiencealign/tests/resources/pipeline/family-home.png create mode 100644 adience_align-master/adiencealign/tests/test_affine_align.py create mode 100644 adience_align-master/adiencealign/tests/test_cascade_detection.py create mode 100644 adience_align-master/adiencealign/tests/test_landmarks_detector.py create mode 100644 adience_align-master/adiencealign/tests/test_pipeline.py create mode 100644 adience_align-master/setup.py create mode 100644 adiencealign/__init__.py create mode 100644 adiencealign/__init__.pyc create mode 100644 adiencealign/__pycache__/__init__.cpython-38.pyc create mode 100644 adiencealign/affine_alignment/__init__.py create mode 100644 adiencealign/affine_alignment/__pycache__/__init__.cpython-38.pyc create mode 100644 adiencealign/affine_alignment/__pycache__/affine_aligner.cpython-38.pyc create mode 100644 adiencealign/affine_alignment/affine_aligner.py create mode 100644 adiencealign/cascade_detection/__init__.py create mode 100644 adiencealign/cascade_detection/__init__.pyc create mode 100644 adiencealign/cascade_detection/__pycache__/__init__.cpython-38.pyc create mode 100644 adiencealign/cascade_detection/__pycache__/cascade_detector.cpython-38.pyc create mode 100644 adiencealign/cascade_detection/__pycache__/cascade_face_finder.cpython-38.pyc create mode 100644 adiencealign/cascade_detection/cascade_detector.py create mode 100644 adiencealign/cascade_detection/cascade_detector.py.bak create mode 100644 adiencealign/cascade_detection/cascade_face_finder.py create mode 100644 adiencealign/cascade_detection/cascade_face_finder.py.bak create mode 100644 adiencealign/cascade_detection/cascade_face_finder.pyc create mode 100644 adiencealign/common/__init__.py create mode 100644 adiencealign/common/__init__.pyc create mode 100644 adiencealign/common/__pycache__/__init__.cpython-38.pyc create mode 100644 adiencealign/common/__pycache__/files.cpython-38.pyc create mode 100644 adiencealign/common/__pycache__/images.cpython-38.pyc create mode 100644 adiencealign/common/__pycache__/landmarks.cpython-38.pyc create mode 100644 adiencealign/common/drawing.py create mode 100644 adiencealign/common/files.py create mode 100644 adiencealign/common/images.py create mode 100644 adiencealign/common/images.pyc create mode 100644 adiencealign/common/landmarks.py create mode 100644 adiencealign/common/landmarks.py.bak create mode 100644 adiencealign/landmarks_detection/__init__.py create mode 100644 adiencealign/landmarks_detection/__pycache__/__init__.cpython-38.pyc create mode 100644 adiencealign/landmarks_detection/__pycache__/landmarks_detector.cpython-38.pyc create mode 100644 adiencealign/landmarks_detection/landmarks_detector.py create mode 100644 adiencealign/landmarks_detection/landmarks_detector.py.bak create mode 100644 adiencealign/pipeline/CascadeFaceAligner.py create mode 100644 adiencealign/pipeline/CascadeFaceAligner.py.bak create mode 100644 adiencealign/pipeline/__init__.py create mode 100644 adiencealign/pipeline/__pycache__/CascadeFaceAligner.cpython-38.pyc create mode 100644 adiencealign/pipeline/__pycache__/__init__.cpython-38.pyc create mode 100755 adiencealign/resources/Face_small_146filters_-0.65thr.xml create mode 100755 adiencealign/resources/FiducialFaceDetector create mode 100644 adiencealign/resources/FiducialFaceDetector.o create mode 100755 adiencealign/resources/FiducialFaceDetector.sh create mode 100644 adiencealign/resources/haarcascade_frontalface_default.xml create mode 100644 adiencealign/resources/lbpcascade_frontalface.xml create mode 100755 adiencealign/resources/libPartsBasedDetector.so create mode 100644 adiencealign/resources/libboost_filesystem.so.1.53.0 create mode 100644 adiencealign/resources/libboost_system.so.1.53.0 create mode 100644 adiencealign/resources/model_ang_0.txt create mode 100644 adiencealign/tests/.aligned.png create mode 100644 adiencealign/tests/__init__.py create mode 100755 adiencealign/tests/clear_test.sh create mode 100755 adiencealign/tests/clear_test.sh~ create mode 100644 adiencealign/tests/outputs/cascade/1/Fayssal_Mekdad_0002.face.0.png create mode 100644 adiencealign/tests/outputs/cascade/1/family-home.face.0.png create mode 100644 adiencealign/tests/outputs/cascade/1/family-home.face.1.png create mode 100644 adiencealign/tests/outputs/cascade/1/family-home.face.2.png create mode 100644 adiencealign/tests/outputs/cascade/1/family-home.face.3.png create mode 100644 adiencealign/tests/outputs/cascade/2/Fayssal_Mekdad_0002.jpg.faces.txt create mode 100644 adiencealign/tests/outputs/cascade/2/Fayssal_Mekdad_0002_face_0.png create mode 100644 adiencealign/tests/outputs/cascade/2/family-home.png.faces.txt create mode 100644 adiencealign/tests/outputs/cascade/2/family-home_face_0.png create mode 100644 adiencealign/tests/outputs/cascade/2/family-home_face_1.png create mode 100644 adiencealign/tests/outputs/cascade/2/family-home_face_2.png create mode 100644 adiencealign/tests/outputs/cascade/2/family-home_face_3.png create mode 100644 adiencealign/tests/outputs/pipeline/aligned/Fayssal_Mekdad_0002_face_0.aligned.png create mode 100644 adiencealign/tests/outputs/pipeline/aligned/Fayssal_Mekdad_0002_face_0.aligned.withpoints.png create mode 100644 adiencealign/tests/outputs/pipeline/aligned/Meryl_Streep_0013_face_0.aligned.png create mode 100644 adiencealign/tests/outputs/pipeline/aligned/Meryl_Streep_0013_face_0.aligned.withpoints.png create mode 100644 adiencealign/tests/outputs/pipeline/aligned/a_face_0.aligned.png create mode 100644 adiencealign/tests/outputs/pipeline/aligned/a_face_0.aligned.withpoints.png create mode 100644 adiencealign/tests/outputs/pipeline/aligned/a_face_1.aligned.png create mode 100644 adiencealign/tests/outputs/pipeline/aligned/a_face_1.aligned.withpoints.png create mode 100644 adiencealign/tests/outputs/pipeline/aligned/a_face_2.aligned.png create mode 100644 adiencealign/tests/outputs/pipeline/aligned/a_face_2.aligned.withpoints.png create mode 100644 adiencealign/tests/outputs/pipeline/aligned/family-home_face_0.aligned.png create mode 100644 adiencealign/tests/outputs/pipeline/aligned/family-home_face_0.aligned.withpoints.png create mode 100644 adiencealign/tests/outputs/pipeline/aligned/family-home_face_1.aligned.png create mode 100644 adiencealign/tests/outputs/pipeline/aligned/family-home_face_1.aligned.withpoints.png create mode 100644 adiencealign/tests/outputs/pipeline/aligned/family-home_face_2.aligned.png create mode 100644 adiencealign/tests/outputs/pipeline/aligned/family-home_face_2.aligned.withpoints.png create mode 100644 adiencealign/tests/outputs/pipeline/aligned/family-home_face_3.aligned.png create mode 100644 adiencealign/tests/outputs/pipeline/aligned/family-home_face_3.aligned.withpoints.png create mode 100644 adiencealign/tests/outputs/pipeline/faces/Fayssal_Mekdad_0002.faces.txt create mode 100644 adiencealign/tests/outputs/pipeline/faces/Fayssal_Mekdad_0002_face_0.cfidu create mode 100644 adiencealign/tests/outputs/pipeline/faces/Fayssal_Mekdad_0002_face_0.jpg create mode 100644 adiencealign/tests/outputs/pipeline/faces/Meryl_Streep_0013.faces.txt create mode 100644 adiencealign/tests/outputs/pipeline/faces/Meryl_Streep_0013_face_0.cfidu create mode 100644 adiencealign/tests/outputs/pipeline/faces/Meryl_Streep_0013_face_0.jpg create mode 100644 adiencealign/tests/outputs/pipeline/faces/a.faces.txt create mode 100644 adiencealign/tests/outputs/pipeline/faces/a_face_0.cfidu create mode 100644 adiencealign/tests/outputs/pipeline/faces/a_face_0.jpg create mode 100644 adiencealign/tests/outputs/pipeline/faces/a_face_1.cfidu create mode 100644 adiencealign/tests/outputs/pipeline/faces/a_face_1.jpg create mode 100644 adiencealign/tests/outputs/pipeline/faces/a_face_2.cfidu create mode 100644 adiencealign/tests/outputs/pipeline/faces/a_face_2.jpg create mode 100644 adiencealign/tests/outputs/pipeline/faces/family-home.faces.txt create mode 100644 adiencealign/tests/outputs/pipeline/faces/family-home_face_0.cfidu create mode 100644 adiencealign/tests/outputs/pipeline/faces/family-home_face_0.jpg create mode 100644 adiencealign/tests/outputs/pipeline/faces/family-home_face_1.cfidu create mode 100644 adiencealign/tests/outputs/pipeline/faces/family-home_face_1.jpg create mode 100644 adiencealign/tests/outputs/pipeline/faces/family-home_face_2.cfidu create mode 100644 adiencealign/tests/outputs/pipeline/faces/family-home_face_2.jpg create mode 100644 adiencealign/tests/outputs/pipeline/faces/family-home_face_3.cfidu create mode 100644 adiencealign/tests/outputs/pipeline/faces/family-home_face_3.jpg create mode 100644 adiencealign/tests/resources/affine_align/Fayssal_Mekdad_0002.cfidu create mode 100644 adiencealign/tests/resources/affine_align/Fayssal_Mekdad_0002.jpg create mode 100644 adiencealign/tests/resources/affine_align/Meryl_Streep_0013.cfidu create mode 100644 adiencealign/tests/resources/affine_align/Meryl_Streep_0013.jpg create mode 100644 adiencealign/tests/resources/cascade/Fayssal_Mekdad_0002.jpg create mode 100644 adiencealign/tests/resources/cascade/Fayssal_Mekdad_0002.jpg.faces.txt create mode 100644 adiencealign/tests/resources/cascade/family-home.png create mode 100644 adiencealign/tests/resources/cascade/family-home.png.faces.txt create mode 100644 adiencealign/tests/resources/landmarks/Fayssal_Mekdad_0002.cfidu create mode 100644 adiencealign/tests/resources/landmarks/Fayssal_Mekdad_0002.jpg create mode 100644 adiencealign/tests/resources/pipeline/.done.Fayssal_Mekdad_0002 create mode 100644 adiencealign/tests/resources/pipeline/.done.Meryl_Streep_0013 create mode 100644 adiencealign/tests/resources/pipeline/.done.a create mode 100644 adiencealign/tests/resources/pipeline/.done.family-home create mode 100644 adiencealign/tests/resources/pipeline/Fayssal_Mekdad_0002.jpg create mode 100644 adiencealign/tests/resources/pipeline/Meryl_Streep_0013.jpg create mode 100644 adiencealign/tests/resources/pipeline/a.png create mode 100644 adiencealign/tests/resources/pipeline/family-home.png create mode 100644 adiencealign/tests/test_affine_align.py create mode 100644 adiencealign/tests/test_cascade_detection.py create mode 100644 adiencealign/tests/test_landmarks_detector.py create mode 100644 adiencealign/tests/test_pipeline.py mode change 100644 => 100755 astro.png mode change 100644 => 100755 bkp.py mode change 100644 => 100755 encoder.py mode change 100644 => 100755 face1.jpeg mode change 100644 => 100755 face_cutter.py mode change 100644 => 100755 faceof_0astro.png mode change 100644 => 100755 faceof_0face1.jpeg create mode 100644 fr_env/lib/python3.8/site-packages/Shapely-1.7.1.dist-info/INSTALLER create mode 100644 fr_env/lib/python3.8/site-packages/Shapely-1.7.1.dist-info/METADATA create mode 100644 fr_env/lib/python3.8/site-packages/Shapely-1.7.1.dist-info/RECORD create mode 100644 fr_env/lib/python3.8/site-packages/Shapely-1.7.1.dist-info/WHEEL create mode 100644 fr_env/lib/python3.8/site-packages/Shapely-1.7.1.dist-info/top_level.txt create mode 100755 fr_env/lib/python3.8/site-packages/shapely/.libs/libgeos--no-undefined-b94097bf.so create mode 100755 fr_env/lib/python3.8/site-packages/shapely/.libs/libgeos_c-a68605fd.so.1.13.1 create mode 100644 fr_env/lib/python3.8/site-packages/shapely/__init__.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/__pycache__/__init__.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/__pycache__/_buildcfg.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/__pycache__/affinity.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/__pycache__/coords.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/__pycache__/ctypes_declarations.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/__pycache__/errors.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/__pycache__/geos.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/__pycache__/impl.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/__pycache__/iterops.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/__pycache__/linref.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/__pycache__/ops.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/__pycache__/predicates.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/__pycache__/prepared.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/__pycache__/strtree.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/__pycache__/topology.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/__pycache__/validation.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/__pycache__/wkb.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/__pycache__/wkt.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/_buildcfg.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/_geos.pxi create mode 100644 fr_env/lib/python3.8/site-packages/shapely/affinity.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/algorithms/__init__.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/algorithms/__pycache__/__init__.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/algorithms/__pycache__/cga.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/algorithms/__pycache__/polylabel.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/algorithms/cga.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/algorithms/polylabel.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/coords.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/ctypes_declarations.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/errors.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/examples/__init__.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/examples/__pycache__/__init__.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/examples/__pycache__/dissolve.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/examples/__pycache__/geoms.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/examples/__pycache__/intersect.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/examples/dissolve.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/examples/geoms.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/examples/intersect.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/geometry/__init__.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/geometry/__pycache__/__init__.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/geometry/__pycache__/base.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/geometry/__pycache__/collection.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/geometry/__pycache__/geo.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/geometry/__pycache__/linestring.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/geometry/__pycache__/multilinestring.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/geometry/__pycache__/multipoint.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/geometry/__pycache__/multipolygon.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/geometry/__pycache__/point.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/geometry/__pycache__/polygon.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/geometry/__pycache__/proxy.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/geometry/base.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/geometry/collection.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/geometry/geo.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/geometry/linestring.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/geometry/multilinestring.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/geometry/multipoint.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/geometry/multipolygon.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/geometry/point.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/geometry/polygon.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/geometry/proxy.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/geos.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/impl.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/iterops.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/linref.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/ops.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/predicates.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/prepared.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/speedups/__init__.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/speedups/__pycache__/__init__.cpython-38.pyc create mode 100644 fr_env/lib/python3.8/site-packages/shapely/speedups/_speedups.c create mode 100755 fr_env/lib/python3.8/site-packages/shapely/speedups/_speedups.cpython-38-x86_64-linux-gnu.so create mode 100644 fr_env/lib/python3.8/site-packages/shapely/speedups/_speedups.pyx create mode 100644 fr_env/lib/python3.8/site-packages/shapely/strtree.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/topology.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/validation.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/vectorized/__init__.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/vectorized/__pycache__/__init__.cpython-38.pyc create mode 100755 fr_env/lib/python3.8/site-packages/shapely/vectorized/_vectorized.cpython-38-x86_64-linux-gnu.so create mode 100644 fr_env/lib/python3.8/site-packages/shapely/vectorized/_vectorized.pyx create mode 100644 fr_env/lib/python3.8/site-packages/shapely/wkb.py create mode 100644 fr_env/lib/python3.8/site-packages/shapely/wkt.py mode change 100644 => 100755 full_data.csv mode change 100644 => 100755 hog_offaceof_0astro.png mode change 100644 => 100755 hog_offaceof_face1.jpeg mode change 100644 => 100755 hogger.py mode change 100644 => 100755 main.py mode change 100644 => 100755 note.txt create mode 160000 opencv-python create mode 100644 orienter.py create mode 100644 output/astro.faces.txt create mode 100644 output/faceof_0astro.png delete mode 100644 output/faceof_11076astro.png delete mode 100644 output/faceof_3384astro.png create mode 100644 output/hog_offaceof_0astro.png mode change 100644 => 100755 predictor.py mode change 100644 => 100755 requirements.txt mode change 100644 => 100755 standardizer.py mode change 100644 => 100755 subject01.happy.png mode change 100644 => 100755 subject07.surprised.png mode change 100644 => 100755 subject09.glasses.png mode change 100644 => 100755 subject11.surprised.png mode change 100644 => 100755 subject14.leftlight.png mode change 100644 => 100755 svm_model.sav mode change 100644 => 100755 test1.png create mode 100644 tilted.jpg mode change 100644 => 100755 trainer.py create mode 100644 videos/.done.astro create mode 100644 videos/.done.tilted create mode 100644 videos/.done.zzz create mode 100755 videos/astro.png create mode 100755 yaleB12_P00A+000E+00.pgm mode change 100644 => 100755 zzz.jpg diff --git a/1503.03832.pdf b/1503.03832.pdf old mode 100644 new mode 100755 diff --git a/adience_align-master/.gitignore b/adience_align-master/.gitignore new file mode 100644 index 00000000..51cbe852 --- /dev/null +++ b/adience_align-master/.gitignore @@ -0,0 +1,54 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] + +# C extensions +*.so + +# Distribution / packaging +.Python +env/ +bin/ +build/ +develop-eggs/ +dist/ +eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +*.egg-info/ +.installed.cfg +*.egg + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.cache +nosetests.xml +coverage.xml + +# Translations +*.mo + +# Mr Developer +.mr.developer.cfg +.project +.pydevproject + +# Rope +.ropeproject + +# Django stuff: +*.log +*.pot + +# Sphinx documentation +docs/_build/ + diff --git a/adience_align-master/CREDIT.TXT b/adience_align-master/CREDIT.TXT new file mode 100644 index 00000000..8eb79ce2 --- /dev/null +++ b/adience_align-master/CREDIT.TXT @@ -0,0 +1,32 @@ +This implements a face alignment method, as preprocessing to tasks such as age and gender estimation, +and face recognition as described in [1] and [2]. + +The code calls an executable of facial landmarks detection, by X.Zhu and D. Ramanan, implementing the algorithm described in [3]. + +(The rest of this text is a quotation from their code: Copyright (C) 2012 Xiangxin Zhu, Deva Ramanan) + +It includes pre-trained face models. + +Much of the detection code is built on top of part-based model implementation of [4]. + +The training code implements a quadratic program (QP) solver described in [5]. + +In the training code, we use the positive samples from MultiPIE dataset (available at www.multipie.org) and the negative images from the INRIAPerson dataset [6] (included in the package). + +Acknowledgements: We graciously thank the authors of the previous code releases and image benchmarks for making them publicly available. + +References +========== + +[1] E. Eidinger, R. Enbar, T. Hassner, Age and Gender Estimation of Unfiltered Faces, submitted to IEEE TRANSACTIONS ON INFORMATION FORENSICS AND SECURITY, 2014 + +[2] http://www.openu.ac.il/home/hassner/Adience/links.html + +[3] X. Zhu, D. Ramanan. Face Detection, Pose Estimation and Landmark Localization in the Wild. CVPR 2012. + +[4] P. Felzenszwalb, R. Girshick, D. McAllester. Discriminatively Trained Deformable Part Models. http://people.cs.uchicago.edu/~pff/latent. + +[5] D. Ramanan. Dual Coordinate Descent Solvers for Large Structured Prediction Problems. UCI Technical Report, to appear. + +[6] N. Dalal, B. Triggs. Histograms of Oriented Gradients for Human Detection. CVPR 2005. + diff --git a/adience_align-master/LICENSE.txt b/adience_align-master/LICENSE.txt new file mode 100644 index 00000000..ba20c008 --- /dev/null +++ b/adience_align-master/LICENSE.txt @@ -0,0 +1,21 @@ +Copyright (C) 2014 Adience SER Ltd. (www.adience.com) + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + diff --git a/adience_align-master/README.md b/adience_align-master/README.md new file mode 100644 index 00000000..977506ba --- /dev/null +++ b/adience_align-master/README.md @@ -0,0 +1,49 @@ +adience_align +======== + +This project provides alignment tools for faces, to be used as a preprocessing step before computer vision tasks on face images. + +Homepage for the project: http://www.openu.ac.il/home/hassner/Adience/ + + +See the test for example usage. + +Specificaly, the "pipeline" test, shows how to use the full process (just remember to change the location of the model files to where you stor the *.xml and other model files) + +Installation +========= +in the root of the repository: + +``` +python setup.py sdist +sudo pip install dist/adience-.tar.gz +``` + + + +CopyRight +========= +(contact: Eran Eidinger (eran@adience.com), Roee Enbar (roee.e@adience.com)) + +See the LICENSE.txt file (basically, an MIT license). + + +With any publication that uses this alignment code, or it's derivative, we kindly ask that you cite the paper: +E. Eidinger, R. Enbar, and T. Hassner, Age and Gender Estimation of Unfiltered Faces, Transactions on Information Forensics and Security (IEEE-TIFS), special issue on Face Recognition in the Wild + +For more details, please see: +http://www.openu.ac.il/home/hassner/Adience/publications.html + +Compilation notes +======== +1. The shared objects were compiled for linux 64bit on Ubuntu 13.10 +2. The SO uses boost-1.53, so make sure it is installed on your system and available at /usr/local/, or use LD_LIBRARY_PATH="yourpath" to point it at the right place. Alternatively, place "libboost_system.so.1.53.0" and "libboost_filesystem.so.1.53.0". at the "adiencealign/resources/" subfolder +3. For landmarks detection, we use the file libPartsBasedDetector.so, compiled from the project https://github.com/wg-perception/PartsBasedDetector. You can either compile it yourselves, or use the version under "resources" subfolder, compiled with boost 1.53, on a linux ubuntu 14.04 machine. + +We will release the source code for the shared object in the near future + +Running the test +======== +1. run ```./clear_test.sh``` to delete results of old tests. +2. run ```python test_pipeline.py``` +3. results are in the "outputs" subfolder diff --git a/adience_align-master/adiencealign(old)/__init__.py b/adience_align-master/adiencealign(old)/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/adience_align-master/adiencealign(old)/affine_alignment/__init__.py b/adience_align-master/adiencealign(old)/affine_alignment/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/adience_align-master/adiencealign(old)/affine_alignment/affine_aligner.py b/adience_align-master/adiencealign(old)/affine_alignment/affine_aligner.py new file mode 100644 index 00000000..4c433c9f --- /dev/null +++ b/adience_align-master/adiencealign(old)/affine_alignment/affine_aligner.py @@ -0,0 +1,20 @@ +''' +Created on May 7, 2014 + +@author: eran +''' +from adiencealign.common.landmarks import fidu_transform, shift_vector,\ + WEIGHTS3 + +class AffineAligner(object): + def __init__(self, fidu_model_file, ): + + self.shift = ( 0.25, 0.25 ) + fidu_model = [(int(x.split(',')[1]),int(x.split(',')[2])) for x in file(fidu_model_file,'r')] + self.fidu_model = shift_vector(fidu_model, self.shift) + self.WEIGHTS3 = WEIGHTS3 + + def align(self, img, fidu_points): + # create bs1 image + funneled_img, R = fidu_transform(self.fidu_model, fidu_points, WEIGHTS3, img, self.shift) + return funneled_img, R \ No newline at end of file diff --git a/adience_align-master/adiencealign(old)/cascade_detection/__init__.py b/adience_align-master/adiencealign(old)/cascade_detection/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/adience_align-master/adiencealign(old)/cascade_detection/cascade_detector.py b/adience_align-master/adiencealign(old)/cascade_detection/cascade_detector.py new file mode 100644 index 00000000..593e7559 --- /dev/null +++ b/adience_align-master/adiencealign(old)/cascade_detection/cascade_detector.py @@ -0,0 +1,354 @@ +''' +Created on May 7, 2014 + +@author: eran +''' +import cv2 +import pickle +import numpy as np +from shapely.geometry.polygon import Polygon +import math +from adiencealign.common.files import make_path, expand_path +from adiencealign.common.images import pad_image_for_rotation + +class CascadeDetector(object): + ''' + This is a haar cascade classifier capable of detecting in multiple angles + ''' + def __init__(self, cascade_file = './resources/haarcascade_frontalface_default.xml', + min_size = (10, 10), + min_neighbors = 20, + scale_factor = 1.04, + angles = [0], + thr = 0.4, + cascade_type = 'haar'): + ''' + cascade_type - is a string defining the type of cascade + ''' + print(expand_path('.')) + self.cascade_file = cascade_file.rsplit('/',1)[1] + self._cascade_classifier = cv2.CascadeClassifier(cascade_file) + self.scale_factor = scale_factor + self.min_neighbors = min_neighbors + self.min_size = min_size + self.cascade_type = cascade_type + self.angles = angles + self.thr = thr + + def __str__(self): + return ''.join([str(x) for x in ['cascade_file:',self.cascade_file, + ',scale_factor:',self.scale_factor, + ',min_neighbors:',self.min_neighbors, + ',min_neighbors:',self.min_neighbors, + ',cascade_type:',self.cascade_type + ]]) + + def save_configuration(self, target_file): + file_path = target_file.rsplit('/',1)[0] + make_path(file_path) + config = {'min_size':self.min_size, 'min_neighbours':self.min_neighbors, 'scale_factor':self.scale_factor, 'cascade_file':self.cascade_file} + pickle.dump(obj=config, file = open(target_file,'w'), protocol = 2) + + @staticmethod + def load_configuration(target_file): + return pickle.load(open(target_file,'r')) + + def detectMultiScaleWithScores(self, img, scaleFactor = None, minNeighbors = None, minSize = None, flags = 4): + scaleFactor = self.scale_factor if not scaleFactor else scaleFactor + minNeighbors = self.min_neighbors if not minNeighbors else minNeighbors + minSize = self.min_size if not minSize else minSize + return self._cascade_classifier.detectMultiScale(img, + scaleFactor = scaleFactor, + minNeighbors = minNeighbors, + minSize = minSize, + flags = flags) + + def detectWithAngles(self, img, angels = None, resolve = True, thr = None ): + ''' + angles - a list of angles to test. If None, default to the value created at the constructor (which defaults to [0]) + resolve - a boolean flag, whether or not to cluster the boxes, and resolve cluster by highest score. + thr - the maximum area covered with objects, before we break from the angles loop + + returns - a list of CascadeResult() objects + ''' + + if thr == None: + thr = self.thr + + original_size = img.shape[0] * img.shape[0] + if angels == None: + angels = self.angles + + results = [] + total_area = 0 + for angle in angels: + + # the diagonal of the image is the diameter of the rotated image, so the big_image needs to bound this circle + # by being that big + + big_image, x_shift, y_shift, diag, rot_center = pad_image_for_rotation(img) + + # find the rotation and the inverse rotation matrix, to allow translations between old and new coordinates and vice versa + rot_mat = cv2.getRotationMatrix2D(rot_center, angle, scale = 1.0) + inv_rot_mat = cv2.invertAffineTransform(rot_mat) + + # rotate the image by the desired angle + rot_image = cv2.warpAffine(big_image, rot_mat, (big_image.shape[1],big_image.shape[0]), flags=cv2.INTER_CUBIC) + faces = self.detectMultiScaleWithScores(rot_image, scaleFactor = 1.03, minNeighbors = 20, minSize = (15,15), flags = 4) + for face in faces: + xp = face[0] + dx = face[2] + yp = face[1] + dy = face[3] + score = 1 + dots = np.matrix([[xp,xp+dx,xp+dx,xp], [yp,yp,yp+dy,yp+dy], [1, 1, 1, 1]]) + # these are the original coordinates in the "big_image" +# print dots + originals_in_big = inv_rot_mat * dots +# print originals_in_big + shifter = np.matrix([[x_shift]*4, [y_shift]*4]) +# print shifter + # these are the original coordinate in the original image + originals = originals_in_big - shifter +# print originals + points = np.array(originals.transpose()) + x = points[0,0] + y = points[0,1] + box_with_score = ([x,y,dx,dy], score) + + cascade_result = CascadeResult.from_polygon_points(points, score, self.cascade_type) +# print cascade_result + + results.append(cascade_result) + + ################# + # test and see, if we found enough objects, break out and don't waste our time + total_area += cascade_result.area + + if resolve: + return resolve_angles(results, width = img.shape[1], height = img.shape[0]) + else: + return results + +class BoxInImage(object): + def __init__(self, originals, dx, dy, score = None, angle = 0): + self.originals = originals + self.dx = dx + self.dy = dy + self.score = score + self.angle = angle + + def __str__(self): + return ",".join([str(x) for x in [self.originals, self.dx, self.dy, self.score, self.angle]]) + +def resolve_angles(list_of_results, width, height, thr = 0.3): + ''' + we want to cluster the boxes into clusters, and then choose the best box in each cluster by score + * thr - decides what the maximum distance is for a box to join a cluster, in the sense of how much of it's area is covered by the best box in the cluster + note, that two squares, centered, with 45 degrees rotation, will overlap on 77% of their area (thr == 0.22) + ''' + clusters = [] + for box in list_of_results: +# total_polygon = Polygon([(0,0), (width,0), (width,height), (0,height)]) +# if box.polygon.intersection(total_polygon).area < box.area: +# # this means the box is outside the image somehow +# continue + + area = box.area + closest_cluster = None + dist_to_closest_cluster = 1.0 + for n,cluster in enumerate(clusters): + dist = 1.0 + for cluster_box in cluster: + local_dist = 1.0 - box.overlap(cluster_box)/area + dist = min(dist, local_dist) + if dist < dist_to_closest_cluster: + dist_to_closest_cluster = dist + closest_cluster = n + if closest_cluster == None or dist_to_closest_cluster > thr: + # no good cluster was found, open a new cluster + clusters.append([box]) + else: + clusters[n].append(box) + + centroids = [] + for cluster in clusters: + centroids.append(sorted(cluster,key=lambda x: x.score)[-1]) + + return centroids + + + + + +def resolve_boxes(dict_of_list_of_cascade_results, min_overlap = 0.7): + ''' + Say you tried two different cascades to detect faces. + enter a dictionary (the key is a string describing a cascade type) of detected objects + This function returns a unified results list, where it resolves overlapping boxes, and chooses one of them. + + The bigger boxes are selected instead of smaller ones, whether they contain them, or enough of them, determined by min_overlap + + ''' + final_faces = [] + for cascade_str, faces in dict_of_list_of_cascade_results.items(): + # go through each cascade type + for face in faces: + if type(face) == CascadeResult: + new_res = face + else: + new_res = CascadeResult(face,cascade_type = cascade_str) + to_add = True + for old_index,old_res in enumerate(final_faces): + ratio = new_res.area / old_res.area + if ratio >1.0: + # new_box is bigger + if new_res.overlap(old_res)/old_res.area > min_overlap: + # the new box contains the old one, we want to replace it: + final_faces[old_index] = new_res + to_add = False + break + if ratio <=1.0: + # the new_box is smaller + if new_res.overlap(old_res)/new_res.area > min_overlap: + # the old box contains the new one, we therefore dont need to add the new box: + to_add = False + break + if to_add: + # if there was no hit, this is a new face, we can add it + final_faces.append(new_res) + return final_faces + +def most_centered_box( cascade_results, xxx_todo_changeme ): + ( rows, cols ) = xxx_todo_changeme + best_err = 1e10 + for i, cascade in enumerate( cascade_results ): + err = ( cascade.x + cascade.dx / 2 - cols / 2 ) ** 2 + ( cascade.y + cascade.dy / 2 - rows / 2 ) ** 2 + if err < best_err: + index = i + return cascade_results[ index ] + +class CascadeResult(object): + def __init__(self, box_with_score, cascade_type = None, angle = 0): + self.x = box_with_score[0][0] + self.y = box_with_score[0][1] + self.dx = box_with_score[0][2] + self.dy = box_with_score[0][3] + self.score = box_with_score[1] + self.cascade_type = cascade_type + self.angle = angle + + @staticmethod + def from_polygon_points(points, score, cascade_type = None): + ''' + an alternative generator, allows giving the polygon points instead of [x,y,dx,dy] + ''' + x = points[0,0] + y = points[0,1] + top = points[1,] - points[0,] + left = points[3,] - points[0,] + dx = math.sqrt(sum([i*i for i in top])) + dy = math.sqrt(sum([i*i for i in left])) + angle = math.atan(float(top[1])/top[0]) * 180 / math.pi if top[0] != 0 else (970 if top[1] >0 else -90) + return CascadeResult(([x,y,dx,dy],score), cascade_type, angle) + + + def __str__(self): + return ''.join([str(x) for x in ['center:',self.center, + ',\nx:',self.x, + ',\ny:',self.y, + ',\ndx:',self.dx, + ',\ndy:',self.dy, + ',\nscore:',self.score, + ',\nangle:',self.angle, + ',\ncascade_type:',self.cascade_type, + ',\npoints_int:\n',self.points_int + ]]) + + @property + def points(self): + x = self.x + y = self.y + dx = self.dx + dy = self.dy + a = self.angle/180.0*math.pi + dots = np.matrix([[x,y,1],[x+dx,y,1],[x+dx,y+dy,1],[x,y+dy,1]]) + dots = dots.transpose() + rot_mat = cv2.getRotationMatrix2D((dots[0,0],dots[1,0]), -self.angle, scale = 1.0) + points = rot_mat * dots + points = points.transpose() + return points + + @property + def center(self): + return tuple(int(x) for x in (self.points.sum(0)/4.0).tolist()[0]) + + @property + def points_int(self): + return self.points.astype(int) + + @property + def score_with_type(self): + if self.cascade_type: + return self.cascade_type + ' ' + str(self.score) + else: + return str(self.score) + + @property + def filename_encode(self): + + return '_'.join([str(x) for x in ['loct'] + self.cvformat_result[0] + ['ang', int(self.angle),self.cascade_type, self.score]]) + + @property + def cvformat_coords(self): + if self.angle == 0: + return [int(x) for x in [self.x, self.y, self.dx, self.dy]] + else: + raise Exception('cannot return [x,y,dx,dy] for a box with angle, use cvformat_result() instead') + + @property + def cvformat_result(self): + return ([int(x) for x in [self.x, self.y, self.dx, self.dy]], self.score, self.angle) + +# @property +# def rot_matrix(self): +# return array([[cos(math.radians(self.angle)), -sin(math.radians(self.angle))], +# [sin(math.radians(self.angle)), cos(math.radians(self.angle))]]) + + @property + def top_left(self): + return tuple(self.points[0,].tolist()[0]) + + @property + def top_right(self): + return tuple(self.points[1,].tolist()[0]) + + @property + def bottom_right(self): + return tuple(self.points[2,].tolist()[0]) + + @property + def bottom_left(self): + return tuple(self.points[3,].tolist()[0]) + + @property + def polygon(self): + return Polygon([self.top_left, self.top_right, self.bottom_right, self.bottom_left]) + + def overlap(self, otherRect): + return float(self.polygon.intersection(otherRect.polygon).area) + + @property + def area(self): + return float(self.polygon.area) + + def __gt__(self,b): + return self.area>b.area + def __ge__(self,b): + return self.area>=b.area + def __lt__(self,b): + return self.area thr: + # no good cluster was found, open a new cluster + clusters.append([box]) + else: + clusters[n].append(box) + + centroids = [] + for cluster in clusters: + centroids.append(sorted(cluster,key=lambda x: x.score)[-1]) + + return centroids + + + + + +def resolve_boxes(dict_of_list_of_cascade_results, min_overlap = 0.7): + ''' + Say you tried two different cascades to detect faces. + enter a dictionary (the key is a string describing a cascade type) of detected objects + This function returns a unified results list, where it resolves overlapping boxes, and chooses one of them. + + The bigger boxes are selected instead of smaller ones, whether they contain them, or enough of them, determined by min_overlap + + ''' + final_faces = [] + for cascade_str, faces in dict_of_list_of_cascade_results.iteritems(): + # go through each cascade type + for face in faces: + if type(face) == CascadeResult: + new_res = face + else: + new_res = CascadeResult(face,cascade_type = cascade_str) + to_add = True + for old_index,old_res in enumerate(final_faces): + ratio = new_res.area / old_res.area + if ratio >1.0: + # new_box is bigger + if new_res.overlap(old_res)/old_res.area > min_overlap: + # the new box contains the old one, we want to replace it: + final_faces[old_index] = new_res + to_add = False + break + if ratio <=1.0: + # the new_box is smaller + if new_res.overlap(old_res)/new_res.area > min_overlap: + # the old box contains the new one, we therefore dont need to add the new box: + to_add = False + break + if to_add: + # if there was no hit, this is a new face, we can add it + final_faces.append(new_res) + return final_faces + +def most_centered_box( cascade_results, ( rows, cols ) ): + best_err = 1e10 + for i, cascade in enumerate( cascade_results ): + err = ( cascade.x + cascade.dx / 2 - cols / 2 ) ** 2 + ( cascade.y + cascade.dy / 2 - rows / 2 ) ** 2 + if err < best_err: + index = i + return cascade_results[ index ] + +class CascadeResult(object): + def __init__(self, box_with_score, cascade_type = None, angle = 0): + self.x = box_with_score[0][0] + self.y = box_with_score[0][1] + self.dx = box_with_score[0][2] + self.dy = box_with_score[0][3] + self.score = box_with_score[1] + self.cascade_type = cascade_type + self.angle = angle + + @staticmethod + def from_polygon_points(points, score, cascade_type = None): + ''' + an alternative generator, allows giving the polygon points instead of [x,y,dx,dy] + ''' + x = points[0,0] + y = points[0,1] + top = points[1,] - points[0,] + left = points[3,] - points[0,] + dx = math.sqrt(sum([i*i for i in top])) + dy = math.sqrt(sum([i*i for i in left])) + angle = math.atan(float(top[1])/top[0]) * 180 / math.pi if top[0] != 0 else (970 if top[1] >0 else -90) + return CascadeResult(([x,y,dx,dy],score), cascade_type, angle) + + + def __str__(self): + return ''.join([str(x) for x in ['center:',self.center, + ',\nx:',self.x, + ',\ny:',self.y, + ',\ndx:',self.dx, + ',\ndy:',self.dy, + ',\nscore:',self.score, + ',\nangle:',self.angle, + ',\ncascade_type:',self.cascade_type, + ',\npoints_int:\n',self.points_int + ]]) + + @property + def points(self): + x = self.x + y = self.y + dx = self.dx + dy = self.dy + a = self.angle/180.0*math.pi + dots = np.matrix([[x,y,1],[x+dx,y,1],[x+dx,y+dy,1],[x,y+dy,1]]) + dots = dots.transpose() + rot_mat = cv2.getRotationMatrix2D((dots[0,0],dots[1,0]), -self.angle, scale = 1.0) + points = rot_mat * dots + points = points.transpose() + return points + + @property + def center(self): + return tuple(int(x) for x in (self.points.sum(0)/4.0).tolist()[0]) + + @property + def points_int(self): + return self.points.astype(int) + + @property + def score_with_type(self): + if self.cascade_type: + return self.cascade_type + ' ' + str(self.score) + else: + return str(self.score) + + @property + def filename_encode(self): + + return '_'.join([str(x) for x in ['loct'] + self.cvformat_result[0] + ['ang', int(self.angle),self.cascade_type, self.score]]) + + @property + def cvformat_coords(self): + if self.angle == 0: + return [int(x) for x in [self.x, self.y, self.dx, self.dy]] + else: + raise Exception('cannot return [x,y,dx,dy] for a box with angle, use cvformat_result() instead') + + @property + def cvformat_result(self): + return ([int(x) for x in [self.x, self.y, self.dx, self.dy]], self.score, self.angle) + +# @property +# def rot_matrix(self): +# return array([[cos(math.radians(self.angle)), -sin(math.radians(self.angle))], +# [sin(math.radians(self.angle)), cos(math.radians(self.angle))]]) + + @property + def top_left(self): + return tuple(self.points[0,].tolist()[0]) + + @property + def top_right(self): + return tuple(self.points[1,].tolist()[0]) + + @property + def bottom_right(self): + return tuple(self.points[2,].tolist()[0]) + + @property + def bottom_left(self): + return tuple(self.points[3,].tolist()[0]) + + @property + def polygon(self): + return Polygon([self.top_left, self.top_right, self.bottom_right, self.bottom_left]) + + def overlap(self, otherRect): + return float(self.polygon.intersection(otherRect.polygon).area) + + @property + def area(self): + return float(self.polygon.area) + + def __gt__(self,b): + return self.area>b.area + def __ge__(self,b): + return self.area>=b.area + def __lt__(self,b): + return self.area