[Work Log] Work Log

February 09, 2015


Ran perturbation fitting to track curves between views. Results are quite bad. A few problems:

Started implementing attachment inference.

Inferring curve attachment

Goal: infer attachment between curves. Since the model dimension doesn't change after adding branching, and since the likelihood doesn't change either, we'll just use the prior to evaluate branching, rather than the marginal likelihood. Although the decision to attach two curves isn't strictly independent of the nearby attachments, we'll approximate it as such. That way, when deciding whether a new attachment is valid, we only need the measure the change in prior of the two curves, rather than the entire tree.

First we need to estimate the optimal branch parameters, which are the position of the branch point on the parent, and the distance between the branch point and the first observed child point. We'll call these branch and offset, respectively.

The branch point is guessed by finding the nearest sampled point on the parent to the initial point on the child. The offset is guessed be measuring the distance between the branch point and initial point on the child. Starting with these guesses, we run gradient-based optimization to find the pair of values that minimizes the negative log liikelihood. The gradient w.r.t. these parameters is given in eq (5.9) in Williams and Rasmussen, we only need to derive the expression for the partial derivative of the covariance matrix. For this, we use automatic differentialtion, using matlab's support for complex numbers. The general form to estimate the derivative is

[ df/dx = \mathcal{IM}{ f(x + h i) } / h + O(h2) ]
where \(i\) is the imaginary number and \(\mathcal{IM}\) is the imaginary part of the result. This is superior to finite differences, because it doesn't suffer loss of precision as the step size (h) decreases, and error decreases quadratically rather than linearly.

This seems to work relatively well, except that our curve-detection finds multiple curves for the same true curve. We need some nonmaximal suppression.

Open issues

Posted by Kyle Simek
blog comments powered by Disqus