Fast point transformer用于3D點雲的語義分割,
paper和github首頁
github連結
安裝cuda
首先要安裝cuda,github上指定的是11.1
cuda tookit連結
cuDNN連結
cuda安裝完以後記得在
~/.bashrc
中設定路徑
export PATH=/usr/local/cuda-11.1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda-11.1
然後更新一下
source ~/.bashrc
安裝anaconda
這個就不用多說了,去anaconda官網下一個sh檔案
anaconda連結
建立fpt 環境
運作fast point transformer的conda環境是fpt
先把github上代碼clone下來,
但是注意,它的thirdparty/MinkowskiEngine給的是連結,clone下來檔案夾是空的,
要把MinkowskiEngine的github代碼也clone下來
修改conda路徑,在setup.sh的這一行
開始build啦
bash setup.sh fpt
這一步會安裝很多包,極有可能出現time out的情況。
build完成以後會出現這樣的界面。
(反正挺艱難的,很多time out,還有could not find cuda runtime之類)
準備資料集
可以用ScannetV2 和 S3DIS,
ScannetV2資料集有1.2T,是以選了S3DIS資料集。
把它下載下傳下來,檔案夾為Stanford3dDataset_v1.2
fast point transformer用的資料為ply格式,需要預處理,
在preprocess_scannet.py中修改input 和 output path。
處理完以後會得到s3dis_processed檔案夾
接下來要把src/data下面的meta_data copy出來,
建立一個s3dis的路徑,
把meta_data 和 s3dis_processed放到裡面去
s3dis的路徑要寫到./config/s3dis/train_default.gin
# Data module
S3DISArea5RGBDataModule.data_root = "/root/data/s3dis" # you need to modify this according to your data.
訓練
train.py運作以後會提示你要不要用wandb,如果選的用,
它會提示在wandb首頁上注冊一個賬号,然後複制一個key過來,
具體參考quick start首頁
要在train.py的開頭加上這樣兩句,不加的話wandb會報錯
import wandb
wandb.init(project="my-test-project")
然後就開始訓練啦
(fpt) ~/FastPointTransformer$ python train.py config/s3dis/train_fpt.gin
中間儲存的weight在experiments檔案夾裡,ckpt檔案
如果出現cuda run out of memory,可以把batch_size改小一點