optimise¶
Parameter optimization routines for page dewarping.
This subpackage provides:
- A function (
draw_correspondences) to visualize matched points (dstpoints/projpts). - A function (
optimise_params) that uses an objective function and optimization to refine the parameter vector for page dewarping.
The implementation dispatches to either JAX (if available) or SciPy based on the configured optimization method and available backends.
_base ¶
Shared utilities for optimization backends.
draw_correspondences ¶
Draw matching points (projected vs. desired) on a copy of the image.
Source code in src/page_dewarp/optimise/_base.py
make_objective ¶
make_objective(dstpoints: ndarray, keypoint_index: ndarray, shear_cost: float, rvec_slice: slice) -> Callable[[np.ndarray], float]
Create an objective function for scipy.optimize.minimize.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dstpoints
|
|
Target points to match. |
required |
keypoint_index
|
|
Index array for keypoint extraction. |
required |
shear_cost
|
|
Cost coefficient for shear penalty. |
required |
rvec_slice
|
|
Slice object for extracting rotation vector from params. |
required |
Returns:
| Type | Description |
|---|---|
|
Objective function suitable for scipy.optimize.minimize. |
Source code in src/page_dewarp/optimise/_base.py
_jax ¶
JAX-based optimization backend for page dewarping.
This module provides accelerated optimization using JAX's automatic differentiation for computing gradients, enabling efficient L-BFGS-B optimization.
optimise_params_jax ¶
optimise_params_jax(name: str, small: ndarray, dstpoints: ndarray, span_counts: list[int], params: ndarray, debug_lvl: int) -> np.ndarray
Refine the parameter vector using JAX-accelerated L-BFGS-B optimization.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
|
Image name for debug output. |
required |
small
|
|
Downscaled image for visualization. |
required |
dstpoints
|
|
Target points to match. |
required |
span_counts
|
|
Number of keypoints per span. |
required |
params
|
|
Initial parameter vector. |
required |
debug_lvl
|
|
Debug verbosity level. |
required |
Returns:
| Type | Description |
|---|---|
|
Optimized parameter vector. |
Source code in src/page_dewarp/optimise/_jax.py
_scipy ¶
SciPy-based optimization backend for page dewarping.
optimise_params_scipy ¶
optimise_params_scipy(name: str, small: ndarray, dstpoints: ndarray, span_counts: list[int], params: ndarray, debug_lvl: int, method: str) -> np.ndarray
Refine the parameter vector using SciPy optimization.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
|
Image name for debug output. |
required |
small
|
|
Downscaled image for visualization. |
required |
dstpoints
|
|
Target points to match. |
required |
span_counts
|
|
Number of keypoints per span. |
required |
params
|
|
Initial parameter vector. |
required |
debug_lvl
|
|
Debug verbosity level. |
required |
method
|
|
Optimization method (e.g., 'Powell', 'L-BFGS-B'). |
required |
Returns:
| Type | Description |
|---|---|
|
Optimized parameter vector. |