1. 课程导学与环境搭建

各位同学,欢迎来到《OpenCV摄像头接入与YOLO实时检测实战》的第一章。

我是这门课的主讲。做了这么多年计算机视觉,我越来越觉得——摄像头 + YOLO 这个组合,是落地最快、效果最直观的 CV 方案之一。你想想看,一个 USB 摄像头,配上几行 Python 代码,就能让电脑“看见”世界。这事儿本身就挺酷的。

1.1 我们这门课要干什么?

说白了,课程目标就三个:

  • 搞定摄像头 —— 用 OpenCV 打开电脑摄像头、USB 摄像头,甚至 RTSP 网络摄像头。
  • 跑通 YOLO —— 加载预训练权重,对每一帧画面做实时目标检测。
  • 把两者串起来 —— 做一个能用的实时检测系统,不是玩具,是能上手的工具。

我个人习惯把复杂的东西拆成小块。所以课程会从环境搭建开始,一步步带你走到最后的实时检测界面。嗯,别急,咱们先把地基打牢。

1.2 OpenCV 是什么?

OpenCV,全称 Open Source Computer Vision Library。开源、跨平台、C++/Python 都支持。我在项目中遇到过很多次,不管你是做人脸识别、运动检测还是车道线识别,OpenCV 几乎是绕不开的基础库。

它的核心能力:

  • 图像读取、显示、保存
  • 摄像头视频流捕获
  • 图像预处理(缩放、滤波、颜色空间转换)
  • 基础图像处理(边缘检测、形态学操作)

说白了,OpenCV 就是计算机视觉界的“瑞士军刀”。

1.3 YOLO 是什么?

YOLO,全称 You Only Look Once。这个名字很直白——你只看一次。它把目标检测当成一个回归问题,一次前向传播就能输出物体的位置和类别。

为什么选 YOLO?

  • 快 —— 实时性极好,在 GPU 上能跑到 30 FPS 以上
  • 准 —— 精度不输两阶段检测器
  • 轻 —— 有 tiny 版本,树莓派都能跑

我记得第一次在笔记本上跑通 YOLOv3 的时候,看着摄像头里的自己实时被框出来,那种感觉……嗯,确实挺上头的。

1.4 本章知识结构

先给你一张图,把第一章的脉络看清楚:

第一章:课程导学与环境搭建 环境搭建总目标 Python 环境配置 OpenCV 库安装 YOLO 权重下载 验证测试 Python 3.8+ / Anaconda pip install opencv-python yolov3.weights / yolov8n.pt 读取图片 / 打开摄像头 ⚠ 避坑提醒 Python 版本不要低于 3.8,否则部分依赖库不兼容 OpenCV 安装后务必测试 cv2.__version__ YOLO 权重文件较大,建议提前下载好

1.5 Python 环境配置

我建议你直接用 Anaconda 来管理环境。为什么?因为项目多了你就知道,环境隔离能救你很多次。

具体步骤:

  1. 下载安装 Anaconda(Python 3.8+ 版本)
  2. 创建虚拟环境:conda create -n cv_yolo python=3.9
  3. 激活环境:conda activate cv_yolo
小技巧: 我个人习惯把环境名取得有辨识度,比如 cv_yolo,这样几个月后回来还能一眼认出。

1.6 OpenCV 库安装

激活环境后,一行命令搞定:

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

安装完成后,验证一下:

python -c "import cv2; print(cv2.__version__)"

如果输出了版本号,比如 4.8.0,那就说明安装成功了。

注意: 我曾经遇到过 pip 安装后 import 报错的情况,多半是 Python 版本不匹配。建议用 conda 安装:conda install -c conda-forge opencv,兼容性更好。

1.7 YOLO 权重文件下载

YOLO 发展到现在有好几个版本。我们课程主要用两个:

版本 权重文件 大小 适用场景
YOLOv3 yolov3.weights ~248 MB 经典、稳定、兼容性好
YOLOv8n yolov8n.pt ~6 MB 轻量、速度快、精度不错

下载方式:

  • YOLOv3 权重:从 YOLO 官网或 GitHub 官方仓库下载
  • YOLOv8 权重:用 ultralytics 库自动下载
# YOLOv8 自动下载示例
from ultralytics import YOLO
model = YOLO('yolov8n.pt')  # 首次运行会自动下载
核心要点: 权重文件是 YOLO 的“大脑”。没有它,模型就是个空壳。下载后记得放在项目根目录的 weights/ 文件夹里,方便管理。

1.8 验证你的环境

最后,跑一个简单的测试脚本,确保所有东西都正常工作:

import cv2
print("OpenCV 版本:", cv2.__version__)

# 测试读取图片
img = cv2.imread("test.jpg")
if img is not None:
    print("图片读取成功,尺寸:", img.shape)
else:
    print("请准备一张 test.jpg 放在当前目录")

# 测试摄像头(如果有)
cap = cv2.VideoCapture(0)
if cap.isOpened():
    print("摄像头打开成功")
    cap.release()
else:
    print("未检测到摄像头,后续章节会详细讲解")

嗯,到这里,第一章的环境搭建就完成了。你可能会觉得这些步骤有点琐碎,但相信我——环境搞好了,后面写代码会顺畅很多。我曾经因为 Python 版本不对,折腾了整整一个下午……所以,别跳过这一步。