第一章 课程导学与环境搭建

各位同学,欢迎来到《OpenCV YOLO 检测与实时流处理》的第一课。

我是这门课的主讲。说实话,每次带新班,我都很看重这第一节。为什么?因为环境搭不好,后面全是坑。我自己早年学计算机视觉时,光装OpenCV就折腾了两天,最后发现是Python版本不对。嗯,这种弯路,我希望你们一次都不要走。

1.1 OpenCV 是什么?

OpenCV,全称Open Source Computer Vision Library。说白了,就是一套开源的计算机视觉工具包。

它诞生于1999年,最初是Intel的研究项目。我2015年第一次接触它时,版本还是2.4.x。那时候文档少,遇到问题全靠翻源码。现在好多了,社区活跃,资料也全。

核心能力速览:

  • 图像读取、显示、保存
  • 图像预处理(缩放、滤波、颜色空间转换)
  • 特征提取与匹配
  • 视频流处理
  • 深度学习模型推理(DNN模块)

你想想看,一个库能同时搞定图像处理和深度学习推理,这就是我们选它的理由。

1.2 YOLO 发展史

YOLO,You Only Look Once。这个名字很直白——只看一次。

传统目标检测算法,比如R-CNN系列,需要先生成候选区域,再逐个分类。YOLO不一样,它把检测当成回归问题,一次前向传播就输出所有边界框和类别。

版本 发布时间 核心特点
YOLOv1 2016 开创性工作,速度极快但精度一般
YOLOv2 2017 引入Anchor Box,多尺度训练
YOLOv3 2018 Darknet-53骨干,多尺度预测
YOLOv4 2020 Bag of Freebies,速度和精度平衡
YOLOv5 2020 PyTorch实现,工程化极好
YOLOv8 2023 Ultralytics出品,支持分类/检测/分割

我个人习惯用YOLOv5和YOLOv8。v5稳定,v8功能全。你在项目中选哪个?看场景。如果追求极致速度,v5 nano模型在边缘设备上跑得很欢。如果需要实例分割,v8是更好的选择。

我的建议:初学者从YOLOv5开始。文档最全,社区最活跃,踩坑有人帮。

1.3 课程目标

这门课不是纯理论课。我们不讲那些花哨的数学推导。我们要做的是:

  • 用OpenCV读取摄像头或视频文件
  • 加载YOLO模型进行实时检测
  • 在画面上绘制检测结果
  • 处理多路视频流
  • 优化推理性能

说白了,学完这门课,你能自己搭一套实时目标检测系统。从摄像头采集到画面显示,一条龙搞定。

1.4 Anaconda 与 Python 环境配置

环境配置这块,我吃过不少亏。曾经有一次,我在项目里同时用了两个不同版本的TensorFlow,结果Python解释器直接崩溃。从那以后,我坚持用虚拟环境。

Anaconda是目前最省心的Python发行版。它自带conda包管理器,创建虚拟环境就像切菜一样简单。

安装步骤

  1. 访问Anaconda官网,下载对应系统的安装包
  2. 安装时勾选"Add Anaconda to my PATH environment variable"
  3. 打开终端或命令提示符,验证安装:conda --version

创建虚拟环境

conda create -n opencv-yolo python=3.9
conda activate opencv-yolo

为什么用Python 3.9?因为OpenCV和YOLO的依赖库对3.9支持最好。3.10以上有些包还没完全适配。这是我踩坑换来的经验。

注意:不要用系统自带的Python。项目一多,依赖冲突会让你怀疑人生。虚拟环境是底线。

1.5 OpenCV 与 YOLO 依赖安装

环境激活后,我们来装依赖。

安装 OpenCV

pip install opencv-python
pip install opencv-contrib-python

opencv-python是核心库,opencv-contrib-python包含扩展模块。我建议两个都装。contrib里有一些好用的算法,比如SIFT、SURF,虽然现在有专利问题,但学习阶段用用无妨。

安装 YOLO 依赖

我们主要用Ultralytics的YOLOv8实现:

pip install ultralytics
pip install torch torchvision

Ultralytics会自动下载模型权重。第一次运行时会慢一些,别急。

验证安装

写个简单脚本测试一下:

import cv2
import torch
from ultralytics import YOLO

print("OpenCV version:", cv2.__version__)
print("PyTorch version:", torch.__version__)

# 加载YOLOv8模型
model = YOLO('yolov8n.pt')
print("YOLO model loaded successfully")

如果没报错,恭喜你,环境搭好了。

小技巧:第一次加载模型时,Ultralytics会自动下载权重文件。如果你网络不好,可以手动下载后放到~/.cache/ultralytics/目录下。

1.6 本章知识体系

下面这张图,帮你理清第一章的核心脉络:

第一章 知识体系 环境搭建与课程导学 OpenCV 简介 YOLO 发展史 课程目标 环境配置 依赖安装 本章核心:打好基础,避免后续踩坑 虚拟环境 + 正确版本 = 省心开发体验

1.7 常见问题与避坑

最后,分享几个我遇到过的问题:

  • OpenCV安装失败:试试用conda安装:conda install -c conda-forge opencv
  • PyTorch GPU版本:如果你有NVIDIA显卡,装CUDA版PyTorch,推理速度快10倍不止
  • 模型下载慢:设置代理,或者用迅雷下载后手动放置

曾经有一次:我在服务器上装OpenCV,忘了装libgl1-mesa-glx,结果cv2.imshow直接报错。如果你在无桌面环境的服务器上跑,记得装虚拟显示库:apt-get install libgl1-mesa-glx

好了,第一章就到这里。环境搭好,后面的事就顺了。