def test_relative_pose(): print("Testing relative pose") d = RelativePoseDataset(10, 0.0, 0.0) # running experiments twopt_translation = pyopengv.relative_pose_twopt(d.bearing_vectors1, d.bearing_vectors2, d.rotation) fivept_nister_essentials = pyopengv.relative_pose_fivept_nister( d.bearing_vectors1, d.bearing_vectors2) fivept_kneip_rotations = pyopengv.relative_pose_fivept_kneip( d.bearing_vectors1, d.bearing_vectors2) sevenpt_essentials = pyopengv.relative_pose_sevenpt( d.bearing_vectors1, d.bearing_vectors2) eightpt_essential = pyopengv.relative_pose_eightpt(d.bearing_vectors1, d.bearing_vectors2) t_perturbed, R_perturbed = getPerturbedPose(d.position, d.rotation, 0.01) eigensolver_rotation = pyopengv.relative_pose_eigensolver( d.bearing_vectors1, d.bearing_vectors2, R_perturbed) t_perturbed, R_perturbed = getPerturbedPose(d.position, d.rotation, 0.1) nonlinear_transformation = pyopengv.relative_pose_optimize_nonlinear( d.bearing_vectors1, d.bearing_vectors2, t_perturbed, R_perturbed) assert proportional(d.position, twopt_translation) assert matrix_in_list(d.essential, fivept_nister_essentials) assert matrix_in_list(d.rotation, fivept_kneip_rotations) assert matrix_in_list(d.essential, sevenpt_essentials) assert proportional(d.essential, eightpt_essential) assert proportional(d.rotation, eigensolver_rotation) assert same_transformation(d.position, d.rotation, nonlinear_transformation) print("Done testing relative pose")
def test_relative_pose(): print "Testing relative pose" d = RelativePoseDataset(10, 0.0, 0.0) # running experiments twopt_translation = pyopengv.relative_pose_twopt(d.bearing_vectors1, d.bearing_vectors2, d.rotation) fivept_nister_essentials = pyopengv.relative_pose_fivept_nister(d.bearing_vectors1, d.bearing_vectors2) fivept_kneip_rotations = pyopengv.relative_pose_fivept_kneip(d.bearing_vectors1, d.bearing_vectors2) sevenpt_essentials = pyopengv.relative_pose_sevenpt(d.bearing_vectors1, d.bearing_vectors2) eightpt_essential = pyopengv.relative_pose_eightpt(d.bearing_vectors1, d.bearing_vectors2) t_perturbed, R_perturbed = getPerturbedPose( d.position, d.rotation, 0.01) eigensolver_rotation = pyopengv.relative_pose_eigensolver(d.bearing_vectors1, d.bearing_vectors2, R_perturbed) t_perturbed, R_perturbed = getPerturbedPose( d.position, d.rotation, 0.1) nonlinear_transformation = pyopengv.relative_pose_optimize_nonlinear(d.bearing_vectors1, d.bearing_vectors2, t_perturbed, R_perturbed) assert proportional(d.position, twopt_translation) assert matrix_in_list(d.essential, fivept_nister_essentials) assert matrix_in_list(d.rotation, fivept_kneip_rotations) assert matrix_in_list(d.essential, sevenpt_essentials) assert proportional(d.essential, eightpt_essential) assert proportional(d.rotation, eigensolver_rotation) assert same_transformation(d.position, d.rotation, nonlinear_transformation) print "Done testing relative pose"