1、课程导学与环境搭建:TensorFlow 2.x 安装与配置、GPU环境搭建、开发工具推荐(VSCode/Jupyter)、课程项目概览

1.1 这门课到底讲什么?

说实话,市面上讲图像分割、目标检测和OCR的课程不少。但很多要么太理论,要么就是给你一堆跑不通的代码。我做了这么多年计算机视觉,踩过的坑比走过的路还多。

这门课不一样。我会带着你从零开始,把TensorFlow 2.x环境搭好,然后一步步实现三个实战项目:

  • 图像分割:比如把照片里的猫和背景分开
  • 目标检测:在一张图里找出所有行人、车辆
  • OCR文字识别:从发票、车牌上提取文字

每个项目我都会给完整的代码,还有我实际调参时踩过的坑。你想想看,如果只是看文档,遇到报错可能卡好几天。但跟着有经验的人走,效率完全不一样。

课程核心:不追求大而全,而是让你真正能跑通、能部署、能解决实际问题。

1.2 TensorFlow 2.x 安装——别被版本坑了

嗯,这里要注意。TensorFlow的版本问题,我见过太多人栽跟头了。

我个人习惯用 TensorFlow 2.102.12。为什么?因为2.10是最后一个原生支持Windows GPU的版本,2.12开始有些API变了,但稳定性更好。

安装步骤(以Linux为例)

# 创建虚拟环境(强烈建议!)
conda create -n tf_cv python=3.9
conda activate tf_cv

# 安装TensorFlow
pip install tensorflow==2.10.0

# 验证安装
python -c "import tensorflow as tf; print(tf.__version__)"

小技巧:如果你用Windows,建议用WSL2。我之前在Windows原生环境折腾GPU驱动,搞了整整两天。换成WSL2后,半小时搞定。

避坑指南

我曾经遇到过一个问题:明明装了CUDA,但TensorFlow就是检测不到GPU。后来发现是CUDA版本和cuDNN版本不匹配。

这里给出一张我整理的版本对应表:

TensorFlow版本 Python版本 CUDA版本 cuDNN版本
2.10.0 3.8 - 3.11 11.2 8.1
2.12.0 3.8 - 3.11 11.8 8.6
2.13.0 3.9 - 3.12 12.2 8.9

注意:千万别用pip直接装最新版!我见过有人装2.15,结果很多旧代码跑不了。做项目,稳定比新功能重要。

1.3 GPU环境搭建——让你的训练快10倍

说白了,没有GPU,训练一个目标检测模型可能要等一整天。有了GPU,可能就一小时。

我个人建议的硬件配置:

  • 最低要求:NVIDIA GTX 1060 6GB(二手几百块)
  • 推荐配置:RTX 3060 12GB 或 RTX 4070
  • 土豪配置:RTX 4090 24GB

快速检测GPU是否可用

import tensorflow as tf

# 检测GPU
gpus = tf.config.list_physical_devices('GPU')
if gpus:
    print(f"找到 {len(gpus)} 个GPU:")
    for gpu in gpus:
        print(f"  - {gpu.name}")
else:
    print("没有检测到GPU,将使用CPU训练")

经验之谈:如果你只有4GB显存,别怕。我刚开始做项目时用的就是GTX 1050 Ti 4GB,照样跑通了YOLOv3。只是batch size设小一点,比如设为2或4。

1.4 开发工具推荐——工欲善其事

我这些年换过不少编辑器,最后稳定在VSCode和Jupyter之间切换。

VSCode配置

我个人习惯装这几个插件:

  • Python:微软官方,必装
  • Jupyter:可以在VSCode里直接跑.ipynb文件
  • GitLens:看代码修改历史,调试时很有用
  • Rainbow CSV:处理数据集时,看CSV文件一目了然

Jupyter Notebook

说实话,做实验和调试时,Jupyter比VSCode方便。你可以一段一段跑代码,随时看中间结果。

# 安装Jupyter
pip install jupyter notebook

# 启动
jupyter notebook

我的工作流:用Jupyter做实验和调试,用VSCode写最终的生产代码。两者互补,效率最高。

1.5 课程项目概览——我们要做什么?

这门课一共三个实战项目,每个都对应一个真实场景。

项目一:图像分割——把照片里的物体抠出来

说白了,就是给每个像素打标签。比如一张街景照片,把天空、道路、行人、车辆分别标出来。

我们会用 U-NetDeepLabV3+ 两种模型。U-Net结构简单,适合入门;DeepLabV3+精度更高,适合实际项目。

项目二:目标检测——在一张图里找出所有目标

这个应用场景太多了。自动驾驶要检测行人车辆,安防要检测异常行为,工业质检要检测缺陷。

我们会实现 YOLOv8Faster R-CNN。YOLO速度快,适合实时场景;Faster R-CNN精度高,适合对速度要求不高的场景。

项目三:OCR文字识别——从图片里提取文字

发票识别、车牌识别、文档数字化……OCR的需求一直很大。

我们会用 CRNN + CTC 的经典组合。CRNN负责提取图像特征,CTC负责序列对齐。这个组合在工业界用了很多年,非常成熟。

学习建议:别急着一次看完。每个项目花一周时间,先跑通代码,再理解原理,最后尝试调参。我当年学目标检测时,光YOLO就反复看了三遍才真正理解。

1.6 本章小结

这一章我们做了三件事:

  1. 了解了课程的整体内容和学习路径
  2. 搭好了TensorFlow 2.x环境,包括GPU支持
  3. 配置了开发工具,了解了三个实战项目

环境搭好了,后面就是真刀真枪地干。下一章,我们会从图像分割开始,一步步实现第一个项目。

记住:代码跑不通是正常的,我写代码时也经常报错。关键是学会怎么调试、怎么查资料。这门课里,我会把调试技巧也一并教给你。

课后作业:按照本章步骤,在你的电脑上搭好环境。运行GPU检测代码,截图发到课程群里。有任何问题,随时在群里问。