feat(calibration): add data-driven ground alignment with debug and fast iteration flags

This commit is contained in:
2026-02-07 03:20:16 +00:00
parent afc8e9034d
commit 446c02d42a
10 changed files with 1221 additions and 33 deletions
+12
View File
@@ -14,6 +14,7 @@ class FrameData:
frame_index: int
serial_number: int
depth_map: np.ndarray | None = None
confidence_map: np.ndarray | None = None
class SVOReader:
@@ -96,6 +97,7 @@ class SVOReader:
mat = sl.Mat()
cam.retrieve_image(mat, sl.VIEW.LEFT)
depth_map = self._retrieve_depth(cam)
confidence_map = self._retrieve_confidence(cam)
frames.append(
FrameData(
image=mat.get_data().copy(),
@@ -105,6 +107,7 @@ class SVOReader:
frame_index=cam.get_svo_position(),
serial_number=self.camera_info[i]["serial"],
depth_map=depth_map,
confidence_map=confidence_map,
)
)
elif err == sl.ERROR_CODE.END_OF_SVOFILE_REACHED:
@@ -151,6 +154,7 @@ class SVOReader:
mat = sl.Mat()
cam.retrieve_image(mat, sl.VIEW.LEFT)
depth_map = self._retrieve_depth(cam)
confidence_map = self._retrieve_confidence(cam)
frames[i] = FrameData(
image=mat.get_data().copy(),
timestamp_ns=cam.get_timestamp(
@@ -159,6 +163,7 @@ class SVOReader:
frame_index=cam.get_svo_position(),
serial_number=self.camera_info[i]["serial"],
depth_map=depth_map,
confidence_map=confidence_map,
)
elif err == sl.ERROR_CODE.END_OF_SVOFILE_REACHED:
cam.set_svo_position(0)
@@ -179,6 +184,13 @@ class SVOReader:
cam.retrieve_measure(depth_mat, sl.MEASURE.DEPTH)
return depth_mat.get_data().copy()
def _retrieve_confidence(self, cam: sl.Camera) -> np.ndarray | None:
if not self.enable_depth:
return None
conf_mat = sl.Mat()
cam.retrieve_measure(conf_mat, sl.MEASURE.CONFIDENCE)
return conf_mat.get_data().copy()
def get_depth_at(self, frame: FrameData, x: int, y: int) -> float | None:
if frame.depth_map is None:
return None