8
$\begingroup$

So I recorded some Footage in front of my school and tracked it. The tracking points themselves seem alright (I think) but I get an average solve error of around Five.

Here are my settings:

enter image description here enter image description here

The camera used for recording is a Canon Vixia HF M40.

Project file: https://drive.google.com/file/d/0BzgDIjhDOu6EbVk5RlZoUTM4Nmc/view?usp=sharing

$\endgroup$
  • $\begingroup$ The tracking functions based on high contrast. It may be that your white tracking dots don't contrast well with the grey cement... $\endgroup$ – MasterHolbytla May 25 '16 at 22:18
  • $\begingroup$ to do decent troubleshooting you should also post the MCE (Movie Clip Editor) graph display of the track. Thats the wobbly lines that look like an f-curve. You should be able to see spikes or deviations from each track then. $\endgroup$ – 3pointedit May 25 '16 at 22:18
  • $\begingroup$ read the following links: blender.stackexchange.com/questions/42329/… and: blender.stackexchange.com/questions/8934/… $\endgroup$ – cegaton May 25 '16 at 22:34
10
$\begingroup$

Successful reconstruction can only be achieved with accurate tracking

Your error average should be under 1.0 pixels, preferably 0.3.


Issues with your file: Your tracking is not good...

Your trackers are too large, and have few distinct features. Don't track the center of a featureless object, try to track the edges that have contrast. (read this post on camera tracking markers)

Select any of them and scroll throug the timeline to watch what the tracker is doing:

enter image description here

The shape you are tracking shouldn't be dancing like that.

It should be more like this:

enter image description here

Go through your trackers ONE BY ONE to fix them.

Instead of using only loc, try loc scale and change from keyframe to Previous frame.

enter image description here

Use the graphs and the dopesheet for the movie clip editor to determine which tracker have a high tracking error and get rid of them and re-track.

READ THIS POST to troubleshoot issues with motion tracking

$\endgroup$
  • $\begingroup$ ...did...you just bounty your own post.... $\endgroup$ – 10 Replies Jan 25 '17 at 2:29
  • $\begingroup$ @10Replies Why not? There is a new very useflul answer. $\endgroup$ – cegaton Jan 25 '17 at 2:35
  • $\begingroup$ next time it would be good to put a link to the answer that you are referring too in your bounty... Most people will just upvote your answer. I did not notice the new answer. $\endgroup$ – 10 Replies Jan 25 '17 at 2:38
  • 1
    $\begingroup$ @10Replies hence the need for a nice bounty! $\endgroup$ – cegaton Jan 25 '17 at 2:39
9
$\begingroup$

First try deleting the big sliding errors, where tracked seem to deviate a lot from others, just select the big spikes and delete. Then find the best sample region for keyframes, I think perhaps 40-70 looks cleaner. Finally I turned on "Refine" using Focal Length, K1. This will force Blender to estimate the lens type and field of view. After all that I get a solve error of 2.8.

Then I looked at the existing tracks and notice that you have ignored some easy high contrast features. I tracked the bricks and bottles and deleted tracks on the concrete seams, as they are hard to discriminate (the edge mostly looks the same). Also use track types other than "Simple" location. "Fine" is slow but best.

So pick better features and use better tracker types, then delete major deviations and you should get a much better solve.

MCE graph display shows big sliding errors

$\endgroup$
6
+300
$\begingroup$

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)
$\endgroup$
  • $\begingroup$ I added a link to your post on this answer: blender.stackexchange.com/questions/42329/… feel free to edit. $\endgroup$ – cegaton Jan 21 '17 at 4:46
  • 1
    $\begingroup$ Not only it allow to refine, but also may save you tons of job to edit tracks by hand. I was able to narrow down residual error from 4+ to 0.05 with a single click on an automated feature detected tracking, only removing tracks with less than 1/3 of the shoot length ! $\endgroup$ – Stephen Leger Jan 21 '17 at 15:45
2
$\begingroup$

I went through your tracks and adjusted the location, added a few, subtracted a few, but what really did it was when I began adjusting the weight value in the right side tool bar. After fiddling with that for maybe 15 min, I got it down to solve error: 1.8956. You can probably still improve.

Here, I'll briefly describe the technique I used. I would select a track, look at it's individual solve error. If it was above 10 (about 5 were) I deleted the track. If it was below, I 10 - (Individual Solve Error - 1). I still often toyed with the value even after using the formula. I solved after each try.

Here is the modified .blend file:

Edit:

I determined the individual solve error by selecting a track and looking under the Weight Value Slider that you found. It should read something like Average Error: blah.

My formula works by figuring out how much error there is and weighting accordingly. More error should have less weight. Also, as the weight goes down, the solve error improves (sometimes drastically), so you might need to bump it back up a bit again.

$\endgroup$
  • $\begingroup$ Thank you very much for this. What did you mean by "Weight value"? I don't see it in my right toolbar. Also, if possible, can you describe your technique with that formula a bit more? EDIT: I found the weight value, its under the track when you select a point. How do you determine individual solve error and how do you use your formula to improve it? $\endgroup$ – Josh Silveous May 25 '16 at 23:17
  • $\begingroup$ Edited! If my answer helped, please consider accepting it. It would help me greatly! $\endgroup$ – Shady Puck May 25 '16 at 23:24
  • $\begingroup$ So if my Avg Error for a keyframe is 2.1301, I do 10 - 2.1301 - 1, which equals 6.8699. I cant set my Weight to 6.8699, it caps at 1. EDIT: Or did you mean me to do 10 - (2.1301 - 1), which is 8.8699, which is also something I cant set as the weight. EDIT: It seems as if lowering the weight always decreases the average error. Lowering it to 0.02 makes my average error for that track 0.06, which I'm having a tough time believing is correct. $\endgroup$ – Josh Silveous May 26 '16 at 0:04
  • 1
    $\begingroup$ I meant the edited version. You make a valid point, though. I meant if u get 8.8699, input a weight of .88699. So sorry for being unclear! $\endgroup$ – Shady Puck May 26 '16 at 0:06
  • 2
    $\begingroup$ Pictures are always helpful for people to identify features (or sliders), perhaps you could include a screen or 2 in the answer? $\endgroup$ – 3pointedit May 27 '16 at 0:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.