# SSD¶

class menpofit.lk.SSD(kernel=None)[source]

Bases: Residual

Class for Sum of Squared Differences residual.

References

1

B.D. Lucas, and T. Kanade, “An iterative image registration technique with an application to stereo vision”, International Joint Conference on Artificial Intelligence, pp. 674-679, 1981.

cost_closure()[source]

Method to compute the optimization cost.

Returns

cost (float) – The cost value.

classmethod gradient(image, forward=None)

Calculates the gradients of the given method.

If forward is provided, then the gradients are warped (as required in the forward additive algorithm)

Parameters
• image (menpo.image.Image) – The image to calculate the gradients for

• forward (tuple or None, optional) – A tuple containing the extra weights required for the function warp (which should be passed as a function handle), i.e. (menpo.image.Image, menpo.transform.AlignableTransform>). If None, then the optimization algorithm is assumed to be inverse.

hessian(sdi, sdi2=None)[source]

Calculates the Gauss-Newton approximation to the Hessian.

This is abstracted because some residuals expect the Hessian to be pre-processed. The Gauss-Newton approximation to the Hessian is defined as:

$\mathbf{J J^T}$
Parameters
• sdi ((N, n_params) ndarray) – The steepest descent images.

• sdi2 ((N, n_params) ndarray or None, optional) – The steepest descent images.

Returns

H ((n_params, n_params) ndarray) – The approximation to the Hessian

steepest_descent_images(image, dW_dp, forward=None)[source]

Calculates the standard steepest descent images.

Within the forward additive framework this is defined as

$\nabla I \frac{\partial W}{\partial p}$

The input image is vectorised (N-pixels) so that masked images can be handled.

Parameters
• image (menpo.image.Image) – The image to calculate the steepest descent images from, could be either the template or input image depending on which framework is used.

• dW_dp (ndarray) – The Jacobian of the warp.

• forward (tuple or None, optional) – A tuple containing the extra weights required for the function warp (which should be passed as a function handle), i.e. (menpo.image.Image, menpo.transform.AlignableTransform>). If None, then the optimization algorithm is assumed to be inverse.

Returns

VT_dW_dp ((N, n_params) ndarray) – The steepest descent images

steepest_descent_update(sdi, image, template)[source]

Calculates the steepest descent parameter updates.

These are defined, for the forward additive algorithm, as:

$\sum_x [ \nabla I \frac{\partial W}{\partial p} ]^T [ T(x) - I(W(x;p)) ]$
Parameters
• sdi ((N, n_params) ndarray) – The steepest descent images.

• image (menpo.image.Image) – Either the warped image or the template (depending on the framework)

• template (menpo.image.Image) – Either the warped image or the template (depending on the framework)

Returns

sd_delta_p ((n_params,) ndarray) – The steepest descent parameter updates.