factory/apps/ai/main.py

42 lines
1.3 KiB
Python

import importlib
from django.conf import settings
import logging
myLogger = logging.getLogger('log')
algo_dict = {
"helmet": "apps.ai.client.helmet",
"fire1": "apps.ai.client.fire1"
}
def ai_analyse(codes: list, global_img: str, face_img: str = None):
"""算法分析图片
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, pic_url=face_img)
else:
is_happend, res = getattr(m, 'helmet2')(ip=settings.AI_IP, pic_url=face_img)
else:
is_happend, res = f(ip=settings.AI_IP, pic_url=global_img)
if is_happend:
results.update({i: res})
except Exception:
myLogger.error('算法处理错误', exc_info=True)
return results