安装支持 GPU 版本的 Pytorch
首先安装 ultraytics
python -m venv venv
source venv/Scripts/activate
pip install ultralytics
python main.py
- 首先安装上面的 ultralytics,但是无法调用 gpu,原因是我没有 gpu 版本的 pytorch
- 虽然说上面的命令已经帮我安装了 pytorch,但不是支持 gpu 版本的 pytorch,所以需要安装支持 gpu 版本的 pytorch
- 当然,也可以先安装下面的程序,然后在安装 ultralytics
Pytorch 覆盖安装
要通过 pip 命令安装支持 gpu 版本的 ultralytics,您需要先安装一个 GPU 兼容的 PyTorch 版本。根据您的电脑配置,您可以从PyTorch 官网选择合适的命令。例如,如果您的电脑使用的是 CUDA 11.3,您可以使用以下命令:
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113
然后,您可以使用以下命令安装 ultralytics 包:
pip install ultralytics
这样,您就可以使用 ultralytics 包来运行 YOLOv8 模型了。YOLOv8 是一个先进的目标检测、多目标跟踪、实例分割、姿态估计和图像分类模型。您可以参考YOLOv8 文档来了解更多关于训练、验证、预测和部署的细节。
测试代码
# yolov8快速使用说明
# python -m venv venv
# source venv/Scripts/activate
# pip install ultralytics
# python main.py
import os
import cv2 # 导入cv2库
from ultralytics import YOLO # 导入ultralytics库中的YOLO模块
import numpy as np # 导入numpy库
cap = cv2.VideoCapture("street.mp4") # 创建一个视频捕获对象,读取"street.mp4"文件
model = YOLO("yolov8m.pt") # 加载预训练好的YOLOv8模型
while True: # 循环地处理每一帧图像
ret, frame = cap.read() # 从视频捕获对象中读取一帧图像
if not ret: # 如果没有读取到图像,说明视频已经结束,跳出循环
break
# 配置使用mac book 的gpu加速(mps)
# results = model(frame, device="mps") # 将图像输入到YOLOv8模型中,得到检测结果
# cuda 12.2
results = model(frame, device=0) # 将图像输入到YOLOv8模型中,得到检测结果
result = results[0] # 取出第一个检测结果(如果有多个结果,表示有多个图像输入)
bboxes = np.array(result.boxes.xyxy.cpu(), dtype="int") # 将检测结果中的边界框坐标转换为numpy数组,并转换为整数类型
classes = np.array(result.boxes.cls.cpu(), dtype="int") # 将检测结果中的类别编号转换为numpy数组,并转换为整数类型
for cls, bbox in zip(classes, bboxes): # 遍历每个物体的类别和边界框
(x, y, x2, y2) = bbox # 取出边界框的左上角和右下角坐标
cv2.rectangle(frame, (x, y), (x2, y2), (0, 0, 225), 2) # 在原图像上绘制红色的边界框
cv2.putText(frame, str(cls), (x, y - 5), cv2.FONT_HERSHEY_PLAIN, 2, (0, 0, 225), 2) # 在原图像上绘制红色的类别标签
cv2.imshow("Img", frame) # 显示处理后的图像
key = cv2.waitKey(1) # 等待用户按键
if key == 27: # 如果用户按下ESC键,退出程序
break
cap.release() # 释放视频捕获对象
cv2.destroyAllWindows() # 销毁所有窗口