diff --git a/learn/templates/home.html b/learn/templates/home.html
index ab6c3e5..4f2bffb 100644
--- a/learn/templates/home.html
+++ b/learn/templates/home.html
@@ -58,7 +58,7 @@
@@ -116,6 +116,17 @@ layui.use('upload', function(){
var model_class = $('#class option:selected').val();
return model_class;
}
+ , 'model_name':function(){
+ var model_class = $('#class option:selected').val();
+ var model = $('#model option:selected').val();
+ var model_name=dic_class[Object.keys(dic_class)[model_class-1]][model-1];
+ return model_name;
+ }
+ , 'class_name':function(){
+ var model_class = $('#class option:selected').val();
+ var class_name=Object.keys(dic_class)[model_class-1];
+ return class_name;
+ }
}
,done: function(res){
ShowResult(res);
@@ -157,7 +168,7 @@ layui.use('upload', function(){
};
}
$("#img").prepend(i);
- $("#img").prepend('
' +'
' + ''+''+"检测图片:"+res.code+' '+""+'
');
+ $("#img").prepend('
' +'
' + ''+''+"检测信息:"+res.code+' '+""+'
');
}
function AutoResizeImage(maxWidth,maxHeight,objImg){
var img = new Image();
diff --git a/learn/views.py b/learn/views.py
index 0675c06..0f514a4 100644
--- a/learn/views.py
+++ b/learn/views.py
@@ -5,6 +5,7 @@ import os
import subprocess
from datetime import datetime
import learn.yolov5.detect as DL
+import learn.Darknet2Pytorch2Onnx.hy_runonnx as RONNX
from pathlib import PosixPath
import requests, os, json
import cv2
@@ -45,6 +46,10 @@ def upload(request):
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__ ) )
@@ -56,7 +61,7 @@ def upload(request):
for i in file.chunks():
f.write(i)
f.close()
- return inference(m_class, m_model, curPath, img_path_res, img_path)
+ return inference(m_class, m_model, curPath, img_path_res, img_path, model_name, class_name)
def dlurl(request):
@@ -64,6 +69,10 @@ def dlurl(request):
url = request.GET["url"] #获取前端上传的文件
m_model=request.GET["model"]
m_class=request.GET["class"]
+ model_name = request.GET.get("model_name")
+ class_name = request.GET.get("class_name")
+ print(request.GET["model_name"])
+ print(request.GET["class_name"])
print("m_model:",m_model)
print("url:",url)
name = url.split(r'/')[-1]
@@ -80,7 +89,7 @@ def dlurl(request):
f.close
#返回给前端的图片路径用相对路径,前端用绝对路径反而加载不了图片
img_path_res = '/static/detected/'+fix+name
- return inference(m_class, m_model, curPath, img_path_res, img_path)
+ 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:
@@ -99,31 +108,31 @@ def dlurl(request):
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':"【烟火 小模型】"+RR+'
'+mesg, 'flag': True})
+ return JsonResponse({'img_name':img_path_res,'code':"【烟火 小模型】"+'
'+RR+'
'+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':"【烟火 大模型】"+RR+'
'+mesg, 'flag': True})
+ return JsonResponse({'img_name':img_path_res,'code':"【烟火 大模型】"+'
'+RR+'
'+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':"【烟火 泛模型】"+RR+'
'+mesg, 'flag': True})
+ return JsonResponse({'img_name':img_path_res,'code':"【烟火 泛模型】"+'
'+RR+'
'+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':"【一般物体检测】"+RR+'
'+mesg, 'flag': True})
+ return JsonResponse({'img_name':img_path_res,'code':"【一般物体检测】"+'
'+RR+'
'+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':"【烟火+塔吊】"+RR+'
'+mesg, 'flag': True})
+ return JsonResponse({'img_name':img_path_res,'code':"【烟火+塔吊】"+'
'+RR+'
'+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':"【外破四类】"+RR+'
'+mesg, 'flag': True})
+ return JsonResponse({'img_name':img_path_res,'code':"【外破四类】"+'
'+RR+'
'+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':"【外破四类】"+RR+'
'+mesg, 'flag': True})
+ return JsonResponse({'img_name':img_path_res,'code':"【外破四类】"+'
'+RR+'
'+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':"【外破四类】"+RR+'
'+mesg, 'flag': True})
+ return JsonResponse({'img_name':img_path_res,'code':"【外破四类】"+'
'+RR+'
'+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':"【绝缘子两类】"+RR+'
'+mesg, 'flag': True})
+ return JsonResponse({'img_name':img_path_res,'code':"【绝缘子两类】"+'
'+RR+'
'+mesg, 'flag': True})
'''
@@ -131,7 +140,7 @@ def dlurl(request):
def home(request):
return render(request, 'home.html')
-def inference(m_class, m_model, curPath, img_path_res, img_path):
+def 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]
@@ -150,35 +159,44 @@ def inference(m_class, m_model, curPath, img_path_res, img_path):
if(int(m_class)==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"))
- return JsonResponse({'img_name':img_path_res,'code':"【外破四类】"+RR+'
'+mesg, 'flag': True})
+ return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"vehicle_4class_ljp_v3.0.pt"+'
'+RR+'
'+mesg, 'flag': True})
if(int(m_model)==2):
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':"【外破四类】"+RR+'
'+mesg, 'flag': True})
+ return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"vehicle_4class_ljp_v7.0.pt"+'
'+RR+'
'+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':"【外破四类】"+RR+'
'+mesg, 'flag': True})
+ return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"vehicle_4class_ljp_v7.0m.pt"+'
'+RR+'
'+mesg, 'flag': True})
if(int(m_model)==4):
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':"【烟火+塔吊】"+RR+'
'+mesg, 'flag': True})
+ return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"fire_smoke_towercrane.pt"+'
'+RR+'
'+mesg, 'flag': True})
+ 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))
+ return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"vehicle_4class_ljp_v7.0m6.pt"+'
'+RR+'
'+mesg, 'flag': True})
+ 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"))
+ return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"hy_vehicle_4class.onnx"+'
'+RR+'
'+mesg, 'flag': True})
+ if(int(m_model)==7):
+ 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"+'
'+RR+'
'+mesg, 'flag': True})
if(int(m_class)==2): #山火
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':"【烟火 小模型】"+RR+'
'+mesg, 'flag': True})
+ return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"v3s.pt"+'
'+RR+'
'+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':"【烟火 大模型】"+RR+'
'+mesg, 'flag': True})
+ return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"v6m6.pt"+'
'+RR+'
'+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':"【烟火 泛模型】"+RR+'
'+mesg, 'flag': True})
+ return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"best.pt"+'
'+RR+'
'+mesg, 'flag': True})
if(int(m_class)==3): # 绝缘子
if(int(m_model)==1):
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':"【绝缘子两类】"+RR+'
'+mesg, 'flag': True})
+ return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"birdpecked_unnormal_version1.pt"+'
'+RR+'
'+mesg, 'flag': True})
if(int(m_class)==4): # 一般物体coco
if(int(m_model)==1): #yolov5s
RR = DL.run(weights=(curPath+"/yolov5/yolov5s.pt"), source=img_path, project=(curPath+"/static/detected"))
- return JsonResponse({'img_name':img_path_res,'code':"【一般物体检测】"+RR+'
'+mesg, 'flag': True})
+ return JsonResponse({'img_name':img_path_res,'code':class_name+":"+model_name+",模型: "+"yolov5s.pt"+'
'+RR+'
'+mesg, 'flag': True})
\ No newline at end of file