项目介绍:MIMDet
MIMDet是一个专注于目标检测的项目,其主要特点是在视觉任务中应用“掩码图像建模”技术。该项目的创新之处在于充分挖掘Vanilla Vision Transformer(ViT)的潜力,实现高性能的物体理解,例如目标检测和实例分割。
项目背景
MIMDet的基础是视觉变压器(Vision Transformer, ViT),这是近年来在计算机视觉领域逐渐受到关注的一种新型网络结构。通过结合掩码图像建模技术(Masked Image Modeling, MIM),研究人员开发出了一种新的架构,该架构能在ViT上进行预训练,从而提升其在复杂场景下的物体识别能力。
项目特点
-
创新的混合架构:MIMDet使用了一种称为“ConvNet-ViT混合”的架构。该架构通过在ViT的基础上加入随机初始化的紧凑卷积干,并与ViT共同作为检测器的“骨架”使用。这样不仅保持了高效的特征提取,也保证了多尺度的特征表示。
-
适应性强的部分观察:即使在只利用25%到50%输入嵌入的部分观察条件下,MIMDet预训练的ViT编码器也能表现出色。这得益于其对复杂目标和场景的优秀识别能力。
-
强大的性能表现:在COCO数据集上,使用ViT-Base与Mask R-CNN FPN结合的MIMDet模型取得了51.7的框AP(Average Precision)和46.2的掩码AP,而使用ViT-L则获得了54.3的框AP和48.2的掩码AP。
-
可扩展性:MIMDet还提供了对“Benchmarking Detection Transfer Learning with Vision Transformers”论文的非官方实现,成功再现其结果,展现了项目在迁移学习任务上的应用前景。
技术实现
环境要求
- 操作系统:Linux
- Python:3.7以上
- CUDA:10.2以上
- GCC:5以上
准备步骤
-
代码克隆:
git clone https://github.com/hustvl/MIMDet.git cd MIMDet
-
设置环境: 创建并激活一个名为mimdet的conda虚拟环境:
conda create -n mimdet python=3.9 conda activate mimdet
-
安装依赖:
- 安装特定版本的PyTorch和其它必要的库,如Detectron2、timm,以及einops。
- 准备COCO数据集,按照Detectron2的方式组织数据目录。
模型训练与推理
-
下载MAE预训练模型的完整检查点并进行训练。
-
单机或多机训练:
python lazyconfig_train_net.py --config-file <CONFIG_FILE> --num-gpus <GPU_NUM> mae_checkpoint.path=<MAE_MODEL_PATH>
-
推理:
python lazyconfig_train_net.py --config-file <CONFIG_FILE> --num-gpus <GPU_NUM> --eval-only train.init_checkpoint=<MODEL_PATH>
该项目的开发基于MAE、Detectron2、以及timm等开源项目,极大地借鉴了这些项目的优良特性并进行了创新性的拓展和应用。MIMDet项目在目标检测领域的成功应用展示了其前沿科技的潜力,为进一步的发展提供了基础。