"tools/vscode:/vscode.git/clone" did not exist on "2a3cb83afc370b48a372125a489aa9c0557e6f02"
Unverified Commit 48fd72ff authored by Xiang Xu's avatar Xiang Xu Committed by GitHub
Browse files

[Fix] Fix potential bug in lasermix (#2710)

parent c642055f
...@@ -2604,26 +2604,29 @@ class LaserMix(BaseTransform): ...@@ -2604,26 +2604,29 @@ class LaserMix(BaseTransform):
points = input_dict['points'] points = input_dict['points']
pts_semantic_mask = input_dict['pts_semantic_mask'] pts_semantic_mask = input_dict['pts_semantic_mask']
# convert angle to radian
pitch_angle_down = self.pitch_angles[0] / 180 * np.pi
pitch_angle_up = self.pitch_angles[1] / 180 * np.pi
rho = torch.sqrt(points.coord[:, 0]**2 + points.coord[:, 1]**2) rho = torch.sqrt(points.coord[:, 0]**2 + points.coord[:, 1]**2)
pitch = torch.atan2(points.coord[:, 2], rho) pitch = torch.atan2(points.coord[:, 2], rho)
pitch = torch.clamp(pitch, self.pitch_angles[0] + 1e-5, pitch = torch.clamp(pitch, pitch_angle_down + 1e-5,
self.pitch_angles[1] - 1e-5) pitch_angle_up - 1e-5)
mix_rho = torch.sqrt(mix_points.coord[:, 0]**2 + mix_rho = torch.sqrt(mix_points.coord[:, 0]**2 +
mix_points.coord[:, 1]**2) mix_points.coord[:, 1]**2)
mix_pitch = torch.atan2(mix_points.coord[:, 2], mix_rho) mix_pitch = torch.atan2(mix_points.coord[:, 2], mix_rho)
mix_pitch = torch.clamp(mix_pitch, self.pitch_angles[0] + 1e-5, mix_pitch = torch.clamp(mix_pitch, pitch_angle_down + 1e-5,
self.pitch_angles[1] - 1e-5) pitch_angle_up - 1e-5)
num_areas = np.random.choice(self.num_areas, size=1)[0] num_areas = np.random.choice(self.num_areas, size=1)[0]
angle_list = np.linspace(self.pitch_angles[1], self.pitch_angles[0], angle_list = np.linspace(pitch_angle_up, pitch_angle_down,
num_areas + 1) num_areas + 1)
out_points = [] out_points = []
out_pts_semantic_mask = [] out_pts_semantic_mask = []
for i in range(num_areas): for i in range(num_areas):
# convert angle to radian start_angle = angle_list[i + 1]
start_angle = angle_list[i + 1] / 180 * np.pi end_angle = angle_list[i]
end_angle = angle_list[i] / 180 * np.pi
if i % 2 == 0: # pick from original point cloud if i % 2 == 0: # pick from original point cloud
idx = (pitch > start_angle) & (pitch <= end_angle) idx = (pitch > start_angle) & (pitch <= end_angle)
out_points.append(points[idx]) out_points.append(points[idx])
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment