From 0fc4b658b1c21a3cdc97a7e4269538439579e05d Mon Sep 17 00:00:00 2001 From: Runyu Ding <39176662+Dingry@users.noreply.github.com> Date: Fri, 25 Aug 2023 15:35:07 +0800 Subject: [PATCH 1/6] Update INSTALL.md --- docs/INSTALL.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/INSTALL.md b/docs/INSTALL.md index cf4df85..b95a60f 100644 --- a/docs/INSTALL.md +++ b/docs/INSTALL.md @@ -7,13 +7,13 @@ All the codes are tested in the following environment: #### Install dependent libraries a. Clone this repository. -```shell +```bash git clone https://github.com/CVMI-Lab/PLA.git ``` b. Install the dependent libraries as follows: -* Install the dependent python libraries: +* Install the dependent Python libraries (Please note that you need to install the correct version of `torch` and `spconv` according to your CUDA version): ```bash pip install -r requirements.txt ``` @@ -28,4 +28,4 @@ b. Install the dependent libraries as follows: * Install [pcseg](../pcseg) ```bash python3 setup.py develop - ``` \ No newline at end of file + ``` From 3d8494b9499c9f7f2b1ed869fd7f57c960042a1a Mon Sep 17 00:00:00 2001 From: Dingry Date: Sat, 26 Aug 2023 15:43:40 +0800 Subject: [PATCH 2/6] add open-vocab test configs --- docs/INFER.md | 15 ++++++++++ .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 2941 bytes .../__pycache__/dataset.cpython-38.pyc | Bin 0 -> 8749 bytes .../__pycache__/indoor_dataset.cpython-38.pyc | Bin 0 -> 7179 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 158 bytes .../augmentor_utils.cpython-38.pyc | Bin 0 -> 4705 bytes .../__pycache__/data_augmentor.cpython-38.pyc | Bin 0 -> 4958 bytes pcseg/datasets/dataset.py | 2 +- .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 158 bytes .../__pycache__/data_processor.cpython-38.pyc | Bin 0 -> 7758 bytes .../__pycache__/s3dis_dataset.cpython-38.pyc | Bin 0 -> 8654 bytes pcseg/datasets/s3dis/s3dis_dataset.py | 5 +++- .../scannet_dataset.cpython-38.pyc | Bin 0 -> 10477 bytes pcseg/datasets/scannet/scannet_dataset.py | 5 +++- .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 1292 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 226 bytes .../__pycache__/vl_adapter.cpython-38.pyc | Bin 0 -> 1995 bytes .../head/__pycache__/__init__.cpython-38.pyc | Bin 0 -> 446 bytes .../__pycache__/binary_head.cpython-38.pyc | Bin 0 -> 3428 bytes .../__pycache__/caption_head.cpython-38.pyc | Bin 0 -> 5408 bytes .../head/__pycache__/inst_head.cpython-38.pyc | Bin 0 -> 14166 bytes .../__pycache__/linear_head.cpython-38.pyc | Bin 0 -> 1842 bytes .../__pycache__/text_seg_head.cpython-38.pyc | Bin 0 -> 4725 bytes pcseg/models/head/inst_head.py | 7 +++-- pcseg/models/head/text_seg_head.py | 8 ++--- .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 624 bytes .../__pycache__/basic_block_1d.cpython-38.pyc | Bin 0 -> 1649 bytes .../__pycache__/fp16.cpython-38.pyc | Bin 0 -> 2213 bytes .../__pycache__/rle_utils.cpython-38.pyc | Bin 0 -> 1517 bytes .../__pycache__/unet_blocks.cpython-38.pyc | Bin 0 -> 5166 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 2400 bytes .../prompt_template.cpython-38.pyc | Bin 0 -> 2592 bytes .../__pycache__/text_models.cpython-38.pyc | Bin 0 -> 1388 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 253 bytes .../spconv_unet_indoor.cpython-38.pyc | Bin 0 -> 2498 bytes .../vfe/__pycache__/__init__.cpython-38.pyc | Bin 0 -> 299 bytes .../vfe/__pycache__/indoor_vfe.cpython-38.pyc | Bin 0 -> 1196 bytes .../__pycache__/vfe_template.cpython-38.pyc | Bin 0 -> 1032 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 509 bytes .../network_template.cpython-38.pyc | Bin 0 -> 9797 bytes .../sparseunet_textseg.cpython-38.pyc | Bin 0 -> 1753 bytes .../vision_networks/network_template.py | 3 +- .../softgroup_clip_base8_caption_adamw.yaml | 3 ++ .../softgroup_clip_base13_caption_adamw.yaml | 3 ++ .../inst/softgroup_clip_openvocab_test.yaml | 28 ++++++++++++++++++ .../spconv_clip_openvocab_test.yaml | 18 +++++++++++ tools/eval_utils/inst_eval/eval_utils.py | 6 ++-- tools/test.py | 6 +++- 48 files changed, 92 insertions(+), 17 deletions(-) create mode 100644 docs/INFER.md create mode 100644 pcseg/datasets/__pycache__/__init__.cpython-38.pyc create mode 100644 pcseg/datasets/__pycache__/dataset.cpython-38.pyc create mode 100644 pcseg/datasets/__pycache__/indoor_dataset.cpython-38.pyc create mode 100644 pcseg/datasets/augmentor/__pycache__/__init__.cpython-38.pyc create mode 100644 pcseg/datasets/augmentor/__pycache__/augmentor_utils.cpython-38.pyc create mode 100644 pcseg/datasets/augmentor/__pycache__/data_augmentor.cpython-38.pyc create mode 100644 pcseg/datasets/processor/__pycache__/__init__.cpython-38.pyc create mode 100644 pcseg/datasets/processor/__pycache__/data_processor.cpython-38.pyc create mode 100644 pcseg/datasets/s3dis/__pycache__/s3dis_dataset.cpython-38.pyc create mode 100644 pcseg/datasets/scannet/__pycache__/scannet_dataset.cpython-38.pyc create mode 100644 pcseg/models/__pycache__/__init__.cpython-38.pyc create mode 100644 pcseg/models/adapter/__pycache__/__init__.cpython-38.pyc create mode 100644 pcseg/models/adapter/__pycache__/vl_adapter.cpython-38.pyc create mode 100644 pcseg/models/head/__pycache__/__init__.cpython-38.pyc create mode 100644 pcseg/models/head/__pycache__/binary_head.cpython-38.pyc create mode 100644 pcseg/models/head/__pycache__/caption_head.cpython-38.pyc create mode 100644 pcseg/models/head/__pycache__/inst_head.cpython-38.pyc create mode 100644 pcseg/models/head/__pycache__/linear_head.cpython-38.pyc create mode 100644 pcseg/models/head/__pycache__/text_seg_head.cpython-38.pyc create mode 100644 pcseg/models/model_utils/__pycache__/__init__.cpython-38.pyc create mode 100644 pcseg/models/model_utils/__pycache__/basic_block_1d.cpython-38.pyc create mode 100644 pcseg/models/model_utils/__pycache__/fp16.cpython-38.pyc create mode 100644 pcseg/models/model_utils/__pycache__/rle_utils.cpython-38.pyc create mode 100644 pcseg/models/model_utils/__pycache__/unet_blocks.cpython-38.pyc create mode 100644 pcseg/models/text_networks/__pycache__/__init__.cpython-38.pyc create mode 100644 pcseg/models/text_networks/__pycache__/prompt_template.cpython-38.pyc create mode 100644 pcseg/models/text_networks/__pycache__/text_models.cpython-38.pyc create mode 100644 pcseg/models/vision_backbones_3d/__pycache__/__init__.cpython-38.pyc create mode 100644 pcseg/models/vision_backbones_3d/__pycache__/spconv_unet_indoor.cpython-38.pyc create mode 100644 pcseg/models/vision_backbones_3d/vfe/__pycache__/__init__.cpython-38.pyc create mode 100644 pcseg/models/vision_backbones_3d/vfe/__pycache__/indoor_vfe.cpython-38.pyc create mode 100644 pcseg/models/vision_backbones_3d/vfe/__pycache__/vfe_template.cpython-38.pyc create mode 100644 pcseg/models/vision_networks/__pycache__/__init__.cpython-38.pyc create mode 100644 pcseg/models/vision_networks/__pycache__/network_template.cpython-38.pyc create mode 100644 pcseg/models/vision_networks/__pycache__/sparseunet_textseg.cpython-38.pyc create mode 100644 tools/cfgs/scannet_models/inst/softgroup_clip_openvocab_test.yaml create mode 100644 tools/cfgs/scannet_models/spconv_clip_openvocab_test.yaml diff --git a/docs/INFER.md b/docs/INFER.md new file mode 100644 index 0000000..9bb2419 --- /dev/null +++ b/docs/INFER.md @@ -0,0 +1,15 @@ +If you wish to test on custom 3D scenes or categories, you can utilize our example configs: + `tools/cfgs/scannet_models/spconv_clip_openvocab.yaml` and `tools/cfgs/scannet_models/inst/softgroup_clip_openvocab.yaml` + +The key parameters to consider are as follows: +- `TEXT_EMBED.CATEGORY_NAMES` + + This parameter allows you to define the category list for segmentation. + +- `TASK_HEAD.CORRECT_SEG_PRED_BINARY` and `INST_HEAD.CORRECT_SEG_PRED_BINARY` + + These parameters allow you to decide using binary head to rectify semantic scores or not. + + +To save the results, you can use the command `--save_results semantic,instance`. Afterward, you can employ the visualization utilities found in tools/visual_utils/visualize_indoor.py to visualize the predicted results. + diff --git a/pcseg/datasets/__pycache__/__init__.cpython-38.pyc b/pcseg/datasets/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c190c9cb7755af1f13e26e389521e1fbbf243f7b GIT binary patch literal 2941 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 bvm`!Vub}c4hfQvNN@-529mw#{K+FIDFU%#( literal 0 HcmV?d00001 diff --git a/pcseg/datasets/augmentor/__pycache__/augmentor_utils.cpython-38.pyc b/pcseg/datasets/augmentor/__pycache__/augmentor_utils.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d5a71931eaa5dd19fa122c73a31859ddde7dd10e GIT binary patch literal 4705 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 literal 0 HcmV?d00001 diff --git a/pcseg/datasets/s3dis/__pycache__/s3dis_dataset.cpython-38.pyc b/pcseg/datasets/s3dis/__pycache__/s3dis_dataset.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9f704ea55112a97f41e47c8b0ca02c18bf5b7368 GIT binary patch literal 8654 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 APXGV_ literal 0 HcmV?d00001 diff --git a/pcseg/datasets/s3dis/s3dis_dataset.py b/pcseg/datasets/s3dis/s3dis_dataset.py index 7262c26..588453f 100644 --- a/pcseg/datasets/s3dis/s3dis_dataset.py +++ b/pcseg/datasets/s3dis/s3dis_dataset.py @@ -215,7 +215,10 @@ def __init__(self, dataset_cfg, class_names, training, root_path, logger=None): S3DISDataset.__init__(self, dataset_cfg, class_names, training, root_path, logger=logger) self.inst_class_idx = dataset_cfg.inst_class_idx self.inst_label_shift = dataset_cfg.inst_label_shift - if 'base_class_idx' in dataset_cfg: + if 'base_inst_class_idx' in dataset_cfg: + self.base_inst_class_idx = dataset_cfg.base_inst_class_idx + self.novel_inst_class_idx = dataset_cfg.novel_inst_class_idx + elif 'base_class_idx' in dataset_cfg: self.base_inst_class_idx = self.base_class_idx self.novel_inst_class_idx = self.novel_class_idx self.sem2ins_classes = dataset_cfg.sem2ins_classes diff --git a/pcseg/datasets/scannet/__pycache__/scannet_dataset.cpython-38.pyc b/pcseg/datasets/scannet/__pycache__/scannet_dataset.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..77d436b5349d55871c75f2e3b7a457e4b97f9c86 GIT binary patch literal 10477 zcmcIqOOPDrUGLZQ^z=M;cJ`^aEyo@u>^ibACJ0*_ujGh`m14<+bjj|_&euCTvok&8 zuY2Xyx~CGdGUkA>N%=r1L(NXBmIzZ$N`$s!Bh;GdR>sMw3e%a<%(ik)4)FvtoB3A3DYT}XDOGtz zVM%7)Q<&xD_H?I+bc)$X+g=grX{O#(%IST~Oj#?dvB4@~WnV)IiR@LMwcC6ZS%DYs z>y)d-si5LkxmO825oKP}3%x3JF!`fJ(=WIU;E4revD5D=8!FS7elO)<(kyXL!O~5Z zM3`U}OCdCw&C&>yti-Y`cTaUJFU9h#a8KD&vG6HYL}~h6#Za6KCO;GBZdNP)nimcx zx>hyC&=OEQiH~L<%&LkKDxn%Fds;(_)JTi;$cPe5eJ`OZk=oE3Mx?k#m*DvZTVcB zu2wo>z3sczjaq!-<&_(^u3lerU%vk8tL}}JTVHdpuDRFOF1uH*Ub}qDv9DcUS#_`e z`pPSpovGE!H>jKv?#-81u3dI)nV@#NnNHPhc@=-D5w!i?6Svx7rP;iD`t9!Npwj9z zz2J1+7b!1X+Q)e*(>2x=(@4Jx^ip9y?Nu>)mu)Q5Z4X1H#X`! zu^F^^=&{(SHQVd49)vtj@pe0OJC$%VHd<{4+!YO)^&pJxpwmQ$8}+6a=R4b>D~iIl z8*H{>E94c7=hx!oW+kYEA?InDhFEDhkI4`H`;+S8&o~tbL*{24MlCv zF=NU<@kqYshxPETERMw*Kxtyf?Pj~eWEb%i^E%9~7yk+M3wdEVvR+htdyBRDmEiHGdfmd6m9mGn4Wz5$1y>J+c ztwq67=Pu8q+akW;0)V30s-_J74^0Cp_3T4a%c+)jQY~l&6@SfC7x5YDqGCMM9`4Q^ zB>bfzW>g7nhCgCv^u3HPI1dmK>I>p+XuO2D4uViiN|%Vl;OD>=lt!WiqKLp81#xI= zJd2iPlYapLpCusn=V`>^6ToMVlLj8U_0Z#i3*2b~0lZGTx*2CeLUEZ0${H_I8xx06 z3pe>MP*(yhQFhXGQQ*2?L?R$`SHy~KZFlyOwTg-dmP!p$_{375#U@}Oa#`xC@`3vL z@h-Rv7M%&f=X&6JJu}jJNd_*!^aU)H8SiKa6UYZAAs*LPgACeOy%aN1E4iiczYFbN zIzpQ_jIQ1_x{0pYO@hk_W{PzC~;6c*exx4GW-HnaV18*T@dr&}w zuPjeCNx99+y4OU#2RRUU5RTJHm)F)&P|n6F@K+)_5FBAuoTyf+n_jH7gV+$nZF)Q4 zQ2~ESlnPG8=O}J$)O{8w!ZxpN@-xWcBLF`7+m zw!=+e>>)hl^JxAYzJM5jqMB+(y#NXj+mF;w`Y#CVH5#Cf1zL5sul0b@jeKA2nvW?<`fnVZD|Y8vSm;ef zx}duO)pafZ`C%^T1G$g(dDJ+dSLhuqy+^zLLyR;XnZtQ4C?ZzE3{$?1{$?Ujem8|$ zvn;bkEq;dh++>Tc>7NtjSyBF(=shQT{|x!_2kRmy8zm!?!Y%EhLK+xS$tbmvfF_b( z+1 zu)NN8$_s)*Bqx87I?!&e#3sZ$$WPE3|0?Ag)ixv*(Hke^jWxdm!rMldiD0wR@#4&& zXGvLRB?#{#H&OS)=P&S8Y9~l@ks430*Zm5=dvKP?4an{Ax$|)f5+iV%^(_c@DQ8Jf z;a{hg#XFT|ogHXcwxuA!P|Vwr^sa6A{0fcv3W2W?xJuyH0OHJGbTQLI^d6^#wn0++ z66yxe0ua^Ps--@Qe*xcl?YMeUE2^`g|B_nLGwN~8245(t^J)>Yd3XL0M;LW^fEP@m zXHuX9FZc(XVx$fQ@~lGgsizUu-cF2VOQbh+Mts5wA+?67KBQM@G(gJ&H=)Y|bFCrQ zK+FJ@Q!5*Imf|0W2pQxL{}}0XFGFSrbn)+F#B5|^Obry2?q+=G?7duMV-6yXR37D- zDBah)Ss#{KH;Wz$!QV#)v*ut=L3J>s9U-wevZ5?33!B*=*5sH- z9z9M+`6$=dL}>~X^*l;TptKxTlZ$dJvjBM=yb;d!pzC9m(Dc!2u}>0NyQ%okU_7O9 z3?mmJ{Cme4B=rk2m19}Zl#X6<2$jZ(#>vJhjBy7!d2pc|D~$3_BmWath;mydVn4!2 zXQ*7%np#jcG#F*Y_cYnY&mctZsD~%UGX~vGuSudD(QT|Q30;|IaNf6s2312$Q9gAq zmF?K>v_U2T2~&Zv(1}Q31_Ec}>?FDdvEAnNTHSX+yF$CIwzvH-&J6W#!rWM|GgOp1 zHtDd?wdxoxE*wyw>${*&K~M4Qcn0pB_6~$~Ae3uU=F3?nHlQa5d>uVO2{tMa$K@v{ z^uTYUfZrnUDgby0ulTT`euHwpNq`uM)E0>g$Q?O`nDa%L5M#?>Y%ElKCUkIjgST7I zEn97V*D3#>DhnHC5gNT$9d}LrVc$qUbu7|6zzbXa1Wo27K%Ankg+1Yf(yi6>SwOetLLYyHdwc1HfZlT_)`_ib$2`lZ!tJhz?eDmh@ zSDiG?pc1&WtxlRWsX+qfN87K$ui)cza>5Af@OIS;V9u4Nq+WBGX8k&WqZpk_1seoB z0^;=Z6J{8zSHpOaK^Wpv1}CH(*n=W{7HKC>Gn-h^A&$wnQK^D2po3Oa@I-LKdF`ZL zK)eVZSENG2 z^Ly&<=`h)|!c>EdkHIX#fb)H@`EKf)V2LW+E>QZ9s#TD+zNPruZ_?Vq#88h6n`~q( zfT{L!tjMPOaPB}{=wO9EWTkGJ%|vN73xjBG9?qX`CL;IS+&kp7Q{K@wAaJ4#cIr?r zb~nZ5*!&Uo4&`r$}-I-{bFbz8~)tl}s zSW^jU+L>Xxh%}7LQF;bx?D;VLf%fJz=u=}RVI{=K@iiwS_%B#e&HXZqQ=?Rz9Yu+u z#c4^}LK73j&Kn?vT?m%ITRyiG?t}--V^SG)d^hn0th|*` z%3b~>wM=qPs`@F<-v$nl<6GaYccg(Z3klUAVJk5cjvs-OFtyundAvL;r4~sP-UV5mpX=BB2*Zi zoC5|CLYxqd;8~zEA36>Rot+_Nu^lHPNr}{iFEb}KO2t!h{7FhXgjxaC^{4oPCV)b6 zZ1mUEfFFQ{k_Gtv_X zX=|yESR5k~J8%O)r#SLH{4sWPw$v#3n8%_7o1Lj_eN-T#F?0F?Jad%K6O9G+~_76lr zNmvYNlqDz1QYf31HM?`s44axG&w?R*A2ZSHf%I%NhrLWhGji9qluJr9EB8*sXQ-6& zWZ0d@>^d+08KSdZYT{C(7lZKT@LnZbXTGR(~Yo|P?JPr%6$>#QBZ+JiTwS%cN) z--%PWW$^=ISHf@-4ixxA5^upd=?OCmj-2&?@6sHe94H8Z`&OGb!L6vB;E=c;9I;Nv z9&^qi*AvtHkS3&U>^R!S-B_#c;6u2MaQ!YWSO-@vwILf0HtQQ9{{b2edv8^Ots!3) ze35@7)+ojc_#Ys_Ta=@2$LgI}Wllj#2kFHT&GVBv;JQvxWSp0Lwu)<47C7^=!4V|` z%|}eunVPI1vj!&b#DFuCm1O_K=}SjsZy%X^$2qEt^X#yu@qMiPU+@LD02Hw4(I4iG zK`Gq^v!4eew;>+z*KPfrx~Nm!0^=_fo)rSXf>~t4oGKu95&gh8QqSQ!X!of@n$^)F z_<#Zhu0NIme~SdTpAz5}9hW>%0-*^1Sr_I{W9UzYZ)xaB0_6^FMWpAM7s4bX-||s) zlJZ`d%#hEmlNi>)$aJq_5f_6un))Rl@=^V!hi%@3GyspttnuftibFn9#}LjG@}43J zJA3RZ-L>Qe#oJxSlot_jAd=%#xi4IOGDvq5LXoZ+cXg}#W`sqaRyu_tXErJxY=f$Fp>WS7I?# z&71IYkP0ab153>zgggm}AP;uuqLae&KLaV4`VFHIkPzcA8Xh?kPl62WU4jo&Vq;_U(q8CR39 z5nP=iwq^25NQ)N@2yy%2Cj753U6kzNg@btCfENRJ;Xnp0Dr8XOba|rtnn1)1lKmX-^IO>^j(vAmYeX&BV8_Xk~{n4xY!pllVXHn`?SJ+ z>S>?uiuTEuv7aH3BS6@+KTm+JsrSzic!B`w)%#Balr!Rh1bW1|L-Qzzv~VusN}ss- zPtYVT`RzME*n^d&5c@rp^S_}=d0A<^sC?kH&ZEun+AcQNzV(`Wb(KFuZ4T0en9c>F z2XfFT>gbdv z>$vrnK6GhtL*J#l-&HzK@#ZBV?p~ChffPA?^er8l9?llEz8k^Q-iN;&eCfNu1zoilBP|H_5Cw*Eo@nypUiNTPJ|c z!Ho~6W0rI*uGL>d(kYQTFD2Oc0AsyX+2Map)yah8cL=;i;54g0g zDloS@a434i>ruhL$RL}zB@xa;lG|LEYl1b1^A!Ann9K?tCE=k0za9xIlYD*n&x@nA z$G4(a$K;H|#H6I>v`V-?{1FMzC(e_`7@j9lHg;0747@nHXF<<|g|Z4~9L2D=q$e6{ zkBB(xei~mu)KLQ=zrKi94R~y}rSru|{T&FsdHBF0_4lFIO++!=kk8qtj zAQ2lU;6lKKqCnju<*rh$*{N5znjSw*Ie$dp8vssP-0d%IhjmrN2Nv=8_-8Yc9!O$R!<8ieZ%t4(GMQnc+8Y#^W5ps!qSKdkI3Hy>N4-AUuX` zj)5@5us}VoG4?zWq>jQF*D;G&ERsI0Q?NxW5raOfGmPFB!DCnt-y&IHR7a}k72|SNsmXC;`s%kAPb#aFFxA09HE#`{ zRpA#?QQFDQQhG4IaJSbboOPyCl1gshDSfg7A&rlVFu?@D_dSjDPawCx5kD3I#upq4 z^j2RW6o)VI60eKH>$Lr2mL%}52<_ssg(m8d{hExy$L-$e=q8yvpf|n;2gT7~spkpsFE@MyytZUDSduHe%C5FzfNu=;f3NMsZTq!8-_|n(O-cX(b<#GXo4D~@ zb<)zVpV5w;yWzD6Ac;C=T-I~jcwD&Lv|MuPFFL)Yye(|23sdFxaxO}QrPazlpE*478pc-jiG8L+^Q2yo$*0t6} zC;Y-iXN~wjGNPs$$zvdO|Ad{ literal 0 HcmV?d00001 diff --git a/pcseg/models/adapter/__pycache__/__init__.cpython-38.pyc b/pcseg/models/adapter/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ef01c1c7f8ee566d4c72bca71f365da749507b26 GIT binary patch literal 226 zcmYjLI}UkK~nTZS)E@Iv5LIGH>$c zy_w9$_dP~{(?c$(-#hUSL1Ip2$3&7zu35no&Y2X7=R6V8S+l@>aIG93#RAmNccT8;ot2lzj7;Pa8q1s!OL1CmK e{W}MUd6_qeVRdZ>6Ee?QO}kHQk7(owCf*-R%Qmh6 literal 0 HcmV?d00001 diff --git a/pcseg/models/adapter/__pycache__/vl_adapter.cpython-38.pyc b/pcseg/models/adapter/__pycache__/vl_adapter.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8e7c0745595b9498b4991f890088316259fd5a33 GIT binary patch literal 1995 zcmZ`)Pj4JG6t_Kpc4o6llQe)Rh(IZ;RbL>aptM~{PD!u^{63?@{NeE!cZ~W}%_w4t6{>`Js#X5r4dipzi z8X)wWRn9jTlrNyG+aMTXI789&i*phYJRLic%LsEaFZUxKqpuNjnfDwqkCRdD*ogv$ zcTm%R13pmi4FTE2W~m>mG@<>hNcQOsme|Gf&6z3c6Buw5VTK~|0u3<3j64q_hdIoB zjv%zheE51Vkc%Q80@Y0TxZ7s&SaX@o-B@q-HXd|4r@jNBk;WxDCa=f|!l;BXbxQoo zwINOjXkMi`3{{$6;!zD|gA$D#u!7JhLn?i6VT}bL-xi!)41QGUv=8M zwAbG1n3aB8Feic&wEPJCEC4`k>c+5{2FN4j4Yz-r8+8jHf1JE~P!Q2`EiP zswp*LUND}~WH2<&kZW@(6_uljO zlB6n_u865~yw+Wdh!Zc112rJEoTm*OW5(wj@LK`B+#?6Z1O>_A_ zt|KiS7-y^d(1e4DNGf!i+BlXvjWgIR%)*zkPWE~b`37s&3(ZocO+BAvIvr;zJna>*mT#YmckE~x#9PqS2O!Ym5_U;|8#usgc$K)s#RM;7 zg2-RK_w33U{4c)f#3pp!?31u}te(L)FsR_aY#}U{OQ2>;d?WHMIs(9#K=Q{#Zo-Vq z(0*t~@Ce8WK5_(nf$jjBkRwwY6!QC6vd>^m*@Pj;kW1>$8g4+20{m>{ zEHg7(_$dI1T80D?ty2n|Gs*0@LFv;;oK06MwyA0$uY+5&I3u%!XBnmE&anoovMQKO zuH`7@gMd;k1XnB0Ziezhn1K`>GY@LVjdb4^RWFcGZp-rd&SJX{M$i^tY;GRSwQY at1x1tnc&v+;J59wQSiq`0ReQ7hVwT_X9>vw literal 0 HcmV?d00001 diff --git a/pcseg/models/head/__pycache__/__init__.cpython-38.pyc b/pcseg/models/head/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b0979dc734b0d17809f629f882fa6ce11f7a26a3 GIT binary patch literal 446 zcmYjNOHRWu5Ve!I`L#PPkxhJo3h~*1RG~_R1>RU`JxYV@BqTwici{qDDO)yh1=uil zf`mtYdT+*_H}=D7l@MI~`BOboLO!hczZNJiaQ9mTMHJP00kcygb=I68xx5NcO;9x(350zOz+`!*g<&%g+iHJRdvywW|dwS z?NBxKUvX2_P;|43ZtH$H>wF7=1!loM;4VwWYCs3sLn)8w;f{{!-q}nUdv9DG zCaWoByNFafyD4K^j&X&SleXQ*P|8AUDc?z#qIU4T=EueWS5TL{**_J%;oHq6ADTw@ sJkNQ1z*)Fy6ri>vaVe|18l=qI(-^I>@}l9~{!f2~u%vVN9-ZUo7X$lk*Z=?k literal 0 HcmV?d00001 diff --git a/pcseg/models/head/__pycache__/binary_head.cpython-38.pyc b/pcseg/models/head/__pycache__/binary_head.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f1301495f5500080d7d5910c5a2a52778750ec6a GIT binary patch literal 3428 zcmbtXNpBm;6|U-?t0h@8mOLIL!34;d7V(dsIZP4z-o zH9cd2%tZz!7heM;hk!g9$REgGsbg|Tgj{kC5KP{yCS^L9Lx42VuWPTje(&+9Rx1;D zS}*?2epe^tuh^M?Ea-dzulzL-Mi`AryZF*J)qNu|+a|>^BeoK|ZR@rfJBizN6R+(h zrFKb=S#de3v@4W6B+O>cYr-6E_NwP*yT<4NX}A|~2ia{<<;Z@Rr7s(%s_k*PAYX6H zku$VKSC7_*q-Vfd(BZ^j?i*v|rdEDssOAgw(F+?1 zTH?Y*0-7gn=l<5=z0K`IIJ*|5EDE`Q%3t{rQx4;K5Oy0klr0B+E|ll{Q5xmGuSy9x zRP2W*9kqC@jqIQBAcyJxAa6T|+xuGw+p0F5%DaNgt|~{VA9jN@<*}+poir2NkAq|A znH`?1N;*jVlPJ!)kg9YtNW(nKVyWDIAo3`Pm64{ZvJvEAcQ+Hs8WSj(K*0nGrs~t{ zc&go9pzvzp0Jckhz+VhNV|a|U&v%ZLvlFE}5SQ$SaUf-M5`mZtCz<#v5X=`m_dy}K zTHM&&dKTr~ovah(awn5gEle+qq2nX7$`1Pd_?468PIcd&$^5gdsme%{ovwTc>V^5!Sm0%ouWYiD8)Lo(Pz^j z;o!5@3And%zT#1*n=6Y2d7y0Yw-~05qd-Cc&_tEAYH^GBDeNx@@+y7|qzSL|fDpr@ zb@-iqI4AU+b!9p^3$R9Ad?&7Aog|BxxDIO?miP>pmX8rYbXbcm7!VJT zyl-mdP7wfy<@bRQ@boIJ8q3r$7K}Q0`?3K(ucM_7(Q&pk=LXZw-{}JA{_+-(cWHHG z{8op-ee$c7k(om(8=BW3#iB!;6Lk6)%Q`(+yCJeNdoZ%_xU2BW1t4=rf-S*v=5B}! zW)HUC+kp3i3xcyu6A;~P7+U|z0Wjk!gW|&0*r99Hr#qZUYzwvAolSETGc}n!I^AihJ}$4Jw|(1>y*a zwiw2xs?KlQMGi352w3av&i}{5S?M?kPmi;dH^F@n!`qA7dwak1A8g$_Jlfy#cOD%a zDvQ5_tn$I7jI->4e9yejn;j&c!6~W&IvvDZBU2%XmPw2A@#R6^rL4!WUFuqjR_!W1 z`}BX6@I4^L1F!LJT+mZ<1clfTKnCUv{Y9_>Fd7yfF4V15NG*YKbd=uMn;v7iW`CeewtfP*OKNy91pQb#u4p{yj3rveLe<>tpl+-u)? z=Rh7h5Z;5{C6|C;8Z4WT^r#0Rzhr=-=abuPeWNUXfd`j;e`-))Rek>jRN_U>(aBX+ zWgg^FnDD%tF`Y)l6WAu6BMI?<+BBnw9I}yLc!cKfC%6RNLZG>@W|mbT9<6?2(6ZyL zcqKgp0Qx;#h3)}hiSXAnFRzpkF`r{Zsr7-)AH>?M|Tjnrc!_$pxb3yHU9%Z{evn1 literal 0 HcmV?d00001 diff --git a/pcseg/models/head/__pycache__/caption_head.cpython-38.pyc b/pcseg/models/head/__pycache__/caption_head.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3f4a74322c957f790e7980cd6259c96c53131f38 GIT binary patch literal 5408 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 Vd$!!B*9qzwu`AXKebLUA`Ck-nNO=GN literal 0 HcmV?d00001 diff --git a/pcseg/models/head/__pycache__/inst_head.cpython-38.pyc b/pcseg/models/head/__pycache__/inst_head.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d656cfbdfe7e570f8188542c4520ec19afc44c85 GIT binary patch literal 14166 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 literal 0 HcmV?d00001 diff --git a/pcseg/models/head/__pycache__/text_seg_head.cpython-38.pyc b/pcseg/models/head/__pycache__/text_seg_head.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..458a831c5cc660b4ba930fb7a3e06f64438fb0fd GIT binary patch literal 4725 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 cl%%rq-pjYW*?f?J) literal 0 HcmV?d00001 diff --git a/pcseg/models/head/inst_head.py b/pcseg/models/head/inst_head.py index ef1f8ab..9f17121 100644 --- a/pcseg/models/head/inst_head.py +++ b/pcseg/models/head/inst_head.py @@ -78,6 +78,7 @@ def __init__(self, model_cfg, in_channel, inst_class_idx, sem2ins_classes, else: self.train_sem_classes = self.valid_class_idx self.test_sem_classes = self.valid_class_idx + self.correct_seg_pred_binary = model_cfg.get('CORRECT_SEG_PRED_BINARY', True) self.forward_ret_dict = {} @@ -118,7 +119,7 @@ def forward_grouping(self, batch_size, semantic_scores, pt_offsets, batch_idxs, binary_scores_list = [] _semantic_scores = semantic_scores.clone() - if not self.training and binary_scores is not None: + if not self.training and binary_scores is not None and self.correct_seg_pred_binary: base_semantic_scores = semantic_scores[..., self.base_class_idx].softmax(dim=-1) novel_semantic_scores = semantic_scores[..., self.novel_class_idx].softmax(dim=-1) semantic_scores = semantic_scores.clone() @@ -244,7 +245,7 @@ def get_instances(self, scan_id, proposals_idx, semantic_scores, cls_scores, iou num_instances = cls_scores.size(0) num_points = semantic_scores.size(0) - if binary_scores is not None: + if self.correct_seg_pred_binary and binary_scores is not None: assert proposal_binary_scores is not None base_cls_scores = cls_scores[..., self.inst_base_class_idx].softmax(dim=-1) novel_cls_scores = cls_scores[..., self.inst_novel_class_idx].softmax(dim=-1) @@ -292,7 +293,7 @@ def get_instances(self, scan_id, proposals_idx, semantic_scores, cls_scores, iou mask_pred = torch.zeros((num_instances, num_points), dtype=torch.int8, device='cuda') mask_inds = cur_mask_scores > self.test_cfg.MASK_SCORE_THR - cur_proposals_idx = proposals_idx[mask_inds].long() + cur_proposals_idx = proposals_idx[mask_inds.cpu()].long() mask_pred[cur_proposals_idx[:, 0], cur_proposals_idx[:, 1]] = 1 # filter low score instance diff --git a/pcseg/models/head/text_seg_head.py b/pcseg/models/head/text_seg_head.py index 19283f9..6d85439 100755 --- a/pcseg/models/head/text_seg_head.py +++ b/pcseg/models/head/text_seg_head.py @@ -11,7 +11,7 @@ class TextSegHead(nn.Module): - def __init__(self, model_cfg, in_channel, ignore_label, **kwargs): + def __init__(self, model_cfg, in_channel, ignore_label, valid_class_idx, **kwargs): super(TextSegHead, self).__init__() self.model_cfg = model_cfg self.in_channel = in_channel @@ -36,14 +36,10 @@ def __init__(self, model_cfg, in_channel, ignore_label, **kwargs): param.requires_grad = False # open vocab - self.valid_class_idx = [i for i in range(len(cfg.CLASS_NAMES))] + self.valid_class_idx = valid_class_idx if hasattr(cfg.DATA_CONFIG, 'base_class_idx'): self.base_class_idx = cfg.DATA_CONFIG.base_class_idx self.novel_class_idx = cfg.DATA_CONFIG.novel_class_idx - if hasattr(cfg.DATA_CONFIG, 'ignore_class_idx'): - self.ignore_class_idx = cfg.DATA_CONFIG.ignore_class_idx - for i in self.ignore_class_idx: - self.valid_class_idx.remove(i) # remap category name for ambigous categories self.need_class_mapping = self.model_cfg.get('CLASS_MAPPING', False) diff --git a/pcseg/models/model_utils/__pycache__/__init__.cpython-38.pyc b/pcseg/models/model_utils/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9675a2310b31bb2dbbe5f825fd84b7dfcd6c5aef GIT binary patch literal 624 zcmZuu!EV$r5cSx}HY{DSY7uA!KM)R^A3zAyE2=70Tp}bZ8@sz{lQ`H@R8Vp%AF@62 zOTPBP-h1i=CPqSgV5E8T#xwRj+n;8$DI?3i{8A6V*!`I78>i$wxqD5Zn1Y(+eNc&lb?{gnn1y4KES|{Z5cw(6o18T;SL6Yycf5i#8qS! zipyvl_dH#2d7uMh|i~-p-DYPJOhl&B_ah){9!Vo*U<*uE32?R)y1T(P*EzuC7quppOId z@kMP4^rC7po%mUK)uD97S1na#{nM3pC>xEoD*ZGhx-;b_f4NtXR+q*qSyvAKTNnrD z&%%x{Gj#rB_K0LZo@5)-=uGK$otf2T;hOC1{QW?kv@I%|y5l!qX%u_7*I z)mA9wvis)ebO$B(G>u>8<^&89ID$i%!wbSgu+M2N6*i$@$F8str0l^l6@2oR#$DI? N-T2lnB1j++e*lfJr4axC literal 0 HcmV?d00001 diff --git a/pcseg/models/model_utils/__pycache__/basic_block_1d.cpython-38.pyc b/pcseg/models/model_utils/__pycache__/basic_block_1d.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c7afbf9baa88b8d5ea0ede309bba6990998ac9b1 GIT binary patch literal 1649 zcmZuxPj4GV6rY*>%@G&^f4RL@RxgsFEx0|FsbgcJg-n>8i=DpwZeMH*+8F-Rj zjC^rnWL)}FV3LGXkdTS`3o@X>6aH~MbVN-A$0T%L5SN4=#A;aQ;nsHVjDgF&ofs0n zS^=EuKn{@p1(+cPol!yeJiTJ*b2=nPzF~zU*ex=no8-suj%tN};u!bDD`-($1N)*T z*iEuV=4=j6ESP$N76p5wnbA^H`T28#(*DO)oDswk4#p8Ka8GzIozmJ>uP@`E=4~-d zZAL~x;lCnSvYx_coKa-|ou8kd0iCz0b^A%A+jZ-tGPA8aT1#b;Jo{FuTv<;=*-%

%Ver;Ez8xI4>H@x zremH)&!o~}GmW(27n-nMN|=bPjdL+grM5IVrMAv_3_8vEDf#&he>!LGxrdFT|9+18TjL;S8 z0(}Jh#>Ku$TlBCA!024QEXK-RE(8nu-v!bKzzT9g<^&MXIiiLZ)Uc5=V=92X#KOqO zu9Z@)prb(0IfE_-U<;sMLk-%i(xP77jR5SznLAg0rRAlsz^=MIg=r~7?H@nC`}+QG zhsU?u4fP(#wvp&0(v3NC7_Mq) zUUn}^d7G(sP^M$GhOtWaKHfCT&R6dGI^5_MFhZN~YtdCG=nZhh4q^MJ&^l^M!P7f>vQp3j2e91{zsFTdndY z#+F?!d>xkUdm#M;7!;lEG4+`tC(yux%~|0V4F8dY`_d_#85uf9e)c)od0@9=$Owm+ z4Orp5qHnczjq{uqemQ<&a|27$^GWkw1fHp7xa&_!oF$W}P%GNI07D%P+^#K6iQLG3f?8 z;8pHFrrjE+o1|6y3;dCd7Bx<|6~SwDTj>5cjzhVvG7&`>c>cH`AmN(&6__SD(R9cr zOkT{%(3#R*CYw1qbf@G9+~;Jow5bd|u(<~|)tS{DluNt9ffIi29MNKNA{f@-#3Q|w zlL>u7p3pwyl(WY^*e)NDo3J{82sVRYxB|AnJZI~07j5Tum3Dna>|Ar3&-{ zka`K&08+Sr`b$>Og5?z4vnidDiSr}db2rH`Ii{u_g-Z9dNK`6&dOs5_$FTM#Lw5~* zaLkO)aU0f+uViE;iP!e`yPchMBsyFq+nsc47^+d{laJr)=roO0r`_&kkrLaTQOX7A z_SGBf0m%LA^0juhZ)$6N5a}o#W$QL!54?KtW8~oCzmsaO#c34AYQ4QU^jzr-4p)G# z0I74ppzub4CDXFxdxVlbW^avdNHlFRiI-*Effgf)9cv4dE4Ub}ZHq*FmC5xNK~-h5 zKxP;IC$ss9)~cxu)F4qhOd??_I+f9m@$T9?HWhAflj+oWDvQ$OfvIn1p;Y31kY`4I zUxa!rg)%3k$l@>(z1fPyN=@~4m}P@x+ql+Q1xrxI|4<7VZpEVI8gGzfW3A*e*0qG} z3^FXFtQE_Yc;{HT!c9V#=@}sW)u;=+33Q%Wt6LEUo8IR}_oCwx;%88iJg625Pa2%|kK3GBk^fHh-1znHB!s%H%vO{OW)H&^P zHldHGu1sN^3O0oy+4be6oDIDMw8GgYg_{%k1FmqQt2mBdv$LeAXg{w^=uL9}EtnRs zsOHt&+4bb3+&v6*Eho8WBP{_yEKgv#p_%UCUb$21dSyZiKd18doF1;?Sl@4hw`vj0 zy!{5A0`M^NlKXjejqLrL2XhJbP7LeAlN<*A8~R{_@+rAPz93Wf zJ(YFvRl{u1-^3|Evw$EG5DsqK=tI*%(_~j(Z$@F#Op|!Oxh0xoC3sV(O)jEThFUcB zj%bdA-br~g?KhL8eLLmjSlj~itcnDiiMJZ^Bsi7$oefJ8Xidvl^_P0=-TTt}i~z0@4<1y@wJnOD^^>Zw%LBCcw9aS5rYd1psyp;>+v6 zj+wlQ@*BWfv|P79*7&b?yl{n+Pnb^|&4X7LCX2v}wRuwZ7Fy0Cj$8v5<=woEl8ske z97Gtl$Vu4hEAk!CT5RJMeAPEWG)qw$$0E{$G*L591IUDbXkrYl-18t!$g*D`qwu@mLj0SbKz$hHFL(rg5L|Uhdj*>|p zk~4IZW1v8hp-YEO&gieiwM+dKy0q_6tz#zvN`a4$kB{Wz+!pf!0+1rz)wdCWv0LTI_5k4PF_fCt$xC^r9=5ZVFMZ=sr>L3CsW zYiyDgwe*Y$TG9^sB`x`Dx*}lX(1+De*(Uf3E&|k^!6?oW><(G6j-iJLPkBhd3w7Vy zB-@0O2@%m*AO<3S31fTYgu=?)h8^v=7`|ewpbH?{(edvORM7~T96WrGY#l7r-CC;B zPVY)@PLo63%#$zolBbo*^)i{~=Gk~ON}$}=rP=Ws_HZECQteoYT=mhib5X1fnBP)*-K?qbKwS zLdg*m1Wro#Q|h>}`kXm7zUSzRbE5Im|Juu@&0J;z&Yd++XStbY-#xsa*`}#YHXdhf zVPu)jAxY5p%})zkfex|v+PGc1;iQyGzG(ICEsO*pA^~CK_*3-iPd1*^O_A4TcYNua zG8gp;cTv$Slr?GOLNm=<>6mKWjiOOSZl!|i!sk<|r3+?FrCi{X7P;9bmmP6rl8 zq7#_$WCLcztD%UyK^J$!Q#K(-T{rL?|FS1N$8gBRHc2V%|00X7|FMU9b9jj$CiVTm zzK3(+cNYE$^x)!k_=~ufOhgrv`3S22k(3DQ2Esa{aAYzAR9~@Q*%3ZXdQM#^?6Q?9 z*EeB`8|216Ef-eGe*KlkU&=d|JgF;Vi)P;LevaE9hY@o48Qy*$=@kwyo&8(e*XXV> zPQ3{t4S~hBu57=5cr0~eT)2Skw;eyO+H|Dvp!4N<9W^d8HrLj;KrQAVr4mNp1~13z z#<6MjPRMT}!}n`8K#(}5`0aRklYU6osony68n_VFZI?bI53ILeSrnPop7?kI&vjAD NT|ALbMa<({{{Va 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 J(Z@#r&ol6iE};Mb literal 0 HcmV?d00001 diff --git a/pcseg/models/text_networks/__pycache__/text_models.cpython-38.pyc b/pcseg/models/text_networks/__pycache__/text_models.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4800df7e912564d8e4fe860073db1f0d196c92a7 GIT binary patch literal 1388 zcmZWp&2rl|5C%X{qA1CBoQ&J_Z#w-sFbDGmGMQ>p&omR+&e-lW<%L5LkVKj!6aY$M z57kREz2yyZkdJ+lJ_N44G_TN87m%HLT5y2HE*87k-EaBha2O&O@r%FM9~7ZKEpvN# zz4NAH!U_GD#@9`cB z-x1blgEuq@89qhP@I6>ZM-etOuZqQc>lGL;pU!~vb5YmJbg7F<<=ARo4vX-DTtoUy&7Qc6D%D_AAJAZyjDCj4r>_{c=za zTVg|cOV(RgXyvuudK)PH2{m6)q<79k`5Ojpj6nN??u!158uA?8vA)yNE4=dHMZ2vx zB@m>4B<Y~Z# zQZ&USH@+4!pBt|%w4u%zw}e8JsK|UDW(QN+C^uvMef=)`IcM1X`SP zYbf%Q;Uvq?C!*nLlhxdKOIanMQ*+LZ@Ah&R-taq;9|QUOhj=b(9y8v|VlgQ*Rmac9 zqgV@3sd#@sUgV0;Vs}r)n!na*!}Tj6&#$@7$^PQPY|Xgd1nOiK(#pC(ID~JH?BakB zat{yi7QRP9EI)y>|3S$n*+J%1iZ404O3 zt=Cdl?Cz%65i!HjQj4?eL`l=L?4e7aKg}w|lfAR!rw2z*l7o}e^x5cSG#(#}pPU|^ zML5~9fT+@GQE`=urn-naW}s!(sHu=Omr8yLPnDn9r3Z`Y^5$g$#WmYgDe80q7?4@f za2EN7+QR&M!SrsbC*?=hfKAwDxo=ImoKCpZn__I*wCIJQii9!xQ{acu-0}FBhaI&bsakT|f*K4Mei)LEPHm&BnpN;Dn qhZPs9@syVC_AM_iYc65ILjd2h;*V^XD{D9a*bT@454_-R5c~syeOT83 literal 0 HcmV?d00001 diff --git a/pcseg/models/vision_backbones_3d/__pycache__/__init__.cpython-38.pyc b/pcseg/models/vision_backbones_3d/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1e7c3cb947cee397578685776be75ae7316aa637 GIT binary patch literal 253 zcmYjL!AiqG5Z&DrEn-1D`3t#Z4!w%lqbNlvz2q_^nW3(3cG7HG@RR(dT)pToc+rU$ zeK2o$yvLi_E*57-0s9Z~y5A@9A5O)sPP$SeLpGS!mev|_Y`rZVWgC;vKCRlh9WORr z)hFJrdAN%t()UxrI?u|>)HM>1c!)fp|MSLE#3}^DH`C8F`%7Q<@FXn*aomB_&sA#S z@nHpnNJvl=&^3v7&ZRTOXP%00@NFRKrFh~ael4AL*Sd~$#kN0o;l;b Fe*g$ELJ0r> literal 0 HcmV?d00001 diff --git a/pcseg/models/vision_backbones_3d/__pycache__/spconv_unet_indoor.cpython-38.pyc b/pcseg/models/vision_backbones_3d/__pycache__/spconv_unet_indoor.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..76208e897ab53b7ecbfbaf722eeb3e6f73203670 GIT binary patch literal 2498 zcmZ`*OK%&=5$>KBhr@?#tzYtbcauXFU;vA&IM`eadu{m^Y77vUs;8ni^!3n21i5E4EskNQLja^E(!`<8~{MZNG<9;3#wYXM< zaah#jy6q40sA$9uN}dv4Rjd6E|*g+9#d*IqX4t=Pt+&HGvwZRr%`NLDMy@ z=R#$ClH?EbDm^mcub)0$Xu-a%VMa5pilQpnL}$55aj}a9m&Kw!10e{yA3NWY0p*lC zr(x_0kGtGEB_}lYxzB@B5(nQBkHj@_u4XRv$B9&8zbEug$*W4H=-I0HpkOF*7xghE zL=#QlkQ3+3nG;I1JMy$Y3UDv(zIA8L6na^0N=G5ob*Lk#8&Ef)Zb99KdTmP2EE{)UX!hdqB&Ajqcs4ruS`m5gfhS~_Vc>6TeH?il0K7t6%JpJL+n}S!P z*3^YH*WUWD+AZAAwl+?v_Rl_=FFgPF4LSP+#{Otd0SW}-d8s$Ny?yJSfBXFA{ox<~ zfaTBkJC1S1SedY>3Q_7w5l6lKJ@#<-%k5wF;|A(ac6MJpe%_Cp+xz_&U+%H~v#sB3 zJ?YT6nNF0h3Z}+eUvEjgnRB=V68ma$P;7NP(>M~c6ggAbu`so9!g*E>jdzeG%0yYo zvsADn@jAs>tAfkm#eM*OaVaG$rbW@=cNY+qOu7C0ELYr<19T) zO4tof;5Z<0bNt#wck@hX$bj*^Ptje>+<-Xb`1TKR zyUAc$rWxD33#pXk>K-Voxe&_M|DwS%-ubbC7>^w{<UcQN3r5Shl_&ZAX_yo`H9_Qu)s$ItpE zI>2;i5^>R9wfA=(?LXKx?N#4`7>qjkPmTnnirUZf0AV2-ZRxi4N$ z0Bh)c)Sn#eZ3E@p;ppIaq8Sp9X+Ka(!1=23v6PiGzD&xYkTqPz!&@-kbFsT`n$<+( zq&#^oU{o?5=dVpe!7Uw>HsT#$Ud8=C0TI_qh!7i;#<$MK%fl>zqW~~<#?m}diZOWw zr(H*ZC~Uy1z5qdJo31+n4VO=ww!ymTc#cQm0q$}Z&pYp35JWU|+VqBV4f;Y7ybJu} zjsJ^{_woRPwhgcP9K;mxKcX`Vgye8K2U0t7<@>K|eI3dKWO^=mFTlPFE1biy%i(zYwJY@VZ&4IXqLwLvAnN+kaUtgmi>AOO06MDPax z@w|xQ6L=v#zVY5gET?utiBK~UV?ZL49HG!;>?QmHEP!Ei!8DbIxTJ;9hZUE2+42ca zYb~=U6#x`=!M{5=#3BO;4ZqnI86j={#Gz4OX|B^YzJ@RSq5Kfn3a!3bmhvMs*X<9+ z=8A{$Z^MQ=zP@0)MYrYW1rc4~9?KfO9U&2rCfKuwv)f+q(t;ShG~wOF@$cc6N#REZ N)4l05=@r^^{|ks#p@ske literal 0 HcmV?d00001 diff --git a/pcseg/models/vision_backbones_3d/vfe/__pycache__/__init__.cpython-38.pyc b/pcseg/models/vision_backbones_3d/vfe/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4cfca89ca4b0f14adf6c44e0093144cfafd7b83f GIT binary patch literal 299 zcmYk1Jx;_h5QS|g5xYzF8c1m}1?>t!0TL1dBz}rCqhviS20IRMSc!AcasjTCmIkgs zffz>=jN~_de&3Abo8@vLxZvqizjFVG=6@w@4*7&V7A>^2!pTa?cvn`rq)Mb9Nr_J0 zRF&%VN)*|bWVn#y?(NC(HM!2#1F@Z-w%Yri9}CqhM*6t@yvVA2dq+6@kyBJH%mgDR z6E^N3*484vi$069QNAzW-a7(K?FM}FPzMK>XGbu2Zv&Jibn8GHa9$JptqI1r*wpLC l#k@o$tH{RrUiDE!8iol7|f8waY#gYT8=m|Zho7?}hH2?S; za)!tIh4=CLcVMms=z;TlWXoEzqu{f9WXCQE()5a7^56KDZ^bs~`A)#D7%)KOgpvIj zRU9gWP$B5UJ{U8%5fC5t5#&UW3Gev_AD;tX^VClkS(~3pS8lYw)6`|vI;2>R47)rt z+6RTsS~uhVc-+OXv)cJ+eZP^btnt(FAO~S6H;aAfma=YKdNS;nn+)|QOLgvf-gM&w ziM&%;I%e)~_^@jfNY@KfSIb#!QB6J=MzpuVx1S>10Z60f{u+DRPcS;Xp3K=3yfnZq z@O)I%7PO#_AaI`p5E=_XC%~NecfvnoF*{*`G8$6$PaJM;UBBHv6J!Zetg@8`DNZB` zuQTXRrF_$6W;_{$V6lNe+Dk6i#z=W%pkp|-IMpEV2porBO-!f3urrH%(AG9T14;`m z+x@p}@l#8`(C4kTRc53q7jEwAqFvg$Ymn+Wm<_P-T?EwDjkech#NUj=Kg55GL9sEL H(kcHB5xX)I literal 0 HcmV?d00001 diff --git a/pcseg/models/vision_backbones_3d/vfe/__pycache__/vfe_template.cpython-38.pyc b/pcseg/models/vision_backbones_3d/vfe/__pycache__/vfe_template.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..539b19ac9ecd6be9a0a492003cb3812044c2d1fe GIT binary patch literal 1032 zcmZuv!EVz)5S_K1#7Pr@)QWS}6R9fuz^y`vswxNp5hB3BmzCq)q-kw$y1OnA^+Y4} z8@RzSKg7XTF7OMSm~lenR*W>WJ3G5GZ{N)OUatcv;l(fUg8}>`r!F2kPf^Vt8Ucc( zkg*_m_gMy_B(=zG8M9t;w)b#d2@IlzsChzW?C8yGXegtPGRwJW>@ zM4o7fCa#Se@E~ep##XuY;n~SMna$GJ%EYN#4K6a<~&JbV>n;JpJ8~a zG8qb)PeL_1i%k~3d36+8rBV|HK{!i{oPH2y_=h#Y#%zT4q{pbnM`Pg&k~suTY#{9IfwC`VW=#{T4iWM(|!zjtxAT z3}^nev%8ifWcYC7(c%97iuc3L=J>5dK>3|}qu3^=2r{v^-&2kt2sV$&Cn3t$Uo(fh z5A!19m+F&D&B5+*e{*}Fdx*F1tXLx0cd2TPmBzsk#M_FS&V0Mh%{q?biZhnSnZz0E zaE=pEq_ppHeo@5fDpGY`-=jMB(UiUQs3kH@Ij_~GR%oiJiC7vFLsROruIIbeS>G#t jt8{W2C)B6vFJ1R939{+p literal 0 HcmV?d00001 diff --git a/pcseg/models/vision_networks/__pycache__/__init__.cpython-38.pyc b/pcseg/models/vision_networks/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..deea5cb1b1f86c2a12448d7a36aa5701fb00896e GIT binary patch literal 509 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 literal 0 HcmV?d00001 diff --git a/pcseg/models/vision_networks/network_template.py b/pcseg/models/vision_networks/network_template.py index 57583bb..bf1d884 100755 --- a/pcseg/models/vision_networks/network_template.py +++ b/pcseg/models/vision_networks/network_template.py @@ -80,7 +80,8 @@ def build_task_head(self, model_info_dict): model_cfg=self.model_cfg.TASK_HEAD, in_channel=in_channel, ignore_label=self.dataset.ignore_label, - num_class=self.num_class + num_class=self.num_class, + valid_class_idx=self.dataset.valid_class_idx ) model_info_dict['module_list'].append(task_head_module) return task_head_module, model_info_dict diff --git a/tools/cfgs/s3dis_models/inst/softgroup_clip_base8_caption_adamw.yaml b/tools/cfgs/s3dis_models/inst/softgroup_clip_base8_caption_adamw.yaml index 2228b6e..01e3d2a 100644 --- a/tools/cfgs/s3dis_models/inst/softgroup_clip_base8_caption_adamw.yaml +++ b/tools/cfgs/s3dis_models/inst/softgroup_clip_base8_caption_adamw.yaml @@ -61,3 +61,6 @@ MODEL: SCENE: 0.0 VIEW: 0.08 ENTITY: 0.02 + + INST_HEAD: + CORRECT_SEG_PRED_BINARY: Tru \ No newline at end of file diff --git a/tools/cfgs/scannet_models/inst/softgroup_clip_base13_caption_adamw.yaml b/tools/cfgs/scannet_models/inst/softgroup_clip_base13_caption_adamw.yaml index 16f7ae3..b49e308 100644 --- a/tools/cfgs/scannet_models/inst/softgroup_clip_base13_caption_adamw.yaml +++ b/tools/cfgs/scannet_models/inst/softgroup_clip_base13_caption_adamw.yaml @@ -62,3 +62,6 @@ MODEL: SCENE: 0.0 VIEW: 0.05 ENTITY: 0.05 + + INST_HEAD: + CORRECT_SEG_PRED_BINARY: True diff --git a/tools/cfgs/scannet_models/inst/softgroup_clip_openvocab_test.yaml b/tools/cfgs/scannet_models/inst/softgroup_clip_openvocab_test.yaml new file mode 100644 index 0000000..df502bd --- /dev/null +++ b/tools/cfgs/scannet_models/inst/softgroup_clip_openvocab_test.yaml @@ -0,0 +1,28 @@ +_BASE_CONFIG_: cfgs/scannet_models/inst/softgroup_clip_base13_caption_adamw.yaml + +DATA_CONFIG: + # TODO: split the input categories into base/novel/ignore. + # Note that if you has gropud-truth annotations for the test samples, + # you need to carefully set thoese parameters to evaluate the performance quantitatively. + # If you just want to evaluate it qualitiatively, you can just put all the categories into base_class_idx. + base_class_idx: [ 0, 1, 2, 3, 4] + novel_class_idx: [] + ignore_class_idx: [ ] + + # TODO: split the categories into inst_base/inst_novel + inst_class_idx: [2, 3] + base_inst_class_idx: [0, 1] # the base category indices for instance categories. The length of this list should be the same as or smaller than the length of inst_class_idx + novel_inst_class_idx: [] + +MODEL: + TASK_HEAD: + CORRECT_SEG_PRED_BINARY: True # TODO: For out-of-domain data, set this to False probably leads to better performance + + INST_HEAD: + CORRECT_SEG_PRED_BINARY: True # TODO: For out-of-domain data, set this to False probably leads to better performance + CLUSTERING: + PREPARE_EPOCH: -1 + +TEXT_ENCODER: + EXTRACT_EMBED: True + CATEGORY_NAMES: [door, window, desk, keyboard, others] # TODO: input your custom categories \ No newline at end of file diff --git a/tools/cfgs/scannet_models/spconv_clip_openvocab_test.yaml b/tools/cfgs/scannet_models/spconv_clip_openvocab_test.yaml new file mode 100644 index 0000000..05a02f3 --- /dev/null +++ b/tools/cfgs/scannet_models/spconv_clip_openvocab_test.yaml @@ -0,0 +1,18 @@ +_BASE_CONFIG_: cfgs/scannet_models/spconv_clip_base15_caption_adamw.yaml + +DATA_CONFIG: + # TODO: split the input categories into base/novel/ignore. + # Note that if you has gropud-truth annotations for the test samples, + # you need to carefully set thoese parameters to evaluate the performance quantitatively. + # If you just want to evaluate it qualitiatively, you can just put all the categories into base_class_idx. + base_class_idx: [ 0, 1, 2, 3, 4] + novel_class_idx: [] + ignore_class_idx: [ ] + +MODEL: + TASK_HEAD: + CORRECT_SEG_PRED_BINARY: True # TODO: For out-of-domain data, set this to False probably leads to better performance + +TEXT_ENCODER: + EXTRACT_EMBED: True + CATEGORY_NAMES: [door, window, desk, keyboard, others] # TODO: input your custom categories \ No newline at end of file diff --git a/tools/eval_utils/inst_eval/eval_utils.py b/tools/eval_utils/inst_eval/eval_utils.py index 1dda7a7..a234c08 100644 --- a/tools/eval_utils/inst_eval/eval_utils.py +++ b/tools/eval_utils/inst_eval/eval_utils.py @@ -40,8 +40,8 @@ def evaluate_matches(self, matches): dist_confs = [self.distance_confs[0]] # results: class x iou - ap = np.zeros((len(dist_threshes), len(self.eval_class_labels), len(ious)), np.float) - rc = np.zeros((len(dist_threshes), len(self.eval_class_labels), len(ious)), np.float) + ap = np.zeros((len(dist_threshes), len(self.eval_class_labels), len(ious)), np.float32) + rc = np.zeros((len(dist_threshes), len(self.eval_class_labels), len(ious)), np.float32) for di, (min_region_size, distance_thresh, distance_conf) in enumerate(zip(min_region_sizes, dist_threshes, dist_confs)): for oi, iou_th in enumerate(ious): @@ -74,7 +74,7 @@ def evaluate_matches(self, matches): cur_true = np.ones(len(gt_instances)) cur_score = np.ones(len(gt_instances)) * (-float('inf')) - cur_match = np.zeros(len(gt_instances), dtype=np.bool) + cur_match = np.zeros(len(gt_instances), dtype=bool) # collect matches for (gti, gt) in enumerate(gt_instances): found_match = False diff --git a/tools/test.py b/tools/test.py index 10bfa33..21c7de5 100755 --- a/tools/test.py +++ b/tools/test.py @@ -203,9 +203,13 @@ def main(): common_utils.oss_data_client = common_utils.OSSClient() logger.info(f'Ceph client initialization with root path at {cfg.DATA_CONFIG.OSS_PATH}') + if cfg.get('TEXT_ENCODER', None) and cfg.TEXT_ENCODER.EXTRACT_EMBED: + class_names = cfg.TEXT_ENCODER.CATEGORY_NAMES + else: + class_names = cfg.CLASS_NAMES test_set, test_loader, sampler = build_dataloader( dataset_cfg=cfg.DATA_CONFIG, - class_names=cfg.CLASS_NAMES, + class_names=class_names, batch_size=args.batch_size, dist=dist_test, workers=args.workers, logger=logger, training=False ) From dd1f69e5e19440328b65ec7429e36a075943a1b7 Mon Sep 17 00:00:00 2001 From: Runyu Ding <39176662+Dingry@users.noreply.github.com> Date: Wed, 22 Nov 2023 15:48:43 +0800 Subject: [PATCH 3/6] Update generate_caption_idx.py --- tools/process_tools/generate_caption_idx.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/process_tools/generate_caption_idx.py b/tools/process_tools/generate_caption_idx.py index 6406495..321fdb6 100644 --- a/tools/process_tools/generate_caption_idx.py +++ b/tools/process_tools/generate_caption_idx.py @@ -215,6 +215,6 @@ def get_entity_caption_corr_idx(self, view_entity_caption, view_caption_corr_idx --view_caption_path ./data/scannetv2/text_embed/caption_view_scannet_vit-gpt2-image-captioning_25k.json \ --view_caption_corr_idx_path ./data/scannetv2/scannetv2_view_vit-gpt2_matching_idx.pickle """ - processor.create_caption_idx(args.workers) + processor.create_entity_caption_idx(args.workers) else: raise NotImplementedError From 78f9b6d9d402fce3e46c07a3b0dff7a170e6d58f Mon Sep 17 00:00:00 2001 From: jihanyang Date: Fri, 3 May 2024 17:05:28 +0800 Subject: [PATCH 4/6] update readme --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 06e2a5e..1e43f95 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,11 @@ TL;DR: PLA leverages powerful VL foundation models to construct hierarchical 3D- ### TODO -- [ ] Release caption processing code +- [x] Release training and inference code +- [x] Release pretrained models +- [x] Release documents and guidelines +- [x] Release scannet caption processing code +- [ ] Release s3dis caption processing code ### Getting Started From 2e4b307f99a146ceaf9e430d4fcb9ebe635cfb71 Mon Sep 17 00:00:00 2001 From: jihanyang Date: Sun, 5 May 2024 16:46:51 +0800 Subject: [PATCH 5/6] update readme --- README.md | 77 +++++++++++++++++++++++++++---------------------------- 1 file changed, 38 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index 1e43f95..2eea3cf 100644 --- a/README.md +++ b/README.md @@ -1,58 +1,48 @@

-

PLA: Language-Driven Open-Vocabulary 3D Scene Understanding

+

PLA & RegionPLC

+

This repo contains the official implementation of PLA (CVPR2023) and RegionPLC (CVPR 2024)

- +
-
- 1The University of Hong Kong  - 2ByteDance -
+

PLA: Language-Driven Open-Vocabulary 3D Scene Understanding

- *equal contribution  - +corresponding author + Runyu Ding*, + Jihan Yang*, + Chuhui Xue, + Wenqing Zhang, + Song Bai, + Xiaojuan Qi,
-**CVPR 2023** +

CVPR 2023

-TL;DR: PLA leverages powerful VL foundation models to construct hierarchical 3D-text pairs for 3D open-world learning. +[project page](https://dingry.github.io/projects/PLA) | [arXiv](https://arxiv.org/abs/2211.16312) - - - - - - - - - - - -
working spacepianovending machine
+
+

RegionPLC: Regional Point-Language Contrastive Learning for Open-World 3D Scene Understanding

- + +

CVPR 2024

- -[project page](https://dingry.github.io/projects/PLA) | [arXiv](https://arxiv.org/abs/2211.16312) +

project page | arXiv

-### TODO -- [x] Release training and inference code -- [x] Release pretrained models -- [x] Release documents and guidelines -- [x] Release scannet caption processing code -- [ ] Release s3dis caption processing code +##### Highlights: +- Official PLA implementation is contained in the `main` branch +- Official RegionPLC implementation is contained in the `regionplc` branch + +### Release +- [2024-05-05] Releasing **RegionPLC** implementation. Please checkout `regionplc` branch to try it! ### Getting Started @@ -78,5 +68,14 @@ If you find this project useful in your research, please consider cite: } ``` +```bibtex +@inproceedings{yang2024regionplc, + title={RegionPLC: Regional point-language contrastive learning for open-world 3d scene understanding}, + author={Yang, Jihan and Ding, Runyu and Deng, Weipeng and Wang, Zhe and Qi, Xiaojuan}, + booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition}, + year={2024} +} +``` + ### Acknowledgement Code is partly borrowed from [OpenPCDet](https://github.com/open-mmlab/OpenPCDet), [PointGroup](https://github.com/dvlab-research/PointGroup) and [SoftGroup](https://github.com/thangvubk/SoftGroup). \ No newline at end of file From 3a7103a4211f6eb1f6d5c518f6cc870c26b96c52 Mon Sep 17 00:00:00 2001 From: Runyu Ding <39176662+Dingry@users.noreply.github.com> Date: Wed, 29 May 2024 10:44:43 -0700 Subject: [PATCH 6/6] Update DATASET.md --- docs/DATASET.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/DATASET.md b/docs/DATASET.md index f081b57..57c4581 100644 --- a/docs/DATASET.md +++ b/docs/DATASET.md @@ -29,7 +29,7 @@ The dataset configs are located within [tools/cfgs/dataset_configs](../tools/cfg python3 pcseg/datasets/s3dis/preprocess.py ``` -- Additionally, please download the caption data [here](https://connecthkuhk-my.sharepoint.com/:f:/g/personal/u3007346_connect_hku_hk/EoNAsU5f8YRGtQYV8ewhwvQB7QPbxT-uwKqTk8FPiyUTtQ?e=wq58H7). Download image data [here](https://github.com/alexsax/2D-3D-Semantics) if you want to generate captions on your own. +- Additionally, please download the caption data [here](https://connecthkuhk-my.sharepoint.com/:f:/g/personal/u3007346_connect_hku_hk/EoNAsU5f8YRGtQYV8ewhwvQB7QPbxT-uwKqTk8FPiyUTtQ?e=wq58H7). If you want to generate captions on your own, please download image data [here](https://github.com/alexsax/2D-3D-Semantics) and follows scripts here: [generate_caption.py](../tools/process_tools/generate_caption.py) and [generate_caption_idx.py](../tools/process_tools/generate_caption_idx.py). - The directory organization should be as follows: @@ -46,5 +46,3 @@ The dataset configs are located within [tools/cfgs/dataset_configs](../tools/cfg ├── pcseg ├── tools ``` - -The scripts that process S3DIS images to generate captions and corresponding point indices will be available soon.