算法img bug
This commit is contained in:
parent
22412d0be1
commit
1dba032737
|
@ -17,7 +17,7 @@ algo_dict = {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def ai_analyse(codes: list, global_img: str, face_img: str = None, is_dahua_pic: bool = True):
|
def ai_analyse(codes: list, global_img: str, face_img: str = '', is_dahua_pic: bool = True):
|
||||||
"""算法分析图片
|
"""算法分析图片
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
|
@ -26,6 +26,8 @@ def ai_analyse(codes: list, global_img: str, face_img: str = None, is_dahua_pic:
|
||||||
face_img (str): 人脸图片url地址
|
face_img (str): 人脸图片url地址
|
||||||
"""
|
"""
|
||||||
results = {} # dict key: 触发的事件标识字符 value: 多个矩形框坐标列表; 有两个图片key值
|
results = {} # dict key: 触发的事件标识字符 value: 多个矩形框坐标列表; 有两个图片key值
|
||||||
|
global_img_path = ''
|
||||||
|
face_img_path = ''
|
||||||
if is_dahua_pic: # 先保存到本地/主要是现在算法必须得用可访问的远程地址
|
if is_dahua_pic: # 先保存到本地/主要是现在算法必须得用可访问的远程地址
|
||||||
from apps.ecm.service import save_dahua_pic
|
from apps.ecm.service import save_dahua_pic
|
||||||
global_img_path = save_dahua_pic(global_img)
|
global_img_path = save_dahua_pic(global_img)
|
||||||
|
@ -55,7 +57,8 @@ def ai_analyse(codes: list, global_img: str, face_img: str = None, is_dahua_pic:
|
||||||
for x in res.FireinfoList:
|
for x in res.FireinfoList:
|
||||||
if x.fire == 3 and 'qiping' in codes: # 气瓶倾倒
|
if x.fire == 3 and 'qiping' in codes: # 气瓶倾倒
|
||||||
qiping_qd = True
|
qiping_qd = True
|
||||||
rectangle_dict['qiping'].append([(x.coord.uleft.x, x.coord.uleft.y), (x.coord.lright.x, x.coord.lright.y)]) # 加入矩形框
|
rectangle_dict['qiping'].append(
|
||||||
|
[(x.coord.uleft.x, x.coord.uleft.y), (x.coord.lright.x, x.coord.lright.y)]) # 加入矩形框
|
||||||
if x.fire == 0:
|
if x.fire == 0:
|
||||||
has_fire = True
|
has_fire = True
|
||||||
if x.fire == 2:
|
if x.fire == 2:
|
||||||
|
@ -66,14 +69,14 @@ def ai_analyse(codes: list, global_img: str, face_img: str = None, is_dahua_pic:
|
||||||
results.update({i: rectangle_dict.get(i, [])})
|
results.update({i: rectangle_dict.get(i, [])})
|
||||||
except Exception:
|
except Exception:
|
||||||
myLogger.error('算法处理错误', exc_info=True)
|
myLogger.error('算法处理错误', exc_info=True)
|
||||||
if is_dahua_pic:
|
if global_img_path:
|
||||||
os.remove(settings.BASE_DIR + global_img_path) # 删除临时图片
|
os.remove(settings.BASE_DIR + global_img_path) # 删除临时图片
|
||||||
if face_img:
|
if face_img_path:
|
||||||
os.remove(settings.BASE_DIR + face_img_path)
|
os.remove(settings.BASE_DIR + face_img_path)
|
||||||
return results
|
return results
|
||||||
|
|
||||||
|
|
||||||
def ai_analyse_2(codes: list, global_img: str, face_img: str = None, is_dahua_pic: bool = True):
|
def ai_analyse_2(codes: list, global_img: str, face_img: str = '', is_dahua_pic: bool = True):
|
||||||
"""算法分析图片后保存并返回相对地址
|
"""算法分析图片后保存并返回相对地址
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
|
@ -82,7 +85,7 @@ def ai_analyse_2(codes: list, global_img: str, face_img: str = None, is_dahua_pi
|
||||||
face_img (str): 人脸图片url地址
|
face_img (str): 人脸图片url地址
|
||||||
"""
|
"""
|
||||||
results = ai_analyse(codes, global_img, face_img, is_dahua_pic)
|
results = ai_analyse(codes, global_img, face_img, is_dahua_pic)
|
||||||
if results: # 如果触发事件先保存下来
|
if results: # 如果触发事件先保存下来
|
||||||
from apps.ecm.service import save_dahua_pic
|
from apps.ecm.service import save_dahua_pic
|
||||||
global_img_path = save_dahua_pic(global_img)
|
global_img_path = save_dahua_pic(global_img)
|
||||||
global_img_local = settings.BASE_DIR + global_img_path
|
global_img_local = settings.BASE_DIR + global_img_path
|
||||||
|
@ -90,6 +93,7 @@ def ai_analyse_2(codes: list, global_img: str, face_img: str = None, is_dahua_pi
|
||||||
results.update({'global_img': global_img_path})
|
results.update({'global_img': global_img_path})
|
||||||
return results
|
return results
|
||||||
|
|
||||||
|
|
||||||
def draw(path, results):
|
def draw(path, results):
|
||||||
rects = []
|
rects = []
|
||||||
for i in results:
|
for i in results:
|
||||||
|
@ -100,6 +104,5 @@ def draw(path, results):
|
||||||
for i in results:
|
for i in results:
|
||||||
for m in results[i]:
|
for m in results[i]:
|
||||||
cv2.rectangle(img, results[i][m][0], results[i][m][1], (0, 255, 0), 4)
|
cv2.rectangle(img, results[i][m][0], results[i][m][1], (0, 255, 0), 4)
|
||||||
cv2.putText(img, i, results[i][m][0], font, 2, (0,0,255), 1)
|
cv2.putText(img, i, results[i][m][0], font, 2, (0, 0, 255), 1)
|
||||||
cv2.imwrite(path, img)
|
cv2.imwrite(path, img)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue