新手必看:YOLO 目标检测实战 —— 从环境配置到图片检测全流程

291 阅读6分钟

哈喽,各位刚入门计算机视觉的小伙伴!今天咱们手把手带你走完 YOLO 目标检测的完整实战流程 —— 从搭建环境、下载模型,到跑通第一张图片的检测,全程无坑,新手也能一次成功。

我知道很多新手一开始都会卡在环境配置、模型调用这些环节,所以这篇文章特意把每个步骤拆得很细,代码和操作都给你写得明明白白,跟着做就行!

一、先搞懂:YOLO 到底是什么?

YOLO(You Only Look Once)是目前最主流的实时目标检测算法,核心优势就是快且准。它把目标检测问题转化为一个回归任务,一次性预测出目标的边界框和类别,不用像传统算法那样分区域、分步骤检测,特别适合实时场景。

咱们今天用YOLOv8来实战,这是 Ultralytics 团队推出的最新稳定版本,对新手最友好:API 封装完善、文档齐全,而且支持 CPU 和 GPU 两种运行方式,不用自己从零写复杂的模型代码。

二、第一步:搭建专属 YOLO 运行环境

不管做什么深度学习项目,环境隔离都是刚需!避免不同项目的依赖包版本冲突,这里推荐用 Anaconda 来管理环境。

2.1 安装 Anaconda(已安装的小伙伴直接跳过)

Anaconda 是 Python 的包管理和环境管理工具,能一键创建独立环境。

  1. Anaconda 官网下载对应系统(Windows/Mac/Linux)的安装包,选择 Python3.9 + 版本;
  2. 安装时记得勾选 “Add Anaconda to my PATH environment variable”(Windows),Mac/Linux 默认配置;
  3. 安装完成后,打开 Anaconda Prompt(Windows)或终端(Mac/Linux),输入conda --version,能显示版本号就说明安装成功了。

2.2 创建并激活 YOLO 专属环境

  1. 打开终端,输入以下命令创建一个名为 yolo8 的环境,指定 Python 版本为 3.10(兼容性最佳):

    bash

    运行

    conda create -n yolo8 python=3.10
    

    输入 y 回车确认安装依赖。

  2. 激活这个环境:

    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 快几倍甚至几十倍!

  1. 先去NVIDIA 官网安装对应显卡的 CUDA 驱动;

  2. 安装对应版本的 torch(PyTorch 是 YOLO 的底层框架):

    bash

    运行

    # 去PyTorch官网复制对应CUDA版本的安装命令,比如CUDA 12.1
    pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
    
  3. 验证 GPU 是否可用,在 Python 终端输入:

    python

    运行

    import torch
    print(torch.cuda.is_available())
    

    输出 True,就说明 GPU 配置成功了!

三、第二步:获取 YOLO 预训练模型

YOLOv8 提供了多个尺寸的预训练模型,从 nano(最快,精度略低)到 x-large(最准,速度略慢),新手直接用预训练模型就行,不用自己花几天时间训练。

  1. 模型下载有两种方式,任选其一:

    • 方式 1(推荐):直接通过 ultralytics 库自动下载,运行检测脚本时会自动下载对应模型;
    • 方式 2:手动下载,去Ultralytics YOLOv8 官网,在 models 文件夹里下载 yolov8n.pt(nano 版本,适合 CPU 运行)。
  2. 预训练模型默认保存在:

    • 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 运行脚本并查看结果

  1. 在终端里确保处于 yolo8 环境,切换到脚本所在的文件夹;
  2. 输入python detect.py(假设脚本命名为 detect.py)运行;
  3. 运行完成后,文件夹里会出现 result.jpg,打开就能看到图片里的目标被绿色框框出来,还有类别和置信度!

五、常见问题与避坑指南

新手跑项目,踩坑是正常的,这里给你整理了几个高频问题的解决办法:

  1. 报错:找不到 yolov8n.pt 模型解决:要么手动下载模型放到脚本目录,要么确保网络通畅,让库自动下载;
  2. 检测速度很慢解决:优先用 nano 模型(yolov8n.pt),配置 GPU 加速,或者适当提高 conf 置信度阈值;
  3. 检测框有很多误识别解决:把 conf 参数调高,比如调到 0.5,过滤掉低置信度的结果;
  4. Windows 系统下 cv2(OpenCV)报错解决:重新安装 OpenCV,输入pip install opencv-python

六、进阶方向(新手下一步可以学这些)

  1. 尝试不同尺寸的模型(yolov8s.pt、yolov8m.pt 等),对比速度和精度;
  2. 实现视频目标检测(把图片路径换成视频路径即可);
  3. 用自己的数据集训练专属模型(比如检测特定的物体,如安全帽、水果等);
  4. 部署模型到边缘设备(如树莓派)。

好了,今天的 YOLO 目标检测实战就到这里!如果你跟着步骤跑通了,评论区晒出你的 result.jpg 呀~ 有任何问题,欢迎在评论区留言,我都会一一回复!