- Add enhanced README with project structure and quick start guide - Initialize repository with DCNv4 CUDA extension (PyTorch module) - Include classification, detection, and segmentation subdirectories - Reference upstream OpenGVLab DCNv4 implementation Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
FlashInternImage for Semantic Segmentation
This folder contains the implementation of the InternImage for semantic segmentation.
Our segmentation code is developed on top of MMSegmentation v0.27.0.
Usage
Install
- Clone this repo:
git clone https://github.com/OpenGVLab/DCNv4.git
cd DCNv4
- Create a conda virtual environment and activate it:
conda create -n dcnv4 python=3.7 -y
conda activate dcnv4
- Install
CUDA>=10.2withcudnn>=7following the official installation instructions - Install
PyTorch>=1.10.0andtorchvision>=0.9.0withCUDA>=10.2:
For examples, to install torch==1.11 with CUDA==11.3 and nvcc:
conda install pytorch==1.11.0 torchvision==0.12.0 torchaudio==0.11.0 cudatoolkit=11.3 -c pytorch -y
conda install -c conda-forge cudatoolkit-dev=11.3 -y # to install nvcc
-
Install other requirements:
note: conda opencv will break torchvision as not to support GPU, so we need to install opencv using pip.
conda install -c conda-forge termcolor yacs pyyaml scipy pip -y
pip install opencv-python
- Install
timmandmmcv-fulland `mmsegmentation':
pip install -U openmim
mim install mmcv-full==1.5.0
mim install mmsegmentation==0.27.0
pip install timm==0.6.11 mmdet==2.28.1
- Install DCNv4
pip install DCNv4
Data Preparation
Prepare datasets according to the guidelines in MMSegmentation.
Evaluation
To evaluate our FlashInternImage on ADE20K val, run:
sh dist_test.sh <config-file> <checkpoint> <gpu-num> --eval mIoU
You can download checkpoint files from here. Then place it to segmentation/checkpoint_dir/seg.
For example, to evaluate the FlashInternImage-T with a single GPU:
python test.py configs/ade20k/upernet_flash_internimage_t_512_160k_ade20k.py checkpoint_dir/seg/upernet_flash_internimage_t_512_160k_ade20k.pth --eval mIoU
For example, to evaluate the FlashInternImage-B with a single node with 8 GPUs:
sh dist_test.sh configs/ade20k/upernet_flash_internimage_b_512_160k_ade20k.py checkpoint_dir/seg/upernet_flash_internimage_b_512_160k_ade20k.pth 8 --eval mIoU
Training
To train an FlashInternImage on ADE20K, run:
sh dist_train.sh <config-file> <gpu-num>
For example, to train FlashInternImage-T with 8 GPU on 1 node (total batch size 16), run:
sh dist_train.sh configs/ade20k/upernet_flash_internimage_t_512_160k_ade20k.py 8