Syntax: FACTORY_DEF RasterRegistererFactory [FACTORY_NAME ] [GROUP_BY []+] [FLUSH_WHEN_GROUPS_CHANGE (Yes|No)] [METRIC_MODALITY (SingleModalityDefault|MultiModalityDefault|MeanSquares|Correlation|MattesMI)] [TRANSFORMATION_TYPE (Rigid|Affine|BSpline)] [OPTIMIZER_TYPE "Regular Step Gradient Descent"|"Conjugate Gradient"|"Quasi Newton"|"Amoeba"|"One Plus One Evolutionary")] [TRANSFORM_CENTER_INITIALIZE (CenterOfMass|Extents|None)] [METRIC_SAMPLING_STRATEGY (Regular|Random|None)] [METRIC_SAMPLING_RATE ] [SHRINK_FACTOR ] [SMOOTHING_COEFFICIENT ] [REGISTERED_EXTENTS (FixedImage|ComputedTransform)] [BSPLINE_TRANSFORMATION_GRID_NODES_PER_DIMENSION ] [OPTIMIZER_RSGD_MINIMUM_STEP ] [OPTIMIZER_RSGD_TOLERANCE ] [OPTIMIZER_RSGD_MAX_ITERATIONS ] [OPTIMIZER_RSGD_ESTIMATE_LEARNING_RATE (Yes|No)] [OPTIMIZER_RSGD_LEARNING_RATE ] [OPTIMIZER_RSGD_RELAXATION_FACTOR ] [OPTIMIZER_CGD_CONVERGENCE_WINDOW_SIZE ] [OPTIMIZER_CGD_CONVERGENCE_VALUE ] [OPTIMIZER_CGD_MAX_ITERATIONS ] [OPTIMIZER_CGD_ESTIMATE_LEARNING_RATE (Yes|No)] [OPTIMIZER_CGD_LEARNING_RATE ] [OPTIMIZER_CGD_LOWER_LIMIT ] [OPTIMIZER_CGD_UPPER_LIMIT ] [OPTIMIZER_CGD_LINE_SEARCH_TOLERANCE ] [OPTIMIZER_QNBFGS_CONVERGENCE_WINDOW_SIZE ] [OPTIMIZER_QNBFGS_CONVERGENCE_VALUE ] [OPTIMIZER_QNBFGS_MAX_ITERATIONS_WITHOUT_PROGRESS ] [OPTIMIZER_QNBFGS_MAX_ITERATIONS ] [OPTIMIZER_AMOEBA_PARAMETER_TOLERANCE ] [OPTIMIZER_AMOEBA_METRIC_VALUE_TOLERANCE ] [OPTIMIZER_AMOEBA_MAX_ITERATIONS ] [OPTIMIZER_AMOEBA_ON_CONVERGENCE (Terminate|Restart)] [OPTIMIZER_ONEPLUSONE_MAX_ITERATIONS ] [OPTIMIZER_ONEPLUSONE_INITIAL_SEARCH_RADIUS ] [OPTIMIZER_ONEPLUSONE_MINIMUM_SEARCH_RADIUS ] [OUTPUT REGISTERED FEATURE_TYPE ] [ ]* []*]* [OUTPUT FEATURE_TYPE [ ]* []*]* Overview: Transform an image to minimize its difference with another. The RasterRegisterer accepts two sets of features of raster features: Fixed Images, through the Fixed port, which provide a reference onto which moving images will be transformed. Moving Images, through the Moving port, which will be transformed to match the fixed one. Fixed images and moving images will be grouped according to the Group By parameter. For each pair of matched features, a new feature will be output from the Registered output port. This feature will be the registered version of the moving image. Non-raster features will be rejected. Input Tags: FIXED Accepts raster images to be used as fixed images in the registration process MOVING Accepts raster images to be used as moving images in the registration process Output Tags: REGISTERED Output registered moving images. Non-raster features, invalid rasters, and, Moving and Fixed Images that could not be paired will be routed to the port. Parameters: GROUP_BY If Group By attributes are selected, features with the same values in the Group By attributes are grouped together, and features will only be registered with other features in the same group. All fixed images of a given group of feature will be registered against all moving images of that group. Optional. FLUSH_WHEN_GROUPS_CHANGE No This is the default behavior. Processing will only occur in this transformer once all input is present. Yes This transformer will process input groups in order. Changes of the value of the Group By parameter on the input stream will trigger processing on the currently accumulating group. This may improve overall speed (particularly with multiple, equally-sized groups), but could cause undesired behavior if input groups are not truly ordered. Required. METRIC_TYPE SingleModalityDefault Mean Squares metric. Useful for comparing images coming from the same source (MRIs with MRIs and Visible images with Visible images). Required. TRANSFORMATION_TYPE Affine Default. Transformation that preserves points and straight lines. Rigid Transformation that preserves all shapes and areas. Both the Affine and Rigid options will not modify any pixel values, they will only modify the raster properties. Required. TRANSFORM_CENTER_INITIALIZE CenterOfMass (Default) Compute the center of the images as the "center of mass" of the image, using pixel intensities, then align the centers of the images prior to registration. Geometry Use the image extents, described in the raster properties, to compute the center of the image, then align the centers of the images prior to registration. None Register the images in the position they come in. Required for transformations other than BSpline. METRIC_SAMPLING_STRATEGY None Use the whole image for metric evaluation. Regular (Default) Choose a subset of the pixels of the image, distributed according to a constant pattern, for metric evaluation. Random: Choose a random subset of points to evaluate the metric at. Required. METRIC_SAMPLING_RATE Control what percentage of pixels in the image to use for metric evaluation. Decreasing this parameter trades performance at the cost of accuracy. Values between 10 and 50 are generally good for medical images. Noisy or detailed images can register worse with lower sampling rates than other images. Floating point value between 0 and 100. Default: 50. Required with a Metric Sampling Strategy other than None. SHRINK_FACTOR Shrink the images by this factor before registration. Greater values make registration happen on smaller images which can make registration faster and more robust in earlier stages. A shrink factor, combined with setting a non zero smoothing factor, makes the metric smoother. The input images are only shrunk for the registration process, the output raster will have the full resolution. This option is used to create a multi stage resolution process, by chaining multiple RasterRegisterers with decreasing shrink factors and smoothing factors. To register at full resolution set the shrink factor to 1. This option is used to create a multi stage resolution process, by chaining multiple RasterRegisterers with decreasing shrink factors and decreasing smoothing coefficients. Floating point value greater than or equal to 1. Default: 1. Required. SMOOTHING_COEFFICIENT Apply and control Gaussian Smoothing on the images. Positive values of this option set the standard deviation of the blur equation. A shrink factor, combined with setting a non zero smoothing factor, makes the metric smoother. 0 disables the Smoothing. This option is used to create a multi stage resolution process, by chaining multiple RasterRegisterers with decreasing shrink factors and decreasing smoothing coefficients. Non negative floating point value. Default: 0 Required. REGISTERED_EXTENTS Fixed Image (Default) The registered image will have the same extents as the fixed image. Pixel values will be interpolated. Good the terminal stage of multi stage registration as it allows for direct comparison of pixel values. Computed Transform The registered image will have the extents obtained by applying the computed transformation. Doesn't affect pixel values by only raster properties. Good for non terminal stages of a multi stage registration as it doesn't require interpolation. Note: Neither option requires the images to have the same extents to begin with. Required when a rigid or affine transform is selected. BSPLINE_TRANSFORMATION_GRID_NODES_PER_DIMENSION Set the mesh size, by setting its number of control points per side. The mesh consists of a grid of vectors that represent a movement of a pixel from one point to another. The B-Spline transformation is constructed by manipulating these points. A BSpline transformation has 2*ControlPointsPerDimension^2 parameters, one parameter for each coordinate of each point of the mesh. This numbers grows quickly and optimizers can take longer to evaluate the step in the transformation. Integer greater than 4. Default: 8 Required when the Transformation is set to BSpline. OPTIMIZER_TYPE "Regular Step Gradient Descent" A Gradient Descent optimizer that reduces the step when it detects a change in the derivative. When a change in the derivative is detected, it means that a minima has been passed, and the step is multiplied by the relaxation factor, to be reduced. The derivative is that of the metric value, over the transformations's parameter. "Conjugate Gradient" A Conjugate Gradient optimizer where each Gradient Descent iteration is followed by a line search to find the best value for the learning rate. Faster but less robust than Regular Step Gradient Descent. Better suited for a later stage of a multi stage registration process. "Quasi Newton" A Quasi Newton Optimizer with Broyden Fletcher Goldfarb Shannon (BFGS) minimization. This optimizer can be the metric to converge very quickly when the metric value is already small. It works well in the final stages of a multi stage registration process. "Amoeba" Implementation of the Nelder-Meade downhill simplex problem. It explores the parameter space by changing the shape of a convex polygon (specifically a simplex). When it converges it can converge quickly from an early stage, but is very sensitive to local minima. "One Plus One Evolutionary" Use an evolutionary strategy to minimize the metric. This optimizer has a chaotic behavior that causes large parameter space to be explored but it can be very slow at all stages. It should perform better with the Mattes Mutual Information metric. Required. ================================================================================================ The following keywords are specific to the Regular Step Gradient Descent optimizer OPTIMIZER_RSGD_MINIMUM_STEP Floating Point value. Halt when the Gradient Magnitude of the transformation parameters is less than this value. Required. Default: 0.001. OPTIMIZER_RSGD_TOLERANCE Floating Point Value. Halt when the change in the metric is less than this value. Required. Default: 0.001. OPTIMIZER_RSGD_MAX_ITERATIONS Positive integer. Halt after this number of iterations. Required. Default 1500 The following keywords apply when the RSGD optimizer is selected OPTIMIZER_RSGD_ESTIMATE_LEARNING_RATE No Manually set a learning rate. Yes (Default) Automatically determine how quickly to alter the transformation in the direction of an improvement. More robust, but it may take much longer than setting a default. Required OPTIMIZER_RSGD_LEARNING_RATE Floating Point value. Learning coefficient in the gradient descent update equation. Increase if the metric values are decreasing too slowly and decrease if the metric values are overshooting a potential minimum or producing results far from a reasonable registration. Required when Estimate Learning Rate is set to No. Default 1. OPTIMIZER_RSGD_RELAXATION_FACTOR FLOAT Floating Point value strictly between 0 and 1. When the optimizer detects a change in the derivative of the metric, it multiplies the next step by a relaxation factor, to shorten it. If the the metric values are converging too slowly increasing this parameter towards 1 might help, while reducing it might aid convergence Required. OPTIMIZER_CGD_CONVERGENCE_WINDOW_SIZE Look back at this many iterations to check for convergence. Positive integer. Default: 10. Required ================================================================================================ The following keywords are specific to the Conjugate Gradient optimizer OPTIMIZER_CGD_CONVERGENCE_VALUE Coefficient that determines the sensitivity of the convergence checker. Floating point value. Default: 1e-6. Required OPTIMIZER_CGD_ESTIMATE_LEARNING_RATE No Default. Manually set a learning rate. Yes Automatically determine how quickly to alter the transformation in the direction of an improvement. More robust, but it may take much longer than setting a default. Required OPTIMIZER_CGD_LEARNING_RATE Floating Point value. Learning coefficient in the gradient descent update equation. Increase if the metric values are decreasing too slowly and decrease if the metric values are overshooting a potential minimum or producing results far from a reasonable registration. OPTIMIZER_CGD_MAX_ITERATIONS Positive integer. Halt after this number of iterations. Default 1500. Required. OPTIMIZER_CGD_LOWER_LIMIT Control how much can the metric decrease between updates. The lower bound of the interval in which a line search is performed to find a learning rate is determined by multiplying the current learning rate value by this number. For example, if for one iteration the learning rate is 5, and the minimum learning rate multiplier is 0.5, the learning rate in the next iteration will be somewhere between 2.5 and the maximum. Non negative floating point value. Default: 0. Required. OPTIMIZER_CGD_UPPER_LIMIT Control how much can the metric increase between updates. The upper bound of the interval in which a line search is performed to find a learning rate is determined by multiplying the current learning rate value by this number. For example, if for one iteration the learning rate is 5, and the minimum learning rate multiplier is 1.5, the learning rate in the next iteration will be somewhere between the minimum and 7.5. When both the Maximum and the Minimum learning rate are set to 1, this optimizer behaves like a regular gradient descent optimizer. Positive floating point value. Default: 20. Required. OPTIMIZER_CGD_LINE_SEARCH_TOLERANCE Control the accuracy of the line search. Positive floating point value. Positive Floating point number. Default: 0.2. Required. ================================================================================================ The following keywords are specific to the Quasi Newton optimizer OPTIMIZER_QNBFGS_CONVERGENCE_WINDOW_SIZE Look back at this many iterations to check for convergence. Positive integer. Default: 10. Required. OPTIMIZER_QNBFGS_CONVERGENCE_VALUE Coefficient that determines the sensitivity of the convergence checker. Floating point value. Default: 1e-6. Required. OPTIMIZER_QNBFGS_MAX_ITERATIONS_WITHOUT_PROGRESS Halt if the metric hasn't improved in this many iterations. Positive integer. Default: 30. Required. OPTIMIZER_QNBFGS_MAX_ITERATIONS Halt after this number of iterations. Positive integer. Default: 1500. Required. ================================================================================================ The following keywords are specific to the Amoeba optimizer OPTIMIZER_AMOEBA_PARAMETER_TOLERANCE Halt when the magnitude of the changes to the transformation parameters are less than this value. Non negative floating point value. Default: 1e-5. Required. OPTIMIZER_AMOEBA_METRIC_VALUE_TOLERANCE Halt when the change in the metric is less than this value. Non negative floating point value. Default: 1e-5. Required. OPTIMIZER_AMOEBA_MAX_ITERATIONS Halt after this number of iterations. Positive integer. 1500. Required. OPTIMIZER_AMOEBA_ON_CONVERGENCE Terminate (Default) End the Optimization process once the termination conditions are met. Restart Restart the optimization process with a simplex with edges of half the size. Required. ================================================================================================ The following keywords are specific to the One Plus One optimizer OPTIMIZER_ONEPLUSONE_MAX_ITERATIONS Halt after this number of iterations. Positive integer. Default: 1500. Required. OPTIMIZER_ONEPLUSONE_INITIAL_SEARCH_RADIUS Set the initial search radius. The Search radius determines how different can transform parameter solutions be in between steps Subsequent iterations will alter the search radius. Increasing this parameter reduces computation time at the cost of accuracy. Non negative floating point value. Default: 0.1. Required. OPTIMIZER_ONEPLUSONE_INITIAL_SEARCH_RADIUS Choose transformation parameter solutions further than this value. Increasing will speed up convergence, but increases the risk of failing to converge. Non negative floating point value. Default: 1e-6. Required. [OUTPUT REGISTERED FEATURE_TYPE ] [ ]* []*]* [OUTPUT FEATURE_TYPE [ ]* []*]*