DAP-MAE: Domain-Adaptive Point Cloud Masked Autoencoder for Effective Cross-Domain Learning
-The code has been released, but there may be some issues in the code, possibly caused by mismatched parameter names during loading. We will fix them as soon as possible.
- 🎉 Jun 2025: [DAP-MAE] is accepted by ICCV 2025 🎉.
In this work, we propose the Domain-Adaptive Point Cloud Masked Autoencoder (DAP-MAE), an MAE pre-training method, to adaptively integrate the knowledge of cross-domain datasets for general point cloud analysis. In DAP-MAE, we design a heterogeneous domain adapter that utilizes an adaptation mode during the pre-training, enabling the model to comprehensively learn information from point clouds across different domains, while employing a fusion mode in the fine-tuning to enhance point cloud features. Meanwhile, DAP-MAE incorporates a domain feature generator to guide the adaptation of point cloud features to various downstream tasks. With only one pre-training, DAP-MAE achieves excellent performance across four different point cloud analysis tasks, reaching 95.18% in object classification on ScanObjectNN and 88.45% in facial expression recognition on Bosphorus.
cd ./extensions/chamfer_dist && python setup.py install --user
# PointNet++
pip install "git+https://github.com/erikwijmans/Pointnet2_PyTorch.git#egg=pointnet2_ops&subdirectory=pointnet2_ops_lib"
# GPU kNN
pip install --upgrade https://github.com/unlimblue/KNN_CUDA/releases/download/0.2/KNN_CUDA-0.2-py3-none-any.whl
We use FRGCv2, Bosphorus, BU3DFE, ShapeNet, ScanObjectNN, ModelNet40, S3DIS and ShapeNetPart in this work. See DATASET.md for details.
You can find the pre-trained model and fine-tuned checkpoints for downstream tasks right here: Google drive
PS: We only upload the pre-trained model and the checkpoint on Scanobjectnn OBJ-BG right now because the author is a little bit lazy...
Pre-training on cross-domain datasets
CUDA_VISIBLE_DEVICES=<GPU> python main.py --config cfgs/pretrain/pretrain.yaml --exp_name <choose your name>
Fine-tuning on Scanobjectnn
CUDA_VISIBLE_DEVICES=<GPU> python main.py --config cfgs/finetune_classification/full/finetune_scan_objbg.yaml --finetune_model --exp_name <choose your name> --ckpts <checkpoints_path>
DAP-MAE is released under MIT License. See the LICENSE file for more details. Besides, the licensing information for pointnet2
modules is available here.
This codebase is built upon ReCon, Pointnet2_PyTorch, ACT