阜平网站seo,网站建设柒首先金手指8,网页设计制作报价,企业信用信息公示系统河南环境安装
1、运行项目报错#xff1a;no python application found, check your startup logs for errors
在云服务器pytorch版本安装错了#xff0c;安装了GPU版本#xff0c;需要安装CPU版本
# CPU only 使用下面这段代码避免出现第二个错误
pip install torch2.3.1 to…环境安装
1、运行项目报错no python application found, check your startup logs for errors
在云服务器pytorch版本安装错了安装了GPU版本需要安装CPU版本
# CPU only 使用下面这段代码避免出现第二个错误
pip install torch2.3.1 torchvision0.18.1 torchaudio2.3.1 --index-url https://download.pytorch.org/whl/cpu
2、运行项目报错RuntimeError: operator torchvision::nms does not exist
检查发现pytorch中torchvision版本不匹配
卸载重装对应匹配版本
# CPU only
pip install torch2.3.1 torchvision0.18.1 torchaudio2.3.1 --index-url https://download.pytorch.org/whl/cpu 3、后端python文件编写涉及到读写文件、模型预测、以及获取结果分析转换yolo预测结果为指定的json格式数据。
import os
import numpy as np
import torch.hub
#导入Yolov8需要提前安装ultralytics库
from ultralytics import YOLO
from flask import Flask
#运用Python的flask类实现与前台信息的交互
from flask import request
from flask import send_file
import base64
import cv2
import time
import json
from pathlib import Pathapp Flask(__name__)
# 调用训练好的模型
model YOLO(./best.pt)
app.route(/, methods[GET, POST])
def uploads():# 拿到变量img对应的图片img request.files.get(img)if img:# 重命名name img.jpg# 保存img.save(os.path.join(./img, name))fileName ./img/name# results model.predict(./img/img.jpg,saveTrue)#调用模型进行判断 save_txtTrueresults model.predict(fileName,saveTrue,save_txtTrue)# 类名字典names results[0].nameslistData []for key in names:# print(key, names[key])data {name: names[key],value: 0}listData.append(data)# 读取数据分析内容# print(listData)content getContent(results,listData)# print(content)# 5. 返回结果data {errCode:0,msg:success,data:content,img:results[0].path}return json.dumps(data)else:data {errCode:1,msg:cannot find file!}return json.dumps(data)# 获取结果文本内容
def getContent(results,listData):# 获取文件保存的路径save_path Path(results[0].save_dir)content []# 获取label标签文件for r in results:im_name Path(r.path).stemlabels save_path / flabels/{im_name}.txt# 读取标签文件中的内容txt_file labelswith open(txt_file, r) as file:# content file.read()lines file.readlines()print(lines)for line in lines:index int(line.split()[0])print(每行---, index)if indexlen(listData) and listData[index]:# print(listData[index][name],listData[index][value])listData[index][value] 1# 返回结果return listData
if __name__ __main__:app.run()前端接收到返回数据 4、flask上传的图片文件无法访问的问题
根据上述返回数据中预测目标后的结果图片地址https://***.com/runs/detect/predict/***.jpg这个路径无法被访问需要单独配置
# 配置路径访问
from flask import send_from_directory# .....# 文件访问 runs/detect/predict*/
app.route(/runs/path:path)
def send_image(path):# print(path,------path)# print(send_from_directory(runs/, path))return send_from_directory(runs/, path)
import os
import numpy as np
import torch.hub
#导入Yolov8需要提前安装ultralytics库
from ultralytics import YOLO
from flask import Flask
#运用Python的flask类实现与前台信息的交互
from flask import request
from flask import send_file
import base64
import cv2
import time
import json
from pathlib import Path
# 配置路径访问
from flask import send_from_directoryapp Flask(__name__)
# 验证请求
verifyCode 89jjkdsw909324jjkjds9f8sdf# 文件访问 runs/detect/predict*/
app.route(/runs/path:path)
def send_image(path):# print(path,------path)# print(send_from_directory(runs/, path))return send_from_directory(runs/, path)# 调用训练好的模型
model YOLO(./best.pt)
app.route(/, methods[GET, POST])
def uploads():# 获取前端上传code,判断是否合法请求postData request.form if request.form else request.json# print(postData.get(code))verifyRes verify(postData.get(code))# 是否非法请求if verifyRes False:data {errCode:1, msg: illegal request!}return json.dumps(data)# 拿到变量img对应的图片img request.files.get(img)if img:# 重命名name str(time.time()).jpg# 保存img.save(os.path.join(./img, name))fileName ./img/name# results model.predict(./img/img.jpg,saveTrue)#调用模型进行判断 save_txtTrueresults model.predict(fileName,saveTrue,save_txtTrue)# 类名字典names results[0].nameslistData []for key in names:# print(key, names[key])data {name: names[key],value: 0}listData.append(data)# 读取数据分析内容# print(listData)content getContent(results,listData)# print(content)# 5. 返回结果data {errCode: 0,msg: success,data: content,img: results[0].save_dir/name}return json.dumps(data)else:data {errCode:1,msg:cannot find file!}return json.dumps(data)# 验证code合法性
def verify(code):return code verifyCode# 获取结果文本内容
def getContent(results,listData):# 获取文件保存的路径save_path Path(results[0].save_dir)content []# 获取label标签文件for r in results:im_name Path(r.path).stemlabels save_path / flabels/{im_name}.txt# 读取标签文件中的内容txt_file labelswith open(txt_file, r) as file:# content file.read()lines file.readlines()# print(lines)for line in lines:index int(line.split()[0])# print(每行---, index)if indexlen(listData) and listData[index]:# print(listData[index][name],listData[index][value])listData[index][value] 1# 返回结果return listData
if __name__ __main__:app.run()参考文档预测 -Ultralytics YOLO 文档