人工智能里的计算机视觉,动手第一步往往不是算法,而是环境搭建。我见过太多人在 Windows、Mac 或 Linux 上装环境时翻车,import cv2 直接报错,torch.cuda.is_available() 永远返回 False,最后卡在安装上连一行代码都没跑起来。这章把“环境搭建”这件事拆开讲清楚,目标不是给你一份复制粘贴就能完事的命令清单,而是让你理解每一步在做什么、为什么这个版本和你那个版本不匹配,以及三套系统之间有什么通用套路。适合刚入门计算机视觉的同学,也适合在本地开发、服务器部署之间反复横跳的工程师。
1. 为什么你总在环境这一步翻车:CV 环境的核心矛盾
1.1 计算机视觉应用对环境的依赖远比普通 Web 开发复杂
很多人学计算机视觉前写过 Python 脚本,觉得环境有什么好搭的?装个 Python,pip install 几个包不就行了?真不是。
一个典型的 CV 项目,至少牵扯到:Python 解释器、NumPy 这类数值计算库、OpenCV 或 Pillow 图像库、PyTorch 或 TensorFlow 深度学习框架,以及背后的 GPU 驱动、CUDA 加速层。再往上,还可能有摄像头采集、视频解码、图像显示窗口、模型部署框架。这么多组件叠在一起,版本之间是互相约束的。
我习惯用一个类比:普通 Web 脚本只需要一口锅,煮熟就行;计算机视觉是个完整厨房,灶台、锅、刀具、食材、火候全都得对上。灶台是操作系统和驱动,锅是 Python 环境,刀具是各种库,火候是 CUDA 和 GPU 加速配置。任何一个环节出了问题,菜就做不出来,而且报错往往不是“我没装好”,而是“我装了 A,结果 B 不认”。
1.2 先分清楚四层依赖:系统、驱动、框架、库
绝大多数环境问题,都是因为下面这四层没对齐:
- 系统层:Windows、macOS、Linux。系统决定了驱动怎么装、编译器是什么、路径规则长什么样。
- GPU 驱动层:NVIDIA 驱动负责让系统识别显卡。Windows 和 Linux 需要手动装,macOS 通常由系统更新统一管理。
- 加速层:NVIDIA 上叫 CUDA + cuDNN,AMD 上叫 ROCm,Apple Silicon 上叫 MPS。深度学习框架通过这一层调用显卡。
- 应用层:Python、conda 虚拟环境、PyTorch、OpenCV、NumPy 等工具库。
环境搭建的本质,就是把这四层“对齐”。CUDA 和显卡驱动有对应的支持关系,PyTorch 的安装包也有针对不同 CUDA 版本编译的 wheel,OpenCV 又要求特定的 Python 版本和 NumPy 兼容版本。任何一环错位,都会出现“看起来装好了,一跑就挂”的玄学问题。
1.3 跨平台的统一策略:虚拟环境 + 明确版本清单
既然环境依赖这么复杂,我们就不能靠“凭感觉装最新版”来解决问题。我的习惯是:一开始就固定一份版本清单,然后严格按照清单在三个平台上重建环境。
比如,你可以在项目根目录放一个 environment.yml 或 requirements.txt,里面写清楚:
code复制python=3.10
pytorch=2.1.0
torchvision=0.16.0
opencv-python=4.9.0.80
pillow=10.1.0
numpy=1.26.2
matplotlib=3.8.2
这套清单在 Windows、macOS、Linux 上都可以复现。虚拟环境保证不同项目之间不互相污染,版本清单保证同一个项目在不同机器上表现一致。后面所有章节,都会围绕这个思路展开。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 开工之前先定方案:工具链与版本选型
2.1 用 Miniconda 而不是 Anaconda 或系统自带 Python
如果你问我环境管理工具用哪个,我的答案很明确:Miniconda 或 Mambaforge。Anaconda 预装了几百个包,体积动不动几个 GB,对新手其实不友好——你以为方便,实际上里面很多包版本互相牵扯,出了问题很难排查。系统自带的 Python 更不用说了,它是给操作系统用的,你往里 pip install 一堆深度学习包,迟早破坏系统环境。
Miniconda 只带 conda 和 Python,需要什么装什么。它另外一个好处是跨平台一致:Windows、Mac、Linux 上都有对应的安装包,命令几乎一模一样。如果你觉得 conda 默认的依赖求解太慢,可以换成 mamba 作为底层求解器,或者直接用 Mambaforge 发行版,环境构建速度快很多。
另外强调一点:在 conda 虚拟环境里,尽量不要用 sudo pip 或系统 Python 直接装包。你要确保 which python 指向的是当前虚拟环境里的解释器,而不是 /usr/bin/python 或 /usr/local/bin/python。这个习惯能避免 80% 的玄学问题。
2.2 深度学习框架选型:以 PyTorch 为首选
计算机视觉领域现在的生态,PyTorch 是绝对的主流。原因不只是它好用,而是整个生态都围绕它转:HuggingFace 的模型、Ultralytics 的 YOLO、OpenMMLab 的检测/分割工具链、各类论文复现代码,几乎都是 PyTorch 优先。TensorFlow 仍然有存量项目,但新项目我基本不会推荐。
选型直接决定环境搭建方式。PyTorch 官方会根据 CUDA 版本发布不同的安装命令,CPU 版本、CUDA 11.8 版本、CUDA 12.1 版本各不相同。在 Mac 上,PyTorch 不用 CUDA,而是用 Apple 的 MPS 后端。你的框架选择变了,后
