**Algorithm 3** Single-object Unscented RTS (URTS) smoother

**Input:** The filtered mean and covariance {*xk*, *Pk*}*k*=1:*<sup>N</sup>* , *f*(*x*+|*x*) , *Q* **Output:** The smoothed mean and covariance {*x<sup>s</sup> <sup>k</sup>*, *<sup>P</sup><sup>s</sup> k* }*k*=1:*N*

**Initialization:** *x<sup>s</sup> <sup>N</sup>* = *xN* and *<sup>P</sup><sup>s</sup> <sup>N</sup>* = *PN* **for** *k* = *N* − 1 down to 1 {*W*(*m*) *<sup>i</sup>*−<sup>1</sup> , *<sup>W</sup>*(*c*) *<sup>i</sup>*−1, [*X*˜*<sup>x</sup> i* ; ˜ *Xq <sup>i</sup>* ]} = UnscentedTransform (*xk*, *Pk*, *Q*) *X*˜ *<sup>i</sup>*<sup>+</sup> = *f*(*X*˜*<sup>x</sup> i* , ˜ *Xq i* ) *<sup>x</sup>*¯*k*+<sup>1</sup> <sup>=</sup> <sup>∑</sup>*<sup>i</sup> <sup>W</sup>*(*m*) *<sup>i</sup>*−<sup>1</sup> *<sup>X</sup>*˜ *i*+ *P*¯ *<sup>k</sup>*+<sup>1</sup> <sup>=</sup> <sup>∑</sup>*<sup>i</sup> <sup>W</sup>*(*c*) *<sup>i</sup>*−1(*X*˜ *<sup>i</sup>*<sup>+</sup> <sup>−</sup> *<sup>x</sup>*¯*k*+1)(*X*˜ *<sup>i</sup>*<sup>+</sup> − *<sup>x</sup>*¯*k*+1)*<sup>T</sup> C*¯ *<sup>k</sup>*+<sup>1</sup> <sup>=</sup> <sup>∑</sup>*<sup>i</sup> <sup>W</sup>*(*c*) *<sup>i</sup>*−1(*X*˜*<sup>x</sup> <sup>i</sup>* <sup>−</sup> *xk*)(*X*˜ *<sup>i</sup>*<sup>+</sup> − *<sup>x</sup>*¯*k*+1)*<sup>T</sup> D* = *C*¯ *<sup>k</sup>*+<sup>1</sup> (*P*¯ *<sup>k</sup>*+1) −1 *xs <sup>k</sup>* = *xk* + *D xs <sup>k</sup>*+<sup>1</sup> − *x*¯*k*+<sup>1</sup> *Ps <sup>k</sup>* = *Pk* + *D Ps <sup>k</sup>*+<sup>1</sup> <sup>−</sup> *<sup>P</sup>*¯ *k*+1 *D<sup>T</sup>* **end**

While the advantages are mentioned previously, this estimator is also subjected to certain drawbacks in challenging tracking scenarios. First, depending on the nature of the problem, the user needs to set an appropriate pruning threshold *τ<sup>l</sup>* to prevent the estimator from deleting correct trajectories, especially when track identity switching is severe. Second, as the estimator relies on the latest hypothesis to produce estimates, the more this hypothesis deviates from the truth, the more inaccurate the entire estimation. In addition, in the case that wrong new tracks keep appearing in the set of trajectory estimates, overestimating of the number of tracks is also possible. However, the benefit from track fragmentation reduction and improvement of tracking accuracy given negligible computational effort is much more than the risk of incorrectly estimating the number of tracks, and the following simulation results are a strong demonstration of the benefits of our proposed tracker.

}

**Algorithm 4** Trajectory forward filtering-backward smoothing

**Input:** <sup>T</sup><sup>ˆ</sup> <sup>=</sup> {(<sup>ˆ</sup> *l*1, ˆ *b*ˆ *l*1 , ˆ *ξ*ˆ *l*1 ), ...,(ˆ *lN*, ˆ *b*ˆ *lN* , <sup>ˆ</sup> *ξ*ˆ *lN* )}, {*Z*1, ..., *ZK*} **Output:** The estimated trajectories {{*m*<sup>ˆ</sup> *l*1 *<sup>k</sup>* , *P* ˆ *l*1 *k* } *k* ˆ *l* 1 *<sup>i</sup>* :*k* ˆ *l* 1 *e* , ..., {*m*<sup>ˆ</sup> *lN <sup>k</sup>* , *P* ˆ *lN k* } *k* ˆ *l N <sup>i</sup>* :*k* ˆ *l N e* **for** *n* = 1 to *N* Initialize {*m*¯ *ln k* ˆ *ln i* , *P*¯*ln k* ˆ *ln i* } from the initial birth <sup>ˆ</sup> *b*ˆ *ln* {*m*˜ *ln k* ˆ *ln i* , *P*˜*ln k* ˆ *ln i* } <sup>=</sup> SingleObjectUpdate (*m*¯ *ln k* ˆ *ln i* , *P*¯*ln k* ˆ *ln i* , *z k* ˆ *ln i* ˆ *ξ k* ˆ *ln i* ˆ *ln* ) **for** *k* from *k* ˆ *ln <sup>i</sup>* + 1 to *k* ˆ *ln e* {*m*¯ *ln <sup>k</sup>* , *<sup>P</sup>*¯*ln <sup>k</sup>* } <sup>=</sup> SingleObjectPrediction (*m*˜ *ln <sup>k</sup>*−1, *<sup>P</sup>*˜*ln <sup>k</sup>*−1) **if** ˆ *ξk* ˆ *ln* = 0 {*m*˜ *ln <sup>k</sup>* , *<sup>P</sup>*˜*ln <sup>k</sup>* } <sup>=</sup> {*m*¯ *ln <sup>k</sup>* , *<sup>P</sup>*¯*ln k* } **else** {*m*˜ *ln <sup>k</sup>* , *<sup>P</sup>*˜*ln <sup>k</sup>* } <sup>=</sup> SingleObjectUpdate (*m*¯ *ln <sup>k</sup>* , *<sup>P</sup>*¯*ln <sup>k</sup>* , *<sup>z</sup><sup>k</sup>* ˆ *ξk* ˆ *ln* ) **end end** {*m*ˆ *ln <sup>k</sup>* , *<sup>P</sup>*<sup>ˆ</sup> *ln k* } *k* ˆ *ln <sup>i</sup>* :*k* ˆ *ln e* = SingleObjectSmoothing ({*m*˜ ˆ *ln <sup>k</sup>* , *<sup>P</sup>*˜<sup>ˆ</sup> *ln k* } *k* ˆ *ln <sup>i</sup>* :*k* ˆ *ln e* ) **end**
