add new_added_pts compute
This commit is contained in:
parent
16d1f8ab67
commit
7b28cf9e91
5
app.py
5
app.py
@ -177,6 +177,9 @@ def get_frame_data():
|
|||||||
|
|
||||||
frame_data['new_point_cloud'] = sampled_point_cloud.tolist()
|
frame_data['new_point_cloud'] = sampled_point_cloud.tolist()
|
||||||
frame_data['combined_point_cloud'] = combined_point_cloud.tolist()
|
frame_data['combined_point_cloud'] = combined_point_cloud.tolist()
|
||||||
|
new_added_pts = ReconstructionUtil.get_new_added_points(combined_point_cloud, sampled_point_cloud)
|
||||||
|
frame_data["new_added_pts"] = new_added_pts.tolist()
|
||||||
|
|
||||||
combined_point_cloud = np.concatenate([combined_point_cloud, sampled_point_cloud], axis=0)
|
combined_point_cloud = np.concatenate([combined_point_cloud, sampled_point_cloud], axis=0)
|
||||||
|
|
||||||
combined_point_cloud = PtsUtil.voxel_downsample_point_cloud(combined_point_cloud, 0.01)
|
combined_point_cloud = PtsUtil.voxel_downsample_point_cloud(combined_point_cloud, 0.01)
|
||||||
@ -218,6 +221,8 @@ def parse_to_frame_data(inference_result):
|
|||||||
coverage_rate = inference_result["coverage_rate_seq"][idx]
|
coverage_rate = inference_result["coverage_rate_seq"][idx]
|
||||||
frame_data['new_point_cloud'] = target_pts.tolist()
|
frame_data['new_point_cloud'] = target_pts.tolist()
|
||||||
frame_data['combined_point_cloud'] = combined_point_cloud.tolist()
|
frame_data['combined_point_cloud'] = combined_point_cloud.tolist()
|
||||||
|
new_added_pts = ReconstructionUtil.get_new_added_points(combined_point_cloud, target_pts)
|
||||||
|
frame_data["new_added_pts"] = new_added_pts.tolist()
|
||||||
combined_point_cloud = np.concatenate([combined_point_cloud, target_pts], axis=0)
|
combined_point_cloud = np.concatenate([combined_point_cloud, target_pts], axis=0)
|
||||||
frame_data["coverage_rate"] = float(coverage_rate)
|
frame_data["coverage_rate"] = float(coverage_rate)
|
||||||
delta_CR = frame_data["coverage_rate"] - last_CR
|
delta_CR = frame_data["coverage_rate"] - last_CR
|
||||||
|
2
pts.py
2
pts.py
@ -19,6 +19,8 @@ class PtsUtil:
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def random_downsample_point_cloud(point_cloud, num_points):
|
def random_downsample_point_cloud(point_cloud, num_points):
|
||||||
|
if point_cloud.shape[0] == 0:
|
||||||
|
return point_cloud
|
||||||
idx = np.random.choice(len(point_cloud), num_points, replace=True)
|
idx = np.random.choice(len(point_cloud), num_points, replace=True)
|
||||||
return point_cloud[idx]
|
return point_cloud[idx]
|
||||||
|
|
||||||
|
@ -31,6 +31,18 @@ class ReconstructionUtil:
|
|||||||
|
|
||||||
return filtered_sampled_points[:, :3]
|
return filtered_sampled_points[:, :3]
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def get_new_added_points(old_combined_pts, new_pts, threshold=0.005):
|
||||||
|
if old_combined_pts.size == 0:
|
||||||
|
return new_pts
|
||||||
|
if new_pts.size == 0:
|
||||||
|
return np.array([])
|
||||||
|
|
||||||
|
tree = cKDTree(old_combined_pts)
|
||||||
|
distances, _ = tree.query(new_pts, k=1)
|
||||||
|
new_added_points = new_pts[distances > threshold]
|
||||||
|
return new_added_points
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
import os
|
import os
|
||||||
root = "/media/hofee/data/project/python/nbv_reconstruction/nbv_rec_visualize/data/sample/"
|
root = "/media/hofee/data/project/python/nbv_reconstruction/nbv_rec_visualize/data/sample/"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user