🐇

TEASER++

Remark

Quaternion

qc=qaqb=Ω1(qa)qb=Ω2(qb)qa\boldsymbol{q}_{c}=\boldsymbol{q}_{a} \circ \boldsymbol{q}_{b}=\boldsymbol{\Omega}_{1}\left(\boldsymbol{q}_{a}\right) \boldsymbol{q}_{b}=\boldsymbol{\Omega}_{2}\left(\boldsymbol{q}_{b}\right) \boldsymbol{q}_{a}
Ω1(q)=[q4q3q2q1q3q4q1q2q2q1q4q3q1q2q3q4],Ω2(q)=[q4q3q2q1q3q4q1q2q2q1q4q3q1q2q3q4]\boldsymbol{\Omega}_{1}(\boldsymbol{q})=\left[\begin{array}{cccc} q_{4} & -q_{3} & q_{2} & q_{1} \\ q_{3} & q_{4} & -q_{1} & q_{2} \\ -q_{2} & q_{1} & q_{4} & q_{3} \\ -q_{1} & -q_{2} & -q_{3} & q_{4} \end{array}\right], \quad \boldsymbol{\Omega}_{2}(\boldsymbol{q})=\left[\begin{array}{cccc} q_{4} & q_{3} & -q_{2} & q_{1} \\ -q_{3} & q_{4} & q_{1} & q_{2} \\ q_{2} & -q_{1} & q_{4} & q_{3} \\ -q_{1} & -q_{2} & -q_{3} & q_{4} \end{array}\right]
q1=[vs]\boldsymbol{q}^{-1}=\left[\begin{array}{c} -\boldsymbol{v} \\ s \end{array}\right]
[Ra0]=qa^q1\left[\begin{array}{c} \boldsymbol{R a} \\ 0 \end{array}\right]=\boldsymbol{q} \circ \hat{\boldsymbol{a}} \circ \boldsymbol{q}^{-1}

Problem formulation

bi=sRai+t+oi+ϵi\boldsymbol{b}_{i}=s^{\circ} \boldsymbol{R}^{\circ} \boldsymbol{a}_{i}+\boldsymbol{t}^{\circ}+\boldsymbol{o}_{i}+\boldsymbol{\epsilon}_{i}
mins>0,RSO(3),tR3i=1Nmin(1βi2bisRait2,cˉ2)\min _{s>0, \boldsymbol{R} \in \mathrm{SO}(3), \boldsymbol{t} \in \mathbb{R}^{3}} \sum_{i=1}^{N} \min \left(\frac{1}{\beta_{i}^{2}}\left\|\boldsymbol{b}_{i}-s \boldsymbol{R} \boldsymbol{a}_{i}-\boldsymbol{t}\right\|^{2}, \bar{c}^{2}\right)
βi is the upper bound of inlier noise ϵi. cˉ is 1, but reserved for discussion.\beta_i \textrm{~is the upper bound of inlier noise } \epsilon_i.~\bar{c}~\textrm{is 1, but reserved for discussion.}

Decoupling

Translation Invariant Measurements (TIMs)

bjbi=sR(ajai)+(ojoi)+(ϵjϵi)\boldsymbol{b}_{j}-\boldsymbol{b}_{i}=s \boldsymbol{R}\left(\boldsymbol{a}_{j}-\boldsymbol{a}_{i}\right)+\left(\boldsymbol{o}_{j}-\boldsymbol{o}_{i}\right)+\left(\boldsymbol{\epsilon}_{j}-\boldsymbol{\epsilon}_{i}\right)
bij=sRaij+oij+ϵij\overline{\boldsymbol{b}}_{i j}=s \boldsymbol{R} \overline{\boldsymbol{a}}_{i j}+\boldsymbol{o}_{i j}+\boldsymbol{\epsilon}_{i j}

Translation and Rotation Invariant Measurements (TRIMs)

bij=sRaij+oij+ϵij\left\|\overline{\boldsymbol{b}}_{i j}\right\|=\left\|s \boldsymbol{R} \overline{\boldsymbol{a}}_{i j}+\boldsymbol{o}_{i j}+\boldsymbol{\epsilon}_{i j}\right\|
bij=sRaij+o~ij+ϵ~ij\left\|\overline{\boldsymbol{b}}_{i j}\right\|=\left\|s \boldsymbol{R} \overline{\boldsymbol{a}}_{i j}\right\|+\tilde{\boldsymbol{o}}_{i j}+\tilde{\epsilon}_{i j}
sij=s+oijs+ϵijss_{i j}=s+o_{i j}^{s}+\epsilon_{i j}^{s}

TEASER

  1. TRIMs for s — TLS estimation
    s^=argminsk=1Kmin((ssk)2αk2,cˉ2)\hat{s}=\underset{s}{\arg \min } \sum_{k=1}^{K} \min \left(\frac{\left(s-s_{k}\right)^{2}}{\alpha_{k}^{2}}, \bar{c}^{2}\right)
    • Algorithm: adpative voting, polynomial time, exact
    • The solution is trivial: enumerate, sort, and vote
  1. s + TIMs for R
    R^=argminRSO(3)k=1Kmin(bks^Rak2δk2,cˉ2)\hat{\boldsymbol{R}}=\underset{\boldsymbol{R} \in \mathrm{SO}(3)}{\arg \min } \sum_{k=1}^{K} \min \left(\frac{\left\|\overline{\boldsymbol{b}}_{k}-\hat{s} \boldsymbol{R} \overline{\boldsymbol{a}}_{k}\right\|^{2}}{\delta_{k}^{2}}, \bar{c}^{2}\right)
    • Algorithm: Robust rotation search via tight semidefinite relaxation, polynomial time, exact
    minqU3k=1Kmin(b^kqa^kq12δk2,cˉ2)\min _{\boldsymbol{q} \in \mathcal{U}^{3}} \sum_{k=1}^{K} \min \left(\frac{\left\|\hat{\boldsymbol{b}}_{k}-\boldsymbol{q} \circ \hat{\boldsymbol{a}}_{k} \circ \boldsymbol{q}^{-1}\right\|^{2}}{\delta_{k}^{2}}, \bar{c}^{2}\right)

    is equivalent with

    minqU3θk={±1}k=1K1+θk2b^kqa^kq12δk2+1θk2cˉ2\min _{\boldsymbol{q} \in \mathcal{U}^{3} \atop \theta_{k}=\{\pm 1\}} \sum_{k=1}^{K} \frac{1+\theta_{k}}{2} \frac{\left\|\hat{\boldsymbol{b}}_{k}-\boldsymbol{q} \circ \hat{\boldsymbol{a}}_{k} \circ \boldsymbol{q}^{-1}\right\|^{2}}{\delta_{k}^{2}}+\frac{1-\theta_{k}}{2} \bar{c}^{2}

    can be rewritten with

    minqU3qk={±q}k=1b^kqa^kq1+qqkb^kqa^kqk124δk2+1qqk2cˉ2\min _{\boldsymbol{q} \in \mathcal{U}^{3} \atop \boldsymbol{q}_{k}=\{\pm \boldsymbol{q}\}^{k}=1} \frac{\left\|\hat{\boldsymbol{b}}_{k}-\boldsymbol{q} \circ \hat{\boldsymbol{a}}_{k} \circ \boldsymbol{q}^{-1}+\boldsymbol{q}^{\top} \boldsymbol{q}_{k} \hat{\boldsymbol{b}}_{k}-\boldsymbol{q} \circ \hat{\boldsymbol{a}}_{k} \circ \boldsymbol{q}_{k}^{-1}\right\|^{2}}{4 \delta_{k}^{2}} + \frac{1-\boldsymbol{q}^{\top} \boldsymbol{q}_{k}}{2} \bar{c}^{2}

    with

    qkθkq\boldsymbol{q}_{k} \doteq \theta_{k} \boldsymbol{q}

    Now q_k = q for inliers and -q for outliers. It is equivalent to Quadratically-Constrained Quadratic Program:

    minxR4(K+1)xQxs.t.xqxq=1xqkxqk=xqxq,i=1,,K\begin{array}{ll} \min _{\boldsymbol{x} \in \mathbb{R}^{4(K+1)}} & \boldsymbol{x}^{\top} \boldsymbol{Q} \boldsymbol{x} \\ \text {s.t.} & \boldsymbol{x}_{q}^{\top} \boldsymbol{x}_{q}=1 \\ & \boldsymbol{x}_{q_{k}} \boldsymbol{x}_{q_{k}}^{\top}=\boldsymbol{x}_{q} \boldsymbol{x}_{q}^{\top}, \forall i=1, \ldots, K \end{array}

    Q depends on TIMs. Reformat Z with x,

    Z=xx=[qqqq1qqKq1q1q1qKqKqK]S+4(K+1)\boldsymbol{Z}=\boldsymbol{x} \boldsymbol{x}^{\top}=\left[\begin{array}{cccc} \boldsymbol{q} \boldsymbol{q}^{\top} & \boldsymbol{q} \boldsymbol{q}_{1}^{\top} & \cdots & \boldsymbol{q} \boldsymbol{q}_{K}^{\top} \\ \star & \boldsymbol{q}_{1} \boldsymbol{q}_{1}^{\top} & \cdots & \boldsymbol{q}_{1} \boldsymbol{q}_{K}^{\top} \\ \vdots & \vdots & \ddots & \vdots \\ \star & \star & \cdots & \boldsymbol{q}_{K} \boldsymbol{q}_{K}^{\top} \end{array}\right] \in \mathcal{S}_{+}^{4(K+1)}

    this turns to

3. d + R for t

t^j=argmintji=1Nmin((tj[bis^R^ai]j)2βi2,cˉ2)\hat{t}_{j}=\underset{t_{j}}{\arg \min } \sum_{i=1}^{N} \min \left(\frac{\left(t_{j}-\left[\boldsymbol{b}_{i}-\hat{s} \hat{\boldsymbol{R}} \boldsymbol{a}_{i}\right]_{j}\right)^{2}}{\beta_{i}^{2}}, \bar{c}^{2}\right)

Boost performance