100 lines
4.2 KiB
Python
Executable File
100 lines
4.2 KiB
Python
Executable File
# -*- coding: utf-8 -*-
|
|
from flask import request, Flask
|
|
import numpy as np
|
|
import json
|
|
import time
|
|
import cv2, base64
|
|
import argparse
|
|
import sys, os
|
|
import torch
|
|
from PIL import Image
|
|
import datetime
|
|
from torchvision import transforms
|
|
# from models.modeling import VisionTransformer, CONFIGS
|
|
from gevent.pywsgi import WSGIServer
|
|
sys.path.insert(0, ".")
|
|
|
|
import detect
|
|
import logging.config
|
|
from skywalking import agent, config
|
|
SW_SERVER = os.environ.get('SW_AGENT_COLLECTOR_BACKEND_SERVICES')
|
|
SW_SERVICE_NAME = os.environ.get('SW_AGENT_NAME')
|
|
if SW_SERVER and SW_SERVICE_NAME:
|
|
config.init() #采集服务的地址,给自己的服务起个名称
|
|
#config.init(collector="123.60.56.51:11800", service='ieemoo-ai-search') #采集服务的地址,给自己的服务起个名称
|
|
agent.start()
|
|
def setup_logging(path):
|
|
if os.path.exists(path):
|
|
with open(path, 'r') as f:
|
|
config = json.load(f)
|
|
logging.config.dictConfig(config)
|
|
logger = logging.getLogger("root")
|
|
return logger
|
|
logger = setup_logging('utils/logging.json')
|
|
|
|
app = Flask(__name__)
|
|
app.use_reloader=False
|
|
|
|
parser = argparse.ArgumentParser()
|
|
#parser.add_argument('--weights', nargs='+', type=str, default='runs/zhanting/yolov5m_finetune/exp4/weights/best.pt', help='model.pt path(s)')
|
|
parser.add_argument('--weights', nargs='+', type=str, default='../module/ieemoo-ai-zhanting/model/now/best.pt', help='model.pt path(s)')
|
|
parser.add_argument('--source', type=str, default='../module/ieemoo-ai-zhanting/imgs/1.jpg', help='source') # file/folder, 0 for webcam
|
|
parser.add_argument('--img-size', type=int, default=640, help='inference size (pixels)')
|
|
parser.add_argument('--conf-thres', type=float, default=0.50, help='object confidence threshold')
|
|
parser.add_argument('--iou-thres', type=float, default=0.45, help='IOU threshold for NMS')
|
|
parser.add_argument('--device', default='', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')
|
|
parser.add_argument('--view-img', type=bool, default=True, help='display results')
|
|
parser.add_argument('--save-txt', type=bool, default=True, help='save results to *.txt')
|
|
parser.add_argument('--save-conf', type=bool, default=True, help='save confidences in --save-txt labels')
|
|
parser.add_argument('--nosave', type=bool, default=True, help='do not save images/videos')
|
|
parser.add_argument('--classes', nargs='+', type=int, help='filter by class: --class 0, or --class 0 2 3')
|
|
parser.add_argument('--agnostic-nms', type=bool, default=True, help='class-agnostic NMS')
|
|
parser.add_argument('--augment', type=bool, default=True, help='augmented inference')
|
|
parser.add_argument('--update', type=bool, default=True, help='update all models')
|
|
parser.add_argument('--project', default='runs/detect', help='save results to project/name')
|
|
parser.add_argument('--name', default='exp', help='save results to project/name')
|
|
parser.add_argument('--exist-ok', type=bool, default=True, help='existing project/name ok, do not increment')
|
|
|
|
#opt = parser.parse_args()
|
|
opt, unknown = parser.parse_known_args()
|
|
@app.route("/zhanting", methods=['POST'])
|
|
def get_isempty():
|
|
#start = time.time()
|
|
data = request.get_data()
|
|
ip = request.remote_addr
|
|
print('------ ip = %s ------' % ip)
|
|
|
|
json_data = json.loads(data.decode("utf-8"))
|
|
# getdateend = time.time()
|
|
# print('get date use time: {0:.2f}s'.format(getdateend - start))
|
|
|
|
pic = json_data.get("pic")
|
|
result = {"success": "false",
|
|
"rst_cls": '-1',
|
|
}
|
|
try:
|
|
imgdata = base64.b64decode(pic)
|
|
#image_path = 'data/images/1.jpg'
|
|
image_path = '../module/ieemoo-ai-zhanting/imgs/1.jpg'
|
|
file = open(image_path, 'wb')
|
|
file.write(imgdata)
|
|
pred = detect.detect(opt)
|
|
logger.info(pred)
|
|
#print('pred', pred)
|
|
#getdateend = time.time()
|
|
#now_time = datetime.datetime.now()
|
|
#print('now_time', now_time)
|
|
#print('get date use time: {0:.2f}s'.format(getdateend - start))
|
|
except Exception as e:
|
|
logger.warning(e)
|
|
return pred
|
|
|
|
return pred
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
app.run(host='192.168.1.142', port=8000)
|
|
#http_server = WSGIServer(('0.0.0.0', 8000), app)
|
|
#http_server.serve_forever()
|