1、课程导学与环境搭建:TensorFlow 2.x 安装与配置、GPU环境搭建、开发工具推荐(VSCode/Jupyter)、课程项目概览
1.1 这门课到底讲什么?
说实话,市面上讲图像分割、目标检测和OCR的课程不少。但很多要么太理论,要么就是给你一堆跑不通的代码。我做了这么多年计算机视觉,踩过的坑比走过的路还多。
这门课不一样。我会带着你从零开始,把TensorFlow 2.x环境搭好,然后一步步实现三个实战项目:
- 图像分割:比如把照片里的猫和背景分开
- 目标检测:在一张图里找出所有行人、车辆
- OCR文字识别:从发票、车牌上提取文字
每个项目我都会给完整的代码,还有我实际调参时踩过的坑。你想想看,如果只是看文档,遇到报错可能卡好几天。但跟着有经验的人走,效率完全不一样。
课程核心:不追求大而全,而是让你真正能跑通、能部署、能解决实际问题。
1.2 TensorFlow 2.x 安装——别被版本坑了
嗯,这里要注意。TensorFlow的版本问题,我见过太多人栽跟头了。
我个人习惯用 TensorFlow 2.10 或 2.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-Net 和 DeepLabV3+ 两种模型。U-Net结构简单,适合入门;DeepLabV3+精度更高,适合实际项目。
项目二:目标检测——在一张图里找出所有目标
这个应用场景太多了。自动驾驶要检测行人车辆,安防要检测异常行为,工业质检要检测缺陷。
我们会实现 YOLOv8 和 Faster R-CNN。YOLO速度快,适合实时场景;Faster R-CNN精度高,适合对速度要求不高的场景。
项目三:OCR文字识别——从图片里提取文字
发票识别、车牌识别、文档数字化……OCR的需求一直很大。
我们会用 CRNN + CTC 的经典组合。CRNN负责提取图像特征,CTC负责序列对齐。这个组合在工业界用了很多年,非常成熟。
学习建议:别急着一次看完。每个项目花一周时间,先跑通代码,再理解原理,最后尝试调参。我当年学目标检测时,光YOLO就反复看了三遍才真正理解。
1.6 本章小结
这一章我们做了三件事:
- 了解了课程的整体内容和学习路径
- 搭好了TensorFlow 2.x环境,包括GPU支持
- 配置了开发工具,了解了三个实战项目
环境搭好了,后面就是真刀真枪地干。下一章,我们会从图像分割开始,一步步实现第一个项目。
记住:代码跑不通是正常的,我写代码时也经常报错。关键是学会怎么调试、怎么查资料。这门课里,我会把调试技巧也一并教给你。
课后作业:按照本章步骤,在你的电脑上搭好环境。运行GPU检测代码,截图发到课程群里。有任何问题,随时在群里问。