|
|
|
@ -10,6 +10,7 @@ from pathlib import PosixPath
|
|
|
|
import requests, os, json
|
|
|
|
import requests, os, json
|
|
|
|
import cv2
|
|
|
|
import cv2
|
|
|
|
import numpy as np
|
|
|
|
import numpy as np
|
|
|
|
|
|
|
|
from shutil import copyfile
|
|
|
|
|
|
|
|
|
|
|
|
def adb_shell(cmd):
|
|
|
|
def adb_shell(cmd):
|
|
|
|
result = subprocess.getstatusoutput(cmd)
|
|
|
|
result = subprocess.getstatusoutput(cmd)
|
|
|
|
@ -44,24 +45,15 @@ def detect_brightness():
|
|
|
|
def upload(request):
|
|
|
|
def upload(request):
|
|
|
|
if request.method == 'POST':
|
|
|
|
if request.method == 'POST':
|
|
|
|
file = request.FILES.get('file') #获取前端上传的文件
|
|
|
|
file = request.FILES.get('file') #获取前端上传的文件
|
|
|
|
m_model=request.POST.get('model')
|
|
|
|
|
|
|
|
m_class=request.POST.get('class')
|
|
|
|
|
|
|
|
model_name = request.POST.get("model_name")
|
|
|
|
|
|
|
|
class_name = request.POST.get("class_name")
|
|
|
|
|
|
|
|
print(request.POST["model_name"])
|
|
|
|
|
|
|
|
print(request.POST["class_name"])
|
|
|
|
|
|
|
|
fix = datetime.now().strftime('%Y%m%d%H%M%S%f')+'1' #给文件加前缀防止文件名重复
|
|
|
|
|
|
|
|
#以下用绝对路径存储文件,之前我用相对路径一直写不对
|
|
|
|
#以下用绝对路径存储文件,之前我用相对路径一直写不对
|
|
|
|
curPath = os.path.abspath( os.path.dirname( __file__ ) )
|
|
|
|
curPath = os.path.abspath( os.path.dirname( __file__ ) )
|
|
|
|
img_path = os.path.abspath(curPath+'/static/upload/'+fix+file.name)
|
|
|
|
img_path = os.path.abspath(curPath+'/static/upload/'+file.name)
|
|
|
|
#返回给前端的图片路径用相对路径,前端用绝对路径反而加载不了图片
|
|
|
|
|
|
|
|
img_path_res = '/static/detected/'+fix+file.name
|
|
|
|
|
|
|
|
print(img_path)
|
|
|
|
print(img_path)
|
|
|
|
f = open(img_path,'wb')
|
|
|
|
f = open(img_path,'wb')
|
|
|
|
for i in file.chunks():
|
|
|
|
for i in file.chunks():
|
|
|
|
f.write(i)
|
|
|
|
f.write(i)
|
|
|
|
f.close()
|
|
|
|
f.close()
|
|
|
|
return inference(m_class, m_model, curPath, img_path_res, img_path, model_name, class_name)
|
|
|
|
return JsonResponse({'upload_img_path':img_path, 'source_image_name':file.name})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def dlurl(request):
|
|
|
|
def dlurl(request):
|
|
|
|
@ -75,67 +67,31 @@ def dlurl(request):
|
|
|
|
print(request.GET["class_name"])
|
|
|
|
print(request.GET["class_name"])
|
|
|
|
print("m_model:",m_model)
|
|
|
|
print("m_model:",m_model)
|
|
|
|
print("url:",url)
|
|
|
|
print("url:",url)
|
|
|
|
name = url.split(r'/')[-1]
|
|
|
|
if(("filename") in request.GET):
|
|
|
|
if not (name.endswith(".jpg") or name.endswith(".jpeg") or name.endswith(".png") or name.endswith(".bmp")):
|
|
|
|
print("上传图片模式")
|
|
|
|
return JsonResponse({'flag': False})
|
|
|
|
fix = datetime.now().strftime('%Y%m%d%H%M%S%f')+'1' #给文件加前缀防止文件名重复
|
|
|
|
|
|
|
|
source_img_path=request.GET["url"]
|
|
|
|
|
|
|
|
img_path = os.path.join(os.path.dirname(source_img_path),fix+request.GET["filename"])
|
|
|
|
|
|
|
|
copyfile(source_img_path,img_path)
|
|
|
|
|
|
|
|
img_path_res = '/static/detected/'+fix+request.GET["filename"]
|
|
|
|
|
|
|
|
curPath = os.path.abspath( os.path.dirname( __file__ ) )
|
|
|
|
|
|
|
|
else:
|
|
|
|
|
|
|
|
print("下载URL模式")
|
|
|
|
|
|
|
|
name = url.split(r'/')[-1]
|
|
|
|
|
|
|
|
if not (name.endswith(".jpg") or name.endswith(".jpeg") or name.endswith(".png") or name.endswith(".bmp")):
|
|
|
|
|
|
|
|
return JsonResponse({'flag': False})
|
|
|
|
|
|
|
|
|
|
|
|
fix = datetime.now().strftime('%Y%m%d%H%M%S%f')+'1' #给文件加前缀防止文件名重复
|
|
|
|
fix = datetime.now().strftime('%Y%m%d%H%M%S%f')+'1' #给文件加前缀防止文件名重复
|
|
|
|
curPath = os.path.abspath( os.path.dirname( __file__ ) )
|
|
|
|
curPath = os.path.abspath( os.path.dirname( __file__ ) )
|
|
|
|
img_path = os.path.abspath(curPath+'/static/download/'+fix+name)
|
|
|
|
img_path = os.path.abspath(curPath+'/static/download/'+fix+name)
|
|
|
|
r = requests.get(url)
|
|
|
|
r = requests.get(url)
|
|
|
|
# 保存
|
|
|
|
# 保存
|
|
|
|
with open (img_path, 'wb') as f:
|
|
|
|
with open (img_path, 'wb') as f:
|
|
|
|
f.write(r.content)
|
|
|
|
f.write(r.content)
|
|
|
|
f.close
|
|
|
|
f.close
|
|
|
|
#返回给前端的图片路径用相对路径,前端用绝对路径反而加载不了图片
|
|
|
|
#返回给前端的图片路径用相对路径,前端用绝对路径反而加载不了图片
|
|
|
|
img_path_res = '/static/detected/'+fix+name
|
|
|
|
img_path_res = '/static/detected/'+fix+name
|
|
|
|
return inference(m_class, m_model, curPath, img_path_res, img_path, model_name, class_name)
|
|
|
|
return inference(m_class, m_model, curPath, img_path_res, img_path, model_name, class_name)
|
|
|
|
'''
|
|
|
|
|
|
|
|
result = adb_shell("ImageDetect/build/ImageDetect {}".format(img_path))
|
|
|
|
|
|
|
|
if result[0]==0:
|
|
|
|
|
|
|
|
cast = result[1].split("||")[0]
|
|
|
|
|
|
|
|
da = result[1].split("||")[1]
|
|
|
|
|
|
|
|
satu = result[1].split("||")[2]
|
|
|
|
|
|
|
|
CON = result[1].split("||")[3]
|
|
|
|
|
|
|
|
ASM = result[1].split("||")[4]
|
|
|
|
|
|
|
|
ENT = result[1].split("||")[5]
|
|
|
|
|
|
|
|
MEAN = result[1].split("||")[6]
|
|
|
|
|
|
|
|
sb = result[1].split("||")[7]
|
|
|
|
|
|
|
|
lap = result[1].split("||")[8]
|
|
|
|
|
|
|
|
dev = result[1].split("||")[9]
|
|
|
|
|
|
|
|
print(cast, da, satu)
|
|
|
|
|
|
|
|
mesg = "颜色分布(0-1合理):{} 分布方差(负数偏暗):{} 色彩饱和度(零为补光):{}<br/>对比度:{} 角度方向二阶矩:{} 熵:{} 平均值:{} Sobel:{} Lap:{} dev:{}".format(cast, da, satu, CON, ASM, ENT, MEAN,sb,lap,dev)
|
|
|
|
|
|
|
|
if(int(m_class)==1):
|
|
|
|
|
|
|
|
if(int(m_model)==1): #小模型
|
|
|
|
|
|
|
|
RR = DL.run(weights=(curPath+"/yolov5/v3s.pt"), source=img_path, project=(curPath+"/static/detected"))
|
|
|
|
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':"【烟火 小模型】"+' <br/> '+RR+' <br/> '+mesg, 'flag': True})
|
|
|
|
|
|
|
|
if(int(m_model)==2): #大模型
|
|
|
|
|
|
|
|
RR = DL.run(weights=(curPath+"/yolov5/v6m6.pt"), source=img_path, imgsz=(1280, 1280), project=(curPath+"/static/detected"))
|
|
|
|
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':"【烟火 大模型】"+' <br/> '+RR+' <br/> '+mesg, 'flag': True})
|
|
|
|
|
|
|
|
if(int(m_model)==3): #泛模型
|
|
|
|
|
|
|
|
RR = DL.run(weights=(curPath+"/yolov5/best.pt"), source=img_path, project=(curPath+"/static/detected"))
|
|
|
|
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':"【烟火 泛模型】"+' <br/> '+RR+' <br/> '+mesg, 'flag': True})
|
|
|
|
|
|
|
|
if(int(m_class)==2):
|
|
|
|
|
|
|
|
RR = DL.run(weights=(curPath+"/yolov5/yolov5s.pt"), source=img_path, project=(curPath+"/static/detected"))
|
|
|
|
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':"【一般物体检测】"+' <br/> '+RR+' <br/> '+mesg, 'flag': True})
|
|
|
|
|
|
|
|
if(int(m_class)==3):
|
|
|
|
|
|
|
|
RR = DL.run(weights=(curPath+"/yolov5/fire_smoke_towercrane.pt"), source=img_path, project=(curPath+"/static/detected"))
|
|
|
|
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':"【烟火+塔吊】"+' <br/> '+RR+' <br/> '+mesg, 'flag': True})
|
|
|
|
|
|
|
|
if(int(m_class)==4):
|
|
|
|
|
|
|
|
RR = DL.run(weights=(curPath+"/yolov5/vehicle_4class_ljp_v3.0.pt"), source=img_path, project=(curPath+"/static/detected"))
|
|
|
|
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':"【外破四类】"+' <br/> '+RR+' <br/> '+mesg, 'flag': True})
|
|
|
|
|
|
|
|
if(int(m_class)==5):
|
|
|
|
|
|
|
|
RR = DL.run(weights=(curPath+"/yolov5/vehicle_4class_ljp_v7.0.pt"), source=img_path, project=(curPath+"/static/detected"))
|
|
|
|
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':"【外破四类】"+' <br/> '+RR+' <br/> '+mesg, 'flag': True})
|
|
|
|
|
|
|
|
if(int(m_class)==6):
|
|
|
|
|
|
|
|
RR = DL.run(weights=(curPath+"/yolov5/vehicle_4class_ljp_v7.0m.pt"), source=img_path, project=(curPath+"/static/detected"))
|
|
|
|
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':"【外破四类】"+' <br/> '+RR+' <br/> '+mesg, 'flag': True})
|
|
|
|
|
|
|
|
if(int(m_class)==7):
|
|
|
|
|
|
|
|
RR = DL.run(weights=(curPath+"/yolov5/birdpecked_unnormal_version1.pt"), source=img_path, project=(curPath+"/static/detected"))
|
|
|
|
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':"【绝缘子两类】"+' <br/> '+RR+' <br/> '+mesg, 'flag': True})
|
|
|
|
|
|
|
|
'''
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def home(request):
|
|
|
|
def home(request):
|
|
|
|
return render(request, 'home.html')
|
|
|
|
return render(request, 'home.html')
|
|
|
|
@ -158,45 +114,53 @@ def inference(m_class, m_model, curPath, img_path_res, img_path, model_name, cla
|
|
|
|
|
|
|
|
|
|
|
|
if(int(m_class)==1): #外破
|
|
|
|
if(int(m_class)==1): #外破
|
|
|
|
if(int(m_model)==1):
|
|
|
|
if(int(m_model)==1):
|
|
|
|
RR = DL.run(weights=(curPath+"/yolov5/vehicle_4class_ljp_v3.0.pt"), source=img_path, project=(curPath+"/static/detected"))
|
|
|
|
print("使用所有模型检测")
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"vehicle_4class_ljp_v3.0.pt"+' <br/> '+RR+' <br/> '+mesg, 'flag': True})
|
|
|
|
|
|
|
|
if(int(m_model)==2):
|
|
|
|
if(int(m_model)==2):
|
|
|
|
|
|
|
|
RR = DL.run(weights=(curPath+"/yolov5/vehicle_4class_ljp_v3.0.pt"), source=img_path, project=(curPath+"/static/detected"))
|
|
|
|
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"vehicle_4class_ljp_v3.0.pt"+' <br/> '+RR+' <br/> ',"msg":mesg, 'flag': True})
|
|
|
|
|
|
|
|
if(int(m_model)==3):
|
|
|
|
RR = DL.run(weights=(curPath+"/yolov5/vehicle_4class_ljp_v7.0.pt"), source=img_path, project=(curPath+"/static/detected"))
|
|
|
|
RR = DL.run(weights=(curPath+"/yolov5/vehicle_4class_ljp_v7.0.pt"), source=img_path, project=(curPath+"/static/detected"))
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"vehicle_4class_ljp_v7.0.pt"+' <br/> '+RR+' <br/> '+mesg, 'flag': True})
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"vehicle_4class_ljp_v7.0.pt"+' <br/> '+RR+' <br/> ',"msg":mesg, 'flag': True})
|
|
|
|
if(int(m_model)==3):
|
|
|
|
|
|
|
|
RR = DL.run(weights=(curPath+"/yolov5/vehicle_4class_ljp_v7.0m.pt"), source=img_path, project=(curPath+"/static/detected"))
|
|
|
|
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"vehicle_4class_ljp_v7.0m.pt"+' <br/> '+RR+' <br/> '+mesg, 'flag': True})
|
|
|
|
|
|
|
|
if(int(m_model)==4):
|
|
|
|
if(int(m_model)==4):
|
|
|
|
RR = DL.run(weights=(curPath+"/yolov5/fire_smoke_towercrane.pt"), source=img_path, project=(curPath+"/static/detected"))
|
|
|
|
RR = DL.run(weights=(curPath+"/yolov5/vehicle_4class_ljp_v7.0m.pt"), source=img_path, project=(curPath+"/static/detected"))
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"fire_smoke_towercrane.pt"+' <br/> '+RR+' <br/> '+mesg, 'flag': True})
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"vehicle_4class_ljp_v7.0m.pt"+' <br/> '+RR+' <br/> ',"msg":mesg, 'flag': True})
|
|
|
|
if(int(m_model)==5):
|
|
|
|
if(int(m_model)==5):
|
|
|
|
RR = DL.run(weights=(curPath+"/yolov5/vehicle_4class_ljp_v7.0m6.pt"), source=img_path, project=(curPath+"/static/detected"),imgsz=(1280,1280))
|
|
|
|
RR = DL.run(weights=(curPath+"/yolov5/fire_smoke_towercrane.pt"), source=img_path, project=(curPath+"/static/detected"))
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"vehicle_4class_ljp_v7.0m6.pt"+' <br/> '+RR+' <br/> '+mesg, 'flag': True})
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"fire_smoke_towercrane.pt"+' <br/> '+RR+' <br/> ',"msg":mesg, 'flag': True})
|
|
|
|
if(int(m_model)==6):
|
|
|
|
if(int(m_model)==6):
|
|
|
|
RR=RONNX.main(curPath+"/Darknet2Pytorch2Onnx/hy_vehicle_4class.onnx", curPath+"/Darknet2Pytorch2Onnx/hy_vehicle_4class.names", img_path, (curPath+"/static/detected"))
|
|
|
|
RR = DL.run(weights=(curPath+"/yolov5/vehicle_4class_ljp_v7.0m6.pt"), source=img_path, project=(curPath+"/static/detected"),imgsz=(1280,1280))
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"hy_vehicle_4class.onnx"+' <br/> '+RR+' <br/> '+mesg, 'flag': True})
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"vehicle_4class_ljp_v7.0m6.pt"+' <br/> '+RR+' <br/> ',"msg":mesg, 'flag': True})
|
|
|
|
if(int(m_model)==7):
|
|
|
|
if(int(m_model)==7):
|
|
|
|
|
|
|
|
RR=RONNX.main(curPath+"/Darknet2Pytorch2Onnx/hy_vehicle_4class.onnx", curPath+"/Darknet2Pytorch2Onnx/hy_vehicle_4class.names", img_path, (curPath+"/static/detected"))
|
|
|
|
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"hy_vehicle_4class.onnx"+' <br/> '+RR+' <br/> ',"msg":mesg, 'flag': True})
|
|
|
|
|
|
|
|
if(int(m_model)==8):
|
|
|
|
RR=RONNX.main(curPath+"/Darknet2Pytorch2Onnx/hy_vehicle_2class.onnx", curPath+"/Darknet2Pytorch2Onnx/hy_vehicle_2class.names", img_path, (curPath+"/static/detected"))
|
|
|
|
RR=RONNX.main(curPath+"/Darknet2Pytorch2Onnx/hy_vehicle_2class.onnx", curPath+"/Darknet2Pytorch2Onnx/hy_vehicle_2class.names", img_path, (curPath+"/static/detected"))
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"hy_vehicle_2class.onnx"+' <br/> '+RR+' <br/> '+mesg, 'flag': True})
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"hy_vehicle_2class.onnx"+' <br/> '+RR+' <br/> ',"msg":mesg, 'flag': True})
|
|
|
|
|
|
|
|
|
|
|
|
if(int(m_class)==2): #山火
|
|
|
|
if(int(m_class)==2): #山火
|
|
|
|
if(int(m_model)==1): # 小
|
|
|
|
if(int(m_model)==1):
|
|
|
|
|
|
|
|
print("使用所有模型检测")
|
|
|
|
|
|
|
|
if(int(m_model)==2): # 小
|
|
|
|
RR = DL.run(weights=(curPath+"/yolov5/v3s.pt"), source=img_path, project=(curPath+"/static/detected"))
|
|
|
|
RR = DL.run(weights=(curPath+"/yolov5/v3s.pt"), source=img_path, project=(curPath+"/static/detected"))
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"v3s.pt"+' <br/> '+RR+' <br/> '+mesg, 'flag': True})
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"v3s.pt"+' <br/> '+RR+' <br/> ',"msg":mesg, 'flag': True})
|
|
|
|
if(int(m_model)==2): # 大
|
|
|
|
if(int(m_model)==3): # 大
|
|
|
|
RR = DL.run(weights=(curPath+"/yolov5/v6m6.pt"), source=img_path, imgsz=(1280, 1280), project=(curPath+"/static/detected"))
|
|
|
|
RR = DL.run(weights=(curPath+"/yolov5/v6m6.pt"), source=img_path, imgsz=(1280, 1280), project=(curPath+"/static/detected"))
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"v6m6.pt"+' <br/> '+RR+' <br/> '+mesg, 'flag': True})
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"v6m6.pt"+' <br/> '+RR+' <br/> ',"msg":mesg, 'flag': True})
|
|
|
|
if(int(m_model)==3): # 范模型
|
|
|
|
if(int(m_model)==4): # 范模型
|
|
|
|
RR = DL.run(weights=(curPath+"/yolov5/best.pt"), source=img_path, project=(curPath+"/static/detected"))
|
|
|
|
RR = DL.run(weights=(curPath+"/yolov5/best.pt"), source=img_path, project=(curPath+"/static/detected"))
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"best.pt"+' <br/> '+RR+' <br/> '+mesg, 'flag': True})
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"best.pt"+' <br/> '+RR+' <br/> ',"msg":mesg, 'flag': True})
|
|
|
|
|
|
|
|
|
|
|
|
if(int(m_class)==3): # 绝缘子
|
|
|
|
if(int(m_class)==3): # 绝缘子
|
|
|
|
if(int(m_model)==1):
|
|
|
|
if(int(m_model)==1):
|
|
|
|
|
|
|
|
print("使用所有模型检测")
|
|
|
|
|
|
|
|
if(int(m_model)==2):
|
|
|
|
RR = DL.run(weights=(curPath+"/yolov5/birdpecked_unnormal_version1.pt"), source=img_path, project=(curPath+"/static/detected"))
|
|
|
|
RR = DL.run(weights=(curPath+"/yolov5/birdpecked_unnormal_version1.pt"), source=img_path, project=(curPath+"/static/detected"))
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"birdpecked_unnormal_version1.pt"+' <br/> '+RR+' <br/> '+mesg, 'flag': True})
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"birdpecked_unnormal_version1.pt"+' <br/> '+RR+' <br/> ',"msg":mesg, 'flag': True})
|
|
|
|
|
|
|
|
|
|
|
|
if(int(m_class)==4): # 一般物体coco
|
|
|
|
if(int(m_class)==4): # 一般物体coco
|
|
|
|
if(int(m_model)==1): #yolov5s
|
|
|
|
if(int(m_model)==1):
|
|
|
|
|
|
|
|
print("使用所有模型检测")
|
|
|
|
|
|
|
|
if(int(m_model)==2): #yolov5s
|
|
|
|
RR = DL.run(weights=(curPath+"/yolov5/yolov5s.pt"), source=img_path, project=(curPath+"/static/detected"))
|
|
|
|
RR = DL.run(weights=(curPath+"/yolov5/yolov5s.pt"), source=img_path, project=(curPath+"/static/detected"))
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"yolov5s.pt"+' <br/> '+RR+' <br/> '+mesg, 'flag': True})
|
|
|
|
return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"yolov5s.pt"+' <br/> '+RR+' <br/> ',"msg":mesg, 'flag': True})
|
|
|
|
|
|
|
|
|