web_index.py 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. import time
  2. from flask import Flask, request
  3. import json
  4. import MTCNN_person
  5. app = Flask(__name__)
  6. import datetime
  7. import logging
  8. def get_today_str(plusDay=0):
  9. today = datetime.datetime.now()
  10. today = today + datetime.timedelta(days=plusDay)
  11. return today.strftime('%Y-%m-%d')
  12. today = get_today_str()
  13. def logger(log_obj, log_file="/data/logs/face-info-" + today.replace('-', '') +".log"):
  14. logger_obj = logging.getLogger(log_obj)
  15. logger_obj.setLevel(logging.INFO)
  16. file_handle = logging.FileHandler(log_file)
  17. file_handle.setLevel(logging.INFO)
  18. formatter = logging.Formatter(
  19. '%(asctime)s - %(name)s - %(levelname)s - %(message)s')
  20. file_handle.setFormatter(formatter)
  21. logger_obj.addHandler(file_handle)
  22. return logger_obj
  23. _logger = logger(__name__)
  24. @app.route('/')
  25. def hello_world():
  26. return 'Hello World!'
  27. import requests
  28. #图片链接
  29. headers ={
  30. 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'
  31. }
  32. dir = 'C:\\Users\\yufen\\Pictures\\face\\'
  33. def do_download(url):
  34. url1 = url.split('?')[0]
  35. name = url1.split('/')[-1]
  36. r = requests.get(url, headers=headers)
  37. # 下载图片
  38. # 二进制数据需要用r.content 进行提取
  39. # 将图片放在‘图库’文件夹下,‘图库’是文件夹的名称,将图片放入该文件夹中,该文件夹与py文件在同一目录下
  40. f = open(dir + name, 'wb')
  41. f.write(r.content)
  42. f.close()
  43. return name
  44. @app.route('/download')
  45. def download():
  46. url = request.args.get('url')
  47. time1 = int(round(time.time() * 1000))
  48. print('info=%s' % url)
  49. do_download(url)
  50. time2 = int(round(time.time() * 1000))
  51. print('over %s from %s' % (time2 - time1, time1))
  52. return 'Hello World!'
  53. @app.route('/face')
  54. def face():
  55. info = request.args.get('url')
  56. time1 = int(round(time.time() * 1000))
  57. _logger.info('info=%s' % info)
  58. name = do_download(info)
  59. time2 = int(round(time.time() * 1000))
  60. faces = MTCNN_person.detector(dir + name)
  61. time3 = int(round(time.time() * 1000))
  62. _logger.info('[%s] over %s from %s' % (name, time3 - time1, time1))
  63. return json.dumps(faces)
  64. from gevent import pywsgi
  65. import traceback
  66. if __name__ == '__main__':
  67. try:
  68. # app.run(host='192.168.0.220', port=5000)
  69. server = pywsgi.WSGIServer(('0.0.0.0', 5000), app)
  70. server.serve_forever()
  71. except Exception as e:
  72. traceback.print_exc(file=open('error.txt', 'a+'))
  73. print(e)
  74. # server = pywsgi.WSGIServer(('0.0.0.0', 5000), app)
  75. # server.serve_forever()
  76. # do_download(url='https://img.bbztx.com/article/live150178/team217182/20230913192631_tmp_9fbaaecf98fd1a3e91a6571f744f4b34511300d6c5a5b358.jpg?x-oss-process=image/resize,h_1000,m_lfit')
  77. # MTCNN_person.detector('C:\\Users\\yufen\\Pictures\\face\\20230913192631_tmp_9fbaaecf98fd1a3e91a6571f744f4b34511300d6c5a5b358.jpg')