第3章:点云深度学习环境搭建

说实话,环境搭建这事儿,看着简单,但坑是真不少。我见过太多同学,代码写得挺好,结果卡在环境配置上,一卡就是两三天。今天我就把这几年的经验掰开揉碎,带你一步步把环境搭好。

3.1 Ubuntu系统配置

我个人习惯用Ubuntu 20.04 LTS,原因很简单——稳定。18.04太老,22.04有些库还没完全适配。20.04是点云深度学习圈的「黄金版本」。

系统安装要点:

  • 磁盘分区时,建议给根目录留至少100GB
  • 交换分区设成内存大小的2倍(我踩过内存不够的坑)
  • 安装时勾选「为图形或无线硬件安装第三方软件」

装完系统第一件事,更新源:

sudo apt update
sudo apt upgrade -y
sudo apt install build-essential cmake git vim -y

嗯,这里要注意。别一股脑全装最新版。我曾经在Ubuntu 22.04上装PyTorch,结果CUDA死活不认显卡,折腾了两天才发现是内核版本太高。所以,听我的,老老实实用20.04。

3.2 CUDA/CuDNN安装

CUDA版本怎么选?说白了,看你的显卡和PyTorch版本。我目前用的RTX 3090,CUDA 11.8是主流选择。

显卡型号 推荐CUDA版本 对应PyTorch版本
RTX 30系列 11.8 2.0.x
RTX 40系列 12.1 2.1.x
Tesla V100 11.3 1.12.x

安装CUDA 11.8的步骤:

wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
sudo sh cuda_11.8.0_520.61.05_linux.run

避坑指南:安装时不要勾选Driver选项!系统自带的驱动通常更稳定。我曾经手贱装了NVIDIA驱动,结果和系统自带驱动冲突,直接黑屏。嗯,那次重装了系统。

配置环境变量:

echo 'export PATH=/usr/local/cuda-11.8/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

验证安装:

nvcc --version
nvidia-smi

CuDNN安装更简单,下载后解压复制就行:

tar -xzvf cudnn-linux-x86_64-8.9.0.131_cuda11-archive.tar.xz
sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include
sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

3.3 PyTorch/TensorFlow环境配置

我个人强烈推荐用conda管理环境。为什么?你想想看,项目一多,依赖冲突是家常便饭。conda能帮你隔离得干干净净。

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh

创建点云专属环境:

conda create -n pointcloud python=3.9
conda activate pointcloud

安装PyTorch(CUDA 11.8版本):

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

小技巧:安装前先确认PyTorch官网的最新稳定版。我习惯用pip而不是conda装PyTorch,因为conda源更新慢,容易装到旧版本。

验证PyTorch是否识别GPU:

python -c "import torch; print(torch.cuda.is_available())"

如果输出True,恭喜你,环境成了。

TensorFlow的安装类似:

pip install tensorflow==2.12.0
python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"

3.4 Open3D/PointNet++库安装

Open3D是点云处理的瑞士军刀。安装很简单:

pip install open3d

验证:

python -c "import open3d as o3d; print(o3d.__version__)"

PointNet++的安装稍微麻烦点。我建议直接从官方源码编译:

git clone https://github.com/yanx27/Pointnet_Pointnet2_pytorch.git
cd Pointnet_Pointnet2_pytorch
pip install -r requirements.txt

注意:PointNet++依赖的某些C++扩展需要编译。如果报错,八成是g++版本问题。我遇到过g++版本太高导致编译失败,降到g++-9就好了。

sudo apt install g++-9
export CC=gcc-9 CXX=g++-9
python setup.py install

3.5 Docker环境部署

Docker是终极解决方案。说白了,就是把你搭好的环境打包,换个机器也能直接用。

安装Docker:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER

拉取点云深度学习镜像:

docker pull nvidia/cuda:11.8.0-cudnn8-devel-ubuntu20.04

创建Dockerfile:

FROM nvidia/cuda:11.8.0-cudnn8-devel-ubuntu20.04

RUN apt update && apt install -y python3 python3-pip git
RUN pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
RUN pip3 install open3d numpy matplotlib

CMD ["/bin/bash"]

构建并运行:

docker build -t pointcloud-env .
docker run -it --gpus all -v /home/user/data:/data pointcloud-env

我的经验:Docker容器里用`-v`挂载数据目录,这样代码和数据分离,容器坏了也不怕。我曾经手滑删了容器,还好数据在外面,不然哭都来不及。

3.6 知识体系总览

下面这张图,是我梳理的整个环境搭建的脉络。你跟着这个流程走,基本不会迷路。

点云深度学习环境搭建知识体系 环境搭建总目标 Ubuntu系统配置 CUDA/CuDNN安装 PyTorch/TensorFlow 系统更新 & 基础工具 驱动 & CUDA Toolkit Conda环境 & 框架安装 Open3D / PointNet++ CuDNN配置 & 验证 GPU可用性测试 Docker环境部署

整个流程走下来,你会发现环境搭建其实就三步:系统打底、驱动和框架安装、工具库补齐。Docker是最后的保险,让你能在任何机器上复现环境。

好了,环境搭好了,下一章我们就要开始真正的点云数据处理了。到时候我会带你用Open3D读取点云,看看那些三维坐标到底长什么样。


专注资料整理