1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
| # 1 准备原始数据: 目录结构如下:smallRoom.txt的每一行为 x y z r g b, floor_1.txt 是 smallRoom.txt的复制 nash5@gas:~/prjs/Pointnet_Pointnet2_pytorch/data/s3dis$ tree ./Stanford3dDataset_v1.2_Aligned_Version ./Stanford3dDataset_v1.2_Aligned_Version └── Area_5 └── office_1 ├── Annotations │ └── floor_1.txt └── smallRoom.txt
# 2 使用s3dis脚本生成测试数据:(你需要修改对应的meta文件,只留下一行) nash5@gas:~/prjs/Pointnet_Pointnet2_pytorch/data/s3dis$ cat ../../data_utils/meta/anno_paths.txt Area_5/office_1/Annotations nash5@gas:~/prjs/Pointnet_Pointnet2_pytorch/data/s3dis$
然后: cd data_utils python collect_indoor3d_data.py
之后会在data目录下生产stanford_indoor3d目录,将其移动到 3dis下面: nash5@gas:~/prjs/Pointnet_Pointnet2_pytorch/data/s3dis$ ls .. modelnet40_normal_resampled s3dis shapenetcore_partanno_segmentation_benchmark_v0_normal stanford_indoor3d_ori myData s3dis_ori nash5@gas:~/prjs/Pointnet_Pointnet2_pytorch/data/s3dis$ ls Stanford3dDataset_v1.2_Aligned_Version stanford_indoor3d
# 3 运行测试脚本:(你需要改动batch_size,1080可以设置为16),然后你会在log里的几层嵌套中找到这个 nash5@gas:~/prjs/Pointnet_Pointnet2_pytorch$ python test_semseg.py --log_dir pointnet2_sem_seg --test_area 5 --visual --batch_size 16 ay(total_correct_class_tmp) / (np.array(total_iou_deno_class_tmp, dtype=np.float) + 1e-6) [0. 0.03883974 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ] Mean IoU of Area_5_office_1: 0.0388 ---------------------------- test_semseg.py:185: DeprecationWarning: `np.float` is a deprecated alias for the builtin `float`. To silence this warning, use `float` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.float64` here. Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations IoU = np.array(total_correct_class) / (np.array(total_iou_deno_class, dtype=np.float) + 1e-6) test_semseg.py:190: RuntimeWarning: invalid value encountered in true_divide total_correct_class[l] / float(total_iou_deno_class[l])) ------- IoU -------- class ceiling , IoU: 0.000 class floor , IoU: 0.039 class wall , IoU: 0.000 class beam , IoU: 0.000 class column , IoU: 0.000 class window , IoU: 0.000 class door , IoU: 0.000 class table , IoU: nan class chair , IoU: 0.000 class sofa , IoU: 0.000 class bookcase , IoU: 0.000 class board , IoU: 0.000 class clutter , IoU: 0.000
eval point avg class IoU: 0.002988 test_semseg.py:194: DeprecationWarning: `np.float` is a deprecated alias for the builtin `float`. To silence this warning, use `float` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.float64` here. Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations np.mean(np.array(total_correct_class) / (np.array(total_seen_class, dtype=np.float) + 1e-6)))) eval whole scene point avg class acc: 0.002988 eval whole scene petails and guidance: https://numpy.org/devdocs/release
# 4 查看结果: 用meshlab看那个pred.obj nash5@gas:~/prjs/Pointnet_Pointnet2_pytorch$ ls log/sem_seg/pointnet2_sem_seg/visual/Area_5_office_1 Area_5_office_1_gt.obj Area_5_office_1_pred.obj Area_5_office_1.txt
|