From 681866ba3e1cb7e9208ace357d5cb1f8c51f0a28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E5=89=8D=E6=98=8E?= <909355014@qq.com> Date: Fri, 26 Aug 2022 16:17:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E7=AE=97=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/ai/helmet/algo.py | 16 ++++++++++--- apps/ai/helmet/face_test.txt | 1 + apps/ai/main.py | 44 +++++++++++++++++++++++++++--------- apps/ecm/service.py | 20 ++++------------ apps/third/speaker.py | 2 +- apps/third/xunxi.py | 2 +- apps/utils/wx.py | 2 +- apps/utils/wxmp.py | 2 +- apps/wf/tasks.py | 2 +- server/settings.py | 2 -- 10 files changed, 57 insertions(+), 36 deletions(-) create mode 100644 apps/ai/helmet/face_test.txt diff --git a/apps/ai/helmet/algo.py b/apps/ai/helmet/algo.py index 1d9e2078..f9417428 100644 --- a/apps/ai/helmet/algo.py +++ b/apps/ai/helmet/algo.py @@ -1,7 +1,12 @@ + +import base64 +from io import BytesIO +import requests import grpc import BeiHangGrpc_pb2_grpc import BeiHangGrpc_pb2 +# from apps.utils.tools import convert_to_base64 def helmet(ip: str, pic_url: str): @@ -20,17 +25,22 @@ def helmet(ip: str, pic_url: str): # with open(image_path, 'rb') as f: # image_base64 = str(base64.b64encode(f.read()), encoding='utf-8') # request = BeiHangGrpc_pb2.JinYu_Request(zzid=image_id,imgsbase64=image_base64) - - request = BeiHangGrpc_pb2.JinYu_Request(zzid=image_id, imgUrl=pic_url) + base64img = str(base64.b64encode(BytesIO(requests.get(url=path).content).read()), 'utf-8') + request = BeiHangGrpc_pb2.JinYu_Request(zzid=image_id, imgsbase64=base64img) + # request = BeiHangGrpc_pb2.JinYu_Request(zzid=image_id, imgUrl=pic_url) response = stub.sendHelmet_Info(request) if response.helmetinfoList: for i in response.helmetinfoList: - if i.head_helmet == 0: + if i.head_helmet == 0: # 未戴安全帽事件成立 return True, response return False, response if __name__ == "__main__": + path = 'http://10.99.5.79:20309/media/2022/08/25/dsf_e9de9deb-213e-11ed-884a-e4246c7d1635_11584620_11593689.jpg' + base64img = str(base64.b64encode(BytesIO(requests.get(url=path).content).read()), 'utf-8') + with open('face_test.txt', 'w') as f: + f.write(base64img) helmet( ip='122.224.229.24:2000', pic_url='http://1.203.161.103:2800/media/2022/07/06/dsf_bf6446cc-f9cd-11ec-bd2d-e4246c7d1635_34597240_34614457.jpg') diff --git a/apps/ai/helmet/face_test.txt b/apps/ai/helmet/face_test.txt new file mode 100644 index 00000000..58d0191d --- /dev/null +++ b/apps/ai/helmet/face_test.txt @@ -0,0 +1 @@ +/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAYEBQUFBAYFBQUHBwYHCRAKCQkJCRMODgsQFxQYFxYUFhUZHCQeGRsiGxUWHyogIiQmKCgoGB4sLiwmLiQmKCb/2wBDAQcHBwkICRIKChImGhYaJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJib//hJeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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 \ No newline at end of file diff --git a/apps/ai/main.py b/apps/ai/main.py index 08ff6e8b..36831117 100644 --- a/apps/ai/main.py +++ b/apps/ai/main.py @@ -1,18 +1,40 @@ +import importlib +from django.conf import settings +import logging +myLogger = logging.getLogger('log') + + algo_dict = { "helmet": "apps.helmet.algo.helmet" } -class AiService: +def ai_analyse(codes: list, global_img: str, face_img: str=None): + """多线程进行算法分析图片 - def analyse(codes: list, path: str): - """多线程进行算法分析图片 - - Args: - codes: 算法列表 - path (str): 图片地址 - """ - for i in codes: - if i in algo_dict: - pass + Args: + codes: 算法列表 + global_img (str): 全景图片地址 + face_img (str): 人脸图片地址 + """ + results = {} + for i in codes: + if i in algo_dict: # 如果算法支持 + module, func = algo_dict[i].rsplit(".", 1) + m = importlib.import_module(module) + f = getattr(m, func) + try: + is_happend, res = False, None + if i == 'helmet': # 如果是安全帽识别 + if face_img: + is_happend, res = f(ip=settings.AI_IP, path=face_img) + else: + is_happend, res = f(ip=settings.AI_IP, path=global_img) + else: + is_happend, res = f(ip=settings.AI_IP, path=global_img) + if is_happend: + results.update({i: res}) + except Exception: + myLogger.error('算法处理错误', exc_info=True) + return results diff --git a/apps/ecm/service.py b/apps/ecm/service.py index 7b470660..fda5f2b8 100644 --- a/apps/ecm/service.py +++ b/apps/ecm/service.py @@ -1,4 +1,5 @@ +from apps.ai.main import ai_analyse from apps.opm.models import Operation, Opl, OplWorker from apps.utils.sms import send_sms import requests @@ -67,17 +68,6 @@ def get_ep_default(): } -def algo_handle(codes: list, data: dict): - """算法处理 - - Args: - code (str): 算法标识列表 - data (dict): 需要处理的图片信息 - - """ - return ['helmet'] - - def notify_event(event: Event, voice_msg=''): """事件后续处理: @@ -237,10 +227,10 @@ def dispatch_dahua_event(data: dict): ep = None # 对应人员 if alarm_type == 1001003: # 内部人员 ep = Employee.objects.filter(id_number=data['info']['extend']['candidateInfo'][0]['id']).first() - ec_codes = algo_handle(algo_codes, data={}) # 算法处理 + ec_codes = ai_analyse(codes=algo_codes, global_img=global_img_o, face_img=face_img_o) # 算法处理 if ec_codes: # 如果触发事件 # 获取本次所有发生事件种类 - ecs = EventCate.objects.filter(code__in=ec_codes) + ecs = EventCate.objects.filter(code__in=ec_codes.keys()) # 创建事件 event = Event() event.face_img = save_dahua_pic(face_img_o) @@ -277,10 +267,10 @@ def dispatch_dahua_event(data: dict): algo_codes = list(AlgoChannel.objects.filter(vchannel=vchannel, algo__self_algo=True).exclude( algo__code=None).order_by('algo__priority', 'algo__create_time').values_list('algo__code', flat=True)) if algo_codes: - ec_codes = algo_handle(algo_codes, data={}) # 算法处理 + ec_codes = ai_analyse(algo_codes, global_img=global_img_o) # 算法处理 if ec_codes: # 获取本次所有发生事件种类 - ecs = EventCate.objects.filter(code__in=ec_codes) + ecs = EventCate.objects.filter(code__in=ec_codes.keys()) obj_cate = 'other' ep = None if 'helmet' in ec_codes: diff --git a/apps/third/speaker.py b/apps/third/speaker.py index c2ac9bd3..fa21b640 100644 --- a/apps/third/speaker.py +++ b/apps/third/speaker.py @@ -78,7 +78,7 @@ class SpClient: if not settings.SP_ENABLED: raise ParseError('音响对接未启用') self.log = {"requested_at": now(), "id": uuid.uuid4(), "path": url, "method": method, - "params": params, "body": json, "target": "dahua", "result": 10} + "params": params, "body": json, "target": "speaker", "result": 10} files = None if file_path_rela: # 相对路径 files = {'file': open(settings.BASE_DIR + file_path_rela, 'rb')} diff --git a/apps/third/xunxi.py b/apps/third/xunxi.py index 128bd490..00a4e760 100644 --- a/apps/third/xunxi.py +++ b/apps/third/xunxi.py @@ -93,7 +93,7 @@ class XxClient: if ret['errorCode'] != 0: err_detail = dict(detail='寻息错误:' + '|'.join(ret['errorMsg']), code='xx_' + str(ret['errorCode'])) - self.handle_log(result='fail', response=None) + self.handle_log(result='fail', response=ret) if raise_exception: raise ParseError(**err_detail) return 'fail', err_detail diff --git a/apps/utils/wx.py b/apps/utils/wx.py index 09fe2e40..350a7cfb 100644 --- a/apps/utils/wx.py +++ b/apps/utils/wx.py @@ -74,7 +74,7 @@ class WxClient: timeout=timeout, files=files, verify=False) except Exception: errors = traceback.format_exc() - myLogger.error(errors) + myLogger.error('微信错误', exc_info=True) self.handle_log(result='error', errors=errors) if raise_exception: raise APIException(**WX_REQUEST_ERROR) diff --git a/apps/utils/wxmp.py b/apps/utils/wxmp.py index 5265e2b0..59c3562e 100644 --- a/apps/utils/wxmp.py +++ b/apps/utils/wxmp.py @@ -49,7 +49,7 @@ class WxmpClient: timeout=timeout, files=files, verify=False) except Exception: errors = traceback.format_exc() - myLogger.error(errors) + myLogger.error('微信小程序错误', exc_info=True) self.handle_log(result='error', errors=errors) if raise_exception: raise APIException(**WX_REQUEST_ERROR) diff --git a/apps/wf/tasks.py b/apps/wf/tasks.py index 71e5b3b2..9e624936 100644 --- a/apps/wf/tasks.py +++ b/apps/wf/tasks.py @@ -45,7 +45,7 @@ def run_task(ticket_id: str): f(ticket) except Exception: err_detail = traceback.format_exc() - myLogger.error(err_detail) + myLogger.error('工作流脚本执行失败', exc_info=True) script_result = False script_result_msg = err_detail ticket = Ticket.objects.filter(id=ticket_id).first() diff --git a/server/settings.py b/server/settings.py index 1ba8258b..8601368d 100755 --- a/server/settings.py +++ b/server/settings.py @@ -405,5 +405,3 @@ WXMP_APPSECRET = conf.WXMP_APPSECRET WX_ENABLED = conf.WX_ENABLED WX_APPID = conf.WX_APPID WX_APPSECRET = conf.WX_APPSECRET - -