2、环境搭建与工具链准备:Python环境配置、OpenCV、PyTorch/TensorFlow安装、IDE推荐(VS Code/PyCharm)与调试技巧
说实话,做障碍物检测这个方向,环境搭不好,后面全是坑。我见过太多同学卡在第一步——装个OpenCV报错,PyTorch版本对不上,折腾两天还没跑通一个demo。所以这一章,咱们把工具链彻底捋清楚。
2.1 Python环境管理:别再用系统自带的Python了
我个人习惯用 Anaconda 或者 Miniconda 来管理环境。为什么?因为项目之间依赖打架太常见了。你想想看,一个项目要PyTorch 1.13,另一个要2.0,用系统Python直接装,迟早崩。
核心原则:每个项目一个独立虚拟环境
安装步骤很简单:
- 去官网下载Anaconda(或者轻量的Miniconda)
- 安装时勾选「Add to PATH」(Windows用户注意)
- 打开终端,验证:
conda --version
然后创建我们的项目环境:
conda create -n obstacle_detection python=3.9
conda activate obstacle_detection
嗯,这里要注意:Python版本别选太新。3.9到3.11是比较稳妥的范围。我去年用3.12踩过坑,有些库还没适配。
2.2 OpenCV安装:图像处理的基础
OpenCV是我们做视觉避不开的库。读取视频帧、图像预处理、画检测框,全靠它。
安装命令:
pip install opencv-python
pip install opencv-contrib-python # 包含额外模块
为什么装两个?opencv-python是核心库,opencv-contrib-python包含了SIFT、SURF等专利算法。如果你要做特征匹配,第二个必须装。
小技巧: 装完后跑一下 import cv2; print(cv2.__version__),确认版本号。我遇到过pip装成功但import报错的情况,多半是Python环境没切对。
2.3 深度学习框架:PyTorch vs TensorFlow
这个问题我经常被问到。我的建议很直接:做研究、快速原型,选PyTorch;做工业部署、移动端,选TensorFlow。但咱们这门课,我推荐PyTorch——生态好,调试方便,社区活跃。
安装PyTorch(以CUDA 11.8为例):
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
如果你没有NVIDIA显卡,或者只想用CPU跑:
pip install torch torchvision torchaudio
避坑指南: 我曾经在服务器上装PyTorch,没注意CUDA版本,结果torch和显卡驱动不匹配,训练时直接报「CUDA error: no kernel image is available」。后来老老实实查了nvidia-smi显示的CUDA版本,才装对。
验证安装:
import torch
print(torch.__version__)
print(torch.cuda.is_available()) # 有显卡会返回True
2.4 IDE推荐与配置
工欲善其事,必先利其器。我主要用两个:
| IDE | 优点 | 适合场景 |
|---|---|---|
| VS Code | 轻量、插件丰富、免费 | 日常开发、调试、Jupyter Notebook |
| PyCharm | 专业Python支持、重构强大 | 大型项目、团队协作 |
我个人习惯用VS Code,因为插件生态太香了。必装插件:
- Python(微软官方)——代码补全、调试
- Pylance——类型检查
- Jupyter——在VS Code里跑Notebook
- GitLens——看代码历史
2.5 调试技巧:别只会print
说实话,我早期做项目也是print大法。但后来发现,调试器才是真香。尤其是做目标检测,中间变量多,print看不过来。
VS Code调试三步走:
- 在代码行号左侧点击,设置断点(红点)
- 按
F5启动调试 - 在左侧「变量」窗口查看当前值,按
F10单步执行
核心技巧: 调试图像处理代码时,用 cv2.imshow() 实时查看中间结果。比如检查预处理后的图像是否正常,比看数值直观得多。
还有一个我常用的:条件断点。比如循环1000次,我只想看第500次的情况。右键断点,设置条件 i == 500,调试器会自动停在那里。
2.6 本章知识体系
下面这张图,把整个环境搭建的流程串起来了:
2.7 快速验证脚本
环境装完,跑个脚本验证一下,心里踏实:
import cv2
import torch
import numpy as np
print(f"OpenCV 版本: {cv2.__version__}")
print(f"PyTorch 版本: {torch.__version__}")
print(f"CUDA 可用: {torch.cuda.is_available()}")
# 创建一个随机图像测试
img = np.random.randint(0, 255, (480, 640, 3), dtype=np.uint8)
cv2.imshow("Test", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
如果能看到一个随机噪点图弹出来,恭喜你,环境搭好了。接下来就可以正式开始障碍物检测的实战了。
最后说一句: 环境搭建别追求一步到位。先跑通,再优化。我见过太多人花一周配环境,结果代码一行没写。先让demo跑起来,信心就有了。