diff --git a/apps/ai/helmet/BeiHangGrpc_pb2_grpc.py b/apps/ai/helmet/BeiHangGrpc_pb2_grpc.py index a9e672e4..2a9d2c23 100644 --- a/apps/ai/helmet/BeiHangGrpc_pb2_grpc.py +++ b/apps/ai/helmet/BeiHangGrpc_pb2_grpc.py @@ -2,7 +2,7 @@ """Client and server classes corresponding to protobuf-defined services.""" import grpc -import BeiHangGrpc_pb2 as BeiHangGrpc__pb2 +from . import BeiHangGrpc_pb2 as BeiHangGrpc__pb2 class Helmet_RegStub(object): diff --git a/apps/ai/helmet/algo.py b/apps/ai/helmet/algo.py index 0b4f92d2..b639c6f3 100644 --- a/apps/ai/helmet/algo.py +++ b/apps/ai/helmet/algo.py @@ -4,12 +4,13 @@ import base64 from io import BytesIO import requests import grpc -from apps.ai.helmet import BeiHangGrpc_pb2_grpc -from apps.ai.helmet import BeiHangGrpc_pb2 +from . import BeiHangGrpc_pb2_grpc +from . import BeiHangGrpc_pb2 +requests.packages.urllib3.disable_warnings() # from apps.utils.tools import convert_to_base64 -def helmet(ip: str, pic_url: str): +def analyse(ip: str, pic_url: str): """安全帽事件 Args: @@ -25,7 +26,7 @@ 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) - base64img = str(base64.b64encode(BytesIO(requests.get(url=path).content).read()), 'utf-8') + base64img = str(base64.b64encode(BytesIO(requests.get(url=pic_url, verify=False).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) diff --git a/apps/ai/main.py b/apps/ai/main.py index f7512b46..8b6cf0e2 100644 --- a/apps/ai/main.py +++ b/apps/ai/main.py @@ -6,7 +6,7 @@ myLogger = logging.getLogger('log') algo_dict = { - "helmet": "apps.ai.helmet.algo.helmet" + "helmet": "apps.ai.helmet.algo.analyse" } @@ -28,11 +28,11 @@ def ai_analyse(codes: list, global_img: str, face_img: str = None): is_happend, res = False, None if i == 'helmet': # 如果是安全帽识别 if face_img: - is_happend, res = f(ip=settings.AI_IP, path=face_img) + is_happend, res = f(ip=settings.AI_IP, pic_url=face_img) else: - is_happend, res = f(ip=settings.AI_IP, path=global_img) + is_happend, res = f(ip=settings.AI_IP, pic_url=global_img) else: - is_happend, res = f(ip=settings.AI_IP, path=global_img) + is_happend, res = f(ip=settings.AI_IP, pic_url=global_img) if is_happend: results.update({i: res}) except Exception: diff --git a/apps/develop/views.py b/apps/develop/views.py index d5888bd1..83a1b5ab 100755 --- a/apps/develop/views.py +++ b/apps/develop/views.py @@ -160,6 +160,22 @@ class TestViewSet(CustomGenericViewSet): create_remind(event, params={'area': '生产车间', 'employee': '访客石非凡', 'event': '未带安全帽'}) return Response() + @action(methods=['post'], detail=False, serializer_class=Serializer) + def test_algo(self, request, pk=None): + """测试算法 + + 测试算法 + """ + # from apps.ai.main import ai_analyse + # ret = ai_analyse(codes=['helmet'], + # face_img='https://10.99.5.24/evo-apigw/evo-oss/6ad010cf-ce45-11ec-9715-e4246c7d1635/20220826/1/dsf_caa9c522-24e2-11ed-884a-e4246c7d1635_62687586_62696295.jpg?token=0ff8bb53-c99e-4291-a587-272aa1f3f5eb', + # global_img='https://10.99.5.24/evo-apigw/evo-oss/6ad010cf-ce45-11ec-9715-e4246c7d1635/20220826/1/dsf_caa9c522-24e2-11ed-884a-e4246c7d1635_62413404_62687586.jpg?token=0ff8bb53-c99e-4291-a587-272aa1f3f5eb') + # return Response(ret.keys()) + from apps.ecm.service import dispatch_dahua_event + data = {'id': 1661504791886, 'category': 'alarm', 'method': 'alarm.msg', 'info': {'orgName': '曲阳县金隅水泥厂', 'nodeCode': '1000038$1$0$23', 'deviceCode': '1000038', 'alarmCode': 'ad3a0826-3946-4385-aa1b-cea396554d43', 'alarmPicture': '6ad010cf-ce45-11ec-9715-e4246c7d1635/20220826/1/dsf_caa9c522-24e2-11ed-884a-e4246c7d1635_62687586_62696295.jpg', 'nodeType': 2, 'alarmDate': '1661504788', 'alarmGrade': 2, 'isSave': True, 'extend': {'faceImageUrl': ['6ad010cf-ce45-11ec-9715-e4246c7d1635/20220826/1/dsf_caa9c522-24e2-11ed-884a-e4246c7d1635_62687586_62696295.jpg'], 'glass': 0, 'beard': 0, 'candidateInfo': [{'birthday': '2022-8-24', 'faceImageUrl': ['6ad010cf-ce45-11ec-9715-e4246c7d1635/20220826/1/dsf_caa9c522-24e2-11ed-884a-e4246c7d1635_62696295_62773181.jpg'], 'groupName': '全体人员', 'similarity': 96, 'sex': 1, 'cardType': 1, 'name': '石非凡', 'devPersonId': '46', 'id': '371324199803243658', 'type': 0}], 'sex': 0, 'occurrenceCount': 0, 'deviceCode': '1000038', 'globalScenePicUrl': '6ad010cf-ce45-11ec-9715-e4246c7d1635/20220826/1/dsf_caa9c522-24e2-11ed-884a-e4246c7d1635_62413404_62687586.jpg', 'eye': 0, 'alarmType': 1001003, 'perFlag': -1, 'mouth': 0, 'feature': [], 'isHit': True, 'channelSeq': 23, 'szSerialUUID': '', 'channelName': '窑头平台进料口', 'beginTime': 1661504788, 'endTime': 1661504788, 'age': -1, 'mask': 0}, 'unitType': 1, 'alarmType': 1001003, 'channelSeq': 23, 'orgCode': '001001001', 'channelName': '窑头平台进料口', 'alarmStat': 1, 'isEvent': True}, 'subsystem': 'evo-face', 'userIds': None, 'sid': None, 'domainId': None, 'infoArray': None, 'protocol': None} + dispatch_dahua_event(data=data) + return Response() + @action(methods=['post'], detail=False, serializer_class=Serializer) def send_wx_msg(self, request, pk=None): """微信模板消息发送测试