Skip to content

Commit

Permalink
added facedb tutorial
Browse files Browse the repository at this point in the history
  • Loading branch information
azmathmoosa committed Jul 31, 2018
1 parent 20421ea commit 73230eb
Show file tree
Hide file tree
Showing 449 changed files with 487 additions and 0 deletions.
35 changes: 35 additions & 0 deletions examples/face_db/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
This example demonstrates usage of FaceDB to query an embedding from a DB. Please go through code to understand FaceDB usage.

> This example only works in Linux. FaceDB is currently not available for Windows.
> Free version of Face DB only supports 50 faces.
> Email us at contact@baseapp.com for further queries.
![face_db](https://github.com/baseapp/DeepSight-Face-Recognition-SDK/blob/master/examples/face_db/static/gen/2018-07-31_144814.jpg)


### Running

* To run this example, install the following dependencies

```sh
pip install requests
pip install opencv-python
pip install scipy flask
```
* Next, start `Deepsight Face SDK` and let it run.
* Next, start `facedb --serve` and let it run
* Start the flask app using `python app.py`
* The application will say `fifa db initialized`
* Open a browser and point to `localhost:5101`
* Use the gui to upload a photo
* The application will return closest matching fifa celebrity

### Files

* `facedb` - This is the free version of faceDB binary. It supports upto 50 faces.
* `app.py` - This is the flask app.
* `dsface.py` - A simple python wrapper to generate embeddings using Deepsight Face
* `facedb.py` - A simple python wrapper to `facedb` binary
* `save_to_facedb.py` - This demonstrates how to save embeddings in `facedb`. It reads values from `fifadb.json` and stores them in `facedb`. It then dumps the database so that it can be loaded later.
73 changes: 73 additions & 0 deletions examples/face_db/app.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
"""
* Author: Azmath Moosa
* Created: 31st July 2018
* Description: Flask app to demonstrate use of FaceDB.
This app can be accessed at localhost:5101
It takes an image and finds the closest matching
FIFA celebrity.
It uses Deepsight SDK for face detection and retrieves embeddings.
It then uses FaceDB to query the closest embeddings and retrieves celeb name.
It then shows the celeb's photo next to the input photo.
Please launch and run facedb and dsFace manually
* Dependencies: python requests, json, flask, opencv-python, numpy
"""

from flask import Flask, render_template, request, make_response, Markup, send_from_directory
import io
import numpy as np
import cv2
import utils
import base64
import datetime
from facedb import FaceDBHandler
from dsface import DSFaceHandler

app = Flask(__name__)

faceDB = FaceDBHandler(filename="fifadb")
dsFace = DSFaceHandler(face_rec=True,face_lmk=True)


@app.route("/")
def index():
return render_template("input.html")

@app.route("/result", methods=['POST'])
def result():
photo = request.files['face']
in_memory_file = io.BytesIO()
photo.save(in_memory_file)
data = np.fromstring(in_memory_file.getvalue(), dtype=np.uint8)
color_image_flag = 1
img = cv2.imdecode(data, color_image_flag)

vec, crop = dsFace.get_embedding(img)

search = faceDB.search_database(vec)

print(search)

celebname = search["meta"]

output_img = utils.read_transparent_png("static/pics/%s.png"%celebname)
outimg = utils.build_montages([crop, output_img], (180,180),(2,1))
fname = "static/gen/"+datetime.datetime.now().strftime('%Y-%m-%d_%H%M%S') + ".jpg"
cv2.imwrite(fname, outimg[0])

return render_template("result.html", name=celebname, imgpath = fname)

@app.route('/<path:path>')
def send_file(path):
return send_from_directory('.', path)


if __name__ == "__main__":
if faceDB.load_database():
faceDB.reindex()
print("fifa db initialized")
app.run(host= '0.0.0.0', port=5101)
else:
print("Failed to load and init fifa database; is fifadb.db and fifadb.index files present?\
Use save_to_facedb.py to generate them")
68 changes: 68 additions & 0 deletions examples/face_db/dsface.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
"""
* Author: Azmath Moosa
* Created: 30th July 2018
* Description: Python wrapper class for dsFace.
Please launch and run the dsFace separately
* Dependencies: python requests, opencv-python, numpy
"""

import time
import json
import cv2
import requests
import numpy as np

face_api = "http://127.0.0.1:5000/inferImage?returnFaceId=true&detector=mmod&returnFaceLandmarks=true"



class DSFaceHandler():

def __init__(self, api="http://127.0.0.1:5000/inferImage", face_rec=False, detector="mmod", face_lmk=False):
print("Please make sure dsFace is running in the background (./dsFace )")
self.face_api = api
self.detector = detector
self.faceRecognition = face_rec
self.faceLmk = face_lmk


def endpt(self):
detector = "detector="+self.detector+"&"
faceRecognition = "returnFaceId=true&" if self.faceRecognition else ""
faceLmk = "returnFaceLandmarks=true" if self.faceLmk else ""

return self.face_api + "?" + detector + faceRecognition + faceLmk


def get_embedding(self, img):
img = cv2.resize(img,(250,250))

r, imgbuf = cv2.imencode(".bmp", img)
image = {'pic':bytearray(imgbuf)}

r = requests.post(self.endpt(), files=image)
try:
result = r.json()
except Exception as e:
print(e, r.text)

if len(result) > 1:
faces = result[:-1]
diag = result[-1]['diagnostics']

for face in faces:
rect, embedding = [face[i] for i in ['faceRectangle','faceEmbeddings']]
x,y,w,h, confidence = [rect[i] for i in ['left', 'top', 'width', 'height', 'confidence']]

if confidence < 0.5:
continue

crop = img[y:y+h, x:x+w]

return np.asarray(embedding), crop
else:
return np.zeros([128]), img


Binary file added examples/face_db/facedb
Binary file not shown.
60 changes: 60 additions & 0 deletions examples/face_db/facedb.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
"""
* Author: Azmath Moosa
* Created: 30th July 2018
* Description: Python wrapper class for facedb.
Please launch and run the facedb app separately
* Dependencies: python requests, json
"""
import json
import requests

class FaceDBHandler():

def __init__(self, api="http://localhost:5100/", filename="facedb"):
print("Please make sure facedb is running in the background( ./facedb --serve )")
self.facedb_api = api
self.db_path = filename

def save_embedding(self, vec, meta):
endpt = self.facedb_api + "save_embedding"
body = {"embedding": vec, "meta":meta}
res = requests.post(endpt,json=body).json()
return res

def reindex(self):
endpt = self.facedb_api + "reindex"
res = requests.post(endpt, json={}).json()
return res["message"] == "ok"

def dump_database(self):
endpt = self.facedb_api + "dump_database"
res = requests.post(endpt, json={"filename":self.db_path}).json()
return res

def load_database(self):
endpt = self.facedb_api + "load_database"
res = requests.post(endpt, json={"filename":self.db_path}).json()
return res["message"] == "ok"

def clear_database(self):
endpt = self.facedb_api + "clear_database"
res = requests.post(endpt, json={}).json()
return res

def print_database(self):
endpt = self.facedb_api + "print_database"
res = requests.post(endpt, json={}).json()
return res

def search_database(self, vec):
endpt = self.facedb_api + "search_embedding"
res = requests.post(endpt, json={"embedding": vec.tolist()})
try:
print(res.text)
return res.json()
except:
return {"index":0, "distance":0.0}


Binary file added examples/face_db/fifadb.db
Binary file not shown.
Binary file added examples/face_db/fifadb.index
Binary file not shown.
1 change: 1 addition & 0 deletions examples/face_db/fifadb.json

Large diffs are not rendered by default.

51 changes: 51 additions & 0 deletions examples/face_db/save_to_facedb.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
"""
* Author: Azmath Moosa
* Created: 31 July 2018
* Description: Loads FIFA player embeddings and names from fifadb.json and loads them into faceDB. It then
dumps database so that it can be used later.
* Dependencies: Deepsight Face, FaceDB, python packages:- requests, argparse, opencv-python
"""

import json
import time
import requests

facedb_api = "http://localhost:5100/"
json_file = "fifadb.json"
facedb_dump_filename = "fifadb"

def load_db():
data = json.loads(open(json_file).read())
names = []
embeddings = []
for d in data:
names.append(d['name'])
embeddings.append(d['embedding'])

return names, embeddings

def save_embeddings(names, embeddings):
endpt = facedb_api + "save_embedding"
t = time.time()
count = 0

body = {"embeddings": embeddings, "metas": names}
res = requests.post(endpt,json=body)
count = res.json()

print(count, "items added in ", time.time() - t, "seconds")

def dump_database():
endpt = facedb_api + "dump_database"
t = time.time()
res = requests.post(endpt, json={'filename':facedb_dump_filename})
print("dump_database", res.json()," ", time.time() - t, "seconds")

if __name__ == "__main__":
names, embeddings = load_db()
print("items read " , len(names), len(embeddings))
save_embeddings(names[:50], embeddings[:50]) #limited by 50 in free version of faceDB
dump_database()
print("done")
Binary file added examples/face_db/static/gen/2018-07-31_132611.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added examples/face_db/static/gen/2018-07-31_144814.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added examples/face_db/static/gen/2018-07-31_145130.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added examples/face_db/static/pics/Aaron Ramsey.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added examples/face_db/static/pics/Adam Lallana.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added examples/face_db/static/pics/Adil Rami.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added examples/face_db/static/pics/Adn.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added examples/face_db/static/pics/Adrien Rabiot.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added examples/face_db/static/pics/Adrien Silva.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added examples/face_db/static/pics/Aduriz.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added examples/face_db/static/pics/Alan Dzagoev.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added examples/face_db/static/pics/Alejandro Gmez.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added examples/face_db/static/pics/Alex Sandro.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added examples/face_db/static/pics/Alexis Snchez.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added examples/face_db/static/pics/Ander Herrera.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added examples/face_db/static/pics/Andr Ayew.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added examples/face_db/static/pics/Andr Gomes.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added examples/face_db/static/pics/Andr Schrrle.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added examples/face_db/static/pics/Andrea Barzagli.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added examples/face_db/static/pics/Andrea Belotti.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added examples/face_db/static/pics/Andrea Consigli.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added examples/face_db/static/pics/Andrea Pirlo.png
Binary file added examples/face_db/static/pics/Andriy Pyatov.png
Binary file added examples/face_db/static/pics/Angelo Ogbonna.png
Binary file added examples/face_db/static/pics/Anthony Lopes.png
Binary file added examples/face_db/static/pics/Anthony Martial.png
Binary file added examples/face_db/static/pics/Anthony Modeste.png
Binary file added examples/face_db/static/pics/Antonio Candreva.png
Binary file added examples/face_db/static/pics/Antonio Mirante.png
Binary file added examples/face_db/static/pics/Antonio Valencia.png
Binary file added examples/face_db/static/pics/Arda Turan.png
Binary file added examples/face_db/static/pics/Arjen Robben.png
Binary file added examples/face_db/static/pics/Arturo Vidal.png
Binary file added examples/face_db/static/pics/Ashley Williams.png
Binary file added examples/face_db/static/pics/Asmir Begovi.png
Binary file added examples/face_db/static/pics/Augusto Fernndez.png
Binary file added examples/face_db/static/pics/Axel Witsel.png
Binary file added examples/face_db/static/pics/Aymeric Laporte.png
Binary file added examples/face_db/static/pics/Azpilicueta.png
Binary file added examples/face_db/static/pics/Bacary Sagna.png
Binary file added examples/face_db/static/pics/Bartra.png
Binary file added examples/face_db/static/pics/Bas Dost.png
Binary file added examples/face_db/static/pics/Beat.png
Binary file added examples/face_db/static/pics/Ben Foster.png
Binary file added examples/face_db/static/pics/Benedikt Hwedes.png
Binary file added examples/face_db/static/pics/Benot Costil.png
Binary file added examples/face_db/static/pics/Benot Trmoulinas.png
Binary file added examples/face_db/static/pics/Bernardo Silva.png
Binary file added examples/face_db/static/pics/Bernd Leno.png
Binary file added examples/face_db/static/pics/Blaise Matuidi.png
Binary file added examples/face_db/static/pics/Bojan.png
Binary file added examples/face_db/static/pics/Borja Valero.png
Binary file added examples/face_db/static/pics/Camacho.png
Binary file added examples/face_db/static/pics/Carlos Bacca.png
Binary file added examples/face_db/static/pics/Carlos Vela.png
Binary file added examples/face_db/static/pics/Carvajal.png
Binary file added examples/face_db/static/pics/Casemiro.png
Binary file added examples/face_db/static/pics/Casillas.png
Binary file added examples/face_db/static/pics/Cdric Bakambu.png
Binary file added examples/face_db/static/pics/Cdric Carrasso.png
Binary file added examples/face_db/static/pics/Cesc Fbregas.png
Binary file added examples/face_db/static/pics/Chris Smalling.png
Binary file added examples/face_db/static/pics/Christian Noboa.png
Binary file added examples/face_db/static/pics/Ciro Immobile.png
Binary file added examples/face_db/static/pics/Claudio Bravo.png
Binary file added examples/face_db/static/pics/Coke.png
Binary file added examples/face_db/static/pics/Corentin Tolisso.png
Binary file added examples/face_db/static/pics/Coutinho.png
Binary file added examples/face_db/static/pics/Cristian Ansaldi.png
Binary file added examples/face_db/static/pics/Daley Blind.png
Binary file added examples/face_db/static/pics/Dani Alves.png
Binary file added examples/face_db/static/pics/Daniel Carrio.png
Binary file added examples/face_db/static/pics/Daniel Sturridge.png
Binary file added examples/face_db/static/pics/Daniel Wass.png
Binary file added examples/face_db/static/pics/Daniele De Rossi.png
Binary file added examples/face_db/static/pics/Danijel Subai.png
Binary file added examples/face_db/static/pics/Danilo Pereira.png
Binary file added examples/face_db/static/pics/Danny Rose.png
Binary file added examples/face_db/static/pics/Danny Welbeck.png
Binary file added examples/face_db/static/pics/Danny.png
Binary file added examples/face_db/static/pics/Dante.png
Binary file added examples/face_db/static/pics/Darijo Srna.png
Binary file added examples/face_db/static/pics/David Alaba.png
Binary file added examples/face_db/static/pics/David Luiz.png
Binary file added examples/face_db/static/pics/David Silva.png
Binary file added examples/face_db/static/pics/David Villa.png
Binary file added examples/face_db/static/pics/Davide Astori.png
Binary file added examples/face_db/static/pics/De Gea.png
Binary file added examples/face_db/static/pics/De Marcos.png
Binary file added examples/face_db/static/pics/Dejan Lovren.png
Binary file added examples/face_db/static/pics/Dele Alli.png
Binary file added examples/face_db/static/pics/Deulofeu.png
Binary file added examples/face_db/static/pics/Didier Drogba.png
Binary file added examples/face_db/static/pics/Diego Alves.png
Binary file added examples/face_db/static/pics/Diego Costa.png
Binary file added examples/face_db/static/pics/Diego Godn.png
Binary file added examples/face_db/static/pics/Diego Lpez.png
Binary file added examples/face_db/static/pics/Diego Perotti.png
Binary file added examples/face_db/static/pics/Dimitri Payet.png
Binary file added examples/face_db/static/pics/Domenico Berardi.png
Binary file added examples/face_db/static/pics/Douglas Costa.png
Binary file added examples/face_db/static/pics/Dries Mertens.png
Binary file added examples/face_db/static/pics/Duan Basta.png
Binary file added examples/face_db/static/pics/Eden Hazard.png
Binary file added examples/face_db/static/pics/Eder.png
Binary file added examples/face_db/static/pics/Ederson.png
Binary file added examples/face_db/static/pics/Edin Deko.png
Binary file added examples/face_db/static/pics/Edinson Cavani.png
Binary file added examples/face_db/static/pics/Eric Bailly.png
Binary file added examples/face_db/static/pics/Erik Lamela.png
Binary file added examples/face_db/static/pics/Ezequiel Garay.png
Binary file added examples/face_db/static/pics/Falcao.png
Binary file added examples/face_db/static/pics/Federico Fazio.png
Binary file added examples/face_db/static/pics/Fedor Smolov.png
Binary file added examples/face_db/static/pics/Felipe Anderson.png
Binary file added examples/face_db/static/pics/Fernandinho.png
Binary file added examples/face_db/static/pics/Fernando Torres.png
Binary file added examples/face_db/static/pics/Filipe Lus.png
Binary file added examples/face_db/static/pics/Florian Thauvin.png
Binary file added examples/face_db/static/pics/Francesco Acerbi.png
Binary file added examples/face_db/static/pics/Franck Ribry.png
Binary file added examples/face_db/static/pics/Franco Vzquez.png
Binary file added examples/face_db/static/pics/Gabi.png
Binary file added examples/face_db/static/pics/Gabriel Paletta.png
Binary file added examples/face_db/static/pics/Gareth Bale.png
Binary file added examples/face_db/static/pics/Gary Cahill.png
Binary file added examples/face_db/static/pics/Gary Medel.png
Binary file added examples/face_db/static/pics/Gernimo Rulli.png
Binary file added examples/face_db/static/pics/Gianluigi Buffon.png
Binary file added examples/face_db/static/pics/Giuliano.png
Binary file added examples/face_db/static/pics/Gonzalo Castro.png
Binary file added examples/face_db/static/pics/Gonzalo Higuan.png
Binary file added examples/face_db/static/pics/Granit Xhaka.png
Binary file added examples/face_db/static/pics/Gustavo Cabral.png
Binary file added examples/face_db/static/pics/Harry Kane.png
Binary file added examples/face_db/static/pics/Hatem Ben Arfa.png
Binary file added examples/face_db/static/pics/Hctor Herrera.png
Binary file added examples/face_db/static/pics/Hctor Moreno.png
Binary file added examples/face_db/static/pics/Hugo Lloris.png
Binary file added examples/face_db/static/pics/Iago Aspas.png
Binary file added examples/face_db/static/pics/Iborra.png
Binary file added examples/face_db/static/pics/Ibrahima Traor.png
Binary file added examples/face_db/static/pics/Idrissa Gueye.png
Binary file added examples/face_db/static/pics/Igor Akinfeev.png
Binary file added examples/face_db/static/pics/Igor Smolnikov.png
Binary file added examples/face_db/static/pics/Iigo Martnez.png
Binary file added examples/face_db/static/pics/Iniesta.png
Binary file added examples/face_db/static/pics/Isco.png
Binary file added examples/face_db/static/pics/Islam Slimani.png
Binary file added examples/face_db/static/pics/Iturraspe.png
Binary file added examples/face_db/static/pics/Ivan Perii.png
Binary file added examples/face_db/static/pics/Ivan Rakiti.png
Binary file added examples/face_db/static/pics/Jack Butland.png
Binary file added examples/face_db/static/pics/Jack Wilshere.png
Binary file added examples/face_db/static/pics/James McCarthy.png
Binary file added examples/face_db/static/pics/James Milner.png
Binary file added examples/face_db/static/pics/James Rodrguez.png
Binary file added examples/face_db/static/pics/Jan Oblak.png
Binary file added examples/face_db/static/pics/Jan Vertonghen.png
Binary file added examples/face_db/static/pics/Jardel.png
Binary file added examples/face_db/static/pics/Jasper Cillessen.png
Binary file added examples/face_db/static/pics/Javi Martinez.png
Binary file added examples/face_db/static/pics/Javier Hernndez.png
Binary file added examples/face_db/static/pics/Javier Pastore.png
Binary file added examples/face_db/static/pics/Jeremain Lens.png
Binary file added examples/face_db/static/pics/Jermain Defoe.png
Binary file added examples/face_db/static/pics/Jlio Csar.png
Binary file added examples/face_db/static/pics/Joe Hart.png
Binary file added examples/face_db/static/pics/Joel Matip.png
Binary file added examples/face_db/static/pics/John Terry.png
Binary file added examples/face_db/static/pics/Jonas Hector.png
Binary file added examples/face_db/static/pics/Jonas.png
Binary file added examples/face_db/static/pics/Jonathan Tah.png
Binary file added examples/face_db/static/pics/Jonathan Viera.png
Binary file added examples/face_db/static/pics/Joo Moutinho.png
Binary file added examples/face_db/static/pics/Joo Mrio.png
Binary file added examples/face_db/static/pics/Jordan Henderson.png
Binary file added examples/face_db/static/pics/Jordi Alba.png
Binary file added examples/face_db/static/pics/Jores Okore.png
Binary file added examples/face_db/static/pics/Jorginho.png
Binary file added examples/face_db/static/pics/Jos Callejn.png
Binary file added examples/face_db/static/pics/Jos Fonte.png
Binary file added examples/face_db/static/pics/Jos Mara Gimnez.png
Binary file added examples/face_db/static/pics/Jos Reina.png
Binary file added examples/face_db/static/pics/Jrme Boateng.png
Binary file added examples/face_db/static/pics/Jrmy Mathieu.png
Binary file added examples/face_db/static/pics/Juan Cuadrado.png
Binary file added examples/face_db/static/pics/Juan Mata.png
Binary file added examples/face_db/static/pics/Juanfran.png
Binary file added examples/face_db/static/pics/Julian Draxler.png
Binary file added examples/face_db/static/pics/Kak.png
Binary file added examples/face_db/static/pics/Kamil Glik.png
Binary file added examples/face_db/static/pics/Karim Bellarabi.png
Binary file added examples/face_db/static/pics/Karim Benzema.png
Binary file added examples/face_db/static/pics/Kevin De Bruyne.png
Binary file added examples/face_db/static/pics/Kevin Kampl.png
Binary file added examples/face_db/static/pics/Kevin Mirallas.png
Binary file added examples/face_db/static/pics/Kevin Strootman.png
Binary file added examples/face_db/static/pics/Kevin Trapp.png
Binary file added examples/face_db/static/pics/Keylor Navas.png
Binary file added examples/face_db/static/pics/Kiko Casilla.png
Binary file added examples/face_db/static/pics/Koke.png
Binary file added examples/face_db/static/pics/Kostas Manolas.png
Binary file added examples/face_db/static/pics/Kvin Gameiro.png
Binary file added examples/face_db/static/pics/Kwadwo Asamoah.png
Binary file added examples/face_db/static/pics/Kyle Walker.png
Binary file added examples/face_db/static/pics/Lars Bender.png
Binary file added examples/face_db/static/pics/Lars Stindl.png
Binary file added examples/face_db/static/pics/Leighton Baines.png
Binary file added examples/face_db/static/pics/Leon Goretzka.png
Binary file added examples/face_db/static/pics/Leonardo Bonucci.png
Binary file added examples/face_db/static/pics/Lionel Messi.png
Binary file added examples/face_db/static/pics/Ljubomir Fejsa.png
Binary file added examples/face_db/static/pics/Loc Perrin.png
Binary file added examples/face_db/static/pics/Loc Rmy.png
Binary file added examples/face_db/static/pics/Lorenzo Insigne.png
Binary file added examples/face_db/static/pics/Loris Karius.png
Binary file added examples/face_db/static/pics/Lucas Biglia.png
Binary file added examples/face_db/static/pics/Lucas Leiva.png
Binary file added examples/face_db/static/pics/Lucas Prez.png
Binary file added examples/face_db/static/pics/Lucas Vzquez.png
Binary file added examples/face_db/static/pics/Lucas.png
Binary file added examples/face_db/static/pics/Luis Surez.png
Binary file added examples/face_db/static/pics/Luiz Gustavo.png
Binary file added examples/face_db/static/pics/Luk Hrdeck.png
Binary file added examples/face_db/static/pics/Luka Modri.png
Binary file added examples/face_db/static/pics/Lukas Podolski.png
Binary file added examples/face_db/static/pics/Lus Neto.png
Binary file added examples/face_db/static/pics/Mamadou Sakho.png
Binary file added examples/face_db/static/pics/Manu Trigueros.png
Binary file added examples/face_db/static/pics/Manuel Neuer.png
Binary file added examples/face_db/static/pics/Marcelo Brozovi.png
Binary file added examples/face_db/static/pics/Marcelo Daz.png
Binary file added examples/face_db/static/pics/Marcelo.png
Binary file added examples/face_db/static/pics/Marco Asensio.png
Binary file added examples/face_db/static/pics/Marco Parolo.png
Binary file added examples/face_db/static/pics/Marco Reus.png
Binary file added examples/face_db/static/pics/Marco Verratti.png
Binary file added examples/face_db/static/pics/Marcos Rojo.png
Binary file added examples/face_db/static/pics/Marek Hamik.png
Binary file added examples/face_db/static/pics/Mario Balotelli.png
Binary file added examples/face_db/static/pics/Mario Gaspar.png
Binary file added examples/face_db/static/pics/Mario Gmez.png
Binary file added examples/face_db/static/pics/Mario Gtze.png
Binary file added examples/face_db/static/pics/Mario Manduki.png
Binary file added examples/face_db/static/pics/Marko Arnautovi.png
Binary file added examples/face_db/static/pics/Marlos.png
Binary file added examples/face_db/static/pics/Marquinhos.png
Binary file added examples/face_db/static/pics/Martin krtel.png
Binary file added examples/face_db/static/pics/Martn Cceres.png
Binary file added examples/face_db/static/pics/Mateo Kovai.png
Binary file added examples/face_db/static/pics/Mateo Musacchio.png
Binary file added examples/face_db/static/pics/Mathieu Valbuena.png
Binary file added examples/face_db/static/pics/Mats Hummels.png
Binary file added examples/face_db/static/pics/Matteo Darmian.png
Binary file added examples/face_db/static/pics/Mattia Perin.png
Binary file added examples/face_db/static/pics/Mauro Icardi.png
Binary file added examples/face_db/static/pics/Medhi Benatia.png

0 comments on commit 73230eb

Please sign in to comment.