def depth_estimation()

in scripts/render/pipeline.py [0:0]


    def depth_estimation(self):
        """Runs distributed depth estimation with temporal filtering."""
        post_resize_params = copy(self.base_params)

        if self.base_params["disparity_type"] == "disparity":
            post_resize_params["color"] = os.path.join(
                self.base_params["input_root"],
                image_type_paths[config.type_to_levels_type["color"]],
            )
            post_resize_params["foreground_masks"] = os.path.join(
                self.base_params["input_root"],
                image_type_paths[config.type_to_levels_type["foreground_masks"]],
            )
            post_resize_params["background_disp"] = os.path.join(
                self.base_params["input_root"],
                image_type_paths[config.type_to_levels_type["background_disp"]],
            )
        elif self.base_params["disparity_type"] == "background_disp":
            post_resize_params["color"] = os.path.join(
                self.base_params["input_root"],
                image_type_paths[config.type_to_levels_type["color"]],
            )

        start_level = (
            post_resize_params["level_start"]
            if post_resize_params["level_start"] != -1
            else len(config.WIDTHS) - 1
        )
        if post_resize_params["level_end"] != -1:
            end_level = post_resize_params["level_end"]
        else:
            for level, width in enumerate(config.WIDTHS):
                if post_resize_params["resolution"] >= width:
                    end_level = level
                    break

        # Ranges for temporal filtering (only used if performing temporal filtering)
        filter_ranges = [
            {
                "first": frame_chunk["first"],
                "last": frame_chunk["last"],
                "filter_first": get_frame_name(
                    max(
                        int(post_resize_params["first"]),
                        int(frame_chunk["first"]) - post_resize_params["time_radius"],
                    )
                ),
                "filter_last": get_frame_name(
                    min(
                        int(post_resize_params["last"]),
                        int(frame_chunk["last"]) + post_resize_params["time_radius"],
                    )
                ),
            }
            for frame_chunk in self.frame_chunks
        ]

        for level in range(start_level, end_level - 1, -1):
            depth_params = copy(post_resize_params)
            if level != end_level:
                depth_params[
                    "output_formats"
                ] = "pfm"  # Force only PFM at non-finest levels
            depth_params.update(
                {
                    "app": f"DerpCLI: Level {level}",
                    "level_start": level,
                    "level_end": level,
                    "image_type": depth_params["disparity_type"],
                    "dst_level": level,
                    "dst_image_type": depth_params["disparity_type"],
                }
            )
            self.run_halted_queue(depth_params, self.frame_chunks)

            if post_resize_params["do_temporal_filter"]:
                filter_params = copy(post_resize_params)
                filter_params.update(
                    {
                        "app": "TemporalBilateralFilter",
                        "level": level,
                        "use_foreground_masks": post_resize_params[
                            "do_temporal_masking"
                        ],
                        "dst_level": level,
                        "dst_image_type": "disparity_time_filtered",
                    }
                )
                self.run_halted_queue(filter_params, filter_ranges)

                transfer_params = copy(post_resize_params)
                transfer_params.update(
                    {
                        "app": "Transfer",
                        "src_level": level,
                        "src_image_type": "disparity_time_filtered",
                        "dst_level": level,
                        "dst_image_type": "disparity",
                        "force_recompute": True,
                    }
                )
                self.run_halted_queue(transfer_params, self.frame_chunks)
        if post_resize_params["resolution"] > config.WIDTHS[end_level]:
            # The upsampling color level is the smallest one larger than our last level
            dst_level = end_level - 1 if end_level > 0 else None
            upsample_params = copy(self.base_params)
            upsample_params.update(
                {
                    "app": "UpsampleDisparity",
                    "level": end_level,
                    "image_type": post_resize_params["disparity_type"],
                    "dst_level": dst_level,
                    "dst_image_type": config.type_to_upsample_type["disparity"],
                }
            )

            if post_resize_params["disparity_type"] == "background_disp":
                frame_chunks = self.background_frame
            elif post_resize_params["disparity_type"] == "disparity":
                frame_chunks = self.frame_chunks
            else:
                raise Exception(
                    f"Invalid disparity type {post_resize_params['disparity_type']}"
                )
            self.run_halted_queue(upsample_params, frame_chunks)

            transfer_params = copy(post_resize_params)
            transfer_params.update(
                {
                    "app": "Transfer",
                    "src_level": None,
                    "src_image_type": config.type_to_upsample_type["disparity"],
                    "dst_level": None,
                    "dst_image_type": post_resize_params["disparity_type"],
                }
            )
            self.run_halted_queue(transfer_params, frame_chunks)

        else:
            transfer_params = copy(post_resize_params)
            transfer_params.update(
                {
                    "app": "Transfer",
                    "src_level": end_level,
                    "src_image_type": post_resize_params["disparity_type"],
                    "dst_level": None,
                    "dst_image_type": post_resize_params["disparity_type"],
                }
            )
            self.run_halted_queue(transfer_params, self.frame_chunks)