def _reconstruction_from_rigs_and_assignments(data: DataSetBase): assignments = data.load_rig_assignments() models = data.load_rig_models() if not data.reference_lla_exists(): data.invent_reference_lla() base_rotation = np.zeros(3) reconstructions = [] for rig_id, instances in assignments.items(): rig_cameras = models[rig_id]["rig_cameras"] reconstruction = types.Reconstruction() reconstruction.cameras = data.load_camera_models() for instance in instances: for image, camera_id in instance: rig_camera = rig_cameras[camera_id] rig_pose = pygeometry.Pose(base_rotation) rig_pose.set_origin( orec.get_image_metadata(data, image).gps_position.value) rig_camera_pose = pygeometry.Pose(rig_camera["rotation"], rig_camera["translation"]) d = data.load_exif(image) shot = reconstruction.create_shot(image, d["camera"]) shot.pose = rig_camera_pose.compose(rig_pose) shot.metadata = orec.get_image_metadata(data, image) reconstructions.append(reconstruction) return reconstructions
def _reconstruction_from_rigs_and_assignments(data: DataSetBase): assignments = data.load_rig_assignments() rig_cameras = data.load_rig_cameras() data.init_reference() reconstruction = types.Reconstruction() reconstruction.cameras = data.load_camera_models() for rig_instance_id, instance in assignments.items(): for image, rig_camera_id in instance: rig_camera = rig_cameras[rig_camera_id] reconstruction.add_rig_camera( pymap.RigCamera(rig_camera.pose, rig_camera_id)) instance_obj = reconstruction.add_rig_instance( pymap.RigInstance(rig_instance_id)) instance_obj.pose.set_origin( helpers.get_image_metadata(data, image).gps_position.value) d = data.load_exif(image) shot = reconstruction.create_shot( image, camera_id=d["camera"], rig_camera_id=rig_camera_id, rig_instance_id=rig_instance_id, ) shot.metadata = helpers.get_image_metadata(data, image) return [reconstruction]