Advertisement
Guest User

Untitled

a guest
Feb 28th, 2017
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.19 KB | None | 0 0
  1. $ ls
  2. compare2.py Dockerfile root
  3.  
  4. $ cat compare2.py
  5. #! /usr/bin/env python
  6. from flask import Flask, request
  7. import flask
  8. from PIL import Image
  9. from io import BytesIO
  10. import base64
  11. import numpy as np
  12.  
  13. import argparse
  14. import cv2
  15. import itertools
  16. import os
  17.  
  18. import numpy as np
  19. np.set_printoptions(precision=10)
  20.  
  21. import openface
  22. fileDir = os.path.dirname(os.path.realpath(__file__))
  23. modelDir = os.path.join(fileDir, '/root/openface/', 'models')
  24. dlibModelDir = os.path.join(modelDir, 'dlib')
  25. openfaceModelDir = os.path.join(modelDir, 'openface')
  26. parser = argparse.ArgumentParser()
  27. parser.add_argument('--dlibFacePredictor', type=str, help="Path to dlib's face predictor.",
  28. default=os.path.join(dlibModelDir, "shape_predictor_68_face_landmarks.dat"))
  29. parser.add_argument('--networkModel', type=str, help="Path to Torch network model.",
  30. default=os.path.join(openfaceModelDir, 'nn4.small2.v1.t7'))
  31. parser.add_argument('--imgDim', type=int,
  32. help="Default image dimension.", default=96)
  33. parser.add_argument('--verbose', action='store_true')
  34.  
  35. args = parser.parse_args()
  36.  
  37. app = Flask(__name__)
  38. align = openface.AlignDlib(args.dlibFacePredictor)
  39. net = openface.TorchNeuralNet(args.networkModel, args.imgDim)
  40.  
  41. @app.route("/search", methods=['POST'])
  42. def get_search():
  43. image_str = request.form['image']
  44. im = Image.open(BytesIO(base64.b64decode(image_str)))
  45. rgbImg = np.array(im)
  46. print rgbImg.shape
  47. bgrImg = cv2.cvtColor(rgbImg, cv2.COLOR_RGB2BGR)
  48. rgbImg = cv2.cvtColor(bgrImg, cv2.COLOR_BGR2RGB)
  49. print rgbImg.shape
  50. try:
  51. bb = align.getLargestFaceBoundingBox(rgbImg)
  52.  
  53. alignedFace = align.align(args.imgDim, rgbImg, bb,
  54. landmarkIndices=openface.AlignDlib.OUTER_EYES_AND_NOSE)
  55.  
  56. rep = net.forward(alignedFace)
  57. return flask.jsonify(rep.tolist())
  58. except:
  59. return flask.jsonify("ERROR")
  60.  
  61. if __name__ == '__main__':
  62. app.run(debug=True, host='0.0.0.0', port=8000)
  63.  
  64. $ cat Dockerfile
  65. FROM bamos/openface
  66. RUN apt-get install python-pip
  67. RUN pip install flask
  68. RUN pip install numpy
  69. ADD compare2.py /root/demos/compare2.py
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement