Deformable-DETR 安装和配置指南
1. 项目基础介绍和主要编程语言
项目介绍
Deformable-DETR 是一个用于端到端目标检测的开源项目,由 Xizhou Zhu、Weijie Su、Lewei Lu、Bin Li、Xiaogang Wang 和 Jifeng Dai 等人开发。该项目通过引入可变形注意力机制,显著提高了 DETR(DEtection TRansformer)的效率和收敛速度。Deformable-DETR 能够在大大减少训练轮次的情况下,实现比 DETR 更好的性能,尤其是在小目标检测方面。
主要编程语言
该项目主要使用 Python 进行开发,同时也涉及到 CUDA、C++ 和 Shell 脚本。
2. 项目使用的关键技术和框架
关键技术
- 可变形注意力机制:通过在参考点周围采样关键点,减少了计算复杂度,提高了模型的收敛速度。
- Transformer:用于处理图像特征图,实现端到端的目标检测。
主要框架
- PyTorch:深度学习框架,用于构建和训练模型。
- CUDA:用于加速 GPU 上的计算操作。
3. 项目安装和配置的准备工作和详细安装步骤
准备工作
在开始安装之前,请确保您的系统满足以下要求:
- 操作系统:Linux
- CUDA:版本 >= 9.2
- GCC:版本 >= 5.4
- Python:版本 >= 3.7
安装步骤
1. 创建并激活 Conda 环境
首先,使用 Anaconda 创建一个新的环境,并激活该环境:
conda create -n deformable_detr python=3.7
conda activate deformable_detr
2. 安装 PyTorch 和 TorchVision
根据您的 CUDA 版本安装 PyTorch 和 TorchVision。例如,如果您的 CUDA 版本是 9.2,可以运行以下命令:
conda install pytorch=1.5.1 torchvision=0.6.1 cudatoolkit=9.2 -c pytorch
3. 安装其他依赖项
安装项目所需的其他依赖项:
pip install -r requirements.txt
4. 编译 CUDA 操作符
进入项目的 models/ops
目录,并编译 CUDA 操作符:
cd models/ops
sh ./make.sh
编译完成后,可以运行单元测试以确保所有操作符都正确编译:
python test.py
5. 下载并准备数据集
下载 COCO 2017 数据集,并将其组织到项目的 data
目录下:
code_root/
└── data/
└── coco/
├── train2017/
├── val2017/
└── annotations/
├── instances_train2017.json
└── instances_val2017.json
6. 训练模型
您可以使用以下命令在单个节点上训练 Deformable-DETR:
GPUS_PER_NODE=8 ./tools/run_dist_launch.sh 8 ./configs/r50_deformable_detr.sh
如果您有多个节点,可以在每个节点上运行相应的命令。例如,在两个节点上训练:
节点 1:
MASTER_ADDR=<IP address of node 1>
NODE_RANK=0
GPUS_PER_NODE=8
./tools/run_dist_launch.sh 16 ./configs/r50_deformable_detr.sh
节点 2:
MASTER_ADDR=<IP address of node 1>
NODE_RANK=1
GPUS_PER_NODE=8
./tools/run_dist_launch.sh 16 ./configs/r50_deformable_detr.sh
7. 评估模型
您可以使用以下命令评估训练好的模型:
<path to config file> --resume <path to pre-trained model> --eval
通过以上步骤,您应该能够成功安装和配置 Deformable-DETR 项目,并开始训练和评估模型。