Skip to main content
Bounty Ended with 300 reputation awarded by CommunityBot
change link to code
Source Link

Playing with track Weight may allow quick solving convergence, while keeping some (all) poor quality tracks.

Solve as usual, then run this script into a python console, and then solve again. Desired error is the wanted residual solve error. Nearly magic, for use with many tracks detected automatically. See this treadgithub repository for an addon version.

desired_error = 0.05
for clip in bpy.data.movieclips:
    for track in clip.tracking.tracks:
        track.weight = desired_error/(track.average_error/track.weight)

Playing with track Weight may allow quick solving convergence, while keeping some (all) poor quality tracks.

Solve as usual, then run this script into a python console, and then solve again. Desired error is the wanted residual solve error. Nearly magic, for use with many tracks detected automatically. See this tread for an addon version.

desired_error = 0.05
for clip in bpy.data.movieclips:
    for track in clip.tracking.tracks:
        track.weight = desired_error/(track.average_error/track.weight)

Playing with track Weight may allow quick solving convergence, while keeping some (all) poor quality tracks.

Solve as usual, then run this script into a python console, and then solve again. Desired error is the wanted residual solve error. Nearly magic, for use with many tracks detected automatically. See github repository for an addon version.

desired_error = 0.05
for clip in bpy.data.movieclips:
    for track in clip.tracking.tracks:
        track.weight = desired_error/(track.average_error/track.weight)
Better algo performance, workin in a single pass
Source Link

Playing with track Weight may allow quick solving convergence, while keeping some (all) poor quality tracks.

RunSolve as usual, then run this script into a python console, and then solve for camera motion, repeat until the Solve error stop to loweragain. You may lower a bitDesired error is the 0wanted residual solve error.5 factor to 0 Nearly magic, for use with many tracks detected automatically.3 or less to get better result See this tread for an addon version.

desired_error = 0.05
for clip in bpy.data.movieclips:
    error = 0.5 * clip.tracking.reconstruction.average_error
    for track in clip.tracking.tracks:
        track_error_weighted = track.weight * track.average_error
        if  track_error_weighted > error:
            track.weight = errordesired_error/(track.average_error/track.weight)

Playing with track Weight may allow quick solving convergence, while keeping some poor quality tracks.

Run this script into a python console, and then solve for camera motion, repeat until the Solve error stop to lower. You may lower a bit the 0.5 factor to 0.3 or less to get better result.

for clip in bpy.data.movieclips:
    error = 0.5 * clip.tracking.reconstruction.average_error
    for track in clip.tracking.tracks:
        track_error_weighted = track.weight * track.average_error
        if  track_error_weighted > error:
            track.weight = error/(track.average_error/track.weight)

Playing with track Weight may allow quick solving convergence, while keeping some (all) poor quality tracks.

Solve as usual, then run this script into a python console, and then solve again. Desired error is the wanted residual solve error. Nearly magic, for use with many tracks detected automatically. See this tread for an addon version.

desired_error = 0.05
for clip in bpy.data.movieclips:
    for track in clip.tracking.tracks:
        track.weight = desired_error/(track.average_error/track.weight)
added 72 characters in body
Source Link

Playing with track Weight may allow quick solving convergence, while keeping some poor quality tracks.

Run this script into a python console, and then solve for camera motion, repeat until the Solve error stop to lower. You may lower a bit the 0.5 factor to 0.3 or less to get better result.

for clip in bpy.data.movieclips:
    error = 0.5 * clip.tracking.reconstruction.average_error
    for track in clip.tracking.tracks:
        track_error_weighted = track.weight * track.average_error
        if  track_error_weighted > error:
            track.weight = error/(track.average_error/track.weight)

Playing with track Weight may allow quick solving convergence, while keeping some poor quality tracks.

Run this script into a python console, and then solve for camera motion, repeat until the Solve error stop to lower.

for clip in bpy.data.movieclips:
    error = 0.5 * clip.tracking.reconstruction.average_error
    for track in clip.tracking.tracks:
        track_error_weighted = track.weight * track.average_error
        if  track_error_weighted > error:
            track.weight = error/(track.average_error/track.weight)

Playing with track Weight may allow quick solving convergence, while keeping some poor quality tracks.

Run this script into a python console, and then solve for camera motion, repeat until the Solve error stop to lower. You may lower a bit the 0.5 factor to 0.3 or less to get better result.

for clip in bpy.data.movieclips:
    error = 0.5 * clip.tracking.reconstruction.average_error
    for track in clip.tracking.tracks:
        track_error_weighted = track.weight * track.average_error
        if  track_error_weighted > error:
            track.weight = error/(track.average_error/track.weight)
Source Link
Loading