1. 课程导论与环境搭建

大家好,欢迎来到《YOLO边界框绘制与多目标跟踪实战》的第一章。

说实话,每次开始一个新课程,我最怕的就是环境搭建环节。我自己带团队的时候,经常有同学卡在第一步——装个环境装了两天,心态直接崩了。所以这一章,我会把每个步骤拆得细一点,让你少走弯路。

1.1 YOLO发展史:从v1到v8

YOLO,全称You Only Look Once。什么意思呢?就是只看一眼,就能把目标检测出来。

2015年,Joseph Redmon提出了YOLOv1。那时候的目标检测主流还是Faster R-CNN,速度慢得像蜗牛。YOLOv1直接把检测当成回归问题来做,一张图跑一次前向,框和类别全出来了。速度是快,但精度嘛……嗯,小目标基本漏光。

后来v2、v3陆续出来,v3算是经典之作。我当年做工业质检项目,用的就是YOLOv3。那时候在工厂的破机器上跑,还能保持30 FPS,真的很能打。

再往后,v4、v5、v6、v7……版本号跟打怪升级似的。直到2023年,Ultralytics推出了YOLOv8。它把检测、分割、分类、姿态估计全整合到一个框架里。说白了,一个库搞定所有视觉任务。

核心变化:YOLOv8抛弃了Anchor-Based,改用Anchor-Free。模型更轻,部署更方便。

1.2 多目标跟踪(MOT)概述

检测是一帧一帧做的,但跟踪不一样。跟踪要解决的是:这一帧里的这个人,跟上一帧里的那个人,是不是同一个人?

多目标跟踪(MOT)的核心逻辑,我总结成三步:

  1. 检测:用YOLO把每一帧里的目标框出来
  2. 特征提取:给每个框算一个特征向量(ReID)
  3. 数据关联:把当前帧的框跟历史轨迹匹配上

匹配算法里,最常用的是匈牙利算法和卡尔曼滤波。匈牙利算法解决「谁跟谁配对」的问题,卡尔曼滤波解决「目标下一帧会出现在哪」的问题。

我曾经在一个行人跟踪项目里踩过坑——摄像头有遮挡,人走过去就被柱子挡住。卡尔曼滤波参数没调好,跟踪ID疯狂跳变。后来我把运动模型从匀速改成匀加速,才稳住。

我的建议:刚开始学MOT,别一上来就搞DeepSORT。先跑通最简单的IOU匹配,理解数据关联的逻辑,再上特征提取。

1.3 知识体系总览

下面这张图,是我自己梳理的本章知识结构。你看一眼,心里就有谱了。

第一章:课程导论与环境搭建 YOLO发展史 MOT概述 环境搭建 v1 → v3 → v5 → v8 检测 → 特征 → 关联 Anaconda + PyTorch 本章学习目标 • 理解YOLO从v1到v8的演进脉络 • 掌握多目标跟踪的核心流程(检测+特征+关联) • 完成Anaconda、PyTorch、YOLOv8源码的安装

1.4 Anaconda与PyTorch环境配置

环境配置这块,我吃过不少亏。以前在公司,有个同事用系统自带的Python,装包装到一半把系统搞崩了。从那以后,我坚持用Anaconda做环境隔离。

1.4.1 安装Anaconda

去官网下载Anaconda,选Python 3.10以上的版本。安装时注意:

  • Windows用户:勾选「Add Anaconda to my PATH」
  • Linux/Mac用户:安装完记得 source ~/.bashrc

验证安装:

conda --version
# 输出类似 conda 23.7.4 就对了

1.4.2 创建虚拟环境

我个人习惯给每个项目建独立环境,避免包冲突。

conda create -n yolo_env python=3.10 -y
conda activate yolo_env

注意:不要用base环境做项目。我曾经图省事,直接在base里装PyTorch,结果另一个项目需要旧版,两个版本打架,折腾了一下午。

1.4.3 安装PyTorch

去PyTorch官网(pytorch.org)选对应配置。我一般用CUDA 11.8版本:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

验证GPU是否可用:

python -c "import torch; print(torch.cuda.is_available())"
# 输出 True 表示GPU可用

如果输出False,别慌。先检查驱动:nvidia-smi。如果驱动正常,可能是PyTorch版本跟CUDA版本不匹配。

1.5 YOLOv8源码下载与安装

YOLOv8是Ultralytics团队维护的。安装方式有两种,我推荐第二种。

方式 命令 适用场景
pip安装 pip install ultralytics 快速使用,不修改源码
源码安装 git clone + pip install -e . 需要改源码、加自定义模块

我们做课程,肯定要源码安装:

git clone https://github.com/ultralytics/ultralytics.git
cd ultralytics
pip install -e .

-e 参数的意思是「可编辑模式」。你改了源码,不用重新安装,直接生效。

小技巧:装完跑一下官方demo,验证环境:

yolo predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'

如果能正常输出检测结果,恭喜你,环境搭好了。

1.6 本章小结

这一章我们走完了三件事:

  • 了解了YOLO从v1到v8的演进,知道它为什么快、为什么强
  • 理清了多目标跟踪的流程:检测 → 特征提取 → 数据关联
  • 搭好了Anaconda、PyTorch、YOLOv8的开发环境