如何加载yolov5模型自己训练的模型
时间: 2025-05-09 19:36:42 浏览: 18
### 加载自定义训练的YOLOv5模型
为了在Python环境中加载并使用自定义训练的YOLOv5模型进行推理,可以遵循以下方法:
#### 安装依赖库
确保已经安装了必要的依赖项。通常情况下,这可以通过克隆官方仓库并运行设置脚本来完成。
```bash
git clone https://github.com/ultralytics/yolov5.git
cd yolov5
pip install -r requirements.txt
```
#### 导入所需模块
编写Python脚本时,先导入所需的包和类。
```python
import torch
from pathlib import Path
import cv2
```
#### 载入模型权重
利用`torch.hub.load()`函数可以直接从GitHub项目加载特定版本的YOLOv5模型,并指定路径指向本地保存的最佳权重文件(`.pt`格式),该文件是在之前训练阶段产生的。
```python
model = torch.hub.load('ultralytics/yolov5', 'custom', path='path/to/best.pt') # 自定义模型
```
此处`best.pt`应替换为实际存储位置下的具体文件名[^1]。
#### 设置设备配置
确认当前环境支持GPU加速;如果不具备CUDA,则默认采用CPU执行预测任务。
```python
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
print(f"Using {device} device")
model.to(device)
```
#### 执行推理操作
对于单张图片或视频流中的每一帧图像,都可以调用模型实例的方法来进行对象识别。
```python
img_path = "data/images/zidane.jpg"
results = model(img_path)
# 显示结果
results.show()
```
上述代码片段展示了如何读取一张静态照片作为输入源,并展示检测到的对象边界框及其类别标签[^2]。
#### 处理摄像头捕获的数据
如果希望处理来自ZED2相机或其他类型的实时影像资料,在循环体内不断获取最新画面后传递给模型即可。
```python
cap = cv2.VideoCapture(0) # 或者其他有效的视频捕捉索引号或RTSP地址
while True:
ret, frame = cap.read()
if not ret:
break
results = model(frame[:, :, ::-1]) # BGR转RGB
results.render()
img_with_boxes = results.imgs[0][:, :, ::-1] # RGB转BGR以便OpenCV显示
cv2.imshow("Frame", img_with_boxes)
key = cv2.waitKey(1) & 0xFF
if key == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
```
这段程序实现了连续抓拍场景下物体侦测的功能,同时允许用户按键盘上的‘Q’键退出应用程序[^3]。
阅读全文
相关推荐















