1. 课程导学与环境准备

各位同学,欢迎来到《从零搭建OpenCV YOLO检测系统》的第一章。

我是你们这门课的主讲。做了快十年的计算机视觉,从OpenCV 2.x时代一路摸爬滚打过来,踩过的坑、填过的雷,说实话,真不少。今天咱们不急着敲代码,先把地基打牢。

这一章,我带你搞清楚三件事:OpenCV是什么、YOLO怎么一路进化过来的、以及怎么把开发环境一次配好。环境配不好,后面全是坑。我自己就吃过这个亏——刚学的时候配了三天环境,差点放弃。嗯,咱们别走弯路。

1.1 OpenCV简介:不只是“开源计算机视觉”

OpenCV,全称Open Source Computer Vision Library。说白了,就是一套帮你处理图像和视频的工具集。你想想看,让电脑看懂一张图,背后涉及多少数学运算?矩阵变换、特征提取、边缘检测……OpenCV把这些都封装成了函数,你直接调用就行。

核心定位: OpenCV不是深度学习框架,它是传统视觉算法的瑞士军刀。图像预处理、几何变换、摄像头采集、视频读写——这些活儿,PyTorch干不了,但OpenCV干得漂亮。

我个人习惯把OpenCV比作“视觉世界的标准库”。就像你用Python离不开print()一样,做视觉项目基本离不开OpenCV。它支持C++、Python、Java,咱们课程用Python接口,上手最快。

特性 说明
诞生时间 1999年,Intel发起
当前版本 4.x(咱们用4.8.0以上)
核心模块 core、imgproc、highgui、video、dnn等
Python支持 通过cv2包,pip一键安装
dnn模块 支持加载ONNX、TensorFlow、PyTorch模型

避坑提示: 我曾经在项目里直接用OpenCV的dnn模块加载YOLOv5的ONNX模型,结果发现输入尺寸搞错了,检测框全飘到天上去。记住:OpenCV的dnn模块对输入预处理要求很严格,后面我们会专门讲。

1.2 YOLO发展史:从v1到v8,一路狂奔

YOLO,You Only Look Once。名字就很霸气——只看一眼,就能把目标检测出来。它跟传统的两阶段检测器(比如Faster R-CNN)最大的区别就是:一次搞定。

传统方法先提候选区域,再分类。YOLO直接把整张图扔进网络,一次前向传播就输出所有检测结果。速度快到什么程度?在GPU上能跑到上百帧。实时检测,说的就是它。

我整理了一下YOLO的进化路线,你看这张图就清楚了:

YOLO 发展历程(v1 → v8) YOLOv1 2016 · 开山之作 YOLOv2 2017 · 更好更快 YOLOv3 2018 · 多尺度 YOLOv4 2020 · 集大成 YOLOv5 2020 · PyTorch YOLOv6 2022 · 美团 YOLOv7 2022 · 更快更强 YOLOv8 2023 · 官方版 咱们课程以 YOLOv8 为主 兼顾 OpenCV dnn 部署

为什么咱们选YOLOv8?原因很简单:官方维护、生态成熟、文档齐全。Ultralytics团队把训练、验证、导出、部署全链路打通了,配合OpenCV的dnn模块做推理部署,简直是绝配。

注意: YOLOv5和YOLOv8虽然名字像,但代码实现完全不同。v5是Ultralytics的早期作品,v8是重构后的官方版本。咱们课程统一用v8,但我会在部署章节讲怎么让OpenCV兼容不同版本的YOLO模型。

1.3 课程目标:你能学到什么?

这门课不是纯理论课,也不是纯调包课。我的目标是:让你真正能动手搭建一套可用的检测系统。

  • 掌握OpenCV核心操作:图像读写、预处理、绘制、摄像头采集
  • 理解YOLO原理:不深挖数学公式,但要知道网络怎么输出检测结果
  • 独立训练YOLOv8模型:从数据标注到模型训练,全流程走一遍
  • 用OpenCV部署YOLO:ONNX导出、dnn模块加载、后处理解析
  • 实战项目:车牌检测、安全帽识别、人流统计——都是我在项目中做过的真实案例

一句话总结: 学完这门课,给你一张图片或一段视频,你能自己搭一套检测系统跑起来。不是调别人的demo,是你自己写的代码。

1.4 开发环境搭建:一次配好,后面省心

环境搭建这块,我踩过太多坑了。版本不兼容、CUDA装不上、cuDNN找不到……咱们按步骤来,一步都不要跳。

1.4.1 硬件要求

组件 最低要求 推荐配置
CPU 4核 8核以上
内存 8GB 16GB+
GPU 无(纯CPU可跑) NVIDIA GTX 1060 6GB 以上
硬盘 20GB空闲 SSD 512GB

我的建议: 如果没有GPU,前期学OpenCV和YOLO推理完全够用。训练模型可以用Google Colab(免费GPU)。我自己刚开始学的时候就是用的Colab,完全没问题。

1.4.2 软件安装清单

咱们需要装的东西不少,但别怕。我按顺序列好了,你照着来:

  1. Python 3.8 - 3.11(推荐3.10,兼容性最好)
  2. CUDA Toolkit 11.8(GPU加速必备)
  3. cuDNN 8.6.0(深度学习加速库)
  4. OpenCV-Python 4.8.0+(pip install opencv-python)
  5. PyTorch 2.0+(pip install torch torchvision)
  6. Ultralytics(pip install ultralytics,YOLOv8官方包)

1.4.3 验证环境是否装好

装完之后,打开终端或命令行,逐条运行以下命令。每一条都应该正常输出,不报错:

# 检查Python版本
python --version

# 检查CUDA
nvcc --version

# 检查PyTorch是否识别GPU
python -c "import torch; print(torch.cuda.is_available())"
# 应该输出 True

# 检查OpenCV
python -c "import cv2; print(cv2.__version__)"

# 检查Ultralytics
python -c "from ultralytics import YOLO; print('OK')"

常见坑: 我曾经遇到过PyTorch装好了但torch.cuda.is_available()返回False。原因是什么?CUDA版本和PyTorch版本不匹配。解决办法:去PyTorch官网用pip install torch==2.0.1+cu118指定CUDA版本安装。

1.4.4 快速测试:跑一个YOLOv8 demo

环境配好之后,咱们跑个demo庆祝一下。新建一个Python文件,写入以下代码:

from ultralytics import YOLO

# 加载预训练模型(会自动下载)
model = YOLO('yolov8n.pt')

# 对一张图片进行检测
results = model('https://ultralytics.com/images/bus.jpg')

# 显示结果
results[0].show()

如果能看到检测框画在图片上,恭喜你——环境搭建成功!