From 04c21baddac406d6c9f28072514afecdc2d9bc79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luka=20Dul=C4=8Di=C4=87?= Date: Thu, 1 Aug 2019 13:52:54 +0200 Subject: [PATCH 01/12] Refactoring face recognizer module. API changed, added optional return predictions. Preprocessing module. Former-commit-id: 8ddc9db9e55e1a268dff65ef1c21aaa437e1997c --- __init__.py | 2 +- arsfutura_face_recognition/aligner/mtcnn.py | 7 +- .../classifier/__init__.py | 10 --- .../classifier/classifier.py | 11 --- .../classifier/factory.py | 5 -- arsfutura_face_recognition/face_recogniser.py | 63 +++++++++--------- arsfutura_face_recognition/facenet/facenet.py | 7 +- arsfutura_face_recognition/preprocessing.py | 42 ++++++++++++ bin/align-mtcnn.py | 2 + face_recognition.py | 22 +++--- generate_embeddings.sh | 5 -- models/model.pkl | Bin 98483 -> 102627 bytes real_time_face_detection.py | 9 ++- 13 files changed, 103 insertions(+), 82 deletions(-) delete mode 100644 arsfutura_face_recognition/classifier/__init__.py delete mode 100644 arsfutura_face_recognition/classifier/classifier.py delete mode 100644 arsfutura_face_recognition/classifier/factory.py create mode 100644 arsfutura_face_recognition/preprocessing.py diff --git a/__init__.py b/__init__.py index a69b5ad..c616768 100644 --- a/__init__.py +++ b/__init__.py @@ -1,6 +1,6 @@ from .arsfutura_face_recognition import face_recogniser_factory -face_recognizer = face_recogniser_factory() +face_recognizer = face_recogniser_factory(include_predictions=True) def recognise_faces(img): diff --git a/arsfutura_face_recognition/aligner/mtcnn.py b/arsfutura_face_recognition/aligner/mtcnn.py index 3425243..afdae1e 100644 --- a/arsfutura_face_recognition/aligner/mtcnn.py +++ b/arsfutura_face_recognition/aligner/mtcnn.py @@ -1,10 +1,15 @@ from facenet_pytorch import MTCNN from . import Aligner +from torchvision import transforms +from .. import preprocessing class MTCNNAligner(Aligner): def __init__(self): self.mtcnn = MTCNN(keep_all=True) + self.preprocess = transforms.Compose([ + preprocessing.ExifOrientationNormalize() + ]) def align(self, img): - return self.mtcnn.detect(img) + return self.mtcnn.detect(self.preprocess(img)) diff --git a/arsfutura_face_recognition/classifier/__init__.py b/arsfutura_face_recognition/classifier/__init__.py deleted file mode 100644 index 5132c22..0000000 --- a/arsfutura_face_recognition/classifier/__init__.py +++ /dev/null @@ -1,10 +0,0 @@ -from abc import ABC, abstractmethod - - -class FaceClassifier(ABC): - @abstractmethod - def predict(self, face_embedding): - pass - - def __call__(self, *args, **kwargs): - return self.predict(*args, **kwargs) diff --git a/arsfutura_face_recognition/classifier/classifier.py b/arsfutura_face_recognition/classifier/classifier.py deleted file mode 100644 index a86ec08..0000000 --- a/arsfutura_face_recognition/classifier/classifier.py +++ /dev/null @@ -1,11 +0,0 @@ -import os -import pickle -from . import FaceClassifier - - -class FaceClassifierImpl(FaceClassifier): - def __init__(self): - self.le, self.model = pickle.load(open(os.path.join(os.path.dirname(__file__), '../../models/model.pkl'), 'rb')) - - def predict(self, face_embedding): - return self.le.inverse_transform(self.model.predict(face_embedding)) diff --git a/arsfutura_face_recognition/classifier/factory.py b/arsfutura_face_recognition/classifier/factory.py deleted file mode 100644 index d3d4e18..0000000 --- a/arsfutura_face_recognition/classifier/factory.py +++ /dev/null @@ -1,5 +0,0 @@ -from .classifier import FaceClassifierImpl - - -def classifier_factory(): - return FaceClassifierImpl() diff --git a/arsfutura_face_recognition/face_recogniser.py b/arsfutura_face_recognition/face_recogniser.py index b999c08..20212fc 100644 --- a/arsfutura_face_recognition/face_recogniser.py +++ b/arsfutura_face_recognition/face_recogniser.py @@ -1,47 +1,40 @@ import torch +import pickle +import os from .aligner.factory import aligner_factory from .facenet.factory import facenet_factory -from .classifier.factory import classifier_factory from facenet_pytorch.models.utils.detect_face import extract_face -from facenet_pytorch.models.mtcnn import prewhiten from collections import namedtuple -Face = namedtuple('Face', 'bb identity probability') +Prediction = namedtuple('Prediction', 'id name confidence') +Face = namedtuple('Face', 'top_prediction bb all_predictions') +BoundingBox = namedtuple('BoundingBox', 'left top right bottom') -class BoundingBox: - def __init__(self, left, top, right, bottom): - self._left = left - self._top = top - self._right = right - self._bottom = bottom - - def left(self): - return self._left - - def top(self): - return self._top - - def right(self): - return self._right - - def bottom(self): - return self._bottom - - -def face_recogniser_factory(): +def face_recogniser_factory(include_predictions=False): return FaceRecogniser( aligner=aligner_factory(), facenet=facenet_factory(), - classifier=classifier_factory() + include_predictions=include_predictions ) +def top_prediction(le, probs): + top_label = probs.argmax() + return Prediction(id=top_label, name=le.classes_[top_label], confidence=probs[top_label]) + + +def to_predictions(le, probs): + return [Prediction(id=i, name=le.classes_[i], confidence=prob) for i, prob in enumerate(probs)] + + class FaceRecogniser: - def __init__(self, aligner, facenet, classifier): + def __init__(self, aligner, facenet, include_predictions): self.aligner = aligner self.facenet = facenet - self.classifier = classifier + self.le, self.classifier = pickle.load( + open(os.path.join(os.path.dirname(__file__), '../models/model.pkl'), 'rb')) + self.include_predictions = include_predictions def recognise_faces(self, img): bbs, _ = self.aligner(img) @@ -49,12 +42,18 @@ def recognise_faces(self, img): # if no face is detected return [] - faces = torch.stack([prewhiten(extract_face(img, bb)) for bb in bbs]) + faces = torch.stack([extract_face(img, bb) for bb in bbs]) embeddings = self.facenet(faces).detach().numpy() - people = self.classifier(embeddings) - - return [Face(BoundingBox(left=bb[0], top=bb[1], right=bb[2], bottom=bb[3]), person, 100) - for bb, person in zip(bbs, people)] + predictions = self.classifier.predict_proba(embeddings) + + return [ + Face( + top_prediction=top_prediction(self.le, probs), + bb=BoundingBox(left=bb[0], top=bb[1], right=bb[2], bottom=bb[3]), + all_predictions=None if not self.include_predictions else to_predictions(self.le, probs) + ) + for bb, probs in zip(bbs, predictions) + ] def __call__(self, *args, **kwargs): return self.recognise_faces(*args, **kwargs) diff --git a/arsfutura_face_recognition/facenet/facenet.py b/arsfutura_face_recognition/facenet/facenet.py index 6a7080f..74df882 100644 --- a/arsfutura_face_recognition/facenet/facenet.py +++ b/arsfutura_face_recognition/facenet/facenet.py @@ -1,10 +1,15 @@ from . import FaceNet from facenet_pytorch import InceptionResnetV1 +from torchvision import transforms +from .. import preprocessing class FaceNetImpl(FaceNet): def __init__(self): self.facenet = InceptionResnetV1(pretrained='vggface2').eval() + self.preprocess = transforms.Compose([ + preprocessing.Whitening() + ]) def forward(self, img): - return self.facenet(img) + return self.facenet(self.preprocess(img)) diff --git a/arsfutura_face_recognition/preprocessing.py b/arsfutura_face_recognition/preprocessing.py new file mode 100644 index 0000000..da87085 --- /dev/null +++ b/arsfutura_face_recognition/preprocessing.py @@ -0,0 +1,42 @@ +from PIL import Image + +# EXIF orientation info http://sylvana.net/jpegcrop/exif_orientation.html +exif_orientation_tag = 0x0112 +exif_transpose_sequences = [ # Val 0th row 0th col + [], # 0 (reserved) + [], # 1 top left + [Image.FLIP_LEFT_RIGHT], # 2 top right + [Image.ROTATE_180], # 3 bottom right + [Image.FLIP_TOP_BOTTOM], # 4 bottom left + [Image.FLIP_LEFT_RIGHT, Image.ROTATE_90], # 5 left top + [Image.ROTATE_270], # 6 right top + [Image.FLIP_TOP_BOTTOM, Image.ROTATE_90], # 7 right bottom + [Image.ROTATE_90], # 8 left bottom +] + + +class ExifOrientationNormalize(object): + """ + Normalizes rotation of the image based on exif orientation info (if exists.) + """ + + def __call__(self, img): + if 'parsed_exif' in img.info: + orientation = img.info['parsed_exif'][exif_orientation_tag] + transposes = exif_transpose_sequences[orientation] + for trans in transposes: + img = img.transpose(trans) + return img + + +class Whitening(object): + """ + Whitens the image. + """ + + def __call__(self, img): + mean = img.mean() + std = img.std() + std_adj = std.clamp(min=1.0 / (float(img.numel()) ** 0.5)) + y = (img - mean) / std_adj + return y diff --git a/bin/align-mtcnn.py b/bin/align-mtcnn.py index ee494a5..c6128a2 100755 --- a/bin/align-mtcnn.py +++ b/bin/align-mtcnn.py @@ -4,6 +4,7 @@ import argparse from torchvision import datasets, transforms from facenet_pytorch.models.mtcnn import MTCNN +from arsfutura_face_recognition import preprocessing from PIL import Image @@ -27,6 +28,7 @@ def create_dirs(root_dir, classes): def main(): args = parse_args() trans = transforms.Compose([ + preprocessing.ExifOrientationNormalize(), transforms.Resize(1024) ]) diff --git a/face_recognition.py b/face_recognition.py index 71db674..b15b4c9 100755 --- a/face_recognition.py +++ b/face_recognition.py @@ -11,23 +11,22 @@ def parse_args(args=None): parser = argparse.ArgumentParser( 'Script for recognising faces on picture. Output of this script is json with list of people on picture and ' 'base64 encoded picture which has bounding boxes of people.') - image_group = parser.add_mutually_exclusive_group(required=True) - image_group.add_argument('--image-path', help='Path to image file.') - parser.add_argument('--classifier-path', required=True, help='Path to serialized classifier.') + parser.add_argument('--image-path', required=True, help='Path to image file.') return parser.parse_args(args) def draw_bb_on_img(faces, img): for face in faces: - cv2.rectangle(img, (int(face.bb.left()), int(face.bb.top())), (int(face.bb.right()), int(face.bb.bottom())), + cv2.rectangle(img, (int(face.bb.left), int(face.bb.top)), (int(face.bb.right), int(face.bb.bottom)), (0, 255, 0), 2) - cv2.putText(img, "%s %.2f%%" % (face.identity, face.probability), - (int(face.bb.left()), int(face.bb.bottom()) + 20), cv2.FONT_HERSHEY_TRIPLEX, 0.5, (255, 255, 255), 1) + cv2.putText(img, "%s %.2f%%" % (face.top_prediction.name.upper(), face.top_prediction.confidence * 100), + (int(face.bb.left), int(face.bb.top) - 10), cv2.FONT_HERSHEY_SIMPLEX, 3, (255, 255, 255), 4, + cv2.LINE_AA) def _recognise_faces(args): img = Image.open(args.image_path) - faces = face_recogniser_factory()(img) + faces = face_recogniser_factory(include_predictions=True)(img) img_cv = cv2.cvtColor(np.array(img), cv2.COLOR_RGB2BGR) draw_bb_on_img(faces, img_cv) return faces, img_cv @@ -36,10 +35,11 @@ def _recognise_faces(args): def main(): args = parse_args() faces, img = _recognise_faces(args) - cv2.imshow('image', img) - cv2.waitKey() - cv2.destroyAllWindows() - cv2.waitKey(1) + cv2.imwrite('img.jpg', img) + # cv2.imshow('image', img) + # cv2.waitKey() + # cv2.destroyAllWindows() + # cv2.waitKey(1) if __name__ == '__main__': diff --git a/generate_embeddings.sh b/generate_embeddings.sh index b6a7805..3213169 100755 --- a/generate_embeddings.sh +++ b/generate_embeddings.sh @@ -1,10 +1,5 @@ #!/usr/bin/env bash -python -m bin.exif_orientation_normalize --images-path data/images -echo -e "\n====================================" -echo "Exif orientation normalization done." -echo "====================================" - python -m bin.align-mtcnn --input-folder data/images --output-folder data/aligned echo -e "\n====================================" echo "Cropping faces (aligning) done." diff --git a/models/model.pkl b/models/model.pkl index cc59c3677199f6eb81151f7d5b2b08f045e8bbb4..1d1761741736979b40c5015b97aed160c3503e9f 100644 GIT binary patch literal 102627 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 Date: Thu, 22 Aug 2019 15:51:55 +0200 Subject: [PATCH 02/12] Making face recognition system independent of dataset. Major refactoring. Former-commit-id: ebeed61cd21d2d65e950711ad2cfe1b6cdb7760d --- __init__.py | 2 +- arsfutura_face_recognition/__init__.py | 1 - .../aligner/__init__.py | 10 --- arsfutura_face_recognition/aligner/factory.py | 5 -- arsfutura_face_recognition/aligner/mtcnn.py | 15 ----- arsfutura_face_recognition/dataset.py | 9 --- arsfutura_face_recognition/face_recogniser.py | 59 ------------------ .../facenet/__init__.py | 10 --- arsfutura_face_recognition/facenet/facenet.py | 15 ----- arsfutura_face_recognition/facenet/factory.py | 5 -- arsfutura_face_recognition/train.py | 41 ------------ bin/exif_orientation_normalize.py | 49 --------------- face_recognition.py | 7 ++- face_recognition/__init__.py | 2 + face_recognition/face_features_extractor.py | 27 ++++++++ face_recognition/face_recogniser.py | 41 ++++++++++++ .../preprocessing.py | 0 models/model.pkl | Bin 102627 -> 0 bytes real_time_face_detection.py | 12 +++- training/__init__.py | 0 training/train.py | 40 ++++++++++++ util/__init__.py | 0 {bin => util}/align-mtcnn.py | 2 +- .../collect_face_images.py | 0 {bin => util}/generate_embeddings.py | 0 .../visualize_data.py | 0 26 files changed, 126 insertions(+), 226 deletions(-) delete mode 100644 arsfutura_face_recognition/__init__.py delete mode 100644 arsfutura_face_recognition/aligner/__init__.py delete mode 100644 arsfutura_face_recognition/aligner/factory.py delete mode 100644 arsfutura_face_recognition/aligner/mtcnn.py delete mode 100644 arsfutura_face_recognition/dataset.py delete mode 100644 arsfutura_face_recognition/face_recogniser.py delete mode 100644 arsfutura_face_recognition/facenet/__init__.py delete mode 100644 arsfutura_face_recognition/facenet/facenet.py delete mode 100644 arsfutura_face_recognition/facenet/factory.py delete mode 100644 arsfutura_face_recognition/train.py delete mode 100755 bin/exif_orientation_normalize.py create mode 100644 face_recognition/__init__.py create mode 100644 face_recognition/face_features_extractor.py create mode 100644 face_recognition/face_recogniser.py rename {arsfutura_face_recognition => face_recognition}/preprocessing.py (100%) delete mode 100644 models/model.pkl create mode 100644 training/__init__.py create mode 100644 training/train.py create mode 100644 util/__init__.py rename {bin => util}/align-mtcnn.py (96%) rename {arsfutura_face_recognition => util}/collect_face_images.py (100%) rename {bin => util}/generate_embeddings.py (100%) rename {arsfutura_face_recognition => util}/visualize_data.py (100%) diff --git a/__init__.py b/__init__.py index c616768..6dbded8 100644 --- a/__init__.py +++ b/__init__.py @@ -1,4 +1,4 @@ -from .arsfutura_face_recognition import face_recogniser_factory +from .face_recognition import face_recogniser_factory face_recognizer = face_recogniser_factory(include_predictions=True) diff --git a/arsfutura_face_recognition/__init__.py b/arsfutura_face_recognition/__init__.py deleted file mode 100644 index af0ebc9..0000000 --- a/arsfutura_face_recognition/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from .face_recogniser import face_recogniser_factory diff --git a/arsfutura_face_recognition/aligner/__init__.py b/arsfutura_face_recognition/aligner/__init__.py deleted file mode 100644 index 50ce507..0000000 --- a/arsfutura_face_recognition/aligner/__init__.py +++ /dev/null @@ -1,10 +0,0 @@ -from abc import ABC, abstractmethod - - -class Aligner(ABC): - @abstractmethod - def align(self, img): - pass - - def __call__(self, *args, **kwargs): - return self.align(*args, **kwargs) diff --git a/arsfutura_face_recognition/aligner/factory.py b/arsfutura_face_recognition/aligner/factory.py deleted file mode 100644 index d684557..0000000 --- a/arsfutura_face_recognition/aligner/factory.py +++ /dev/null @@ -1,5 +0,0 @@ -from .mtcnn import MTCNNAligner - - -def aligner_factory(): - return MTCNNAligner() diff --git a/arsfutura_face_recognition/aligner/mtcnn.py b/arsfutura_face_recognition/aligner/mtcnn.py deleted file mode 100644 index afdae1e..0000000 --- a/arsfutura_face_recognition/aligner/mtcnn.py +++ /dev/null @@ -1,15 +0,0 @@ -from facenet_pytorch import MTCNN -from . import Aligner -from torchvision import transforms -from .. import preprocessing - - -class MTCNNAligner(Aligner): - def __init__(self): - self.mtcnn = MTCNN(keep_all=True) - self.preprocess = transforms.Compose([ - preprocessing.ExifOrientationNormalize() - ]) - - def align(self, img): - return self.mtcnn.detect(self.preprocess(img)) diff --git a/arsfutura_face_recognition/dataset.py b/arsfutura_face_recognition/dataset.py deleted file mode 100644 index 1381b18..0000000 --- a/arsfutura_face_recognition/dataset.py +++ /dev/null @@ -1,9 +0,0 @@ -import numpy as np - - -def load_data(): - return np.loadtxt('../embeddings.txt'), np.loadtxt('../labels.txt', dtype=np.str) - - -if __name__ == '__main__': - print(load_data()) diff --git a/arsfutura_face_recognition/face_recogniser.py b/arsfutura_face_recognition/face_recogniser.py deleted file mode 100644 index 20212fc..0000000 --- a/arsfutura_face_recognition/face_recogniser.py +++ /dev/null @@ -1,59 +0,0 @@ -import torch -import pickle -import os -from .aligner.factory import aligner_factory -from .facenet.factory import facenet_factory -from facenet_pytorch.models.utils.detect_face import extract_face -from collections import namedtuple - -Prediction = namedtuple('Prediction', 'id name confidence') -Face = namedtuple('Face', 'top_prediction bb all_predictions') -BoundingBox = namedtuple('BoundingBox', 'left top right bottom') - - -def face_recogniser_factory(include_predictions=False): - return FaceRecogniser( - aligner=aligner_factory(), - facenet=facenet_factory(), - include_predictions=include_predictions - ) - - -def top_prediction(le, probs): - top_label = probs.argmax() - return Prediction(id=top_label, name=le.classes_[top_label], confidence=probs[top_label]) - - -def to_predictions(le, probs): - return [Prediction(id=i, name=le.classes_[i], confidence=prob) for i, prob in enumerate(probs)] - - -class FaceRecogniser: - def __init__(self, aligner, facenet, include_predictions): - self.aligner = aligner - self.facenet = facenet - self.le, self.classifier = pickle.load( - open(os.path.join(os.path.dirname(__file__), '../models/model.pkl'), 'rb')) - self.include_predictions = include_predictions - - def recognise_faces(self, img): - bbs, _ = self.aligner(img) - if bbs is None: - # if no face is detected - return [] - - faces = torch.stack([extract_face(img, bb) for bb in bbs]) - embeddings = self.facenet(faces).detach().numpy() - predictions = self.classifier.predict_proba(embeddings) - - return [ - Face( - top_prediction=top_prediction(self.le, probs), - bb=BoundingBox(left=bb[0], top=bb[1], right=bb[2], bottom=bb[3]), - all_predictions=None if not self.include_predictions else to_predictions(self.le, probs) - ) - for bb, probs in zip(bbs, predictions) - ] - - def __call__(self, *args, **kwargs): - return self.recognise_faces(*args, **kwargs) diff --git a/arsfutura_face_recognition/facenet/__init__.py b/arsfutura_face_recognition/facenet/__init__.py deleted file mode 100644 index c6ec59c..0000000 --- a/arsfutura_face_recognition/facenet/__init__.py +++ /dev/null @@ -1,10 +0,0 @@ -from abc import ABC, abstractmethod - - -class FaceNet(ABC): - @abstractmethod - def forward(self, img): - pass - - def __call__(self, *args, **kwargs): - return self.forward(*args, **kwargs) diff --git a/arsfutura_face_recognition/facenet/facenet.py b/arsfutura_face_recognition/facenet/facenet.py deleted file mode 100644 index 74df882..0000000 --- a/arsfutura_face_recognition/facenet/facenet.py +++ /dev/null @@ -1,15 +0,0 @@ -from . import FaceNet -from facenet_pytorch import InceptionResnetV1 -from torchvision import transforms -from .. import preprocessing - - -class FaceNetImpl(FaceNet): - def __init__(self): - self.facenet = InceptionResnetV1(pretrained='vggface2').eval() - self.preprocess = transforms.Compose([ - preprocessing.Whitening() - ]) - - def forward(self, img): - return self.facenet(self.preprocess(img)) diff --git a/arsfutura_face_recognition/facenet/factory.py b/arsfutura_face_recognition/facenet/factory.py deleted file mode 100644 index 7def7b5..0000000 --- a/arsfutura_face_recognition/facenet/factory.py +++ /dev/null @@ -1,5 +0,0 @@ -from .facenet import FaceNetImpl - - -def facenet_factory(): - return FaceNetImpl() diff --git a/arsfutura_face_recognition/train.py b/arsfutura_face_recognition/train.py deleted file mode 100644 index 756e8bb..0000000 --- a/arsfutura_face_recognition/train.py +++ /dev/null @@ -1,41 +0,0 @@ -import pickle -from sklearn.model_selection import GridSearchCV -from sklearn.svm import SVC -from sklearn.linear_model import LogisticRegression -from sklearn.preprocessing import LabelEncoder -from sklearn.metrics import classification_report -from dataset import load_data -from sklearn.ensemble import RandomForestClassifier - -CLASSIFIERS = { - 'svm': ( - SVC(decision_function_shape='ovr'), - [ - {'C': [0.001, 0.1, 1, 10, 100, 1000], 'kernel': ['linear']}, - {'C': [0.001, 0.1, 1, 10, 100, 1000], 'gamma': [100, 50, 10, 1, 0.01, 0.001, 0.0001], 'kernel': ['rbf']} - ] - ), - 'logreg': ( - LogisticRegression(max_iter=10000, solver='lbfgs', multi_class='multinomial'), - {'C': [0.001, 0.1, 1, 10, 100, 1000]} - ) -} - - -def main(): - X, y = load_data() - le = LabelEncoder() - le.fit(y) - - classifier = CLASSIFIERS['logreg'] - - clf = GridSearchCV(classifier[0], classifier[1], cv=5, verbose=1) - clf.fit(X, le.transform(y)) - - print(clf.best_params_) - print(classification_report(le.transform(y), clf.predict(X), target_names=le.classes_)) - pickle.dump((le, clf), open('../models/model.pkl', 'wb')) - - -if __name__ == '__main__': - main() diff --git a/bin/exif_orientation_normalize.py b/bin/exif_orientation_normalize.py deleted file mode 100755 index 67d0b9a..0000000 --- a/bin/exif_orientation_normalize.py +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/env python - -import argparse -from torchvision.datasets import ImageFolder -from PIL import Image - -# EXIF orientation info http://sylvana.net/jpegcrop/exif_orientation.html - -exif_orientation_tag = 0x0112 -exif_transpose_sequences = [ # Val 0th row 0th col - [], # 0 (reserved) - [], # 1 top left - [Image.FLIP_LEFT_RIGHT], # 2 top right - [Image.ROTATE_180], # 3 bottom right - [Image.FLIP_TOP_BOTTOM], # 4 bottom left - [Image.FLIP_LEFT_RIGHT, Image.ROTATE_90], # 5 left top - [Image.ROTATE_270], # 6 right top - [Image.FLIP_TOP_BOTTOM, Image.ROTATE_90], # 7 right bottom - [Image.ROTATE_90], # 8 left bottom -] - - -def parse_args(): - parser = argparse.ArgumentParser( - description="Script for normalizing images orientation based on exif orientation tag. " - "This script will search for exif orientation tag in image, if it exists script will change image " - "orientation to 1 (top, left side). These changes will be saved to image and exif info will be " - "erased from image. If image doesn't have exif info, this script will leave it unchanged") - parser.add_argument('--images-path', required=True, help='Path to folder with images.') - return parser.parse_args() - - -def main(): - args = parse_args() - images = ImageFolder(args.images_path) - - for img_path, y in images.imgs: - img = Image.open(img_path).convert('RGB') - if 'parsed_exif' in img.info: - orientation = img.info['parsed_exif'][exif_orientation_tag] - transposes = exif_transpose_sequences[orientation] - for trans in transposes: - img = img.transpose(trans) - print('Processing {} with orientation {}'.format(img_path, orientation)) - img.save(img_path) - - -if __name__ == '__main__': - main() diff --git a/face_recognition.py b/face_recognition.py index b15b4c9..d4d615d 100755 --- a/face_recognition.py +++ b/face_recognition.py @@ -1,6 +1,6 @@ #!/usr/bin/env python -from arsfutura_face_recognition import face_recogniser_factory +import joblib import argparse import cv2 import numpy as np @@ -11,6 +11,7 @@ def parse_args(args=None): parser = argparse.ArgumentParser( 'Script for recognising faces on picture. Output of this script is json with list of people on picture and ' 'base64 encoded picture which has bounding boxes of people.') + parser.add_argument('-m', '--model-path', required=True, help='Path to face recogniser model.') parser.add_argument('--image-path', required=True, help='Path to image file.') return parser.parse_args(args) @@ -25,8 +26,8 @@ def draw_bb_on_img(faces, img): def _recognise_faces(args): - img = Image.open(args.image_path) - faces = face_recogniser_factory(include_predictions=True)(img) + img = Image.open(args.image_path).convert('RGB') + faces = joblib.load(args.model_path)(img) img_cv = cv2.cvtColor(np.array(img), cv2.COLOR_RGB2BGR) draw_bb_on_img(faces, img_cv) return faces, img_cv diff --git a/face_recognition/__init__.py b/face_recognition/__init__.py new file mode 100644 index 0000000..5448a42 --- /dev/null +++ b/face_recognition/__init__.py @@ -0,0 +1,2 @@ +from .face_recogniser import FaceRecogniser +from .face_features_extractor import FaceFeaturesExtractor diff --git a/face_recognition/face_features_extractor.py b/face_recognition/face_features_extractor.py new file mode 100644 index 0000000..29ceee9 --- /dev/null +++ b/face_recognition/face_features_extractor.py @@ -0,0 +1,27 @@ +import torch +from facenet_pytorch import MTCNN, InceptionResnetV1 +from torchvision import transforms +from . import preprocessing +from facenet_pytorch.models.utils.detect_face import extract_face + + +class FaceFeaturesExtractor: + def __init__(self): + self.aligner_preprocess = transforms.Compose([preprocessing.ExifOrientationNormalize()]) + self.aligner = MTCNN(prewhiten=False, keep_all=True) + self.facenet_preprocess = transforms.Compose([preprocessing.Whitening()]) + self.facenet = InceptionResnetV1(pretrained='vggface2').eval() + + def extract_features(self, img): + bbs, _ = self.aligner.detect(self.aligner_preprocess(img)) + if bbs is None: + # if no face is detected + return None, None + + faces = torch.stack([extract_face(img, bb) for bb in bbs]) + embeddings = self.facenet(faces).detach().numpy() + + return bbs, embeddings + + def __call__(self, img): + return self.extract_features(img) diff --git a/face_recognition/face_recogniser.py b/face_recognition/face_recogniser.py new file mode 100644 index 0000000..0100b4f --- /dev/null +++ b/face_recognition/face_recogniser.py @@ -0,0 +1,41 @@ +from collections import namedtuple + +Prediction = namedtuple('Prediction', 'id name confidence') +Face = namedtuple('Face', 'top_prediction bb all_predictions') +BoundingBox = namedtuple('BoundingBox', 'left top right bottom') + + +def top_prediction(idx_to_class, probs): + top_label = probs.argmax() + return Prediction(id=top_label, name=idx_to_class[top_label], confidence=probs[top_label]) + + +def to_predictions(idx_to_class, probs): + return [Prediction(id=i, name=idx_to_class[i], confidence=prob) for i, prob in enumerate(probs)] + + +class FaceRecogniser: + def __init__(self, feature_extractor, classifier, idx_to_class): + self.feature_extractor = feature_extractor + self.classifier = classifier + self.idx_to_class = idx_to_class + + def recognise_faces(self, img): + bbs, embeddings = self.feature_extractor(img) + if bbs is None: + # if no faces are detected + return [] + + predictions = self.classifier.predict_proba(embeddings) + + return [ + Face( + top_prediction=top_prediction(self.idx_to_class, probs), + bb=BoundingBox(left=bb[0], top=bb[1], right=bb[2], bottom=bb[3]), + all_predictions=to_predictions(self.idx_to_class, probs) + ) + for bb, probs in zip(bbs, predictions) + ] + + def __call__(self, img): + return self.recognise_faces(img) diff --git a/arsfutura_face_recognition/preprocessing.py b/face_recognition/preprocessing.py similarity index 100% rename from arsfutura_face_recognition/preprocessing.py rename to face_recognition/preprocessing.py diff --git a/models/model.pkl b/models/model.pkl deleted file mode 100644 index 1d1761741736979b40c5015b97aed160c3503e9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 102627 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 Date: Fri, 23 Aug 2019 15:07:34 +0200 Subject: [PATCH 03/12] Fixed bug in feature extractor. Train scripts. Former-commit-id: 1062715be80bb55793418d97a5a7fcb43b8afbc0 --- face_recognition/face_features_extractor.py | 6 ++--- tasks/train.sh | 3 +++ training/train.py | 30 +++++++++++++++------ 3 files changed, 28 insertions(+), 11 deletions(-) create mode 100755 tasks/train.sh diff --git a/face_recognition/face_features_extractor.py b/face_recognition/face_features_extractor.py index 29ceee9..33ff376 100644 --- a/face_recognition/face_features_extractor.py +++ b/face_recognition/face_features_extractor.py @@ -7,19 +7,19 @@ class FaceFeaturesExtractor: def __init__(self): - self.aligner_preprocess = transforms.Compose([preprocessing.ExifOrientationNormalize()]) + # TODO adjust threshold for detecting face self.aligner = MTCNN(prewhiten=False, keep_all=True) self.facenet_preprocess = transforms.Compose([preprocessing.Whitening()]) self.facenet = InceptionResnetV1(pretrained='vggface2').eval() def extract_features(self, img): - bbs, _ = self.aligner.detect(self.aligner_preprocess(img)) + bbs, _ = self.aligner.detect(img) if bbs is None: # if no face is detected return None, None faces = torch.stack([extract_face(img, bb) for bb in bbs]) - embeddings = self.facenet(faces).detach().numpy() + embeddings = self.facenet(self.facenet_preprocess(faces)).detach().numpy() return bbs, embeddings diff --git a/tasks/train.sh b/tasks/train.sh new file mode 100755 index 0000000..7b3e416 --- /dev/null +++ b/tasks/train.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +python -m training.train -d "$1" -o "$2" \ No newline at end of file diff --git a/training/train.py b/training/train.py index 225a524..4c1448f 100644 --- a/training/train.py +++ b/training/train.py @@ -2,6 +2,7 @@ import argparse import joblib import numpy as np +from PIL import Image from torchvision import transforms, datasets from sklearn.linear_model import LogisticRegression from face_recognition import preprocessing, FaceFeaturesExtractor, FaceRecogniser @@ -18,18 +19,31 @@ def parse_args(): def main(): args = parse_args() - dataset = datasets.ImageFolder( - args.dataset_path, - transform=transforms.Compose([ - preprocessing.ExifOrientationNormalize() - # TODO resizing of image - ])) + dataset = datasets.ImageFolder(args.dataset_path) + transform = transforms.Compose([ + preprocessing.ExifOrientationNormalize(), + transforms.Resize(1024) + ]) features_extractor = FaceFeaturesExtractor() - embeddings = np.stack([features_extractor(img)[1].flatten() for img, _ in dataset]) + embeddings = [] + labels = [] + for img_path, label in dataset.samples: + print(img_path) + _, embedding = features_extractor(transform(Image.open(img_path).convert('RGB'))) + if embedding is None: + print("Could not find place on {}".format(img_path)) + continue + if embedding.shape[0] > 1: + print("Multiple faces detected for {}, taking one with highest probability".format(img_path)) + embedding = embedding[0, :] + embeddings.append(embedding.flatten()) + labels.append(label) + + embeddings = np.stack(embeddings) clf = LogisticRegression(C=10) - clf.fit(embeddings, dataset.targets) + clf.fit(embeddings, labels) idx_to_class = {v: k for k, v in dataset.class_to_idx.items()} model_path = os.path.join(args.output_path, 'face_recogniser.pkl') From 87445379889c0cbc098cbcc4dca6336ba1a52ec5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luka=20Dul=C4=8Di=C4=87?= Date: Mon, 26 Aug 2019 15:38:00 +0200 Subject: [PATCH 04/12] Flask API for Face Recognition system. Former-commit-id: f7e8721cded2fcee096721b3ce1f0a9e6efa2a63 --- .dockerignore | 240 ++++++++++++++++++++++++++++++++++++++++++++ .gitignore | 3 +- README.md | 83 +++++++++++---- __init__.py | 7 -- api/Dockerfile | 19 ++++ api/README.md | 36 +++++++ api/app.py | 77 ++++++++++++++ requirements.txt | 9 +- tasks/run_server.sh | 3 + tasks/train.sh | 2 +- training/train.py | 4 +- 11 files changed, 448 insertions(+), 35 deletions(-) create mode 100644 .dockerignore delete mode 100644 __init__.py create mode 100644 api/Dockerfile create mode 100644 api/README.md create mode 100644 api/app.py create mode 100755 tasks/run_server.sh diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..463e976 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,240 @@ +# Created by .ignore support plugin (hsz.mobi) +### macOS template +# General +.DS_Store +.AppleDouble +.LSOverride + +.git +.gitignore +.gitmodules +README.md + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### Example user template template +### Example user template + +# IntelliJ project files +.idea +*.iml +out +gen +### Python template +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# celery beat schedule file +celerybeat-schedule + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +### JetBrains template +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +data* +test_data + diff --git a/.gitignore b/.gitignore index 9df4604..8372c1f 100644 --- a/.gitignore +++ b/.gitignore @@ -212,5 +212,6 @@ pyvenv.cfg .venv pip-selfcheck.json -# Ignore Data +# Ignore Data existing models data +model/* diff --git a/README.md b/README.md index ae813e6..2c3131b 100644 --- a/README.md +++ b/README.md @@ -1,28 +1,69 @@ -### `face_recognition.py` +This repository provides a framework for creating and using Face Recognition system. + +# Installation +Make sure you have [Python 3](https://realpython.com/installing-python/) and +[`pip`](https://www.makeuseof.com/tag/install-pip-for-python/) installed. + +Install dependencies +``` +pip install -r requirements.txt +``` + +# Train Face Recognition system +In order to train Face Recognition system user needs to provide images of people in a folder with following structure: + +``` +- images + - person1 + - person1_1.png + - person1_2.png + ... + - person1_n.png + - person2 + ... + - personN + ... ``` -usage: Script for recognising faces on picture. Output of this script is json with list of people on picture and base64 encoded picture which has bounding boxes of people. - [-h] (--image-path IMAGE_PATH | --image-bs64 IMAGE_BS64) - --classifier-path CLASSIFIER_PATH -optional arguments: - -h, --help show this help message and exit - --image-path IMAGE_PATH - Path to image file. - --image-bs64 IMAGE_BS64 - Base64 representation of image. - --classifier-path CLASSIFIER_PATH - Path to serialized classifier. +Every directory contains images of one person (the more images the better), every image must contain only one face of a +person. + +After preparing images run following command to train Face Recognition system: ``` +./tasks/train.sh path/to/folder/with/images +``` +Previous command will generate `model/face_recogniser.pkl` which represents trained Face Recognition system. + +# Using Face Recognition + +## Scripts +TODO video, face recogniser -# +## Face Recognition API +You can use trained Face Recognition system as REST API, `api` folder contains simple +[Flask](https://palletsprojects.com/p/flask/) API which provides frontend for Face Recognition system. -### `real_time_face_detection.py` +Run server using following command: +``` +tasks/run_server.sh +``` + +Server is running on port `5000`. +Swagger API docs are available upon running server on `:5000/docs` + +### Docker +Easiest way to run Face Recognition API is through Docker container. + +Build image +``` +docker build -t face-recognition-api:latest -f api/Dockerfile . +``` + +Run server +``` +docker run --name face-recognition-api -d -p 5000:5000 face-recognition-api ``` -usage: Script for real-time face recognition. [-h] - [--classifier-path CLASSIFIER_PATH] -optional arguments: - -h, --help show this help message and exit - --classifier-path CLASSIFIER_PATH - Path to serialized classifier. -``` \ No newline at end of file +> WARNING Face Recognition API memory usage depends on image sizes it's processing, if you plan to process +high-resolution images Face Recognition API container will need at least 3GB of RAM (maybe more) to run, if you are +running Docker containers with limited amount of RAM you could encounter OOM. diff --git a/__init__.py b/__init__.py deleted file mode 100644 index 6dbded8..0000000 --- a/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -from .face_recognition import face_recogniser_factory - -face_recognizer = face_recogniser_factory(include_predictions=True) - - -def recognise_faces(img): - return face_recognizer(img) diff --git a/api/Dockerfile b/api/Dockerfile new file mode 100644 index 0000000..9038b5f --- /dev/null +++ b/api/Dockerfile @@ -0,0 +1,19 @@ +FROM ubuntu:18.04 + +MAINTAINER Luka Dulčić "culuma@arsfutura.co" + +RUN apt-get update -y && \ + apt-get install -y python3-pip python3-dev libsm6 libxext6 libxrender-dev + +# We copy just the requirements.txt first to leverage Docker cache +COPY ./requirements.txt /app/requirements.txt + +WORKDIR /app + +RUN pip3 install -r requirements.txt + +COPY face_recognition /app/face_recognitiondocker +COPY model /app/model +COPY api /app/api + +CMD [ "python3", "-m", "api.app" ] \ No newline at end of file diff --git a/api/README.md b/api/README.md new file mode 100644 index 0000000..79153ca --- /dev/null +++ b/api/README.md @@ -0,0 +1,36 @@ +# Face Recognition API +Simple [Flask](https://palletsprojects.com/p/flask/) API which provides frontend for +[Ars Futura Face Recognition System](https://github.com/arsfutura/arsfutura-face-recognition). + +Server is running on port `5000`. +Swagger API docs are available upon running server on `:5000/docs` + +## Installation +Make sure you have [Python 3](https://realpython.com/installing-python/) and +[`pip`](https://www.makeuseof.com/tag/install-pip-for-python/) installed. + +Install dependencies +``` +pip install -r requirements.txt +``` + +## Run server +``` +python3 app.py +``` + +## Docker +Easiest way to run Face Recognition API is through Docker container. + +Build image +``` +docker build -t face-recognition-api:latest . +``` + +Run server +``` +docker run --name face-recognition-api -d -p 5000:5000 face-recognition-api +``` + +> WARNING Face Recognition API needs at least 3GB of RAM (4GB ideally) to run, if you are running on resource +constrained machines or Docker containers with less than 3GB of RAM you could encounter OOM. diff --git a/api/app.py b/api/app.py new file mode 100644 index 0000000..eb5277a --- /dev/null +++ b/api/app.py @@ -0,0 +1,77 @@ +import io +import joblib +from PIL import Image +from flask import Flask +from flask_restplus import Api, Resource, fields, abort, inputs +from werkzeug.datastructures import FileStorage + +face_recogniser = joblib.load('model/face_recogniser.pkl') + +IMAGE_KEY = 'image' +INCLUDE_PREDICTIONS_KEY = 'include_predictions' +app = Flask(__name__) +api = Api(app, version='0.1.0', title='Face Recognition API', doc='/docs') + +parser = api.parser() +parser.add_argument(IMAGE_KEY, type=FileStorage, location='files', required=True, + help='Image on which face recognition will be run.') +parser.add_argument(INCLUDE_PREDICTIONS_KEY, type=inputs.boolean, default=False, + help='Whether to include all predictions in response.') + +bounding_box = api.model('BoundingBox', { + 'left': fields.Float, + 'top': fields.Float, + 'right': fields.Float, + 'bottom': fields.Float, +}) + +prediction = api.model('Prediction', { + 'id': fields.Integer, + 'name': fields.String, + 'confidence': fields.Float +}) + +face_model = api.model('Face', { + 'top_prediction': fields.Nested(prediction), + 'bounding_box': fields.Nested(bounding_box), + 'all_predictions': fields.List(fields.Nested(prediction)) +}) + +response_model = api.model('Response', { + 'faces': fields.List(fields.Nested(face_model)) +}) + +error_model = api.model('ErrorResponse', { + 'message': fields.String +}) + + +@api.route('/face-recognition') +class FaceRecognition(Resource): + @api.expect(parser, validate=True) + @api.marshal_with(response_model) + @api.response(200, 'Success') + @api.response(400, 'No image file in request.', error_model) + def post(self): + args = parser.parse_args() + if IMAGE_KEY not in args: + abort(400, "Image field '{}' doesn't exist in request!".format(IMAGE_KEY)) + + img = Image.open(io.BytesIO(args[IMAGE_KEY].read())) + faces = face_recogniser(img) + return \ + { + 'faces': [ + { + 'top_prediction': face.top_prediction._asdict(), + 'bounding_box': face.bb._asdict(), + 'all_predictions': [p._asdict() for p in face.all_predictions] if + args[INCLUDE_PREDICTIONS_KEY] else None + } + for face in faces + ] + } + + +if __name__ == '__main__': + app.run(host='0.0.0.0') diff --git a/requirements.txt b/requirements.txt index 31b70a3..1bbd991 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,9 +1,14 @@ numpy==1.16.4 Pillow==6.1.0 +dataset==1.1.2 facenet_pytorch==0.1.0 +Flask==1.1.1 +flask_restplus==0.13.0 +joblib==0.13.2 matplotlib==3.1.1 seaborn==0.9.0 -scikit_learn==0.21.2 +scikit_learn==0.21.3 torch==1.1.0 torchvision==0.3.0 -opencv==4.1.0 +Werkzeug==0.15.2 +opencv-python==4.1.0.25 diff --git a/tasks/run_server.sh b/tasks/run_server.sh new file mode 100755 index 0000000..006d9ca --- /dev/null +++ b/tasks/run_server.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +python -m api.app \ No newline at end of file diff --git a/tasks/train.sh b/tasks/train.sh index 7b3e416..3de6ba3 100755 --- a/tasks/train.sh +++ b/tasks/train.sh @@ -1,3 +1,3 @@ #!/usr/bin/env bash -python -m training.train -d "$1" -o "$2" \ No newline at end of file +python -m training.train -d "$1" \ No newline at end of file diff --git a/training/train.py b/training/train.py index 4c1448f..337129a 100644 --- a/training/train.py +++ b/training/train.py @@ -11,8 +11,6 @@ def parse_args(): parser = argparse.ArgumentParser() parser.add_argument('-d', '--dataset-path', required=True, help='Path to folder with images.') - parser.add_argument('-o', '--output-path', default='..', - help='Path where trained model and label encoder will be saved.') return parser.parse_args() @@ -46,7 +44,7 @@ def main(): clf.fit(embeddings, labels) idx_to_class = {v: k for k, v in dataset.class_to_idx.items()} - model_path = os.path.join(args.output_path, 'face_recogniser.pkl') + model_path = os.path.join('model', 'face_recogniser.pkl') joblib.dump(FaceRecogniser(features_extractor, clf, idx_to_class), model_path) From 11ac9b71444b1075b433be340e039dfbd75ea20a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luka=20Dul=C4=8Di=C4=87?= Date: Mon, 26 Aug 2019 17:50:52 +0200 Subject: [PATCH 05/12] Inference scripts. Removed unnecessary stuff. Former-commit-id: c8b9191c615586480a576a96b11a024d13d52716 --- face_recognition.py | 47 -------------------------- fonts/font.ttf | Bin 0 -> 138848 bytes generate_embeddings.sh | 11 ------ inference/constants.py | 1 + inference/face_recognition.py | 47 ++++++++++++++++++++++++++ inference/real_time_face_detection.py | 36 ++++++++++++++++++++ inference/util.py | 13 +++++++ real_time_face_detection.py | 45 ------------------------ 8 files changed, 97 insertions(+), 103 deletions(-) delete mode 100755 face_recognition.py create mode 100644 fonts/font.ttf delete mode 100755 generate_embeddings.sh create mode 100644 inference/constants.py create mode 100755 inference/face_recognition.py create mode 100755 inference/real_time_face_detection.py create mode 100644 inference/util.py delete mode 100755 real_time_face_detection.py diff --git a/face_recognition.py b/face_recognition.py deleted file mode 100755 index d4d615d..0000000 --- a/face_recognition.py +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/env python - -import joblib -import argparse -import cv2 -import numpy as np -from PIL import Image - - -def parse_args(args=None): - parser = argparse.ArgumentParser( - 'Script for recognising faces on picture. Output of this script is json with list of people on picture and ' - 'base64 encoded picture which has bounding boxes of people.') - parser.add_argument('-m', '--model-path', required=True, help='Path to face recogniser model.') - parser.add_argument('--image-path', required=True, help='Path to image file.') - return parser.parse_args(args) - - -def draw_bb_on_img(faces, img): - for face in faces: - cv2.rectangle(img, (int(face.bb.left), int(face.bb.top)), (int(face.bb.right), int(face.bb.bottom)), - (0, 255, 0), 2) - cv2.putText(img, "%s %.2f%%" % (face.top_prediction.name.upper(), face.top_prediction.confidence * 100), - (int(face.bb.left), int(face.bb.top) - 10), cv2.FONT_HERSHEY_SIMPLEX, 3, (255, 255, 255), 4, - cv2.LINE_AA) - - -def _recognise_faces(args): - img = Image.open(args.image_path).convert('RGB') - faces = joblib.load(args.model_path)(img) - img_cv = cv2.cvtColor(np.array(img), cv2.COLOR_RGB2BGR) - draw_bb_on_img(faces, img_cv) - return faces, img_cv - - -def main(): - args = parse_args() - faces, img = _recognise_faces(args) - cv2.imwrite('img.jpg', img) - # cv2.imshow('image', img) - # cv2.waitKey() - # cv2.destroyAllWindows() - # cv2.waitKey(1) - - -if __name__ == '__main__': - main() diff --git a/fonts/font.ttf b/fonts/font.ttf new file mode 100644 index 0000000000000000000000000000000000000000..10248aff9d6d56ba65d9a4f6844fe5511d12c8d5 GIT binary patch literal 138848 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 Date: Tue, 27 Aug 2019 11:26:56 +0200 Subject: [PATCH 06/12] Renamed inference scripts, updated README with docs for inference scripts. Removed unnecessary api README. Former-commit-id: 8802b7308c2fd68d04d0ef51aedea92db4c260ae --- README.md | 32 +++++++++++++++-- api/README.md | 36 ------------------- .../{face_recognition.py => classifier.py} | 4 +-- ..._face_detection.py => video_classifier.py} | 0 4 files changed, 32 insertions(+), 40 deletions(-) delete mode 100644 api/README.md rename inference/{face_recognition.py => classifier.py} (83%) rename inference/{real_time_face_detection.py => video_classifier.py} (100%) diff --git a/README.md b/README.md index 2c3131b..8f837b3 100644 --- a/README.md +++ b/README.md @@ -36,8 +36,36 @@ Previous command will generate `model/face_recogniser.pkl` which represents trai # Using Face Recognition -## Scripts -TODO video, face recogniser +After training Face Recognition system you can use it in several ways. You can use one of inference scripts or REST API. + +## Inference scripts + +`inference` directory contains scripts which can be used with trained Face Recognition system. + +#### `classifier.py` +Script for detecting and classifying faces on user-provided image. This script will process image, draw bounding boxes +and labels on image and display it. It will also optionally save that image. +``` +python -m inference.classifier -h +``` +``` +usage: Script for detecting and classifying faces on user-provided image. This script will process image, draw bounding boxes and labels on image and display it. It will also optionally save that image. + [-h] --image-path IMAGE_PATH [--save-dir SAVE_DIR] + +optional arguments: + -h, --help show this help message and exit + --image-path IMAGE_PATH + Path to image file. + --save-dir SAVE_DIR If save dir is provided image will be saved to + specified directory. +``` + +#### `video_classifier.py` +Script for detecting and classifying faces on video stream, it connects to default camera and performs face detection +and classification on every frame. +``` +python -m inference.video_classifier +``` ## Face Recognition API You can use trained Face Recognition system as REST API, `api` folder contains simple diff --git a/api/README.md b/api/README.md deleted file mode 100644 index 79153ca..0000000 --- a/api/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# Face Recognition API -Simple [Flask](https://palletsprojects.com/p/flask/) API which provides frontend for -[Ars Futura Face Recognition System](https://github.com/arsfutura/arsfutura-face-recognition). - -Server is running on port `5000`. -Swagger API docs are available upon running server on `:5000/docs` - -## Installation -Make sure you have [Python 3](https://realpython.com/installing-python/) and -[`pip`](https://www.makeuseof.com/tag/install-pip-for-python/) installed. - -Install dependencies -``` -pip install -r requirements.txt -``` - -## Run server -``` -python3 app.py -``` - -## Docker -Easiest way to run Face Recognition API is through Docker container. - -Build image -``` -docker build -t face-recognition-api:latest . -``` - -Run server -``` -docker run --name face-recognition-api -d -p 5000:5000 face-recognition-api -``` - -> WARNING Face Recognition API needs at least 3GB of RAM (4GB ideally) to run, if you are running on resource -constrained machines or Docker containers with less than 3GB of RAM you could encounter OOM. diff --git a/inference/face_recognition.py b/inference/classifier.py similarity index 83% rename from inference/face_recognition.py rename to inference/classifier.py index 1c7e351..5ccf4b8 100755 --- a/inference/face_recognition.py +++ b/inference/classifier.py @@ -10,8 +10,8 @@ def parse_args(): parser = argparse.ArgumentParser( - 'Script for recognising faces on user-provided image. This script will process image, draw bounding boxes and ' - 'labels on image and display it. It will also optionally save that image') + 'Script for detecting and classifying faces on user-provided image. This script will process image, draw ' + 'bounding boxes and labels on image and display it. It will also optionally save that image.') parser.add_argument('--image-path', required=True, help='Path to image file.') parser.add_argument('--save-dir', help='If save dir is provided image will be saved to specified directory.') return parser.parse_args() diff --git a/inference/real_time_face_detection.py b/inference/video_classifier.py similarity index 100% rename from inference/real_time_face_detection.py rename to inference/video_classifier.py From dd451b6f64e74826ba07fee0cc41fb1c95e39d01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luka=20Dul=C4=8Di=C4=87?= Date: Tue, 27 Aug 2019 13:14:58 +0200 Subject: [PATCH 07/12] Text scaling depending on image size in classifier script. Former-commit-id: 480027980b1013e79b1778790b0827cc0505f59c --- inference/util.py | 3 ++- util/__init__.py | 0 2 files changed, 2 insertions(+), 1 deletion(-) delete mode 100644 util/__init__.py diff --git a/inference/util.py b/inference/util.py index 9195671..25c6c67 100644 --- a/inference/util.py +++ b/inference/util.py @@ -3,11 +3,12 @@ def draw_bb_on_img(faces, img): draw = ImageDraw.Draw(img) + fs = max(20, round(img.size[0] * img.size[1] * 0.000005)) for face in faces: draw.rectangle(((int(face.bb.left), int(face.bb.top)), (int(face.bb.right), int(face.bb.bottom))), outline='green', width=5) draw.text( (int(face.bb.left), int(face.bb.bottom) + 20), "%s %.2f%%" % (face.top_prediction.name.upper(), face.top_prediction.confidence * 100), - font=ImageFont.truetype('fonts/font.ttf', 100) + font=ImageFont.truetype('fonts/font.ttf', fs) ) diff --git a/util/__init__.py b/util/__init__.py deleted file mode 100644 index e69de29..0000000 From e58bb9c5ff94e04f735a495dcfb1208a91798e92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luka=20Dul=C4=8Di=C4=87?= Date: Tue, 27 Aug 2019 13:45:51 +0200 Subject: [PATCH 08/12] Added references. Former-commit-id: 42addbbc879d2c407610496abf0327bf9d18d12c --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 8f837b3..e510f66 100644 --- a/README.md +++ b/README.md @@ -95,3 +95,7 @@ docker run --name face-recognition-api -d -p 5000:5000 face-recognition-api > WARNING Face Recognition API memory usage depends on image sizes it's processing, if you plan to process high-resolution images Face Recognition API container will need at least 3GB of RAM (maybe more) to run, if you are running Docker containers with limited amount of RAM you could encounter OOM. + +## References +* [https://github.com/timesler/facenet-pytorch](https://github.com/timesler/facenet-pytorch) +* [https://github.com/davidsandberg/facenet](https://github.com/davidsandberg/facenet) \ No newline at end of file From b57da7213dcdbd9d2ad4d759f6ace848bded8150 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luka=20Dul=C4=8Di=C4=87?= Date: Tue, 27 Aug 2019 13:55:58 +0200 Subject: [PATCH 09/12] Fixed bug in train script. Former-commit-id: 87faa98d31ebc2ef940e2034c4ea6c1add797bd2 --- .gitignore | 3 ++- training/train.py | 10 ++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 8372c1f..c4367c3 100644 --- a/.gitignore +++ b/.gitignore @@ -212,6 +212,7 @@ pyvenv.cfg .venv pip-selfcheck.json -# Ignore Data existing models +# My ignores data model/* +ignored diff --git a/training/train.py b/training/train.py index 337129a..5525e72 100644 --- a/training/train.py +++ b/training/train.py @@ -8,6 +8,9 @@ from face_recognition import preprocessing, FaceFeaturesExtractor, FaceRecogniser +MODEL_DIR_PATH = 'model' + + def parse_args(): parser = argparse.ArgumentParser() parser.add_argument('-d', '--dataset-path', required=True, help='Path to folder with images.') @@ -30,7 +33,7 @@ def main(): print(img_path) _, embedding = features_extractor(transform(Image.open(img_path).convert('RGB'))) if embedding is None: - print("Could not find place on {}".format(img_path)) + print("Could not find face on {}".format(img_path)) continue if embedding.shape[0] > 1: print("Multiple faces detected for {}, taking one with highest probability".format(img_path)) @@ -40,10 +43,13 @@ def main(): embeddings = np.stack(embeddings) - clf = LogisticRegression(C=10) + clf = LogisticRegression(C=10, solver='lbfgs', multi_class='multinomial') clf.fit(embeddings, labels) idx_to_class = {v: k for k, v in dataset.class_to_idx.items()} + + if not os.path.isdir(MODEL_DIR_PATH): + os.mkdir(MODEL_DIR_PATH) model_path = os.path.join('model', 'face_recogniser.pkl') joblib.dump(FaceRecogniser(features_extractor, clf, idx_to_class), model_path) From e5c113909661893603c8ff3d1b16a69ada43ff33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luka=20Dul=C4=8Di=C4=87?= Date: Tue, 27 Aug 2019 14:58:41 +0200 Subject: [PATCH 10/12] Fixed util scripts for generating aligned images and embeddings. Former-commit-id: 7ab8318875bed6b9143523737464bd2092bad0ea --- training/train.py | 16 ++++++++++------ util/align-mtcnn.py | 2 +- util/generate_embeddings.py | 30 ++++++++++++------------------ 3 files changed, 23 insertions(+), 25 deletions(-) diff --git a/training/train.py b/training/train.py index 5525e72..66bb88a 100644 --- a/training/train.py +++ b/training/train.py @@ -17,16 +17,12 @@ def parse_args(): return parser.parse_args() -def main(): - args = parse_args() - - dataset = datasets.ImageFolder(args.dataset_path) +def dataset_to_embeddings(dataset, features_extractor): transform = transforms.Compose([ preprocessing.ExifOrientationNormalize(), transforms.Resize(1024) ]) - features_extractor = FaceFeaturesExtractor() embeddings = [] labels = [] for img_path, label in dataset.samples: @@ -41,7 +37,15 @@ def main(): embeddings.append(embedding.flatten()) labels.append(label) - embeddings = np.stack(embeddings) + return np.stack(embeddings), labels + + +def main(): + args = parse_args() + + features_extractor = FaceFeaturesExtractor() + dataset = datasets.ImageFolder(args.dataset_path) + embeddings, labels = dataset_to_embeddings(dataset, features_extractor) clf = LogisticRegression(C=10, solver='lbfgs', multi_class='multinomial') clf.fit(embeddings, labels) diff --git a/util/align-mtcnn.py b/util/align-mtcnn.py index 8b6126c..2b1e755 100755 --- a/util/align-mtcnn.py +++ b/util/align-mtcnn.py @@ -36,7 +36,7 @@ def main(): images.idx_to_class = {v: k for k, v in images.class_to_idx.items()} create_dirs(args.output_folder, images.classes) - mtcnn = MTCNN() + mtcnn = MTCNN(prewhiten=False) for idx, (path, y) in enumerate(images.imgs): print("Aligning {} {}/{} ".format(path, idx + 1, len(images)), end='') diff --git a/util/generate_embeddings.py b/util/generate_embeddings.py index 85e125f..a9e5ee5 100644 --- a/util/generate_embeddings.py +++ b/util/generate_embeddings.py @@ -2,12 +2,9 @@ import os import numpy as np import torch -from torchvision import datasets, transforms -from torch.utils.data import DataLoader -from facenet_pytorch.models.inception_resnet_v1 import InceptionResnetV1 - - -BATCH_SIZE = 32 +from torchvision import datasets +from face_recognition import FaceFeaturesExtractor +from training.train import dataset_to_embeddings def parse_args(): @@ -15,7 +12,7 @@ def parse_args(): "Script for generating face embeddings. Output of this script is 'embeddings.txt' which contains embeddings " "for all input images and 'labels.txt' which contains label for every embedding.") parser.add_argument('--input-folder', required=True, - help='Root folder where *aligned* images are. This folder contains sub-folders for each class.') + help='Root folder where images are. This folder contains sub-folders for each class.') parser.add_argument('--output-folder', required=True, help='Output folder where image embeddings and labels will be saved.') return parser.parse_args() @@ -25,17 +22,14 @@ def main(): torch.set_grad_enabled(False) args = parse_args() - aligned_images = datasets.ImageFolder(args.input_folder, transform=transforms.ToTensor()) - aligned_images.idx_to_class = {v: k for k, v in aligned_images.class_to_idx.items()} - data_loader = DataLoader(aligned_images, batch_size=BATCH_SIZE) - facenet = InceptionResnetV1(pretrained='vggface2').eval() - - embeddings = None - labels = [] - for x, y in data_loader: - embeddings = facenet(x) if embeddings is None else torch.cat([embeddings, facenet(x)], dim=0) - labels += map(lambda idx: aligned_images.idx_to_class[idx], y.detach().numpy().tolist()) - np.savetxt(args.output_folder + os.path.sep + 'embeddings.txt', embeddings.detach().numpy()) + features_extractor = FaceFeaturesExtractor() + dataset = datasets.ImageFolder(args.input_folder) + embeddings, labels = dataset_to_embeddings(dataset, features_extractor) + + idx_to_class = {v: k for k, v in dataset.class_to_idx.items()} + labels = list(map(lambda idx: idx_to_class[idx], labels)) + + np.savetxt(args.output_folder + os.path.sep + 'embeddings.txt', embeddings) np.savetxt(args.output_folder + os.path.sep + 'labels.txt', np.array(labels, dtype=np.str).reshape(-1, 1), fmt="%s") From dbc596c534e6eb99fb07a96c0fcfb3687d26616a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luka=20Dul=C4=8Di=C4=87?= Date: Tue, 27 Aug 2019 15:22:31 +0200 Subject: [PATCH 11/12] Updated TSNE visualization script. Former-commit-id: bf013f6e6c2fcbba29380b39f9621920f4144084 --- ...isualize_data.py => tsne_visualization.py} | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) rename util/{visualize_data.py => tsne_visualization.py} (54%) diff --git a/util/visualize_data.py b/util/tsne_visualization.py similarity index 54% rename from util/visualize_data.py rename to util/tsne_visualization.py index 531f50c..0dd2d18 100644 --- a/util/visualize_data.py +++ b/util/tsne_visualization.py @@ -1,27 +1,29 @@ -from collections import OrderedDict +import argparse import random import numpy as np import matplotlib.pyplot as plt +from collections import OrderedDict from matplotlib.pyplot import cm -from sklearn.decomposition import PCA from sklearn.manifold import TSNE -from functools import partial -from dataset import load_data import seaborn as sns + sns.set() -METHODS = { - 'pca': PCA, - 'tsne': partial(TSNE, perplexity=5, init='pca', learning_rate=200, verbose=1) -} +def parse_args(): + parser = argparse.ArgumentParser('Script for visualising face embedding vectors with TSNE in 2D.') + parser.add_argument('-e', '--embeddings-path', required=True, + help='Path to file with embeddings. File must be numpy matrix in txt format.') + parser.add_argument('-l', '--labels-path', required=True, + help='Path to file with labels. File must be numpy matrix in txt format.') + return parser.parse_args() def main(): - X, labels = load_data() - cls = METHODS['tsne'] - method = cls(n_components=2) - transformed = method.fit_transform(X) + args = parse_args() + X, labels = np.loadtxt(args.embeddings_path), np.loadtxt(args.labels_path, dtype=np.str) + tsne = TSNE(n_components=2, n_iter=10000, perplexity=5, init='pca', learning_rate=200, verbose=1) + transformed = tsne.fit_transform(X) y = set(labels) labels = np.array(labels) From ec256ceef407c0fa2ef50cc4339c5d9288c19c90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luka=20Dul=C4=8Di=C4=87?= Date: Tue, 27 Aug 2019 15:48:41 +0200 Subject: [PATCH 12/12] Removed id from Prediction model. Updated API. Updated README. Former-commit-id: 21cac15a880205256f9237bd93d601c2f3a5c8d6 --- README.md | 40 ++++++++++++++++++++++++++--- api/app.py | 3 +-- face_recognition/face_recogniser.py | 6 ++--- 3 files changed, 40 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index e510f66..28490e1 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,41 @@ tasks/run_server.sh ``` Server is running on port `5000`. -Swagger API docs are available upon running server on `:5000/docs` +Swagger API docs are available upon running server on `:5000/docs` + +``POST /face-recognition`` + +Example response: +``` +{ + "faces": [ + { + "top_prediction": { + "label": "person1", + "confidence": 0.9051724841669186 + }, + "bounding_box": { + "left": 3103.2939949035645, + "top": 920.1620543003082, + "right": 3484.597170829773, + "bottom": 1605.22814142704 + } + }, + { + "top_prediction": { + "label": "person2", + "confidence": 0.5193666400755098 + }, + "bounding_box": { + "left": 1985.1384818404913, + "top": 950.2878819331527, + "right": 2383.1231556087732, + "bottom": 1566.2133588716388 + } + } + ] +} +``` ### Docker Easiest way to run Face Recognition API is through Docker container. @@ -92,9 +126,7 @@ Run server docker run --name face-recognition-api -d -p 5000:5000 face-recognition-api ``` -> WARNING Face Recognition API memory usage depends on image sizes it's processing, if you plan to process -high-resolution images Face Recognition API container will need at least 3GB of RAM (maybe more) to run, if you are -running Docker containers with limited amount of RAM you could encounter OOM. +> WARNING If you are processing high-resolution images in a containers limited amount of memory you could encounter OOM. ## References * [https://github.com/timesler/facenet-pytorch](https://github.com/timesler/facenet-pytorch) diff --git a/api/app.py b/api/app.py index eb5277a..9d629d6 100644 --- a/api/app.py +++ b/api/app.py @@ -26,8 +26,7 @@ }) prediction = api.model('Prediction', { - 'id': fields.Integer, - 'name': fields.String, + 'label': fields.String, 'confidence': fields.Float }) diff --git a/face_recognition/face_recogniser.py b/face_recognition/face_recogniser.py index 0100b4f..f7f7d72 100644 --- a/face_recognition/face_recogniser.py +++ b/face_recognition/face_recogniser.py @@ -1,17 +1,17 @@ from collections import namedtuple -Prediction = namedtuple('Prediction', 'id name confidence') +Prediction = namedtuple('Prediction', 'label confidence') Face = namedtuple('Face', 'top_prediction bb all_predictions') BoundingBox = namedtuple('BoundingBox', 'left top right bottom') def top_prediction(idx_to_class, probs): top_label = probs.argmax() - return Prediction(id=top_label, name=idx_to_class[top_label], confidence=probs[top_label]) + return Prediction(label=idx_to_class[top_label], confidence=probs[top_label]) def to_predictions(idx_to_class, probs): - return [Prediction(id=i, name=idx_to_class[i], confidence=prob) for i, prob in enumerate(probs)] + return [Prediction(label=idx_to_class[i], confidence=prob) for i, prob in enumerate(probs)] class FaceRecogniser: