Spaces:
Running
Running
| import os | |
| import sys | |
| import traceback | |
| import cv2 | |
| import numpy as np | |
| try: | |
| from cores import Options,clean | |
| from util import util | |
| from util import image_processing as impro | |
| from models import loadmodel | |
| except Exception as e: | |
| print(e) | |
| input('Please press any key to exit.\n') | |
| sys.exit(0) | |
| # python server.py --gpu_id 0 --model_path ./pretrained_models/mosaic/clean_face_HD.pth | |
| opt = Options() | |
| opt.parser.add_argument('--port',type=int,default=4000, help='') | |
| opt = opt.getparse(True) | |
| netM = loadmodel.bisenet(opt,'mosaic') | |
| netG = loadmodel.pix2pix(opt) | |
| from flask import Flask, request | |
| import base64 | |
| import shutil | |
| app = Flask(__name__) | |
| def handle(): | |
| result = {} | |
| # to opencv img | |
| try: | |
| imgRec = request.form['img'] | |
| imgByte = base64.b64decode(imgRec) | |
| img_np_arr = np.frombuffer(imgByte, np.uint8) | |
| img = cv2.imdecode(img_np_arr, cv2.IMREAD_COLOR) | |
| except Exception as e: | |
| result['img'] = imgRec | |
| result['info'] = 'readfailed' | |
| return result | |
| # run model | |
| try: | |
| if max(img.shape)>1080: | |
| img = impro.resize(img,720,interpolation=cv2.INTER_CUBIC) | |
| img = clean.cleanmosaic_img_server(opt,img,netG,netM) | |
| except Exception as e: | |
| result['img'] = imgRec | |
| result['info'] = 'procfailed' | |
| return result | |
| # return | |
| imgbytes = cv2.imencode('.jpg', img)[1] | |
| imgString = base64.b64encode(imgbytes).decode('utf-8') | |
| result['img'] = imgString | |
| result['info'] = 'ok' | |
| return result | |
| app.run("0.0.0.0", port= opt.port, debug=opt.debug) |