C_Tracker

C_Tracker automatically extracts animation data from the pan, tilt, and roll of a pattern to simplify and accelerate the process of stabilization and matchmoving. You can then use user defined tracks to improve the result or lock stabilization to particular regions.

Note:  C_Tracker differs from vanilla Nuke's tracker in that it can track in latlong space, meaning features are tracked as they pass the edge of the frame when the image wraps around.

Inputs and Controls

Connection Type

Connection Name

Function

Input

src

The sequence you want to track.

mask

An optional image to use as a mask. Use the Mask control to determine how the mask affects tracking.

At first, the mask input appears as triangle on the right side of the node, but when you drag it, it turns into an arrow labeled mask. If you cannot see the mask input, ensure that the Mask control is disabled or set to None.

Control (UI)

Knob (Scripting)

Default Value

Function

C_Tracker Tab

Local GPU

gpuName

N/A

Displays the GPU used for rendering when Use GPU if available is enabled. Local GPU displays Not available when:

Use CPU is selected as the GPU device in the Preferences.

no suitable GPU was found on your system.

it was not possible to create a context for processing on the selected GPU, such as when there is not enough free memory available on the GPU.

You can select a different GPU device, if available, by navigating to the Preferences and selecting an alternative from the GPU Device dropdown.

Note:  Selecting a different GPU requires you to restart Nuke before the change takes effect.

Use GPU if available

useGPUIfAvailable

enabled

When enabled, rendering occurs on the Local GPU specified, if available, rather than the CPU.

Note:  Enabling this option with no local GPU allows the script to run on the GPU whenever the script is opened on a machine that does have a GPU available.
You should also select this if you wish to render from the command line with the --gpu option.

See Windows, Mac OS X and macOS, or Linux for more information on the GPUs Nuke supports.

Input

Frame Range

trackRange

Input

Sets the range of frames processed by C_Tracker:

Input - the default value, sets the frame range to the length of the sequence attached to the src input.

Global - sets the tracking frame range to the range set in the Project Settings > frame range controls. If no frame range is defined, the frame range of the first image you read in is used as the Global frame range.

Custom - sets a tracking range of frames described by the startFrame and endFrame fields.

startFrame

Dependent on Project Settings

When Frame Range is set to Custom, this control sets the first frame to track in the footage.

endFrame

When Frame Range is set to Custom, this control sets the last frame to track in the footage.

Mask

ignoreMask

None

Set the mask type to exclude areas of the sequence when tracking:

None - none of the footage is ignored.

Source Alpha - use the alpha channel of the source clip to define which areas to ignore.

Source Inverted Alpha - use the inverted alpha channel of the source clip to define which areas to ignore.

Mask Luminance - use the luminance of the Mask input to define which areas to ignore.

Mask Inverted Luminance - use the inverted luminance of the Mask input to define which areas to ignore.

Mask Alpha - use the Mask input alpha channel to define which areas to ignore.

Mask Inverted Alpha - use the inverted Mask input alpha channel to define which areas to ignore.

Tracking Space

trackingSpace

Default

Selecting LatLong tracks in latlong space instead of treating the sequence as rectilinear, which can improve track quality in polar regions and increase the number and length of tracks around at sides of the frame where the latlong wraps around.

Note:  Tracking in LatLong space can slow down tracking considerably.

Analysis

Track

autoTrack

N/A

Click to begin auto-tracking features in the specified frame range.

Reject

deleteOutliers

N/A

After Solving, click to delete all tracks in the Viewer with an RMS error above the Error Threshold limit.

Delete Selected

deleteSelected

N/A

After Solving, click to delete all currently selected tracks in the Viewer.

Delete All

deleteAll

N/A

After Solving, click to delete all tracks in the Viewer.

Solve Using

solveType

Auto-tracks

Sets the type of tracking used to solve the camera:

Auto-tracks - only the auto-generated tracks are used to solve the camera.

Auto-tracks can produce a good overall stabilization result.

User tracks - only manually added, user tracks are used to solve the camera.

User tracks can help lock down stabilization in particular areas of the sequence.

Combined - a combination of auto- and user tracks are used.

Solve

solveButton

N/A

Click to solve the camera using the tracked features in the sequence.

Solve Error

solveRMSError

0

Sets the level at which tracks are rejected by the solve. If you find you have too few green tracks after solving, try raising the Error Threshold and resolving.

Error Threshold

validationErrorThreshold

0.4

Sets the solve error level permitted, below which solved tracks are rejected.

Reducing the allowed error level dynamically rejects tracks that fall out side the new level, allowing you to easily reject them and refine the solve.

Export

Export Menu

exportMenu

C_SphericlaTransform (Stabilise)

Sets the nodes to output when you click Create:

C_SphericalTransform (Stabilise) - creates an expression linked C_SphericalTransform containing Pan, Tilt, and Roll data to stabilize the output.

C_SphericalTransform (Match-move) - creates an expression linked C_SphericalTransform containing Pan, Tilt, and Roll data to match-move content.

C_SphericalTransform (Stabilise, Metadata only) - creates an expression linked C_SphericalTransform containing containing the transforms in metadata form to stabilize the output.

C_SphericalTransform (Match-move, Metadata only) - creates an expression linked C_SphericalTransform containing the transforms in metadata form to match-move content.

Create

exportButton

N/A

Click to create the export specified in export dropdown.

Link Output

linkOutput

enabled

When enabled, tracks and points are updated when the solve is updated.

If you disable linking, the expression link between the CameraTracker and Camera nodes is disconnected.

User tracks Tab

Tracks

e

N/A

enabled

When enabled, the associated track anchor in the Viewer is used to track a feature from the input.

name

N/A

track 1

Sets the track name.

X

N/A

Dependent on source input

Adjusts the x coordinates of the associated track anchor’s center.

Y

N/A

Dependent on source input

Adjusts the y coordinates of the associated track anchor’s center.

offsetX

N/A

0

Sets the offset amount, in pixels, between the tracking anchor and the feature position on the x and y axes.

This is especially useful when the feature you want to track is obscured or otherwise unavailable, enabling you to track another pattern to produce the required tracking data.

offsetY

N/A

0

size

N/A

10

Sets the size of the pattern tracking area, in pixels.

weight

N/A

100

Sets the weight associated with this user track. User tracks are given considerably more weight than auto tracks.

error

N/A

0

Displays the overall track error rating.

Add track

addTrack

N/A

Click to add a new track and anchor to the Viewer.

Delete tracks

deleteTracks

N/A

Click to delete all selected tracks.

Select all

selectAll

N/A

Click to select all tracks in the Tracks list.

Average tracks

averageTracks

N/A

Click to average all selected tracks together into a single new track. This can be especially useful for stabilization tracking.

Settings Tab

Features

Number of Features

numberFeatures

300

Sets the maximum number of features to track in each frame. Increasing the number of tracks per frame can help when solving difficult sequences.

enforce

enforceNumberFeatures

disabled

When enabled, the number of features at any frame is enforced, even if some tracks must stop early during back-tracking. Enabling enforce can produce a more even spread of active tracks throughout the sequence.

When disabled, the number of features can fluctuate up to the maximum.

Feature Spread

featureSpread

0.1

Sets the spread of features over the image. A high value selects points that are distinct in local regions, whereas lower values select more prominent points in areas of high contrast.

Feature Separation

featureSeparation

20

Sets the distribution of features in relation to each other. High values spread features at even distances over the image.

If you to increase the Number of Features, it's a good idea to reduce Feature Separation.

enforce

enforceFeatureSeparation

disabled

When enabled, Feature Separation is maintained even at the cost of fewer tracks.

When disabled, Feature Separation can change without sacrificing tracks.

Refine feature locations

refineFeatures

disabled

When enabled, feature points are locked to corners in the image, where possible, which can improve track quality in some sequences.

When disabled, feature points are not locked.

Preview Features

previewFeatures

disabled

When enabled, preview the potential features available for tracking. This allows you to check that the features cover the image. If not, tweak the feature controls before tracking.

Tracking

Track forwards and backwards

trackFwdAndBwd

disabled

When enabled, features in the sequence are tracked forwards and then backwards, which can improve track quality in some cases.

When disabled, features in the sequence are tracked forwards only.

Note:  Enabling this control can slow down tracking considerably.

Patch Size

patchSize

14

Sets the size of the image patch around feature points. Increasing the patch size can improve track quality, but larger patches increase processing time.

Minimum Length

minTrackLength

10

Sets the minimum length a track must reach before terminating. Increasing the track length can help to avoid short tracks in long sequences with slow camera movements, improving the solve.

Track Error Threshold

matchThreshold

0.7

Sets the image change threshold a feature track can tolerate before terminating. Reducing the Track Threshold makes tracking more tolerant to image changes, producing longer tracks.

apply to user tracks

userTracksMatchEnforced

enabled

When enabled, the Track Error Threshold applies to user tracks as well as auto-tracks.

When disabled, the Track Error Threshold only applies to auto-tracks.

Track Smoothness

smoothnessThreshold

0.1

Sets the threshold for smooth track generation. Increasing the threshold terminates tracks that glitch over time, which can reduce the number of poor tracks in complex sequences.

Track Consistency

consistencyThreshold

0

Sets the threshold for consistent track generation. Increasing the threshold ensures that track motion is locally consistent, which can reduce the number of poor tracks in complex sequences.

Centre view on selected tracks

centreViewOnSelected

disabled

When enabled, the Viewer is centered on the selected track during tracking. If more that one track is selected, the Viewer is centered on the average position of the tracks.

Solve

Keyframe Overlap

keyframeOverlap

0.85

Sets the track overlap threshold a track can tolerate before starting a new keyframe. Increasing Keyframe Overlap can help to avoid abrupt jumps in estimated camera rotation. Decreasing Keyframe Overlap lower can help to reduce camera drift.

Validation Threshold

validationErrorThreshold

0.2

Sets the threshold, in degrees, for track validation during the Solve. Increasing this value uses more auto-tracks, that would have otherwise been terminated, in the solve.

Refine camera motion

globalOptimisation

disabled

When enabled, refine the estimated camera motion in the solve using global optimization. This increase the solve time significantly, but it may improve the solve accuracy.

When disabled, no optimization is performed.

Zoom window

Show Zoom Window

zoom_window_behavior

always

Sets when the zoom window is visible in the Viewer:

always - the zoom window is always visible.

on track move - only display the zoom window when a track changes.

when tracking - only display the zoom window during tracking.

when tracking or track change - only display the zoom window during tracking or when a track changes.

never - the zoom window is never displayed.

Zoom Window Size / Mag.

zoom_window_size

200px

Sets the size of the zoom window.

zoom_magnification_size

x1

Sets the magnification in the zoom window.

Zoom Window Filter

zoom_window_filter_behaviour

on playback

Sets when filtering is applied to the zoom window:

always

on playback

never

Note:  The filter applied is the same as that selected on the Transform tab, and can produce a more visually stable track. It can make track positioning more difficult, however.

Transform Tab

Reference Frame

referenceFrame

1

When Transform is set to Stabilize or Match-Move, sets the frame in the input sequence to use as the reference or identity frame.

Set to current

N/A

N/A

Click to set the current frame as the reference or identity frame.

Pan tilt roll (Stab)

panTiltRoll

0, 0, 0

Displays the solved stabilization pan, tilt, and roll in degrees.

Pan tilt roll (MM)

panTiltRoll

0, 0, 0

Displays the solved match-move pan, tilt, and roll in degrees.

Enable Axis

enabledAxes

enabled

Enable or disable individual components of the solved rotation for stabilization, match-moving, or export.

Output

Transform

transformType

None

Sets the type of transform to apply.

Note:  The transform control must be set to None when calculating tracks.

None - no transformation is applied to the input image.

Stabilize - transforms the image so that the tracked points do not move.

Match-Move - transforms another image so that it moves to match the tracked points.

Filter

reampleType

Cubic

Select the filtering algorithm to use when remapping pixels from their original positions to new positions.

As a general guideline, the filters increase in quality at the cost of processing time as you move down the list. Bilinear filtering is the fastest and Lanczos the sharpest.

Python Tab (These controls are for Python callbacks and can be used to have Python functions automatically called when various events happen in Nuke.)

before render

beforeRender

none

These functions run prior to starting rendering in execute(). If they throw an exception, the render aborts.

before each frame

beforeFrameRender

none

These functions run prior to starting rendering of each individual frame. If they throw an exception, the render aborts.

after each frame

afterFrameRender

none

These functions run after each frame is finished rendering. They are not called if the render aborts. If they throw an exception, the render aborts.

after render

afterRender

none

These functions run after rendering of all frames is finished. If they throw an error, the render aborts.

render progress

renderProgress

none

These functions run during rendering to determine progress or failure.