MCPcopy Create free account
hub / github.com/StevenWang30/R-PCC / quantize_residual

Method quantize_residual

utils/compress_utils.py:57–112  ·  view source on GitHub ↗
(self, residual, seg_idx, point_cloud=None, range_image=None)

Source from the content-addressed store, hash-verified

55 self.flat_num = flat_num
56
57 def quantize_residual(self, residual, seg_idx, point_cloud=None, range_image=None):
58 if self.uniform:
59 residual_quantized = quantization_utils_cpp.uniform_quantize(seg_idx, residual, self.acc)
60 # # python version
61 # residual_collect = []
62 # cluster_num = np.max(seg_idx) + 1
63 # for m in range(cluster_num):
64 # if m == 1:
65 # # zero points.
66 # continue
67 # residual_collect.extend(residual[..., 0][np.where(seg_idx == m)])
68 # residual_quantized = np.rint(np.array(residual_collect) / self.acc).astype(np.int16)
69 salience_level = None
70 key_point_map = None
71 else:
72 feature_map, key_point_map = extract_features_without_ground(range_image, seg_idx,
73 self.feature_region, self.segments,
74 self.sharp_num, self.less_sharp_num,
75 self.flat_num)
76 # range_image, seg_idx, feature_region=3, segments=8, sharp_num=4, less_sharp_num=8, flat_num=6
77 (residual_quantized, salience_level) = quantization_utils_cpp.nonuniform_quantize(seg_idx,
78 residual, key_point_map,
79 self.level_kp_num,
80 self.acc,
81 self.ground_level)
82 # # python version
83 # cluster_num = np.max(seg_idx) + 1
84 # salience_level = np.ones(cluster_num, dtype=np.int32) * 3
85 #
86 # for cluster_id in range(cluster_num):
87 # if cluster_id == 0 or cluster_id == 1:
88 # continue
89 # cluster_idx = np.where(seg_idx == cluster_id)
90 # key_point_num = np.where(key_point_map[cluster_idx] > 0)[0].shape[0]
91 # cluster_points = point_cloud[cluster_idx]
92 # if cluster_points.shape[0] < 30:
93 # continue
94 # if key_point_num >= 3:
95 # salience_level[cluster_id] = 2
96 # if key_point_num >= 10:
97 # salience_level[cluster_id] = 1
98 # if key_point_num >= 30:
99 # salience_level[cluster_id] = 0
100 # salience_level[0] = self.ground_level # ground
101 # salience_level[1] = 3 # zero points
102 # residual_collect = []
103 # for m in range(cluster_num):
104 # if m == 1:
105 # # zero points
106 # continue
107 # cluster_acc = nonuniform_accuracy[salience_level[m]]
108 # cur_residual = residual[..., 0][np.where(seg_idx == m)]
109 # residual_collect.extend(list(np.rint(cur_residual / cluster_acc)))
110 #
111 # residual_quantized = np.array(residual_collect).astype(np.int32)
112 return residual_quantized, salience_level, key_point_map
113
114 def dequantize_residual(self, quantized_residual, seg_idx, salience_level=None):

Callers 2

compressFunction · 0.95
compress_datasetFunction · 0.95

Calls 1

Tested by

no test coverage detected