@@ -2604,26 +2604,29 @@ def laser_mix_transform(self, input_dict: dict, mix_results: dict) -> dict:
2604
2604
points = input_dict ['points' ]
2605
2605
pts_semantic_mask = input_dict ['pts_semantic_mask' ]
2606
2606
2607
+ # convert angle to radian
2608
+ pitch_angle_down = self .pitch_angles [0 ] / 180 * np .pi
2609
+ pitch_angle_up = self .pitch_angles [1 ] / 180 * np .pi
2610
+
2607
2611
rho = torch .sqrt (points .coord [:, 0 ]** 2 + points .coord [:, 1 ]** 2 )
2608
2612
pitch = torch .atan2 (points .coord [:, 2 ], rho )
2609
- pitch = torch .clamp (pitch , self . pitch_angles [ 0 ] + 1e-5 ,
2610
- self . pitch_angles [ 1 ] - 1e-5 )
2613
+ pitch = torch .clamp (pitch , pitch_angle_down + 1e-5 ,
2614
+ pitch_angle_up - 1e-5 )
2611
2615
2612
2616
mix_rho = torch .sqrt (mix_points .coord [:, 0 ]** 2 +
2613
2617
mix_points .coord [:, 1 ]** 2 )
2614
2618
mix_pitch = torch .atan2 (mix_points .coord [:, 2 ], mix_rho )
2615
- mix_pitch = torch .clamp (mix_pitch , self . pitch_angles [ 0 ] + 1e-5 ,
2616
- self . pitch_angles [ 1 ] - 1e-5 )
2619
+ mix_pitch = torch .clamp (mix_pitch , pitch_angle_down + 1e-5 ,
2620
+ pitch_angle_up - 1e-5 )
2617
2621
2618
2622
num_areas = np .random .choice (self .num_areas , size = 1 )[0 ]
2619
- angle_list = np .linspace (self . pitch_angles [ 1 ], self . pitch_angles [ 0 ] ,
2623
+ angle_list = np .linspace (pitch_angle_up , pitch_angle_down ,
2620
2624
num_areas + 1 )
2621
2625
out_points = []
2622
2626
out_pts_semantic_mask = []
2623
2627
for i in range (num_areas ):
2624
- # convert angle to radian
2625
- start_angle = angle_list [i + 1 ] / 180 * np .pi
2626
- end_angle = angle_list [i ] / 180 * np .pi
2628
+ start_angle = angle_list [i + 1 ]
2629
+ end_angle = angle_list [i ]
2627
2630
if i % 2 == 0 : # pick from original point cloud
2628
2631
idx = (pitch > start_angle ) & (pitch <= end_angle )
2629
2632
out_points .append (points [idx ])
0 commit comments