文章目录
解决什么问题
6Dpose估计的微调,让结果更精准
本文创新点\贡献
- 基于图片的pose微调网络
- 在目标位姿之间提出了 S E ( 3 ) SE(3) SE(3)的untangled表达,这种表达还能用来微调看不见的物体
前人方法
- 将从图像中提取的特征和物体的3D模型中的特征匹配,使用2D-3D对应来估计位姿,但是这种处理不了纹理少的物体,能用来提取的特征很少
- 处理纹理少的方法:估计3D坐标系的像素或者关键点,然后建立对应来估计;用分类或回归的方法(小的的分类或回归误差会影响后来的结果)
本文IDEA来源
没讲,此处写一下借鉴的方法:
- [ Training a feedback loop for hand pose estimation ] 2015 迭代的方法借鉴于此
- [ Geometric loss functions for camera pose regression with deep learning ]使用重投影误差作为loss,作者做了一些修改
方法
方法概述
用输入的poes生成render图片和render mask图片,结合observed图片和obserbed mask图片输入到网络中,生成pose偏差,用这个偏差修改pose后再输入到网络中,再生成一个pose偏差,再修正输入,即得到最后微调的结果
High-resolution Zoom In
目的
很小的图片很难获取好的特征,所以要调高observed图片的分辨率。
步骤
根据输入的pose可以生成rendered图像和rendered mask,observed图像就是检测出来的bbox,根据这个也可以生成一个mask(要注意一点,得到这个ovserved mask之后要随机扩大十个元素,这样可以避免过拟合),然后将这四张图中的物体、mask截取出来,截取的时候要保证两个条件:
- 截取的大小要能在保证长宽比不变的情况下,缩放到原图大小(比如 480 × 460 480 \times 460 480×460)
- 截取出来的中心要是3D模型的原点的2D射影(根据输入的pose获得)
之后放大并线性插值到原图的大小(作者的是 480 × 640 480 \times 640 480×640)
缩放到原图大小就相当于让摄像机的中心发生了位移
我的理解是obserced和rendered用的是同一个中心,也就是model原点射影的中心,然后截取面积的时候按照跟原图一样的截取,长宽都要比observed图片的bbox大一些
Untangled Transformation Representation
目标
找到一个合适的表达方式,既能得到好的效果,又能处理没见过的物体
分析
先在 a Naive 坐标系下考虑:
假设当前的pose为 [ R s r c ∣ t s r c ] [R_{src}|t_{src}] [Rsrc∣tsrc],与真实值 [ R t g t ∣ t t g t ] [R_{tgt}|t_{tgt}] [Rtgt∣ttgt]之间的相对差值为 [ R Δ ∣ t Δ ] [R_{\Delta}|t_{\Delta}] [RΔ∣tΔ],则真实值为:
R t g t = R Δ R s r c , t t g t = R Δ t s r c + t Δ R_{tgt} = R_{\Delta}R_{src},\ \ t_{tgt} = R_{\Delta}t_{src} + t_{\Delta} Rtgt=RΔRsrc, ttgt=RΔtsrc+tΔ
R Δ t s r c R_{\Delta}t_{src} RΔtsrc表示旋转的差值,它不仅会对旋转产生影响,还会对位移产生影响
转动之后位置就变了,原本两个点之间的相对位置也变了,所以无法在不知旋转差值的情况下知道 t Δ t_{\Delta}