Pointcept เป็น codebase ที่ทรงพลังและยืดหยุ่นสำหรับการวิจัยการรับรู้แบบคลาวด์จุด นอกจากนี้ยังเป็นการดำเนินการอย่างเป็นทางการของบทความต่อไปนี้:
Point Transformer V3: ง่ายขึ้นเร็วขึ้นแข็งแกร่งขึ้น
Xiaoyang Wu, Li Jiang, Peng-Shuai Wang, Zhijian Liu, Xihui Liu, Yu Qiao, Wanli Ouyang, Tong HE, Hengshuang Zhao
การประชุม IEEE เกี่ยวกับการมองเห็นคอมพิวเตอร์และการจดจำรูปแบบ ( CVPR ) 2024 - ORAL
[Backbone] [PTV3] - [arxiv] [bib] [โครงการ] →ที่นี่
OA-CNNS: Omni-Adaptive Sparse CNNS สำหรับการแบ่งส่วนความหมาย 3D
Bohao Peng, Xiaoyang Wu, Li Jiang, Yukang Chen, Hengshuang Zhao, Zhuotao Tian, Jiaya Jia
การประชุม IEEE เกี่ยวกับการมองเห็นคอมพิวเตอร์และการจดจำรูปแบบ ( CVPR ) 2024
[Backbone] [OA -CNNS] - [arxiv] [BIB] →ที่นี่
ไปสู่การเรียนรู้การเป็นตัวแทน 3 มิติขนาดใหญ่ด้วยการฝึกอบรม Propt Multi-Dataset Point
Xiaoyang Wu, Zhuotao Tian, Xin Wen, Bohao Peng, Xihui Liu, Kaicheng Yu, Hengshuang Zhao
การประชุม IEEE เกี่ยวกับการมองเห็นคอมพิวเตอร์และการจดจำรูปแบบ ( CVPR ) 2024
[pretrain] [ppt] - [arxiv] [bib] →ที่นี่
ความคมชัดของฉากที่สวมหน้ากาก: กรอบการทำงานที่ปรับขนาดได้สำหรับการเรียนรู้การเป็นตัวแทน 3 มิติที่ไม่ได้รับการดูแล
Xiaoyang Wu, Xin Wen, Xihui Liu, Hengshuang Zhao
การประชุม IEEE เกี่ยวกับการมองเห็นคอมพิวเตอร์และการจดจำรูปแบบ ( CVPR ) 2023
[pretrain] [MSC] - [arxiv] [bib] →ที่นี่
ตัวจําแนกบริบทการเรียนรู้สำหรับการแบ่งส่วนความหมาย (ส่วน 3D)
Zhuotao Tian, Jiequan Cui, Li Jiang, Xiaojuan Qi, Xin Lai, Yixin Chen, Shu Liu, Jiaya Jia
การประชุม AAAI เกี่ยวกับปัญญาประดิษฐ์ ( AAAI ) 2023 - ปากเปล่า
[SEMSEG] [CAC] - [arxiv] [bib] [ส่วน 2d] →ที่นี่
Point Transformer V2: ความสนใจของเวกเตอร์ที่จัดกลุ่มและการรวมพาร์ติชันโดยใช้พาร์ติชัน
Xiaoyang Wu, Yixing Lao, Li Jiang, Xihui Liu, Hengshuang Zhao
การประชุมระบบการประมวลผลข้อมูลระบบประสาท ( Neurips ) 2022
[backbone] [PTV2] - [arxiv] [bib] →ที่นี่
หม้อแปลงจุด
Hengshuang Zhao, Li Jiang, Jiaya Jia, Philip Torr, Vladlen Koltun
IEEE International Conference เกี่ยวกับ Vision Computer Vision ( ICCV ) 2021 - ORAL
[Backbone] [PTV1] - [arxiv] [bib] →ที่นี่
นอกจากนี้ Pointcept รวมงานที่ยอดเยี่ยมต่อไปนี้ (มีด้านบน):
Backbone: Minkunet (ที่นี่), Spunet (ที่นี่), spvcnn (ที่นี่), oacnns (ที่นี่), ptv1 (ที่นี่), ptv2 (ที่นี่), ptv3 (ที่นี่), stratifiedformer (ที่นี่), octformer (ที่นี่), swin3d (ที่นี่);
การแบ่งส่วนความหมาย: Mix3D (ที่นี่), CAC (ที่นี่);
การแบ่งส่วนอินสแตนซ์: PointGroup (ที่นี่);
การฝึกอบรมล่วงหน้า: PointContrast (ที่นี่), บริบทของฉากคอนทราสต์ (ที่นี่), ความคมชัดของฉากที่สวมหน้ากาก (ที่นี่), การฝึกอบรมที่รวดเร็ว (ที่นี่);
ชุดข้อมูล: Scannet (ที่นี่), Scannet200 (ที่นี่), Scannet ++ (ที่นี่), S3DIS (ที่นี่), Matterport3d (ที่นี่), Arkitscene, structured3d (ที่นี่), semantickitti (ที่นี่), Nuscenes (ที่นี่), ModelNet40 (ที่นี่)
หากคุณพบว่า การรับรู้ ที่เป็นประโยชน์ต่อการวิจัยของคุณโปรดอ้างถึงการทำงานของเราเป็นกำลังใจ (੭ˊ꒳ˋ) ੭✧
@misc{pointcept2023,
title={Pointcept: A Codebase for Point Cloud Perception Research},
author={Pointcept Contributors},
howpublished = {url{https://github.com/Pointcept/Pointcept}},
year={2023}
}
conda create -n pointcept python=3.8 -y
conda activate pointcept
conda install ninja -y
# Choose version you want here: https://pytorch.org/get-started/previous-versions/
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch -y
conda install h5py pyyaml -c anaconda -y
conda install sharedarray tensorboard tensorboardx yapf addict einops scipy plyfile termcolor timm -c conda-forge -y
conda install pytorch-cluster pytorch-scatter pytorch-sparse -c pyg -y
pip install torch-geometric
# spconv (SparseUNet)
# refer https://github.com/traveller59/spconv
pip install spconv-cu113
# PPT (clip)
pip install ftfy regex tqdm
pip install git+https://github.com/openai/CLIP.git
# PTv1 & PTv2 or precise eval
cd libs/pointops
# usual
python setup.py install
# docker & multi GPU arch
TORCH_CUDA_ARCH_LIST= " ARCH LIST " python setup.py install
# e.g. 7.5: RTX 3000; 8.0: a100 More available in: https://developer.nvidia.com/cuda-gpus
TORCH_CUDA_ARCH_LIST= " 7.5 8.0 " python setup.py install
cd ../..
# Open3D (visualization, optional)
pip install open3d การประมวลผลล่วงหน้ารองรับการแบ่งส่วนความหมายและอินสแตนซ์สำหรับทั้ง ScanNet20 , ScanNet200 และ ScanNet Data Efficient
ดาวน์โหลดชุดข้อมูล Scannet V2
เรียกใช้รหัสการประมวลผลล่วงหน้าสำหรับ Scannet ดิบดังนี้:
# RAW_SCANNET_DIR: the directory of downloaded ScanNet v2 raw dataset.
# PROCESSED_SCANNET_DIR: the directory of the processed ScanNet dataset (output dir).
python pointcept/datasets/preprocessing/scannet/preprocess_scannet.py --dataset_root ${RAW_SCANNET_DIR} --output_root ${PROCESSED_SCANNET_DIR}(ไม่บังคับ) ดาวน์โหลดไฟล์ที่มีประสิทธิภาพข้อมูล Scannet:
# download-scannet.py is the official download script
# or follow instructions here: https://kaldir.vc.in.tum.de/scannet_benchmark/data_efficient/documentation#download
python download-scannet.py --data_efficient -o ${RAW_SCANNET_DIR}
# unzip downloads
cd ${RAW_SCANNET_DIR} /tasks
unzip limited-annotation-points.zip
unzip limited-reconstruction-scenes.zip
# copy files to processed dataset folder
mkdir ${PROCESSED_SCANNET_DIR} /tasks
cp -r ${RAW_SCANNET_DIR} /tasks/points ${PROCESSED_SCANNET_DIR} /tasks
cp -r ${RAW_SCANNET_DIR} /tasks/scenes ${PROCESSED_SCANNET_DIR} /tasks(ทางเลือก) ข้อมูลประมวลผลล่วงหน้าของเราสามารถดาวน์โหลดได้โดยตรง [ที่นี่] โปรดตกลงใบอนุญาตอย่างเป็นทางการก่อนดาวน์โหลด
ชุดข้อมูลที่ประมวลผลลิงก์ไปยัง Codebase:
# PROCESSED_SCANNET_DIR: the directory of the processed ScanNet dataset.
mkdir data
ln -s ${PROCESSED_SCANNET_DIR} ${CODEBASE_DIR} /data/scannet # RAW_SCANNETPP_DIR: the directory of downloaded ScanNet++ raw dataset.
# PROCESSED_SCANNETPP_DIR: the directory of the processed ScanNet++ dataset (output dir).
# NUM_WORKERS: the number of workers for parallel preprocessing.
python pointcept/datasets/preprocessing/scannetpp/preprocess_scannetpp.py --dataset_root ${RAW_SCANNETPP_DIR} --output_root ${PROCESSED_SCANNETPP_DIR} --num_workers ${NUM_WORKERS} # PROCESSED_SCANNETPP_DIR: the directory of the processed ScanNet++ dataset (output dir).
# NUM_WORKERS: the number of workers for parallel preprocessing.
python pointcept/datasets/preprocessing/sampling_chunking_data.py --dataset_root ${PROCESSED_SCANNETPP_DIR} --grid_size 0.01 --chunk_range 6 6 --chunk_stride 3 3 --split train --num_workers ${NUM_WORKERS}
python pointcept/datasets/preprocessing/sampling_chunking_data.py --dataset_root ${PROCESSED_SCANNETPP_DIR} --grid_size 0.01 --chunk_range 6 6 --chunk_stride 3 3 --split val --num_workers ${NUM_WORKERS} # PROCESSED_SCANNETPP_DIR: the directory of the processed ScanNet dataset.
mkdir data
ln -s ${PROCESSED_SCANNETPP_DIR} ${CODEBASE_DIR} /data/scannetpp ดาวน์โหลดข้อมูล S3DIS โดยกรอกแบบฟอร์ม Google นี้ ดาวน์โหลดไฟล์ Stanford3dDataset_v1.2.zip และคลายซิป
แก้ไขข้อผิดพลาดใน Area_5/office_19/Annotations/ceiling Line 323474 (103.0�0000 => 103.000000)
(ไม่บังคับ) ดาวน์โหลดชุดข้อมูล 2D-3D S3DIS เต็มรูปแบบ (ไม่มี XYZ) จากที่นี่เพื่อแยกวิเคราะห์ปกติ
เรียกใช้รหัสการประมวลผลล่วงหน้าสำหรับ S3DIS ดังนี้:
# S3DIS_DIR: the directory of downloaded Stanford3dDataset_v1.2 dataset.
# RAW_S3DIS_DIR: the directory of Stanford2d3dDataset_noXYZ dataset. (optional, for parsing normal)
# PROCESSED_S3DIS_DIR: the directory of processed S3DIS dataset (output dir).
# S3DIS without aligned angle
python pointcept/datasets/preprocessing/s3dis/preprocess_s3dis.py --dataset_root ${S3DIS_DIR} --output_root ${PROCESSED_S3DIS_DIR}
# S3DIS with aligned angle
python pointcept/datasets/preprocessing/s3dis/preprocess_s3dis.py --dataset_root ${S3DIS_DIR} --output_root ${PROCESSED_S3DIS_DIR} --align_angle
# S3DIS with normal vector (recommended, normal is helpful)
python pointcept/datasets/preprocessing/s3dis/preprocess_s3dis.py --dataset_root ${S3DIS_DIR} --output_root ${PROCESSED_S3DIS_DIR} --raw_root ${RAW_S3DIS_DIR} --parse_normal
python pointcept/datasets/preprocessing/s3dis/preprocess_s3dis.py --dataset_root ${S3DIS_DIR} --output_root ${PROCESSED_S3DIS_DIR} --raw_root ${RAW_S3DIS_DIR} --align_angle --parse_normal(ทางเลือก) ข้อมูลประมวลผลล่วงหน้าของเราสามารถดาวน์โหลดได้ [ที่นี่] (พร้อมเวกเตอร์ปกติและมุมที่จัดแนว) โปรดตกลงกับใบอนุญาตอย่างเป็นทางการก่อนดาวน์โหลด
เชื่อมโยงชุดข้อมูลที่ประมวลผลไปยัง CodeBase
# PROCESSED_S3DIS_DIR: the directory of processed S3DIS dataset.
mkdir data
ln -s ${PROCESSED_S3DIS_DIR} ${CODEBASE_DIR} /data/s3dis${STRUCT3D_DIR} ) # STRUCT3D_DIR: the directory of downloaded Structured3D dataset.
# PROCESSED_STRUCT3D_DIR: the directory of processed Structured3D dataset (output dir).
# NUM_WORKERS: Number for workers for preprocessing, default same as cpu count (might OOM).
export PYTHONPATH=./
python pointcept/datasets/preprocessing/structured3d/preprocess_structured3d.py --dataset_root ${STRUCT3D_DIR} --output_root ${PROCESSED_STRUCT3D_DIR} --num_workers ${NUM_WORKERS} --grid_size 0.01 --fuse_prsp --fuse_panoตามคำแนะนำของ SWIN3D เราเก็บ 25 หมวดหมู่ด้วยความถี่มากกว่า 0.001 จาก 40 หมวดหมู่เดิม
(ทางเลือก) ข้อมูลประมวลผลล่วงหน้าของเราสามารถดาวน์โหลดได้ [ที่นี่] (พร้อมมุมมองมุมมองและมุมมองพาโนรามา, 471.7G หลังจากคลายซิป) โปรดตกลงใบอนุญาตอย่างเป็นทางการก่อนดาวน์โหลด
เชื่อมโยงชุดข้อมูลที่ประมวลผลไปยัง CodeBase
# PROCESSED_STRUCT3D_DIR: the directory of processed Structured3D dataset (output dir).
mkdir data
ln -s ${PROCESSED_STRUCT3D_DIR} ${CODEBASE_DIR} /data/structured3d # download-mp.py is the official download script
# MATTERPORT3D_DIR: the directory of downloaded Matterport3D dataset.
python download-mp.py -o {MATTERPORT3D_DIR} --type region_segmentations # MATTERPORT3D_DIR: the directory of downloaded Matterport3D dataset.
python pointcept/datasets/preprocessing/matterport3d/unzip_matterport3d_region_segmentation.py --dataset_root {MATTERPORT3D_DIR} # MATTERPORT3D_DIR: the directory of downloaded Matterport3D dataset.
# PROCESSED_MATTERPORT3D_DIR: the directory of processed Matterport3D dataset (output dir).
# NUM_WORKERS: the number of workers for this preprocessing.
python pointcept/datasets/preprocessing/matterport3d/preprocess_matterport3d_mesh.py --dataset_root ${MATTERPORT3D_DIR} --output_root ${PROCESSED_MATTERPORT3D_DIR} --num_workers ${NUM_WORKERS} # PROCESSED_MATTERPORT3D_DIR: the directory of processed Matterport3D dataset (output dir).
mkdir data
ln -s ${PROCESSED_MATTERPORT3D_DIR} ${CODEBASE_DIR} /data/matterport3dตามคำแนะนำของ OpenRooms เราได้ทำการปรับปรุงหมวดหมู่ของ MatterPort3D เพื่อสแกนเน็ต 20 หมวดหมู่ความหมายด้วยการเพิ่มหมวดหมู่เพดาน
# SEMANTIC_KITTI_DIR: the directory of SemanticKITTI dataset.
# |- SEMANTIC_KITTI_DIR
# |- dataset
# |- sequences
# |- 00
# |- 01
# |- ...
mkdir -p data
ln -s ${SEMANTIC_KITTI_DIR} ${CODEBASE_DIR} /data/semantic_kittiดาวน์โหลดชุดข้อมูล Nuscene อย่างเป็นทางการ (พร้อมการแบ่งส่วน LIDAR) และจัดระเบียบไฟล์ที่ดาวน์โหลดดังนี้:
NUSCENES_DIR
│── samples
│── sweeps
│── lidarseg
...
│── v1.0-trainval
│── v1.0-testเรียกใช้รหัสการประมวลผลล่วงหน้า (แก้ไขจาก OpenPCDET) สำหรับ Nuscenes ดังนี้:
# NUSCENES_DIR: the directory of downloaded nuScenes dataset.
# PROCESSED_NUSCENES_DIR: the directory of processed nuScenes dataset (output dir).
# MAX_SWEEPS: Max number of sweeps. Default: 10.
pip install nuscenes-devkit pyquaternion
python pointcept/datasets/preprocessing/nuscenes/preprocess_nuscenes_info.py --dataset_root ${NUSCENES_DIR} --output_root ${PROCESSED_NUSCENES_DIR} --max_sweeps ${MAX_SWEEPS} --with_camera(ทางเลือก) ข้อมูลข้อมูล Nuscenes ล่วงหน้าของเราสามารถดาวน์โหลดได้ [ที่นี่] (เฉพาะข้อมูลที่ประมวลผลยังคงต้องดาวน์โหลดชุดข้อมูล RAW และลิงก์ไปยังโฟลเดอร์) โปรดตกลงใบอนุญาตอย่างเป็นทางการก่อนดาวน์โหลด
เชื่อมโยงชุดข้อมูลดิบไปยังโฟลเดอร์ชุดข้อมูล Nuscene ที่ประมวลผล:
# NUSCENES_DIR: the directory of downloaded nuScenes dataset.
# PROCESSED_NUSCENES_DIR: the directory of processed nuScenes dataset (output dir).
ln -s ${NUSCENES_DIR} {PROCESSED_NUSCENES_DIR}/rawจากนั้นโฟลเดอร์ Nuscenes ที่ประมวลผลจะถูกจัดระเบียบดังนี้:
nuscene
| ── raw
│── samples
│── sweeps
│── lidarseg
...
│── v1.0-trainval
│── v1.0-test
| ── infoเชื่อมโยงชุดข้อมูลที่ประมวลผลไปยัง CodeBase
# PROCESSED_NUSCENES_DIR: the directory of processed nuScenes dataset (output dir).
mkdir data
ln -s ${PROCESSED_NUSCENES_DIR} ${CODEBASE_DIR} /data/nuscenesดาวน์โหลดชุดข้อมูล Waymo อย่างเป็นทางการ (v1.4.3) และจัดระเบียบไฟล์ที่ดาวน์โหลดดังนี้:
WAYMO_RAW_DIR
│── training
│── validation
│── testingติดตั้งการพึ่งพาต่อไปนี้:
# If shows "No matching distribution found", download whl directly from Pypi and install the package.
conda create -n waymo python=3.10 -y
conda activate waymo
pip install waymo-open-dataset-tf-2-12-0เรียกใช้รหัสการประมวลผลล่วงหน้าดังนี้:
# WAYMO_DIR: the directory of the downloaded Waymo dataset.
# PROCESSED_WAYMO_DIR: the directory of the processed Waymo dataset (output dir).
# NUM_WORKERS: num workers for preprocessing
python pointcept/datasets/preprocessing/waymo/preprocess_waymo.py --dataset_root ${WAYMO_DIR} --output_root ${PROCESSED_WAYMO_DIR} --splits training validation --num_workers ${NUM_WORKERS}เชื่อมโยงชุดข้อมูลที่ประมวลผลไปยัง Codebase
# PROCESSED_WAYMO_DIR: the directory of the processed Waymo dataset (output dir).
mkdir data
ln -s ${PROCESSED_WAYMO_DIR} ${CODEBASE_DIR} /data/waymomkdir -p data
ln -s ${MODELNET_DIR} ${CODEBASE_DIR} /data/modelnet40_normal_resampled รถไฟตั้งแต่เริ่มต้น การประมวลผลการฝึกอบรมขึ้นอยู่กับการกำหนดค่าในโฟลเดอร์ configs สคริปต์การฝึกอบรมจะสร้างโฟลเดอร์การทดลองในโฟลเดอร์ exp และรหัสจำเป็นสำรองในโฟลเดอร์การทดลอง การฝึกอบรมการกำหนดค่าบันทึกเทนซอร์บอร์ดและจุดตรวจจะถูกบันทึกลงในโฟลเดอร์การทดลองในระหว่างกระบวนการฝึกอบรม
export CUDA_VISIBLE_DEVICES= ${CUDA_VISIBLE_DEVICES}
# Script (Recommended)
sh scripts/train.sh -p ${INTERPRETER_PATH} -g ${NUM_GPU} -d ${DATASET_NAME} -c ${CONFIG_NAME} -n ${EXP_NAME}
# Direct
export PYTHONPATH=./
python tools/train.py --config-file ${CONFIG_PATH} --num-gpus ${NUM_GPU} --options save_path= ${SAVE_PATH}ตัวอย่างเช่น:
# By script (Recommended)
# -p is default set as python and can be ignored
sh scripts/train.sh -p python -d scannet -c semseg-pt-v2m2-0-base -n semseg-pt-v2m2-0-base
# Direct
export PYTHONPATH=./
python tools/train.py --config-file configs/scannet/semseg-pt-v2m2-0-base.py --options save_path=exp/scannet/semseg-pt-v2m2-0-baseการฝึกอบรมต่อจากจุดตรวจ หากกระบวนการฝึกอบรมถูกขัดจังหวะโดยบังเอิญสคริปต์ต่อไปนี้สามารถกลับมาฝึกอบรมได้จากจุดตรวจที่กำหนด
export CUDA_VISIBLE_DEVICES= ${CUDA_VISIBLE_DEVICES}
# Script (Recommended)
# simply add "-r true"
sh scripts/train.sh -p ${INTERPRETER_PATH} -g ${NUM_GPU} -d ${DATASET_NAME} -c ${CONFIG_NAME} -n ${EXP_NAME} -r true
# Direct
export PYTHONPATH=./
python tools/train.py --config-file ${CONFIG_PATH} --num-gpus ${NUM_GPU} --options save_path= ${SAVE_PATH} resume=True weight= ${CHECKPOINT_PATH}ในระหว่างการฝึกอบรมการประเมินผลแบบจำลองจะดำเนินการกับจุดคลาวด์หลังจากการสุ่มตัวอย่างกริด (voxelization) ให้การประเมินเบื้องต้นเกี่ยวกับประสิทธิภาพของแบบจำลอง อย่างไรก็ตามเพื่อให้ได้ผลการประเมินที่แม่นยำการทดสอบเป็น สิ่งจำเป็น กระบวนการทดสอบเกี่ยวข้องกับการสุ่มตัวอย่างคลาวด์จุดหนาแน่นเป็นลำดับของเมฆจุด voxelized เพื่อให้มั่นใจว่าครอบคลุมทุกจุด ผลลัพธ์ย่อยเหล่านี้จะถูกทำนายและรวบรวมเพื่อสร้างการทำนายที่สมบูรณ์ของคลาวด์จุดทั้งหมด วิธีการนี้ให้ผลการประเมินที่สูงขึ้นเมื่อเทียบกับการทำแผนที่/การแก้ไขการทำนาย นอกจากนี้รหัสการทดสอบของเรารองรับการทดสอบ TTA (การเพิ่มเวลาทดสอบ) ซึ่งช่วยเพิ่มความเสถียรของประสิทธิภาพการประเมิน
# By script (Based on experiment folder created by training script)
sh scripts/test.sh -p ${INTERPRETER_PATH} -g ${NUM_GPU} -d ${DATASET_NAME} -n ${EXP_NAME} -w ${CHECKPOINT_NAME}
# Direct
export PYTHONPATH=./
python tools/test.py --config-file ${CONFIG_PATH} --num-gpus ${NUM_GPU} --options save_path= ${SAVE_PATH} weight= ${CHECKPOINT_PATH}ตัวอย่างเช่น:
# By script (Based on experiment folder created by training script)
# -p is default set as python and can be ignored
# -w is default set as model_best and can be ignored
sh scripts/test.sh -p python -d scannet -n semseg-pt-v2m2-0-base -w model_best
# Direct
export PYTHONPATH=./
python tools/test.py --config-file configs/scannet/semseg-pt-v2m2-0-base.py --options save_path=exp/scannet/semseg-pt-v2m2-0-base weight=exp/scannet/semseg-pt-v2m2-0-base/model/model_best.pth TTA สามารถปิดใช้งานได้โดยแทนที่ data.test.test_cfg.aug_transform = [...] ด้วย:
data = dict (
train = dict (...),
val = dict (...),
test = dict (
...,
test_cfg = dict (
...,
aug_transform = [
[ dict ( type = "RandomRotateTargetAngle" , angle = [ 0 ], axis = "z" , center = [ 0 , 0 , 0 ], p = 1 )]
]
)
)
) Offset เป็นตัวคั่นของเมฆจุดในข้อมูลแบทช์และมันคล้ายกับแนวคิดของ Batch ใน PYG ภาพประกอบภาพของแบทช์และออฟเซ็ตมีดังนี้:
Pointcept ให้ SparseUNet ดำเนินการโดย SpConv และ MinkowskiEngine แนะนำให้ใช้เวอร์ชัน SPCONV เนื่องจาก SPCONV ติดตั้งง่ายและเร็วกว่า MinkowskiEngine ในขณะเดียวกัน SPCONV ก็ถูกนำไปใช้อย่างกว้างขวางในการรับรู้กลางแจ้ง
รุ่น SPCONV SparseUNet ใน Codebase ถูกเขียนใหม่อย่างสมบูรณ์จากรุ่น MinkowskiEngine ตัวอย่างสคริปต์ที่รันอยู่มีดังนี้:
# ScanNet val
sh scripts/train.sh -g 4 -d scannet -c semseg-spunet-v1m1-0-base -n semseg-spunet-v1m1-0-base
# ScanNet200
sh scripts/train.sh -g 4 -d scannet200 -c semseg-spunet-v1m1-0-base -n semseg-spunet-v1m1-0-base
# S3DIS
sh scripts/train.sh -g 4 -d s3dis -c semseg-spunet-v1m1-0-base -n semseg-spunet-v1m1-0-base
# S3DIS (with normal)
sh scripts/train.sh -g 4 -d s3dis -c semseg-spunet-v1m1-0-cn-base -n semseg-spunet-v1m1-0-cn-base
# SemanticKITTI
sh scripts/train.sh -g 4 -d semantic_kitti -c semseg-spunet-v1m1-0-base -n semseg-spunet-v1m1-0-base
# nuScenes
sh scripts/train.sh -g 4 -d nuscenes -c semseg-spunet-v1m1-0-base -n semseg-spunet-v1m1-0-base
# ModelNet40
sh scripts/train.sh -g 2 -d modelnet40 -c cls-spunet-v1m1-0-base -n cls-spunet-v1m1-0-base
# ScanNet Data Efficient
sh scripts/train.sh -g 4 -d scannet -c semseg-spunet-v1m1-2-efficient-la20 -n semseg-spunet-v1m1-2-efficient-la20
sh scripts/train.sh -g 4 -d scannet -c semseg-spunet-v1m1-2-efficient-la50 -n semseg-spunet-v1m1-2-efficient-la50
sh scripts/train.sh -g 4 -d scannet -c semseg-spunet-v1m1-2-efficient-la100 -n semseg-spunet-v1m1-2-efficient-la100
sh scripts/train.sh -g 4 -d scannet -c semseg-spunet-v1m1-2-efficient-la200 -n semseg-spunet-v1m1-2-efficient-la200
sh scripts/train.sh -g 4 -d scannet -c semseg-spunet-v1m1-2-efficient-lr1 -n semseg-spunet-v1m1-2-efficient-lr1
sh scripts/train.sh -g 4 -d scannet -c semseg-spunet-v1m1-2-efficient-lr5 -n semseg-spunet-v1m1-2-efficient-lr5
sh scripts/train.sh -g 4 -d scannet -c semseg-spunet-v1m1-2-efficient-lr10 -n semseg-spunet-v1m1-2-efficient-lr10
sh scripts/train.sh -g 4 -d scannet -c semseg-spunet-v1m1-2-efficient-lr20 -n semseg-spunet-v1m1-2-efficient-lr20
# Profile model run time
sh scripts/train.sh -g 4 -d scannet -c semseg-spunet-v1m1-0-enable-profiler -n semseg-spunet-v1m1-0-enable-profiler รุ่น MinkowskiEngine SparseUNet ใน codebase ได้รับการแก้ไขจาก repo minkowskiengine ดั้งเดิมและตัวอย่างสคริปต์ที่รันอยู่มีดังนี้:
# Uncomment "# from .sparse_unet import *" in "pointcept/models/__init__.py"
# Uncomment "# from .mink_unet import *" in "pointcept/models/sparse_unet/__init__.py"
# ScanNet
sh scripts/train.sh -g 4 -d scannet -c semseg-minkunet34c-0-base -n semseg-minkunet34c-0-base
# ScanNet200
sh scripts/train.sh -g 4 -d scannet200 -c semseg-minkunet34c-0-base -n semseg-minkunet34c-0-base
# S3DIS
sh scripts/train.sh -g 4 -d s3dis -c semseg-minkunet34c-0-base -n semseg-minkunet34c-0-base
# SemanticKITTI
sh scripts/train.sh -g 2 -d semantic_kitti -c semseg-minkunet34c-0-base -n semseg-minkunet34c-0-baseแนะนำ CNNS 3D Omni-Adaptive ( OA-CNNS ) ซึ่งเป็นตระกูลเครือข่ายที่รวมโมดูลที่มีน้ำหนักเบาเพื่อเพิ่มการปรับตัวของ CNNs เบาบางอย่างมากในราคาที่คำนวณน้อยที่สุด OA-CNNs นั้นเหนือกว่าหม้อแปลงพอยต์ในแง่ของความแม่นยำทั้งในร่มและกลางแจ้งโดยมีค่าแฝงและค่าความจำน้อยกว่ามาก ปัญหาที่เกี่ยวข้องกับ OA-CNNS can @pbihao
# ScanNet
sh scripts/train.sh -g 4 -d scannet -c semseg-oacnns-v1m1-0-base -n semseg-oacnns-v1m1-0-basePTV3 เป็นโมเดลกระดูกสันหลังที่มีประสิทธิภาพที่บรรลุการแสดงของ SOTA ในสถานการณ์ในร่มและกลางแจ้ง PTV3 เต็มรูปแบบขึ้นอยู่กับ Flashattention ในขณะที่ Flashattention ขึ้นอยู่กับ CUDA 11.6 ขึ้นไปตรวจสอบให้แน่ใจว่าสภาพแวดล้อมแบบ Pointcept ในท้องถิ่นของคุณเป็นไปตามข้อกำหนด
หากคุณไม่สามารถอัพเกรดสภาพแวดล้อมในท้องถิ่นของคุณเพื่อตอบสนองความต้องการ (cuda> = 11.6) คุณสามารถปิดการใช้งาน Flashattention ได้โดยการตั้งค่าพารามิเตอร์แบบจำลอง enable_flash เป็น false และลด enc_patch_size และ dec_patch_size ให้อยู่ในระดับ (เช่น 128)
Flashattention Force ปิดใช้งาน RPE และบังคับให้ความแม่นยำลดลงเป็น FP16 หากคุณต้องการคุณสมบัติเหล่านี้โปรดปิดใช้งาน enable_flash และปรับ enable_rpe , upcast_attention และ upcast_softmax
คำแนะนำโดยละเอียดและบันทึกการทดลอง (มีน้ำหนัก) มีอยู่ในที่เก็บโครงการ ตัวอย่างสคริปต์ที่รันมีดังนี้:
# Scratched ScanNet
sh scripts/train.sh -g 4 -d scannet -c semseg-pt-v3m1-0-base -n semseg-pt-v3m1-0-base
# PPT joint training (ScanNet + Structured3D) and evaluate in ScanNet
sh scripts/train.sh -g 8 -d scannet -c semseg-pt-v3m1-1-ppt-extreme -n semseg-pt-v3m1-1-ppt-extreme
# Scratched ScanNet200
sh scripts/train.sh -g 4 -d scannet200 -c semseg-pt-v3m1-0-base -n semseg-pt-v3m1-0-base
# Fine-tuning from PPT joint training (ScanNet + Structured3D) with ScanNet200
# PTV3_PPT_WEIGHT_PATH: Path to model weight trained by PPT multi-dataset joint training
# e.g. exp/scannet/semseg-pt-v3m1-1-ppt-extreme/model/model_best.pth
sh scripts/train.sh -g 4 -d scannet200 -c semseg-pt-v3m1-1-ppt-ft -n semseg-pt-v3m1-1-ppt-ft -w ${PTV3_PPT_WEIGHT_PATH}
# Scratched ScanNet++
sh scripts/train.sh -g 4 -d scannetpp -c semseg-pt-v3m1-0-base -n semseg-pt-v3m1-0-base
# Scratched ScanNet++ test
sh scripts/train.sh -g 4 -d scannetpp -c semseg-pt-v3m1-1-submit -n semseg-pt-v3m1-1-submit
# Scratched S3DIS
sh scripts/train.sh -g 4 -d s3dis -c semseg-pt-v3m1-0-base -n semseg-pt-v3m1-0-base
# an example for disbale flash_attention and enable rpe.
sh scripts/train.sh -g 4 -d s3dis -c semseg-pt-v3m1-1-rpe -n semseg-pt-v3m1-0-rpe
# PPT joint training (ScanNet + S3DIS + Structured3D) and evaluate in ScanNet
sh scripts/train.sh -g 8 -d s3dis -c semseg-pt-v3m1-1-ppt-extreme -n semseg-pt-v3m1-1-ppt-extreme
# S3DIS 6-fold cross validation
# 1. The default configs are evaluated on Area_5, modify the "data.train.split", "data.val.split", and "data.test.split" to make the config evaluated on Area_1 ~ Area_6 respectively.
# 2. Train and evaluate the model on each split of areas and gather result files located in "exp/s3dis/EXP_NAME/result/Area_x.pth" in one single folder, noted as RECORD_FOLDER.
# 3. Run the following script to get S3DIS 6-fold cross validation performance:
export PYTHONPATH=./
python tools/test_s3dis_6fold.py --record_root ${RECORD_FOLDER}
# Scratched nuScenes
sh scripts/train.sh -g 4 -d nuscenes -c semseg-pt-v3m1-0-base -n semseg-pt-v3m1-0-base
# Scratched Waymo
sh scripts/train.sh -g 4 -d waymo -c semseg-pt-v3m1-0-base -n semseg-pt-v3m1-0-base
# More configs and exp records for PTv3 will be available soon.การแบ่งส่วนความหมายในร่ม
| แบบอย่าง | เกณฑ์มาตรฐาน | ข้อมูลเพิ่มเติม | num gpus | Val Miou | การกำหนดค่า | บอร์ดบอร์ด | บันทึก exp |
|---|---|---|---|---|---|---|---|
| PTV3 | สแกนเน็ต | 4 | 77.6% | การเชื่อมโยง | การเชื่อมโยง | การเชื่อมโยง | |
| PTV3 + PPT | สแกนเน็ต | 8 | 78.5% | การเชื่อมโยง | การเชื่อมโยง | การเชื่อมโยง | |
| PTV3 | Scannet200 | 4 | 35.3% | การเชื่อมโยง | การเชื่อมโยง | การเชื่อมโยง | |
| PTV3 + PPT | Scannet200 | ✓ (ft) | 4 | ||||
| PTV3 | S3DIS (พื้นที่ 5) | 4 | 73.6% | การเชื่อมโยง | การเชื่อมโยง | การเชื่อมโยง | |
| PTV3 + PPT | S3DIS (พื้นที่ 5) | 8 | 75.4% | การเชื่อมโยง | การเชื่อมโยง | การเชื่อมโยง |
การแบ่งส่วนความหมายกลางแจ้ง
| แบบอย่าง | เกณฑ์มาตรฐาน | ข้อมูลเพิ่มเติม | num gpus | Val Miou | การกำหนดค่า | บอร์ดบอร์ด | บันทึก exp |
|---|---|---|---|---|---|---|---|
| PTV3 | คนโง่ | 4 | 80.3 | การเชื่อมโยง | การเชื่อมโยง | การเชื่อมโยง | |
| PTV3 + PPT | คนโง่ | 8 | |||||
| PTV3 | semantickitti | 4 | |||||
| PTV3 + PPT | semantickitti | 8 | |||||
| PTV3 | เวย์โม | 4 | 71.2 | การเชื่อมโยง | การเชื่อมโยง | ลิงค์ (บันทึกเท่านั้น) | |
| PTV3 + PPT | เวย์โม | 8 |
*น้ำหนักรุ่นที่ปล่อยออกมาได้รับการฝึกฝนสำหรับ v1.5.1 น้ำหนักสำหรับ v1.5.2 และในภายหลังยังคงดำเนินต่อไป
PTV2 ดั้งเดิมได้รับการฝึกฝนเมื่อ 4 * RTX A6000 (หน่วยความจำ 48G) แม้แต่การเปิดใช้งานแอมป์ค่าใช้จ่ายหน่วยความจำของ PTV2 ดั้งเดิมนั้นมีขนาดใหญ่กว่า 24 กรัมเล็กน้อย เมื่อพิจารณาถึง GPU ที่มีหน่วยความจำ 24G สามารถเข้าถึงได้มากขึ้นฉันปรับ PTV2 บน pointcept ล่าสุดและทำให้มันทำงานได้บนเครื่อง 4 * RTX 3090
PTv2 Mode2 เปิดใช้งาน AMP และปิดใช้งาน การเข้ารหัสตำแหน่งตัวคูณ และ การจัดกลุ่มเชิงเส้น ในระหว่างการวิจัยเพิ่มเติมของเราเราพบว่าพิกัดที่แม่นยำนั้นไม่จำเป็นสำหรับการทำความเข้าใจบนคลาวด์จุด (การแทนที่พิกัดที่แม่นยำด้วยพิกัดกริดไม่ได้มีผลต่อประสิทธิภาพการทำงานนอกจากนี้ยังเป็นตัวอย่าง) สำหรับการจัดกลุ่มเชิงเส้นการใช้งานของฉันของกลุ่มเชิงเส้นดูเหมือนว่าจะมีค่าใช้จ่ายหน่วยความจำมากกว่าชั้นเชิงเส้นที่จัดทำโดย Pytorch ได้รับประโยชน์จาก codebase และการปรับพารามิเตอร์ที่ดีกว่าเรายังบรรเทาปัญหาการเกินพิกัด ประสิทธิภาพการทำซ้ำนั้นดีกว่าผลลัพธ์ที่รายงานในบทความของเรา
ตัวอย่างสคริปต์ที่รันมีดังนี้:
# ptv2m2: PTv2 mode2, disable PEM & Grouped Linear, GPU memory cost < 24G (recommend)
# ScanNet
sh scripts/train.sh -g 4 -d scannet -c semseg-pt-v2m2-0-base -n semseg-pt-v2m2-0-base
sh scripts/train.sh -g 4 -d scannet -c semseg-pt-v2m2-3-lovasz -n semseg-pt-v2m2-3-lovasz
# ScanNet test
sh scripts/train.sh -g 4 -d scannet -c semseg-pt-v2m2-1-submit -n semseg-pt-v2m2-1-submit
# ScanNet200
sh scripts/train.sh -g 4 -d scannet200 -c semseg-pt-v2m2-0-base -n semseg-pt-v2m2-0-base
# ScanNet++
sh scripts/train.sh -g 4 -d scannetpp -c semseg-pt-v2m2-0-base -n semseg-pt-v2m2-0-base
# ScanNet++ test
sh scripts/train.sh -g 4 -d scannetpp -c semseg-pt-v2m2-1-submit -n semseg-pt-v2m2-1-submit
# S3DIS
sh scripts/train.sh -g 4 -d s3dis -c semseg-pt-v2m2-0-base -n semseg-pt-v2m2-0-base
# SemanticKITTI
sh scripts/train.sh -g 4 -d semantic_kitti -c semseg-pt-v2m2-0-base -n semseg-pt-v2m2-0-base
# nuScenes
sh scripts/train.sh -g 4 -d nuscenes -c semseg-pt-v2m2-0-base -n semseg-pt-v2m2-0-base PTv2 mode1 เป็น PTV2 ดั้งเดิมที่เรารายงานไว้ในกระดาษตัวอย่างสคริปต์ที่ใช้งานมีดังนี้:
# ptv2m1: PTv2 mode1, Original PTv2, GPU memory cost > 24G
# ScanNet
sh scripts/train.sh -g 4 -d scannet -c semseg-pt-v2m1-0-base -n semseg-pt-v2m1-0-base
# ScanNet200
sh scripts/train.sh -g 4 -d scannet200 -c semseg-pt-v2m1-0-base -n semseg-pt-v2m1-0-base
# S3DIS
sh scripts/train.sh -g 4 -d s3dis -c semseg-pt-v2m1-0-base -n semseg-pt-v2m1-0-basePTV1 ดั้งเดิมยังมีอยู่ใน Pointcept Codebase ของเรา ฉันไม่ได้เรียกใช้ PTV1 เป็นเวลานาน แต่ฉันมั่นใจได้ว่าตัวอย่างสคริปต์ที่ใช้งานได้ดี
# ScanNet
sh scripts/train.sh -g 4 -d scannet -c semseg-pt-v1-0-base -n semseg-pt-v1-0-base
# ScanNet200
sh scripts/train.sh -g 4 -d scannet200 -c semseg-pt-v1-0-base -n semseg-pt-v1-0-base
# S3DIS
sh scripts/train.sh -g 4 -d s3dis -c semseg-pt-v1-0-base -n semseg-pt-v1-0-basepip install torch-points3d
# Fix dependence, caused by installing torch-points3d
pip uninstall SharedArray
pip install SharedArray==3.2.1
cd libs/pointops2
python setup.py install
cd ../..# from .stratified_transformer import * ใน pointcept/models/__init__.py # stv1m1: Stratified Transformer mode1, Modified from the original Stratified Transformer code.
# PTv2m2: Stratified Transformer mode2, My rewrite version (recommend).
# ScanNet
sh scripts/train.sh -g 4 -d scannet -c semseg-st-v1m2-0-refined -n semseg-st-v1m2-0-refined
sh scripts/train.sh -g 4 -d scannet -c semseg-st-v1m1-0-origin -n semseg-st-v1m1-0-origin
# ScanNet200
sh scripts/train.sh -g 4 -d scannet200 -c semseg-st-v1m2-0-refined -n semseg-st-v1m2-0-refined
# S3DIS
sh scripts/train.sh -g 4 -d s3dis -c semseg-st-v1m2-0-refined -n semseg-st-v1m2-0-refined SPVCNN เป็นรูปแบบพื้นฐานของ SPVNAs นอกจากนี้ยังเป็นพื้นฐานที่ใช้งานได้จริงสำหรับชุดข้อมูลกลางแจ้ง
# refer https://github.com/mit-han-lab/torchsparse
# install method without sudo apt install
conda install google-sparsehash -c bioconda
export C_INCLUDE_PATH= ${CONDA_PREFIX} /include: $C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH= ${CONDA_PREFIX} /include:CPLUS_INCLUDE_PATH
pip install --upgrade git+https://github.com/mit-han-lab/torchsparse.git # SemanticKITTI
sh scripts/train.sh -g 2 -d semantic_kitti -c semseg-spvcnn-v1m1-0-base -n semseg-spvcnn-v1m1-0-baseOctformer จาก Octformer: Transformers ที่ใช้ Octree สำหรับเมฆจุด 3D
cd libs
git clone https://github.com/octree-nn/dwconv.git
pip install ./dwconv
pip install ocnn# from .octformer import * ใน pointcept/models/__init__.py # ScanNet
sh scripts/train.sh -g 4 -d scannet -c semseg-octformer-v1m1-0-base -n semseg-octformer-v1m1-0-baseSwin3d จาก Swin3d: กระดูกสันหลังหม้อแปลงที่ผ่านการฝึกฝนสำหรับการทำความเข้าใจฉากในร่ม 3 มิติ
# 1. Install MinkEngine v0.5.4, follow readme in https://github.com/NVIDIA/MinkowskiEngine;
# 2. Install Swin3D, mainly for cuda operation:
cd libs
git clone https://github.com/microsoft/Swin3D.git
cd Swin3D
pip install ./# from .swin3d import * ใน pointcept/models/__init__.py # Structured3D + Swin-S
sh scripts/train.sh -g 4 -d structured3d -c semseg-swin3d-v1m1-0-small -n semseg-swin3d-v1m1-0-small
# Structured3D + Swin-L
sh scripts/train.sh -g 4 -d structured3d -c semseg-swin3d-v1m1-1-large -n semseg-swin3d-v1m1-1-large
# Addition
# Structured3D + SpUNet
sh scripts/train.sh -g 4 -d structured3d -c semseg-spunet-v1m1-0-base -n semseg-spunet-v1m1-0-base
# Structured3D + PTv2
sh scripts/train.sh -g 4 -d structured3d -c semseg-pt-v2m2-0-base -n semseg-pt-v2m2-0-base # ScanNet + Swin-S
sh scripts/train.sh -g 4 -d scannet -w exp/structured3d/semseg-swin3d-v1m1-1-large/model/model_last.pth -c semseg-swin3d-v1m1-0-small -n semseg-swin3d-v1m1-0-small
# ScanNet + Swin-L
sh scripts/train.sh -g 4 -d scannet -w exp/structured3d/semseg-swin3d-v1m1-1-large/model/model_last.pth -c semseg-swin3d-v1m1-1-large -n semseg-swin3d-v1m1-1-large
# S3DIS + Swin-S (here we provide config support S3DIS normal vector)
sh scripts/train.sh -g 4 -d s3dis -w exp/structured3d/semseg-swin3d-v1m1-1-large/model/model_last.pth -c semseg-swin3d-v1m1-0-small -n semseg-swin3d-v1m1-0-small
# S3DIS + Swin-L (here we provide config support S3DIS normal vector)
sh scripts/train.sh -g 4 -d s3dis -w exp/structured3d/semseg-swin3d-v1m1-1-large/model/model_last.pth -c semseg-swin3d-v1m1-1-large -n semseg-swin3d-v1m1-1-large Context-Aware Classifier เป็นตัวแบ่งส่วนที่สามารถเพิ่มประสิทธิภาพของแบ็คโบนแต่ละตัวเพื่อทดแทน Default Segmentor การฝึกอบรมด้วยสคริปต์ตัวอย่างต่อไปนี้:
# ScanNet
sh scripts/train.sh -g 4 -d scannet -c semseg-cac-v1m1-0-spunet-base -n semseg-cac-v1m1-0-spunet-base
sh scripts/train.sh -g 4 -d scannet -c semseg-cac-v1m1-1-spunet-lovasz -n semseg-cac-v1m1-1-spunet-lovasz
sh scripts/train.sh -g 4 -d scannet -c semseg-cac-v1m1-2-ptv2-lovasz -n semseg-cac-v1m1-2-ptv2-lovasz
# ScanNet200
sh scripts/train.sh -g 4 -d scannet200 -c semseg-cac-v1m1-0-spunet-base -n semseg-cac-v1m1-0-spunet-base
sh scripts/train.sh -g 4 -d scannet200 -c semseg-cac-v1m1-1-spunet-lovasz -n semseg-cac-v1m1-1-spunet-lovasz
sh scripts/train.sh -g 4 -d scannet200 -c semseg-cac-v1m1-2-ptv2-lovasz -n semseg-cac-v1m1-2-ptv2-lovaszPointGroup เป็นกรอบพื้นฐานสำหรับการแบ่งส่วนอินสแตนซ์ของพอยต์คลาวด์
conda install -c bioconda google-sparsehash
cd libs/pointgroup_ops
python setup.py install --include_dirs= ${CONDA_PREFIX} /include
cd ../..# from .point_group import * ใน pointcept/models/__init__.py # ScanNet
sh scripts/train.sh -g 4 -d scannet -c insseg-pointgroup-v1m1-0-spunet-base -n insseg-pointgroup-v1m1-0-spunet-base
# S3DIS
sh scripts/train.sh -g 4 -d scannet -c insseg-pointgroup-v1m1-0-spunet-base -n insseg-pointgroup-v1m1-0-spunet-base # ScanNet
sh scripts/train.sh -g 8 -d scannet -c pretrain-msc-v1m1-0-spunet-base -n pretrain-msc-v1m1-0-spunet-base # ScanNet20 Semantic Segmentation
sh scripts/train.sh -g 8 -d scannet -w exp/scannet/pretrain-msc-v1m1-0-spunet-base/model/model_last.pth -c semseg-spunet-v1m1-4-ft -n semseg-msc-v1m1-0f-spunet-base
# ScanNet20 Instance Segmentation (enable PointGroup before running the script)
sh scripts/train.sh -g 4 -d scannet -w exp/scannet/pretrain-msc-v1m1-0-spunet-base/model/model_last.pth -c insseg-pointgroup-v1m1-0-spunet-base -n insseg-msc-v1m1-0f-pointgroup-spunet-basePPT นำเสนอเฟรมเวิร์กก่อนการฝึกอบรมหลายชิ้นและเข้ากันได้กับกรอบการฝึกอบรมก่อนการฝึกอบรมและแบ็คโบนที่มีอยู่มากมาย
# ScanNet + Structured3d, validate on ScanNet (S3DIS might cause long data time, w/o S3DIS for a quick validation) >= 3090 * 8
sh scripts/train.sh -g 8 -d scannet -c semseg-ppt-v1m1-0-sc-st-spunet -n semseg-ppt-v1m1-0-sc-st-spunet
sh scripts/train.sh -g 8 -d scannet -c semseg-ppt-v1m1-1-sc-st-spunet-submit -n semseg-ppt-v1m1-1-sc-st-spunet-submit
# ScanNet + S3DIS + Structured3d, validate on S3DIS (>= a100 * 8)
sh scripts/train.sh -g 8 -d s3dis -c semseg-ppt-v1m1-0-s3-sc-st-spunet -n semseg-ppt-v1m1-0-s3-sc-st-spunet
# SemanticKITTI + nuScenes + Waymo, validate on SemanticKITTI (bs12 >= 3090 * 4 >= 3090 * 8, v1m1-0 is still on tuning)
sh scripts/train.sh -g 4 -d semantic_kitti -c semseg-ppt-v1m1-0-nu-sk-wa-spunet -n semseg-ppt-v1m1-0-nu-sk-wa-spunet
sh scripts/train.sh -g 4 -d semantic_kitti -c semseg-ppt-v1m2-0-sk-nu-wa-spunet -n semseg-ppt-v1m2-0-sk-nu-wa-spunet
sh scripts/train.sh -g 4 -d semantic_kitti -c semseg-ppt-v1m2-1-sk-nu-wa-spunet-submit -n semseg-ppt-v1m2-1-sk-nu-wa-spunet-submit
# SemanticKITTI + nuScenes + Waymo, validate on nuScenes (bs12 >= 3090 * 4; bs24 >= 3090 * 8, v1m1-0 is still on tuning))
sh scripts/train.sh -g 4 -d nuscenes -c semseg-ppt-v1m1-0-nu-sk-wa-spunet -n semseg-ppt-v1m1-0-nu-sk-wa-spunet
sh scripts/train.sh -g 4 -d nuscenes -c semseg-ppt-v1m2-0-nu-sk-wa-spunet -n semseg-ppt-v1m2-0-nu-sk-wa-spunet
sh scripts/train.sh -g 4 -d nuscenes -c semseg-ppt-v1m2-1-nu-sk-wa-spunet-submit -n semseg-ppt-v1m2-1-nu-sk-wa-spunet-submit # RAW_SCANNET_DIR: the directory of downloaded ScanNet v2 raw dataset.
# PROCESSED_SCANNET_PAIR_DIR: the directory of processed ScanNet pair dataset (output dir).
python pointcept/datasets/preprocessing/scannet/scannet_pair/preprocess.py --dataset_root ${RAW_SCANNET_DIR} --output_root ${PROCESSED_SCANNET_PAIR_DIR}
ln -s ${PROCESSED_SCANNET_PAIR_DIR} ${CODEBASE_DIR} /data/scannet # ScanNet
sh scripts/train.sh -g 8 -d scannet -c pretrain-msc-v1m1-1-spunet-pointcontrast -n pretrain-msc-v1m1-1-spunet-pointcontrast # ScanNet
sh scripts/train.sh -g 8 -d scannet -c pretrain-msc-v1m2-0-spunet-csc -n pretrain-msc-v1m2-0-spunet-cscPointcept ได้รับการออกแบบโดย Xiaoyang ตั้งชื่อโดย Yixing และโลโก้ถูกสร้างขึ้นโดย Yuechen มันมาจาก Semseg ของ Hengshuang และสร้างแรงบันดาลใจจาก repos หลายอย่างเช่น MinkowskiEngine, PointNet2, MMCV และ Detectron2