Python新手求助:如何加载预训练YOLOv7模型(.pt文件)
加载YOLOv7预训练.pt模型的完整步骤
1. 先搞定环境依赖
确保你的Python版本在3.7-3.10之间(YOLOv7对高版本Python兼容性一般),然后安装核心依赖:
- 先装PyTorch(无GPU就装CPU版):
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu - 获取YOLOv7代码后,进入目录安装所需依赖:
cd yolov7 pip install -r requirements.txt
2. 准备预训练模型文件
把下载好的yolov7.pt(或轻量化版本如yolov7-tiny.pt)放在YOLOv7代码的根目录下,确保路径无误。
3. 两种加载模型的方式
方式一:用官方自带脚本直接运行(最省心)
在终端执行以下命令,直接用预训练模型做目标检测:
python detect.py --weights yolov7.pt --source inference/images/horses.jpg
参数说明:
--weights:指定你的.pt模型路径--source:输入的图片/视频路径,填0可调用本地摄像头
运行后检测结果会自动保存在runs/detect/exp文件夹中,打开即可查看标注后的图片。
方式二:自己写代码加载模型(适合二次开发)
如果要把模型集成到自己的项目里,用下面的代码片段:
import torch import cv2 import numpy as np # 从本地加载预训练模型 model = torch.hub.load('.', 'custom', path='yolov7.pt', source='local') # 设置模型为评估模式(关闭训练相关的参数更新) model.eval() # 加载测试图片并转换格式(YOLOv7默认输入为RGB) img = cv2.imread('inference/images/horses.jpg') img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # 模型推理 results = model(img_rgb) # 解析检测结果并可视化 detect_data = results.pandas().xyxy[0] for _, row in detect_data.iterrows(): # 提取目标坐标、类别和置信度 x1, y1, x2, y2 = int(row['xmin']), int(row['ymin']), int(row['xmax']), int(row['ymax']) label = f"{row['name']} {row['confidence']:.2f}" # 在原图上绘制框和标签 cv2.rectangle(img, (x1, y1), (x2, y2), (0, 255, 0), 2) cv2.putText(img, label, (x1, y1-10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0,255,0), 2) # 显示检测结果 cv2.imshow('YOLOv7 Detection', img) cv2.waitKey(0) cv2.destroyAllWindows()
常见问题排查
- 若报
FileNotFoundError:检查.pt模型路径或图片路径是否拼写错误 - 若出现CUDA相关报错:要么安装对应版本的CUDA和PyTorch,要么强制用CPU运行,加载模型后加
model = model.to('cpu') - 若依赖报错:确保
requirements.txt中的包全部安装完成,重点检查opencv-python、numpy、pillow这些基础库
内容的提问来源于stack exchange,提问作者Phước Thành Quang Nguyễn
相关产品推荐
相关产品推荐

