feat(calibration): add data-driven ground alignment with debug and fast iteration flags
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user