目录

目录

3D Pose Regression Using Convolutional Neural Networks


3d pose regression using convolutional neural networks

[ 3D pose estimation,其实只考虑旋转角,没有考虑位移 ]

  • 2017年的认知:大多数这类任务是用的pose分类问题,把pose space分成离散的bins,用CNN分类器
    • 所以作者要用CNN regression framework
    • 主要针对的还是 pose estimation问题
    • 挑战在于:3D pose space是非欧几里得的,因此CNN算法需要修改来应对输出空间的非线性

Motivation

  • 设计了一个CNN框架来解决连续域下的pose 估计问题,通过设计一个尊重3D pose 空间非线性结构的合适的表征、数据增强和loss函数

具体细节

  • 网络
    • feature network, shared between 所有的物体类别;
    • pose network,为每个类别单独设计
  • 表征:两种表征:轴角和四元数
  • representing 3D poses
    • 一个三维旋转群的定义:\(SO(3)\dot=\{R:R \in \mathbb{R}^{3 \times 3}, R^TR=I_3, det(R)=1 \}\)
    • 然后可以定义两个旋转矩阵\(R_1\), \(R_2\)之间的测地距离(geodesic distance)
      \(d(R_1, R_2)=\frac {\lVert \log(R_1R_2^T) \rVert_F} {\sqrt{2}}\)
    • axis-angle 轴角定义
      • 一个旋转矩阵\(R\)代表着3D点绕着轴\(v\)旋转角\(\theta\) , \(\lVert v \rVert_2=1\)
      • 这可以被表达为 \(R=\exp(\theta[v]_{\times})\)
        • \(\exp\)是矩阵指数
        • \([v]_{\times}\)\(v\) 的skew-symmetric操作符,i.e., \([v]_{\times}=\left( \begin{smallmatrix} 0 & -v_3 & v_2 \\ v_3 & 0 & -v_1 \\ -v_2 & v_1 & 0 \end{smallmatrix} \right)\) for \(v=[v_1,v_2,v_3]^T\)
      • 因此,每一个旋转矩阵\(R\)有一个相应的aixs-angle vector \(y=\theta v\), vice-versa
        • 限制 \(\theta \in [0,\pi)\),定义\(R=I_3 \iff y=\boldsymbol{0}_3\) ,保证旋转矩阵R和表征y的单一映射
        • 矩阵指数可以被简化为\(R=I_3+\sin\theta[v]_{\times}+(1-\cos\theta)[v]_{\times}\),用Rodrigues' rotation formula
      • 于是,\(d(R_1, R_2)=\frac {\lVert \log(R_1R_2^T) \rVert_F} {\sqrt{2}}\)可以被简化为:
        • \(d_A(R_1,R_2)=\cos^{-1}[\frac {tr(R_1^TR^2)-1} {2}]\)
        • 注意到 \(\lVert \log\left( \exp(\theta_1[v_1]_\times)\exp(\theta_2[v_2]_\times)^T \right)\rVert_F /\sqrt{2}\) 看上去很像 \(\lVert \theta_1 v_1 - \theta_2 v_2 \rVert_2\) ,但是他们不一样,因为\(\exp(\theta_1[v_1]_\times)\exp(\theta_2[v_2]_\times)^T \neq \exp\left( \theta_1[v_1]_{\times}-\theta_2[v_2]_{\times} \right)\) in general. 这个等式只在 matrices \([v_1]_{\times}\)\([v_2]_{\times}\) commute时才成立。i.e. \(v_1=\pm v_2\)
    • quaternion 四元数定义 另一个3D旋转矩阵常用的表征
      • 给定一个轴角向量\(y=\theta v\),相应的四元数\(q=(c,s)\)\((\cos \frac {\theta} {2}, \sin \frac {\theta} {2} v)^T\)
        • 在构造时,四元数是unit-norm的(单位正交),\(\lVert q \rVert_2=1\)
        • 使用四元数代数,我们有:\((c_1,s_1)\cdot (c_2, s_2)=\left( c_1 c_2-\langle s_1,s_2 \rangle, c_1s_2+c_2s_1+s_1\times s_2 \right)\) 以及 \((c,s)^{-1}=(c,-s)\)对于单位正交\(q=(c,s)\).
          • 这里是四元数乘法的定义,以及单位正交四元数的性质(共轭为逆运算)
        • 现在,用四元数来表达\(d(R_1, R_2)=\frac {\lVert \log(R_1R_2^T) \rVert_F} {\sqrt{2}}\)
          • \(d(q_1,q_2)=2\cos^{-1}(\lvert c \rvert) \quad where \quad (c,s)=q_1^{-1}\cdot q_2\) ,再简化一些得到:
            \(d_Q(q_1,q_2)=2\cos^{-1} \left( \lvert \langle q_1, q_2 \rangle \rvert \right)\)
            • 加绝对值是为了handle double cover问题

网络结构

  • 对于轴角表示:
    • 输出\(\theta v\),用\(\pi \tanh\) 非线性激活层来建模 约束\(\theta \in [0,\pi)\)\(v_i \in [-1,1]\)
    • \(\mathcal{L}=d_A(R,\hat{R})=\cos^{-1}[\frac {tr(R_1^TR^2)-1} {2}]\)来最优化
    • ==思考==:这里还是直接回归角度,是否还是会存在pose-ambiguity问题?也许angle 会存在一个既接近0又接近\(\pi\)的值?是否会因为这个有影响?
    • loss这头先在没有影响了,因为用的是geodesic loss
      • 主要是输出这头,可能在输出时存在ambiguity
  • ==思考==:用一个周期性的激活函数是否可以消除这个问题?
  • 对于四元数表示:
    • 输出是一个4维量,单位正交约束通过 choosing the non-linearity as L2 normalization 来保证
      • Q: what ?
    • \(\mathcal{L}=d_Q(R,\hat{R})=2\cos^{-1} \left( \lvert \langle q_1, q_2 \rangle \rvert \right)\) 来最优化