当前位置: 首页 > news >正文

yolov8模型推理测试代码(pt/onnx)

🦖yolov8训练出来的模型,不使用detect.py代码进行模型测试🦖

pt格式模型测试

import cv2
import os
from ultralytics import YOLO
# 定义输入和输出文件夹路径
input_folder = '/input/folder'  # 输入文件夹
output_folder = '/output/folder'  # 输出文件夹
# 确认输出文件夹存在
if not os.path.exists(output_folder):os.makedirs(output_folder)
# 加载YOLO模型
model = YOLO('yolov8.pt')
# 遍历输入文件夹中的所有文件
for filename in os.listdir(input_folder):# 仅处理图片文件,确保扩展名为 .jpg, .png 等if filename.endswith(('.jpg', '.png','.bmp')):# 加载图像image_path = os.path.join(input_folder, filename)image = cv2.imread(image_path)if image is None:print(f"图像加载失败: {image_path}")continue# 进行预测results = model(image,device='1')# 获取结果中的标注信息annotated_frame = results[0].plot()  # 将检测结果绘制在图像上# 保存结果图像到输出文件夹save_path = os.path.join(output_folder, f'result_{filename}')save_status = cv2.imwrite(save_path, annotated_frame)if save_status:print(f"检测结果保存到: {save_path}")else:print(f"保存图像失败: {save_path}")

onnx模型测试结果

import cv2
import os
import onnxruntime as ort
import numpy as np
# 定义输入和输出文件夹路径
input_folder = '/input/folder'  # 输入文件夹
output_folder = '/output/folder'  # 输出文件夹
# 确认输出文件夹存在
if not os.path.exists(output_folder):os.makedirs(output_folder)
# 加载 ONNX 模型
onnx_model_path = 'yolov8.onnx'
session = ort.InferenceSession(onnx_model_path, providers=['CUDAExecutionProvider'])
# 设置模型输入的尺寸
input_width, input_height = 640, 640  # 根据模型的输入尺寸
# 遍历输入文件夹中的所有文件
for filename in os.listdir(input_folder):# 仅处理图片文件,确保扩展名为 .jpg, .png 等if filename.endswith(('.jpg', '.png', '.bmp')):# 加载图像image_path = os.path.join(input_folder, filename)image = cv2.imread(image_path)if image is None:print(f"图像加载失败: {image_path}")continue# 调整图像大小并进行预处理input_image = cv2.resize(image, (input_width, input_height))input_image = cv2.cvtColor(input_image, cv2.COLOR_BGR2RGB)blob = np.expand_dims(input_image.astype(np.float32) / 255.0, axis=0).transpose(0, 3, 1, 2)# 设置输入input_name = session.get_inputs()[0].nameoutputs = session.run(None, {input_name: blob})# 解析预测结果并绘制检测框for detection in outputs[0][0]:  # 根据模型的输出格式解析score = float(detection[4])  # 假设第5个值是置信度if score > 0.5:  # 置信度阈值,取决于具体任务x_center, y_center, width, height = detection[:4]left = int((x_center - width / 2) * image.shape[1])top = int((y_center - height / 2) * image.shape[0])right = int((x_center + width / 2) * image.shape[1])bottom = int((y_center + height / 2) * image.shape[0])# 绘制检测框cv2.rectangle(image, (left, top), (right, bottom), (0, 255, 0), 2)label = f"{score:.2f}"cv2.putText(image, label, (left, top - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)# 保存结果图像到输出文件夹save_path = os.path.join(output_folder, f'result_{filename}')save_status = cv2.imwrite(save_path, image)if save_status:print(f"检测结果保存到: {save_path}")else:print(f"保存图像失败: {save_path}")

http://www.mrgr.cn/news/66397.html

相关文章:

  • 【软考】Redis不同的数据类型和应用场景。
  • okcc呼叫中心语音通知模式播放的语音是否可以被录音?
  • kafka 安装和使用
  • 串的定义和基本操作
  • Selective Generation for Language Models 语言模型的选择性生成
  • 编程和英语
  • 好用的办公套件--- ONLYOFFICE
  • ubuntu问题 -- ubuntu图形化桌面突然打不开了, 一开机黑屏, 或者直接就是login登录的tty命令行界面
  • 有效增加网站流量的实用策略和技巧
  • 影像拼接线生成代码实现
  • 如何检查雷池社区版 WAF 是否安装成功?
  • 数论——约数(完整版)
  • 【商用存储】希捷磁盘阵列部署实践
  • 印刷质量检测笔记
  • 总线(概述、事务和定时)
  • 前沿吃瓜:如何看待linux社区将俄罗斯的linux贡献者“逐出”社区
  • Mybatis和Hibernate
  • Meta VR硬件主管强势加入OpenAI,与苹果传奇设计师合作开发新AI设备
  • 02- 模块化编程-005 MAX1241数码显示
  • 配置深度学习环境
  • pdf添加目录标签python(手动配置)
  • dockerdockerfiledocker-compose操作nginx
  • MMBench-Video:上海 AI Lab 联合多所高校推出长视频理解基准测试工具,全面评估 LVLMs 视频理解的能力
  • 远程操作Linux服务器 _Xshell、Xftp以及Linux常见操作命令
  • 不要只知道deepl翻译,这里有10个专业好用的翻译工具等着你。
  • 自车坐标系与大地坐标系的理解与转换