哈喽,各位刚入门计算机视觉的小伙伴!今天咱们手把手带你走完 YOLO 目标检测的完整实战流程 —— 从搭建环境、下载模型,到跑通第一张图片的检测,全程无坑,新手也能一次成功。
我知道很多新手一开始都会卡在环境配置、模型调用这些环节,所以这篇文章特意把每个步骤拆得很细,代码和操作都给你写得明明白白,跟着做就行!
一、先搞懂:YOLO 到底是什么?
YOLO(You Only Look Once)是目前最主流的实时目标检测算法,核心优势就是快且准。它把目标检测问题转化为一个回归任务,一次性预测出目标的边界框和类别,不用像传统算法那样分区域、分步骤检测,特别适合实时场景。
咱们今天用YOLOv8来实战,这是 Ultralytics 团队推出的最新稳定版本,对新手最友好:API 封装完善、文档齐全,而且支持 CPU 和 GPU 两种运行方式,不用自己从零写复杂的模型代码。
二、第一步:搭建专属 YOLO 运行环境
不管做什么深度学习项目,环境隔离都是刚需!避免不同项目的依赖包版本冲突,这里推荐用 Anaconda 来管理环境。
2.1 安装 Anaconda(已安装的小伙伴直接跳过)
Anaconda 是 Python 的包管理和环境管理工具,能一键创建独立环境。
- 去Anaconda 官网下载对应系统(Windows/Mac/Linux)的安装包,选择 Python3.9 + 版本;
- 安装时记得勾选 “Add Anaconda to my PATH environment variable”(Windows),Mac/Linux 默认配置;
- 安装完成后,打开 Anaconda Prompt(Windows)或终端(Mac/Linux),输入
conda --version,能显示版本号就说明安装成功了。
2.2 创建并激活 YOLO 专属环境
-
打开终端,输入以下命令创建一个名为 yolo8 的环境,指定 Python 版本为 3.10(兼容性最佳):
bash
运行
conda create -n yolo8 python=3.10输入 y 回车确认安装依赖。
-
激活这个环境:
bash
运行
# Windows系统 conda activate yolo8 # Mac/Linux系统 source activate yolo8看到终端前面出现
(yolo8),就说明环境激活成功了。
2.3 安装 YOLOv8 核心依赖
Ultralytics 提供了封装好的 YOLOv8 库,一行命令就能安装,还会自动安装大部分依赖:
bash
运行
pip install ultralytics
安装完成后,输入yolo check验证安装,出现版本信息和依赖列表就是成功了。
补充:GPU 加速配置(可选,提升检测速度)
如果你的电脑有 NVIDIA 显卡,强烈建议配置 GPU 加速,检测速度会比 CPU 快几倍甚至几十倍!
-
先去NVIDIA 官网安装对应显卡的 CUDA 驱动;
-
安装对应版本的 torch(PyTorch 是 YOLO 的底层框架):
bash
运行
# 去PyTorch官网复制对应CUDA版本的安装命令,比如CUDA 12.1 pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 -
验证 GPU 是否可用,在 Python 终端输入:
python
运行
import torch print(torch.cuda.is_available())输出 True,就说明 GPU 配置成功了!
三、第二步:获取 YOLO 预训练模型
YOLOv8 提供了多个尺寸的预训练模型,从 nano(最快,精度略低)到 x-large(最准,速度略慢),新手直接用预训练模型就行,不用自己花几天时间训练。
-
模型下载有两种方式,任选其一:
- 方式 1(推荐):直接通过 ultralytics 库自动下载,运行检测脚本时会自动下载对应模型;
- 方式 2:手动下载,去Ultralytics YOLOv8 官网,在 models 文件夹里下载 yolov8n.pt(nano 版本,适合 CPU 运行)。
-
预训练模型默认保存在:
- Windows:C:\Users\ 你的用户名.cache\ultralytics
- Mac/Linux:~/.cache/ultralytics
四、第三步:编写检测脚本,跑通第一张图
终于到实战环节了!咱们直接写一个简单的脚本,实现读取本地图片、目标检测、保存带检测框的结果图。
4.1 准备测试图片
找一张普通的图片,比如有行人、汽车、动物的图片,命名为 test.jpg,放在脚本同一个文件夹里。
4.2 核心检测代码
这里的代码逻辑很清晰,我给你加了详细的注释,新手也能看懂:
python
运行
# 导入YOLO类
from ultralytics import YOLO
import cv2
# 加载预训练模型(nano版本,适合CPU)
model=YOLO("yolov8n.pt")
# 定义要检测的图片路径
image_path = "test.jpg"
# 执行检测,conf参数是置信度阈值,过滤低置信度结果(比如0.25就是只保留置信度>25%的目标)
results=model(image_path, conf=0.25)
# 解析检测结果并保存
# 读取原始图片
img=cv2.imread(image_path)
# 遍历检测结果
for r in results:
boxes=r.boxes # 获取检测框信息
for box in boxes:
# 提取边界框坐标
x1, y1, x2, y2=map(int, box.xyxy[0])
# 提取类别和置信度
cls=int(box.cls[0])
conf=box.conf[0]
# 画检测框(绿色,线宽2)
cv2.rectangle(img, (x1, y1), (x2, y2), (0, 255, 0), 2)
# 添加类别和置信度文字
label=f"{model.names[cls]} {conf:.2f}"
cv2.putText(img, label, (x1, y1-10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 1)
# 保存检测后的图片
cv2.imwrite("result.jpg", img)
print("检测完成!结果图片已保存为result.jpg")
4.3 运行脚本并查看结果
- 在终端里确保处于 yolo8 环境,切换到脚本所在的文件夹;
- 输入
python detect.py(假设脚本命名为 detect.py)运行; - 运行完成后,文件夹里会出现 result.jpg,打开就能看到图片里的目标被绿色框框出来,还有类别和置信度!
五、常见问题与避坑指南
新手跑项目,踩坑是正常的,这里给你整理了几个高频问题的解决办法:
- 报错:找不到 yolov8n.pt 模型解决:要么手动下载模型放到脚本目录,要么确保网络通畅,让库自动下载;
- 检测速度很慢解决:优先用 nano 模型(yolov8n.pt),配置 GPU 加速,或者适当提高 conf 置信度阈值;
- 检测框有很多误识别解决:把 conf 参数调高,比如调到 0.5,过滤掉低置信度的结果;
- Windows 系统下 cv2(OpenCV)报错解决:重新安装 OpenCV,输入
pip install opencv-python。
六、进阶方向(新手下一步可以学这些)
- 尝试不同尺寸的模型(yolov8s.pt、yolov8m.pt 等),对比速度和精度;
- 实现视频目标检测(把图片路径换成视频路径即可);
- 用自己的数据集训练专属模型(比如检测特定的物体,如安全帽、水果等);
- 部署模型到边缘设备(如树莓派)。
好了,今天的 YOLO 目标检测实战就到这里!如果你跟着步骤跑通了,评论区晒出你的 result.jpg 呀~ 有任何问题,欢迎在评论区留言,我都会一一回复!