1. OpenCV与YOLO初识:计算机视觉概述、OpenCV简介与安装、YOLO发展史(v1到v8)、课程项目全景预览

1.1 计算机视觉到底在做什么?

先聊聊计算机视觉。说白了,就是让机器看懂世界。

你想想看,人类看一张照片,能认出里面是猫、是狗、还是汽车。但计算机看到的,只是一堆数字——每个像素的RGB值。计算机视觉要做的,就是从这些数字里提取出有意义的信息。

我刚开始接触这个领域时,觉得特别神奇。一张图片几百万个像素,怎么就能让机器认出里面有个戴口罩的人?后来才明白,这背后是几十年的数学、统计学和深度学习积累。

计算机视觉的几个核心任务:

  • 图像分类——这张图里有什么?
  • 目标检测——物体在哪?是什么?
  • 目标跟踪——物体动起来后,怎么持续锁定它?
  • 语义分割——每个像素属于哪个类别?

咱们这门课,重点落在目标检测+目标跟踪上。这两个任务在实际项目中经常绑在一起用。

核心认知:检测是"找出来",跟踪是"跟住它"。两者结合,才能做真正的视频智能分析。

1.2 OpenCV——计算机视觉的瑞士军刀

OpenCV全称Open Source Computer Vision Library。2000年由Intel发起,现在已经是计算机视觉领域最流行的开源库。

我个人习惯把OpenCV比作瑞士军刀——功能多、体积小、上手快。你不需要从零写图像处理算法,OpenCV都帮你封装好了。

OpenCV能做什么?

功能模块 典型操作 应用场景
图像读写 imread、imwrite、imshow 加载图片、保存结果
图像预处理 高斯模糊、直方图均衡、形态学操作 去噪、增强对比度
特征提取 SIFT、ORB、HOG 关键点匹配、行人检测
视频处理 VideoCapture、VideoWriter 读取摄像头、保存视频
深度学习推理 dnn模块、blobFromImage 加载YOLO模型做检测

安装OpenCV

嗯,这里要注意。安装方式取决于你的开发环境。

方式一:pip安装(推荐)

pip install opencv-python
pip install opencv-contrib-python  # 包含额外模块

方式二:源码编译

如果你需要CUDA加速、或者要定制某些模块,就得自己编译。我在项目中遇到过,默认的pip包不支持GPU推理,跑YOLO时帧率只有个位数。后来编译了带CUDA的OpenCV,直接飙到30帧以上。

我的建议:刚开始学,直接用pip安装。等做到项目优化阶段,再考虑源码编译。

1.3 YOLO发展史——从v1到v8

YOLO,全称You Only Look Once。这个名字起得真好——只看一眼,就能知道画面里有什么、在哪。

2016年,Joseph Redmon提出了YOLOv1。当时的目标检测主流还是两阶段方法(先提候选框,再分类),速度慢得像蜗牛。YOLO直接把检测当成回归问题,一次推理搞定所有。

为什么会这么快?因为YOLO把图像分成网格,每个网格负责预测中心点落在它里面的物体。这个思路,现在看来很简单,但在当时是革命性的。

YOLO各版本演进

版本 年份 核心改进 我的评价
v1 2016 开创性的单阶段检测 粗糙但惊艳
v2 2017 Anchor Box、Batch Normalization 更稳定了
v3 2018 多尺度预测、Darknet-53 经典之作,至今很多人用
v4 2020 CSPDarknet、Mish激活、CIoU Loss 速度和精度平衡最好
v5 2020 PyTorch实现、模型轻量化 工程落地首选
v6 2022 RepVGG骨干、更高效的训练 工业部署友好
v7 2022 E-ELAN、辅助头训练 精度再提升
v8 2023 Anchor-Free、全新训练范式 当前最新,功能最全

我曾经在一个智慧安防项目里,从YOLOv3一路试到v8。v3在边缘设备上跑得动,但小目标检测差;v8精度高,但模型大了不少。选哪个版本,得看你的硬件和场景。

避坑指南:不要盲目追新。YOLOv8虽然强,但如果你用的是树莓派或者老款Jetson Nano,v5s可能是更好的选择。我曾经在客户现场吃过这个亏——模型跑不起来,临时换版本,折腾了两天。

1.4 课程项目全景预览

咱们这门课不是纯理论,是实战。30章内容,最终要完成一个完整的多目标跟踪与检测系统。

来看看整个课程的知识体系:

课程知识体系全景图 OpenCV基础 YOLO检测原理 目标跟踪算法 图像预处理实战 模型训练与调优 多目标跟踪实现 综合项目:多目标跟踪与检测系统 行人计数 · 车辆跟踪 · 实时监控 · 轨迹分析 模型部署与优化 性能评估与调优 从基础到项目,层层递进。每章都有可运行的代码,最终整合成完整系统。

整个课程分成四个阶段:

  1. 基础篇(第1-8章)——OpenCV操作、YOLO原理、跟踪算法入门
  2. 进阶篇(第9-18章)——模型训练、数据集制作、跟踪优化
  3. 项目篇(第19-26章)——综合系统搭建、多目标跟踪实战
  4. 部署篇(第27-30章)——模型压缩、边缘部署、性能调优

最终交付物:一个能实时检测并跟踪多个目标的系统。支持行人、车辆、自定义物体。代码全部开源,你可以直接用在真实项目中。

我记得有个学员跟我说,他学完前几章就把YOLO用在了工厂的零件检测上。虽然只是跑通了demo,但那种"我能用AI解决实际问题"的感觉,真的很爽。

好了,第一章就到这里。把OpenCV装好,把YOLO的发展脉络理清楚,咱们后面每一章都会动手写代码。