Parallax Trackingבס״ד

Multi-target tracking, sensor fusion and estimation

Interactive tutorial · with Claude AI assistance

Several sensors report only the direction to each of several targets. The tracker has to decide which report belongs to which target, and each method here is a different answer to that question.

Multiple Hypothesis Tracking

MHT keeps every plausible pairing alive as a branch and decides several scans later, once the targets have moved apart and the data can tell them apart. The price is branches: memory and time.

Abstract—MHT keeps the alternatives instead of choosing between them. Each track is a tree whose branches are competing association histories; every branch carries a log-likelihood-ratio score that accumulates across scans, and only the decision N scans in the past — by which time later measurements have spoken — is committed. Branch generation uses k-best assignment enumeration, and global consistency, meaning that no measurement is claimed by two surviving branches, is enforced by a maximum-weight independent set over the branch graph. It is the only one of the four that can undo a mistake, and against the permutation ghost that is decisive: the ghost and its target coincide at the first scan and diverge as the targets move, so the branch supporting the ghost accumulates a worsening score and dies. What it costs is branches, and branches are memory and time.

Index Terms—hypothesis tree, log-likelihood ratio, N-scan pruning, k-best assignment, maximum-weight independent set.

Predictper branchGated² ≤ γk-bestMurty enumerationScore branchesLLR accumulateGlobal hyp.MWIS · no shared zPruneN-scan · cap · commita tree of histories carried forward
Fig. 1. Multiple hypothesis tracking. The pruning box is not housekeeping: without an N-scan window and a hard cap the tree grows without bound in target density, and those two limits are themselves tuning parameters.

I. Introduction

Both methods so far settle the scan within the scan. One picks the best assignment and lives with it; the other refuses to pick and averages. Each is making the same concession, that the scan must be resolved using only the evidence the scan contains.

Multiple hypothesis tracking [1] declines that concession. When the evidence does not separate two interpretations, it keeps both, and it keeps them until later measurements do separate them. A track is no longer a state estimate but a history of associations; the histories form a tree; and the decision that GNN takes now is taken N scans later, by which time the targets have moved and the ambiguity has usually resolved itself.

Against the permutation ghost of Appendix A this is decisive, and it is decisive for a reason no amount of better scoring could supply: at the scan the ghost is born, its history and the true history have equal scores. Nothing can separate them then. Something can separate them three scans later. What the method costs is branches, and branches are memory and time, so most of what follows is about bounding them.

II. Problem formulation

A. What is given, what is returned

The inputs are again gated track–measurement pairs. What is returned is not an assignment but a set of surviving branches, together with the subset of them that forms the most probable mutually consistent interpretation of everything seen so far. Only the branches older than the decision window have been committed to; the rest are still hypotheses.

B. The hypothesis space

A candidate track is a sequence of associations over the last N scans. The sequences sharing a prefix form a tree, one tree per track, and a global hypothesis is a set of branches drawn from those trees that is mutually consistent, meaning no measurement is claimed by two of them.

There are two ways to organise the search, and which one is chosen decides everything downstream. The original formulation enumerates the global hypotheses and recovers a track’s probability by summing those that contain it. The track-oriented formulation scores each candidate track on its own and then assembles the best consistent set. The second gives up the first’s global hypothesis probabilities, and in exchange its scores are independent across tracks — which is exactly the separability a discrete optimisation needs, and the reason this is the formulation used here.

Hypothesis-oriented (Reid)top-down — enumerate, then marginalisemarginaliseΘ¹P(Θ | Z)Θ²P(Θ | Z)Θ³P(Θ | Z)combinatorial evaluation of (1)t₁P(t) = Σ P(Θ)t₂P(t) = Σ P(Θ)t₃P(t) = Σ P(Θ)three-way origin: false alarm · new target · existing trackTrack-oriented (Kurien)bottom-up — score, then assembleassemblet₁L = Σ ΔLt₂L = Σ ΔLt₃L = Σ ΔLassignment / maximum-weight independent setΘ*one compatible set, of maximum total scoretwo-way origin: target · extraneous (λ₀ + λᵥ)
Fig. S1. The two formulations. Reid’s original is hypothesis-oriented: enumerate the feasible global hypotheses, evaluate each one’s posterior probability, and marginalise down to the tracks. Kurien’s is track-oriented: score each candidate track on its own, then assemble upward. The two differ in the direction of the arrows and in almost nothing else, and the second is the one that reduces to an assignment problem.
scan k − 2scan k − 1scan krootL = +18z₁L = +23z₂L = +22missL = +16z₁z₂no detectionz₁ z₁′L = +28z₁ missL = +21z₂ missL = +15miss missL = +9prunedprunedN-scan window: the root’s branch is committed here, three scans after it was created
Fig. S2. Three scans of one track tree. Each node carries an accumulated log-likelihood ratio; solid boxes survive, dashed ones are pruned. Note when the losing branch dies: two scans after it was born, which is the entire mechanism. At the scan a permutation ghost is created its branch and the true branch have equal scores and nothing can separate them (Appendix A); by the third the targets have moved and the difference has accumulated.

C. The score

Each branch carries a log-likelihood ratio: the likelihood that this sequence of measurements came from a target, against the likelihood that it is false alarms. It accumulates one term per scan,

ΔL = ln( PD / (λ √|2πS|) ) − ½ d2 [detected](1)
ΔL = ln(1 − PD) [missed](2)

with Lk = Lk−1 + ΔL. The terms add because the innovations of a track are white, so their joint density is the product of the marginals. Appendix C derives both increments and explains why the ratio is dimensionless, which is what lets branches carrying different numbers of detections be compared at all.

III. The algorithm

A. How the tree is built

Each scan every live node produces children of three kinds. A match node for every measurement inside its gate, one per gated pair. A miss node, for the possibility that the target was there and went undetected. An init node for every measurement, for the possibility that it came from a target not yet tracked.

The miss node is grown for every track, not only for tracks whose gate came up empty, and the distinction is not academic. If only empty-gate tracks coast, a track that loses a contested measurement to a neighbour has no surviving child at all and its entire subtree dies at the next pruning — precisely at a crossing, which is the situation branching exists for. Growing it unconditionally is the Kurien–Reid track-oriented formulation [14] and it costs a factor of (1 + gated pairs) per node per scan. The live branch count in Table I is that population, and watching it move with target density is watching the method’s cost directly.

B. Global hypothesis formation

Branch generation produces not the one cheapest assignment but the k cheapest, in order, by Murty’s algorithm [3]. The best consistent set is then the maximum-weight independent set

maxB Σb∈B Lb s.t. b, b′ ∈ B ⇒ b ∩ b′ = ∅(3)

over the graph whose vertices are branches and whose edges join branches sharing a measurement. MWIS is NP-hard in general; the graphs here are small and sparse because gating has already removed almost every possible conflict, and they are decomposed into connected components first for the same reason JPDA clusters. Taking the K best sets rather than the single best is what gives each branch a probability, which the pruning below needs.

C. The ghost argument, made precise

At the scan a permutation ghost is born, its branch and the true branch have equal scores, so nothing can separate them — and this method does not try. By scan three the targets have moved, the ghost’s predicted position no longer matches any measurement, (2) fires instead of (1), and its score falls. The decision window is the algorithm’s statement of how long it is prepared to wait for that to happen, and its correct value is a property of how fast the geometry changes rather than of the tracker.

D. Track maintenance

A track is confirmed when its running maximum score passes an upper threshold and deleted when its score falls below a lower one. These are the bounds of Wald’s sequential probability ratio test [10], so they follow from the tolerable false-track rate α and missed-track rate β rather than from tuning: at α = 10−6 and β = 10−3 the thresholds are ln((1−β)/α) = +13.8 and ln(β/(1−α)) = −6.9.

Two quantities are carried and not one: the current score and the running maximum it has ever reached. A track that has not been confirmed dies on the absolute floor, while a confirmed one dies when it falls a fixed distance below its own maximum. A well-established track is therefore allowed a bad patch that would kill a freshly confirmed one, which is the whole purpose of carrying the second quantity. Appendix C states the tests and Table A1 the values.

E. Bounding the tree

Three prunings run, doing three different jobs. Leaf pruning keeps only the k best-scoring nodes claiming any one measurement, bounding the fan-out of a single popular measurement without looking at the tree as a whole. N-scan pruning is the commitment itself — once the window has passed a node, the best surviving branch below it is kept and its siblings discarded, and that decision stops being a hypothesis. Probability pruning drops branches whose share of the total hypothesis weight falls below a floor; where the first two prune by score, this prunes by the global picture, and a branch can be locally plausible while appearing in no hypothesis worth keeping.

A fourth is available and is deliberately not used. Merging collapses branches whose last N observations agree, on the argument that two histories differing only before the window can have no consequence the window is still able to decide. That argument holds when association is one-to-one, because sharing a recent history then means sharing the actual measurements. Under a hypothesis tree it does not: a node exists for every gated pair, so two distinct tracks can hold the same measurement at the same scan, and merging would fuse two tracks that are not the same track. It is measured worse here and is left off. The multi-scan assignment method takes the opposite view for an equally structural reason, given in its own article.

Above all of them sit hard caps on branches per track, branches in total and concurrent tracks. Those are not housekeeping and they are counted as cost rather than as machinery; the next section says why.

Expandmatch · miss · initLeaf prunek best per zClustershared measurementsk-best MWISMurty · top Kolder than N?the commitmentcommit the best branch belowProbability pruneshare below floornext scan — surviving branches carried forwardnot yet: the branch stays a hypothesis
Fig. S3. Control flow for one scan. Two return paths, and the difference between them is the method: the lower one carries surviving branches into the next scan, while the upper one is a decision declined — a node not yet old enough to be committed stays a hypothesis.

IV. Advantages and cost

It can be wrong and recover. Alone among the four, a bad association is a branch rather than a fact, and the branch dies when contradicted.

It resolves the permutation ghost by time rather than by geometry, which means it needs no extra sensor and no batch latency — only N more scans of the ones it already has.

Identity is stable. On the same scenario at two sensors MHT records a small fraction of GNN’s identity switches, because a crossing is the situation branching was invented for.

Best accuracy at three sensors of the three online methods (41 m against 68 and 99) at the same 2.5 ms as JPDA.

Cost, and the caps that make it a number. Murty k-best is O(k) assignments and MWIS is NP-hard but small on gated graphs. Measured solo at three sensors: 2.5 ms per step. That figure exists only because the branch population is capped: a hypothesis tree has no natural bound, so the caps in Table A1 are what convert an unbounded structure into a worst-case execution time and a memory footprint decided in advance. They are also the two knobs that trade accuracy for determinism.

V. Limitations

Branch explosion. The tree grows with target density, with clutter and with N, and the caps that contain it are hand-set limits whose right value depends on the scenario. Neither memory nor latency is bounded by anything intrinsic to the algorithm.

The N-scan window is a latency. A decision is only as good as the data behind it, and the data behind it is N scans old.

At two sensors it does not help (150 m). Deferring a decision is only useful if waiting produces information, and with two co-planar sensors observing targets on similar courses the ghost can persist for as long as the geometry does.

VI. Validation

The two halves of this method carry different claims and collapsing them would overstate what has been checked.

The hypothesis-tree core — node expansion, scoring, the prunings and the store that holds them — is a direct translation of a reference implementation and is verified against it by regression: identical inputs produce identical trees and identical filter states.

The k-best variant described here is not that translation. The reference’s own multiple-hypothesis routine is randomised, so no regression against it is possible; a deterministic variant returning the provably K best consistent sets was formulated instead, and it is measurement-validated. What is checked directly is that the sets it returns are ranked correctly, against exhaustive enumeration on graphs small enough to enumerate.

Table IResult at the current epoch
Live: the running scenario's own numbers, not a recorded benchmark. For reproducible medians see Table III.
Fig. 2aMean 2σ major axis, recent history
Step changes are sensors being added or removed; the sawtooth is track birth and death.
Table IIIThe four algorithms, five-seed medians
Method2 sen.3 sen.4 sen. ms/stepvalidation
OSPA at cutoff 200 m and clutter 2, in metres; lower is better. Every cell is the median of five seeds — the same configuration has been measured spanning 4.5 to 162.9 across seeds, so a single-seed figure is noise. Tuned on one seed set, reported on a disjoint one. Timing measured solo at three sensors. Click a row to open that article.
Fig. 2. The Cramér–Rao position bound as a body. One target at the origin, its sensors around it, and the 2σ covariance ellipsoids of a converged EKF and of a batch Gauss–Newton solution, both normalised by σ · reff so the absolute noise level cancels. Drag to orbit; the sensor list and both estimators are behind the gear. Three-dimensional because with a single target there is nothing to associate, hence no filter and nothing that can diverge.
Table IIGeometry and accuracy for the constellation above

Appendix — common to all four methods

References

  1. D. B. Reid, “An algorithm for tracking multiple targets,” IEEE Trans. Autom. Control, vol. 24, no. 6, pp. 843–854, 1979.
  2. Y. Bar-Shalom and E. Tse, “Tracking in a cluttered environment with probabilistic data association,” Automatica, vol. 11, no. 5, pp. 451–460, 1975.
  3. K. G. Murty, “An algorithm for ranking all the assignments in order of increasing cost,” Oper. Res., vol. 16, no. 3, pp. 682–687, 1968.
  4. S. Deb, M. Yeddanapudi, K. Pattipati and Y. Bar-Shalom, “A generalized S-D assignment algorithm for multisensor-multitarget state estimation,” IEEE Trans. Aerosp. Electron. Syst., vol. 33, no. 2, pp. 523–538, 1997.
  5. D. Schuhmacher, B.-T. Vo and B.-N. Vo, “A consistent metric for performance evaluation of multi-object filters,” IEEE Trans. Signal Process., vol. 56, no. 8, pp. 3447–3457, 2008.
  6. S. C. Nardone and V. J. Aidala, “Observability criteria for bearings-only target motion analysis,” IEEE Trans. Aerosp. Electron. Syst., vol. 17, no. 2, pp. 162–166, 1981.
  7. D. P. Bertsekas, “The auction algorithm: a distributed relaxation method for the assignment problem,” Ann. Oper. Res., vol. 14, pp. 105–123, 1988.
  8. R. B. Langley, “Dilution of precision,” GPS World, vol. 10, no. 5, pp. 52–59, 1999.
  9. Y. Bar-Shalom, S. S. Blackman and R. J. Fitzgerald, “Dimensionless score function for multiple hypothesis tracking,” IEEE Trans. Aerosp. Electron. Syst., vol. 43, no. 1, pp. 392–400, 2007.
  10. A. Wald, “Sequential tests of statistical hypotheses,” Ann. Math. Statist., vol. 16, no. 2, pp. 117–186, 1945.
  11. J. Munkres, “Algorithms for the assignment and transportation problems,” J. SIAM, vol. 5, no. 1, pp. 32–38, 1957.
  12. P. R. J. Östergård, “A new algorithm for the maximum-weight clique problem,” Nordic J. Computing, vol. 8, no. 4, pp. 424–436, 2001.
  13. T. A. Feo, M. G. C. Resende and S. H. Smith, “A greedy randomized adaptive search procedure for maximum independent set,” Oper. Res., vol. 42, no. 5, pp. 860–878, 1994.
  14. T. Kurien, “Issues in the design of practical multitarget tracking algorithms,” in Multitarget-Multisensor Tracking: Advanced Applications, Y. Bar-Shalom, Ed. Artech House, 1990, ch. 3.