twocan.MatrixConvergenceCallback

class twocan.MatrixConvergenceCallback(window_size: int = 10, tolerance: float = 0.01, min_trials: int = 20)[source]

Bases: object

Callback to monitor transformation matrix convergence during optimization.

This callback tracks the transformation matrices from recent trials and stops optimization when they converge (have low variance), indicating that the registration has stabilized. Useful for detecting when further optimization is unlikely to improve results.

Parameters:
  • window_size (int, default=10) – Number of recent trials to consider for convergence assessment.

  • tolerance (float, default=0.01) – Maximum allowed variance in matrix elements for convergence. Lower values require tighter convergence.

  • min_trials (int, default=20) – Minimum number of trials before convergence checking begins.

window_size

Current window size for convergence assessment.

Type:

int

tolerance

Current tolerance for matrix element variance.

Type:

float

min_trials

Minimum trials before convergence checking.

Type:

int

matrices

List storing recent transformation matrices.

Type:

List[np.ndarray]