(self, args, logger: BasicLogger, data_stream=None, **kwargs)
| 26 | |
| 27 | class Mapping: |
| 28 | def __init__(self, args, logger: BasicLogger, data_stream=None, **kwargs): |
| 29 | super().__init__() |
| 30 | self.args = args |
| 31 | self.logger = logger |
| 32 | mapper_specs = args.mapper_specs |
| 33 | debug_args = args.debug_args |
| 34 | data_specs = args.data_specs |
| 35 | self.run_ros = args.run_ros |
| 36 | |
| 37 | # get data stream |
| 38 | if data_stream != None: |
| 39 | self.data_stream = data_stream |
| 40 | self.start_frame = mapper_specs["start_frame"] |
| 41 | self.end_frame = mapper_specs["end_frame"] |
| 42 | if self.end_frame == -1: |
| 43 | self.end_frame = len(self.data_stream) |
| 44 | self.start_frame = min(self.start_frame, len(self.data_stream)) |
| 45 | self.end_frame = min(self.end_frame, len(self.data_stream)) |
| 46 | |
| 47 | self.decoder = get_decoder(args).cuda() |
| 48 | self.loss_criteria = Criterion(args) |
| 49 | # keyframes set |
| 50 | self.kf_graph = [] |
| 51 | # used for Coverage-maximizing keyframe selection |
| 52 | self.kf_seen_voxel = [] |
| 53 | self.kf_seen_voxel_num = [] |
| 54 | self.kf_svo_idx = [] |
| 55 | |
| 56 | # optional args |
| 57 | self.ckpt_freq = get_property(args, "ckpt_freq", -1) |
| 58 | self.final_iter = get_property(mapper_specs, "final_iter", 0) |
| 59 | self.mesh_res = get_property(mapper_specs, "mesh_res", 8) |
| 60 | self.save_data_freq = get_property(debug_args, "save_data_freq", 0) |
| 61 | |
| 62 | # required args |
| 63 | self.use_adaptive_ending = mapper_specs["use_adaptive_ending"] |
| 64 | self.voxel_size = mapper_specs["voxel_size"] |
| 65 | self.kf_window_size = mapper_specs["kf_window_size"] |
| 66 | self.num_iterations = mapper_specs["num_iterations"] |
| 67 | self.n_rays = mapper_specs["N_rays_each"] |
| 68 | self.max_voxel_hit = mapper_specs["max_voxel_hit"] |
| 69 | self.step_size = mapper_specs["step_size"] * self.voxel_size |
| 70 | self.inflate_margin_ratio = mapper_specs["inflate_margin_ratio"] |
| 71 | self.kf_selection_random_radio = mapper_specs["kf_selection_random_radio"] |
| 72 | self.offset = mapper_specs["offset"] |
| 73 | self.kf_selection_method = mapper_specs["kf_selection_method"] |
| 74 | self.insert_method = mapper_specs["insert_method"] |
| 75 | self.insert_ratio = mapper_specs["insert_ratio"] |
| 76 | self.num_vertexes = mapper_specs["num_vertexes"] |
| 77 | if self.run_ros: |
| 78 | ros_args = args.ros_args |
| 79 | self.intrinsic = np.eye(3) |
| 80 | self.intrinsic[0, 0] = ros_args["intrinsic"][0] |
| 81 | self.intrinsic[1, 1] = ros_args["intrinsic"][1] |
| 82 | self.intrinsic[0, 2] = ros_args["intrinsic"][2] |
| 83 | self.intrinsic[1, 2] = ros_args["intrinsic"][3] |
| 84 | print("intrinsic: ", self.intrinsic) |
| 85 | self.color_topic = ros_args["color_topic"] |
nothing calls this directly
no test coverage detected