add 30degree pertube

This commit is contained in:
hofee 2024-10-02 14:51:04 +08:00
parent b294d389b3
commit e6fd317bac

View File

@ -68,12 +68,18 @@ class ViewSampleUtil:
continue continue
if np.dot(normal, look_at_point) < 0: if np.dot(normal, look_at_point) < 0:
normal = -normal normal = -normal
distance = np.random.uniform(*distance_range) normals.append(normal)
cam_position = look_at_point + distance * normal perturb_angle = np.radians(np.random.uniform(0, 30))
perturb_axis = np.random.normal(size=3)
perturb_axis /= np.linalg.norm(perturb_axis)
rotation_matrix = R.from_rotvec(perturb_angle * perturb_axis).as_matrix()
perturbed_normal = np.dot(rotation_matrix, normal)
distance = np.random.uniform(*distance_range)
cam_position = look_at_point + distance * perturbed_normal
look_at_points.append(look_at_point) look_at_points.append(look_at_point)
cam_positions.append(cam_position) cam_positions.append(cam_position)
normals.append(normal)
bm.free() bm.free()
look_at_points = np.array(look_at_points) look_at_points = np.array(look_at_points)
@ -124,15 +130,12 @@ class ViewSampleUtil:
corrected_up_vector = np.cross(forward_vector, right_vector) corrected_up_vector = np.cross(forward_vector, right_vector)
rotation_matrix = np.array([right_vector, corrected_up_vector, forward_vector]).T rotation_matrix = np.array([right_vector, corrected_up_vector, forward_vector]).T
perturbation_angle = 0.01
random_axis = np.random.randn(3)
random_axis /= np.linalg.norm(random_axis)
perturbation_rotation = R.from_rotvec(random_axis * perturbation_angle).as_matrix()
rotation_matrix = rotation_matrix @ perturbation_rotation
cam_pose = np.eye(4) cam_pose = np.eye(4)
cam_pose[:3, :3] = rotation_matrix cam_pose[:3, :3] = rotation_matrix
cam_pose[:3, 3] = cam_position_world cam_pose[:3, 3] = cam_position_world
cam_poses.append(cam_pose) cam_poses.append(cam_pose)
filtered_cam_poses = [] filtered_cam_poses = []
for cam_pose in cam_poses: for cam_pose in cam_poses:
if cam_pose[2, 3] > min_height_z: if cam_pose[2, 3] > min_height_z: