forked from nickgkan/butd_detr
-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_gen_obj_list.py
70 lines (53 loc) · 18.6 KB
/
test_gen_obj_list.py
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
66
67
68
69
70
# encoding:utf-8
import numpy as np
import json
from plyfile import PlyData
def gen_obj_list(scan_id, data_root="/share/data/ripl/scannet_raw/train/"):
aggregation_json_path = data_root+scan_id+"/"+scan_id+"_vh_clean.aggregation.json"
segs_json_path = data_root+scan_id+"/"+scan_id+"_vh_clean_2.0.010000.segs.json"
ply_path = data_root+scan_id+"/"+scan_id+"_vh_clean_2.ply"
# 打开记录vertex语义(所述分割集)的json文件
print("loading .segs.json file...")
with open(segs_json_path,'r') as vertex_seg_jfile:
seg_result=json.load(vertex_seg_jfile)["segIndices"]
seg_result=np.array(seg_result)
print("loading .aggregation.json file...")
# 打开记录object信息的json文件
with open(aggregation_json_path,'r') as vertex_agg_jfile:
objects=json.load(vertex_agg_jfile)["segGroups"] #dict的list
# 读入ply文件
print("loading .ply file...")
plydata=PlyData.read(ply_path)
header=plydata.header
print("header of .ply file:",header)
# 定义最终返回的,记录所有object信息的dict
objects_info=[]
# 遍历objects
for object in objects:
# 记录物体基本信息
info={"id":object["id"],
"label":object["label"]}
# 获取物体所包含的所有分割集编号
seg_index=object["segments"]
# 获取物体所包含的所有vertex的编号
vertices_index=np.where(np.in1d(seg_result,seg_index)) #np.in1d函数在seg_result中查找每个vertex的分割集编号是否在seg_indx中
# print(vertices_index)
# 在ply文件中找到物体对应的vertices
vertices_all=np.array(plydata.elements[0].data)
vertices=vertices_all[vertices_index]
vertices=np.array([list(vertex) for vertex in vertices]) #转换为2维numpy array
# print(vertices)
# print(vertices.shape)
# 计算相关参数并记录定量信息
x_max,x_min,x_avg=np.max(vertices[:,0]),np.min(vertices[:,0]),np.average(vertices[:,0])
y_max,y_min,y_avg=np.max(vertices[:,1]),np.min(vertices[:,1]),np.average(vertices[:,1])
z_max,z_min,z_avg=np.max(vertices[:,2]),np.min(vertices[:,2]),np.average(vertices[:,2])
info["quan_info"]=[x_avg,y_avg,z_avg,(x_max-x_min),(y_max-y_min),(z_max-z_min)]
objects_info.append(info)
return objects_info
scan_id_list=["scene0264_01", "scene0264_00", "scene0264_02", "scene0375_01", "scene0375_02", "scene0157_00", "scene0157_01", "scene0017_01", "scene0106_01", "scene0106_00", "scene0297_01", "scene0297_00", "scene0341_01", "scene0201_01", "scene0201_00", "scene0310_01", "scene0250_01", "scene0250_02", "scene0250_00", "scene0072_01", "scene0369_00", "scene0369_02", "scene0229_02", "scene0132_01", "scene0163_01", "scene0476_02", "scene0476_00", "scene0476_01", "scene0260_00", "scene0536_02", "scene0320_00", "scene0371_00", "scene0102_00", "scene0293_00", "scene0042_00", "scene0345_00", "scene0194_00", "scene0502_01", "scene0502_02", "scene0588_01", "scene0588_00", "scene0085_00", "scene0254_00", "scene0076_00", "scene0136_00", "scene0027_00", "scene0631_02", "scene0167_00", "scene0177_00", "scene0126_00", "scene0244_00", "scene0452_02", "scene0215_00", "scene0184_00", "scene0489_01", "scene0543_02", "scene0283_00", "scene0584_02", "scene0392_00", "scene0003_00", "scene0143_00", "scene0361_00", "scene0330_00", "scene0270_00", "scene0268_02", "scene0122_01", "scene0239_02", "scene0239_00", "scene0062_01", "scene0062_00", "scene0062_02", "scene0211_02", "scene0211_01", "scene0056_01", "scene0056_00", "scene0116_00", "scene0116_01", "scene0147_01", "scene0365_01", "scene0365_00", "scene0668_00", "scene0274_01", "scene0274_02", "scene0274_00", "scene0619_00", "scene0085_01", "scene0345_01", "scene0499_00", "scene0027_02", "scene0027_01", "scene0371_01", "scene0260_01", "scene0260_02", "scene0320_01", "scene0293_01", "scene0102_01", "scene0042_01", "scene0310_00", "scene0557_00", "scene0557_02", "scene0557_01", "scene0341_00", "scene0190_00", "scene0023_00", "scene0163_00", "scene0072_00", "scene0132_00", "scene0235_00", "scene0472_00", "scene0472_02", "scene0472_01", "scene0324_00", "scene0386_00", "scene0017_00", "scene0147_00", "scene0640_02", "scene0640_01", "scene0640_00", "scene0225_00", "scene0122_00", "scene0173_00", "scene0033_00", "scene0180_00", "scene0211_00", "scene0547_02", "scene0547_01", "scene0547_00", "scene0240_00", "scene0091_00", "scene0003_01", "scene0089_02", "scene0392_01", "scene0143_01", "scene0143_02", "scene0112_01", "scene0112_02", "scene0209_02", "scene0209_01", "scene0209_00", "scene0270_02", "scene0270_01", "scene0361_01", "scene0126_01", "scene0126_02", "scene0177_01", "scene0215_01", "scene0489_00", "scene0244_01", "scene0589_00", "scene0692_03", "scene0255_01", "scene0255_00", "scene0344_01", "scene0649_00", "scene0195_01", "scene0204_01", "scene0498_00", "scene0630_03", "scene0630_04", "scene0630_01", "scene0630_00", "scene0166_01", "scene0166_00", "scene0137_01", "scene0137_00", "scene0137_02", "scene0370_00", "scene0370_01", "scene0261_01", "scene0261_03", "scene0261_00", "scene0358_02", "scene0043_01", "scene0152_01", "scene0012_01", "scene0012_02", "scene0383_00", "scene0383_01", "scene0383_02", "scene0630_05", "scene0311_00", "scene0447_00", "scene0447_02", "scene0340_00", "scene0191_00", "scene0200_00", "scene0416_02", "scene0416_03", "scene0416_00", "scene0022_00", "scene0162_00", "scene0133_00", "scene0234_00", "scene0374_00", "scene0679_00", "scene0679_01", "scene0265_00", "scene0325_00", "scene0628_01", "scene0628_00", "scene0628_02", "scene0107_00", "scene0296_00", "scene0047_00", "scene0600_02", "scene0016_00", "scene0387_00", "scene0397_00", "scene0006_00", "scene0610_02", "scene0581_02", "scene0057_00", "scene0286_00", "scene0117_00", "scene0523_00", "scene0523_02", "scene0523_01", "scene0335_00", "scene0275_00", "scene0669_01", "scene0572_02", "scene0210_00", "scene0181_00", "scene0350_00", "scene0457_02", "scene0241_00", "scene0517_01", "scene0517_02", "scene0517_00", "scene0301_00", "scene0090_00", "scene0393_01", "scene0393_00", "scene0002_01", "scene0002_00", "scene0142_01", "scene0348_02", "scene0348_01", "scene0282_01", "scene0282_00", "scene0282_02", "scene0113_01", "scene0331_01", "scene0331_00", "scene0271_00", "scene0271_01", "scene0220_00", "scene0220_01", "scene0127_01", "scene0036_00", "scene0036_01", "scene0214_02", "scene0214_01", "scene0214_00", "scene0305_01", "scene0265_01", "scene0325_01", "scene0416_04", "scene0416_01", "scene0387_01", "scene0016_01", "scene0016_02", "scene0296_01", "scene0340_01", "scene0340_02", "scene0200_01", "scene0191_01", "scene0022_01", "scene0279_00", "scene0279_02", "scene0279_01", "scene0230_00", "scene0152_00", "scene0604_02", "scene0604_00", "scene0604_01", "scene0012_00", "scene0043_00", "scene0344_00", "scene0649_01", "scene0204_00", "scene0195_00", "scene0498_01", "scene0498_02", "scene0315_00", "scene0692_01", "scene0589_01", "scene0630_02", "scene0630_06", "scene0026_00", "scene0127_00", "scene0245_00", "scene0094_00", "scene0305_00", "scene0185_00", "scene0053_00", "scene0705_02", "scene0614_02", "scene0614_01", "scene0614_00", "scene0142_00", "scene0576_00", "scene0576_02", "scene0576_01", "scene0360_00", "scene0172_01", "scene0269_02", "scene0241_01", "scene0241_02", "scene0301_01", "scene0181_01", "scene0181_02", "scene0210_01", "scene0350_01", "scene0350_02", "scene0057_01", "scene0286_01", "scene0286_02", "scene0006_02", "scene0006_01", "scene0397_01", "scene0335_01", "scene0335_02", "scene0159_00", "scene0514_01", "scene0514_00", "scene0299_00", "scene0108_00", "scene0048_00", "scene0571_00", "scene0571_01", "scene0520_00", "scene0642_01", "scene0642_00", "scene0419_00", "scene0419_02", "scene0419_01", "scene0493_01", "scene0613_00", "scene0613_01", "scene0582_01", "scene0582_00", "scene0508_00", "scene0508_02", "scene0508_01", "scene0448_02", "scene0448_00", "scene0450_00", "scene0681_00", "scene0510_00", "scene0401_00", "scene0541_00", "scene0623_00", "scene0672_00", "scene0223_00", "scene0223_01", "scene0223_02", "scene0029_01", "scene0524_00", "scene0464_00", "scene0646_00", "scene0706_00", "scene0497_00", "scene0110_02", "scene0617_00", "scene0586_00", "scene0141_02", "scene0141_00", "scene0141_01", "scene0380_02", "scene0291_02", "scene0487_00", "scene0656_00", "scene0534_00", "scene0425_00", "scene0068_01", "scene0068_00", "scene0074_02", "scene0662_00", "scene0165_02", "scene0347_02", "scene0347_01", "scene0347_00", "scene0411_00", "scene0691_00", "scene0440_00", "scene0592_01", "scene0603_01", "scene0603_00", "scene0470_01", "scene0421_01", "scene0561_01", "scene0666_01", "scene0666_00", "scene0666_02", "scene0058_00", "scene0415_01", "scene0415_00", "scene0118_00", "scene0289_00", "scene0009_00", "scene0398_00", "scene0029_00", "scene0524_01", "scene0138_00", "scene0586_01", "scene0646_01", "scene0541_01", "scene0510_01", "scene0672_01", "scene0623_01", "scene0431_00", "scene0493_00", "scene0114_02", "scene0114_00", "scene0114_01", "scene0182_00", "scene0182_02", "scene0299_01", "scene0405_00", "scene0242_02", "scene0093_02", "scene0093_01", "scene0388_01", "scene0676_00", "scene0627_00", "scene0031_02", "scene0031_00", "scene0637_00", "scene0161_02", "scene0504_00", "scene0312_02", "scene0009_01", "scene0444_00", "scene0555_00", "scene0058_01", "scene0289_01", "scene0118_01", "scene0483_00", "scene0155_02", "scene0155_01", "scene0592_00", "scene0421_00", "scene0561_00", "scene0530_00", "scene0662_01", "scene0579_02", "scene0691_01", "scene0440_01", "scene0411_01", "scene0487_01", "scene0656_01", "scene0656_02", "scene0425_01", "scene0128_00", "scene0179_00", "scene0534_01", "scene0525_01", "scene0525_00", "scene0028_00", "scene0465_01", "scene0465_00", "scene0168_00", "scene0362_00", "scene0362_03", "scene0362_02", "scene0362_01", "scene0079_00", "scene0434_01", "scene0051_00", "scene0051_03", "scene0051_01", "scene0400_01", "scene0400_00", "scene0540_00", "scene0540_01", "scene0451_01", "scene0451_04", "scene0451_05", "scene0451_02", "scene0451_00", "scene0511_00", "scene0511_01", "scene0673_01", "scene0673_00", "scene0673_04", "scene0673_02", "scene0673_05", "scene0673_03", "scene0479_02", "scene0479_00", "scene0479_01", "scene0539_02", "scene0622_01", "scene0521_00", "scene0337_02", "scene0395_02", "scene0395_00", "scene0395_01", "scene0612_00", "scene0115_02", "scene0703_00", "scene0492_00", "scene0404_00", "scene0212_02", "scene0212_01", "scene0212_00", "scene0109_01", "scene0544_00", "scene0352_02", "scene0352_00", "scene0352_01", "scene0455_00", "scene0158_01", "scene0515_00", "scene0303_02", "scene0303_01", "scene0092_04", "scene0092_02", "scene0092_03", "scene0092_00", "scene0092_01", "scene0121_00", "scene0121_02", "scene0677_00", "scene0626_00", "scene0160_02", "scene0667_00", "scene0313_02", "scene0399_00", "scene0399_01", "scene0505_00", "scene0694_00", "scene0059_01", "scene0059_00", "scene0554_00", "scene0288_00", "scene0288_01", "scene0288_02", "scene0482_00", "scene0294_02", "scene0294_00", "scene0385_02", "scene0385_00", "scene0420_00", "scene0560_00", "scene0471_00", "scene0529_02", "scene0529_00", "scene0469_02", "scene0469_01", "scene0101_01", "scene0101_03", "scene0101_05", "scene0101_04", "scene0101_02", "scene0101_00", "scene0501_02", "scene0501_01", "scene0501_00", "scene0410_01", "scene0597_01", "scene0597_02", "scene0129_00", "scene0424_02", "scene0424_01", "scene0178_00", "scene0038_00", "scene0158_00", "scene0515_01", "scene0515_02", "scene0018_00", "scene0404_01", "scene0109_00", "scene0298_00", "scene0049_00", "scene0626_01", "scene0677_01", "scene0677_02", "scene0492_01", "scene0418_02", "scene0703_01", "scene0612_01", "scene0680_00", "scene0096_02", "scene0096_00", "scene0034_02", "scene0034_01", "scene0065_02", "scene0079_01", "scene0434_00", "scene0168_01", "scene0168_02", "scene0051_02", "scene0111_00", "scene0111_02", "scene0280_02", "scene0280_01", "scene0000_00", "scene0000_02", "scene0000_01", "scene0597_00", "scene0381_02", "scene0381_01", "scene0381_00", "scene0486_00", "scene0657_00", "scene0038_01", "scene0232_00", "scene0232_02", "scene0424_00", "scene0632_00", "scene0024_02", "scene0024_00", "scene0206_02", "scene0197_00", "scene0197_02", "scene0197_01", "scene0410_00", "scene0160_04", "scene0482_01", "scene0548_00", "scene0548_02", "scene0420_01", "scene0667_01", "scene0160_03", "scene0554_01", "scene0008_00", "scene0694_01", "scene0505_01", "scene0148_00", "scene0198_00", "scene0089_00", "scene0318_00", "scene0584_01", "scene0615_01", "scene0615_00", "scene0466_01", "scene0452_01", "scene0489_02", "scene0403_01", "scene0116_02", "scene0611_00", "scene0365_02", "scene0433_00", "scene0522_00", "scene0625_00", "scene0239_01", "scene0674_00", "scene0456_00", "scene0516_00", "scene0687_00", "scene0407_00", "scene0211_03", "scene0201_02", "scene0310_02", "scene0506_00", "scene0446_00", "scene0369_01", "scene0072_02", "scene0132_02", "scene0635_00", "scene0532_00", "scene0601_00", "scene0590_00", "scene0017_02", "scene0297_02", "scene0106_02", "scene0650_00", "scene0588_02", "scene0502_00", "scene0631_01", "scene0320_03", "scene0536_01", "scene0567_00", "scene0567_01", "scene0248_00", "scene0605_01", "scene0308_00", "scene0654_01", "scene0379_00", "scene0674_01", "scene0625_01", "scene0407_01", "scene0456_01", "scene0516_01", "scene0611_01", "scene0177_02", "scene0403_00", "scene0452_00", "scene0683_00", "scene0392_02", "scene0089_01", "scene0003_02", "scene0584_00", "scene0349_01", "scene0495_00", "scene0577_00", "scene0361_02", "scene0320_02", "scene0536_00", "scene0654_00", "scene0042_02", "scene0594_00", "scene0605_00", "scene0099_01", "scene0588_03", "scene0442_00", "scene0205_02", "scene0631_00", "scene0136_02", "scene0532_01", "scene0590_01", "scene0601_01", "scene0446_01", "scene0635_01", "scene0229_00", "scene0238_00", "scene0675_01", "scene0181_03", "scene0457_01", "scene0581_00", "scene0581_01", "scene0610_01", "scene0610_00", "scene0286_03", "scene0463_01", "scene0572_01", "scene0542_00", "scene0513_00", "scene0682_00", "scene0585_00", "scene0393_02", "scene0259_01", "scene0259_00", "scene0705_00", "scene0467_00", "scene0220_02", "scene0436_00", "scene0566_00", "scene0370_02", "scene0477_00", "scene0261_02", "scene0537_00", "scene0218_01", "scene0484_00", "scene0358_01", "scene0358_00", "scene0152_02", "scene0309_01", "scene0309_00", "scene0098_01", "scene0692_00", "scene0503_00", "scene0443_00", "scene0255_02", "scene0204_02", "scene0195_02", "scene0166_02", "scene0661_00", "scene0473_01", "scene0533_01", "scene0480_01", "scene0480_00", "scene0447_01", "scene0556_01", "scene0339_00", "scene0368_00", "scene0073_03", "scene0073_02", "scene0348_00", "scene0705_01", "scene0199_00", "scene0585_01", "scene0319_00", "scene0641_00", "scene0572_00", "scene0463_00", "scene0624_00", "scene0238_01", "scene0675_00", "scene0457_00", "scene0301_02", "scene0546_00", "scene0556_00", "scene0191_02", "scene0200_02", "scene0507_00", "scene0368_01", "scene0634_00", "scene0473_00", "scene0265_02", "scene0533_00", "scene0422_00", "scene0387_02", "scene0589_02", "scene0477_01", "scene0098_00", "scene0218_00", "scene0579_00", "scene0439_00", "scene0528_00", "scene0468_00", "scene0165_01", "scene0151_01", "scene0380_01", "scene0380_00", "scene0291_01", "scene0656_03", "scene0040_01", "scene0262_01", "scene0233_01", "scene0233_00", "scene0373_01", "scene0373_00", "scene0070_00", "scene0130_00", "scene0021_00", "scene0161_00", "scene0415_02", "scene0312_00", "scene0155_00", "scene0384_00", "scene0409_01", "scene0409_00", "scene0104_00", "scene0266_00", "scene0326_00", "scene0421_02", "scene0367_00", "scene0227_00", "scene0336_00", "scene0276_00", "scene0054_00", "scene0642_02", "scene0285_00", "scene0005_00", "scene0394_00", "scene0582_02", "scene0613_02", "scene0145_00", "scene0448_01", "scene0242_00", "scene0093_00", "scene0302_00", "scene0213_00", "scene0120_00", "scene0060_00", "scene0078_02", "scene0332_00", "scene0332_01", "scene0029_02", "scene0272_00", "scene0272_01", "scene0110_01", "scene0001_01", "scene0001_00", "scene0306_01", "scene0306_00", "scene0186_01", "scene0478_00", "scene0538_00", "scene0124_01", "scene0124_00", "scene0429_00", "scene0569_00", "scene0266_01", "scene0161_01", "scene0009_02", "scene0312_01", "scene0118_02", "scene0040_00", "scene0151_00", "scene0262_00", "scene0322_00", "scene0528_01", "scene0468_01", "scene0165_00", "scene0662_02", "scene0439_01", "scene0440_02", "scene0411_02", "scene0186_00", "scene0541_02", "scene0510_02", "scene0097_00", "scene0569_01", "scene0175_00", "scene0478_01", "scene0035_00", "scene0363_00", "scene0390_00", "scene0586_02", "scene0646_02", "scene0281_00", "scene0110_00", "scene0182_01", "scene0242_01", "scene0120_01", "scene0060_01", "scene0171_01", "scene0031_01", "scene0336_01", "scene0276_01", "scene0367_01", "scene0394_01", "scene0005_01", "scene0642_03", "scene0294_01", "scene0408_00", "scene0045_01", "scene0459_00", "scene0385_01", "scene0688_00", "scene0505_04", "scene0505_02", "scene0505_03", "scene0020_01", "scene0160_01", "scene0313_01", "scene0059_02", "scene0041_00", "scene0150_00", "scene0010_00", "scene0372_00", "scene0263_00", "scene0323_00", "scene0529_01", "scene0075_00", "scene0135_00", "scene0317_00", "scene0206_00", "scene0540_02", "scene0247_00", "scene0065_00", "scene0174_00", "scene0539_01", "scene0539_00", "scene0034_00", "scene0333_00", "scene0525_02", "scene0273_00", "scene0434_02", "scene0391_00", "scene0140_00", "scene0280_00", "scene0158_02", "scene0303_00", "scene0121_01", "scene0061_00", "scene0061_01", "scene0226_01", "scene0509_00", "scene0698_00", "scene0449_00", "scene0418_00", "scene0115_01", "scene0024_01", "scene0469_00", "scene0346_01", "scene0206_01", "scene0317_01", "scene0010_01", "scene0041_01", "scene0263_01", "scene0323_01", "scene0038_02", "scene0232_01", "scene0667_02", "scene0020_00", "scene0160_00", "scene0202_00", "scene0313_00", "scene0253_00", "scene0014_00", "scene0045_00", "scene0548_01", "scene0267_00", "scene0327_00", "scene0420_02", "scene0366_00", "scene0226_00", "scene0337_00", "scene0418_01", "scene0284_00", "scene0698_01", "scene0509_01", "scene0243_00", "scene0404_02", "scene0626_02", "scene0273_01", "scene0111_01", "scene0140_01", "scene0247_01", "scene0451_03", "scene0096_01", "scene0174_01", "scene0065_01", "scene0676_01", "scene0048_01", "scene0268_00", "scene0324_01", "scene0136_01", "scene0007_00", "scene0123_00", "scene0659_00", "scene0659_01", "scene0520_01", "scene0134_02", "scene0078_00", "scene0449_02", "scene0268_01", "scene0189_00", "scene0579_01", "scene0337_01", "scene0449_01", "scene0183_00", "scene0692_02"]
for scan_id in scan_id_list:
print("Processing %s..." % scan_id)
data_root="/share/data/ripl/scannet_raw/train/"
objects_info=gen_obj_list(scan_id=scan_id, data_root=data_root)
np.save(data_root+"objects_info/objects_info_"+scan_id+".npy",objects_info,allow_pickle=True)