pdf code

Discovery of Latent 3D Keypoints via End-to-end Geometric Reasoning

这篇论文完成的任务是,对单张图片输出一系列有序的keypoints,这些keypoints在不同视角下有相同的表达。训练时则通过同一物体不同视角的一对图片进行训练。

主体Pipeline

image

已知的相对刚体运动作为监督信号。inference的时候,KeypointNet从单个输入图中输出3D关键点

具体介绍

一个3D keypoint被定义为像素坐标加上对应的深度值。网络输出 N个分支,预测N个关键点。

目标函数由两个部分组成

Multi-view Consistency

描述两组点在ground truth转换前后点的距离

本质上就是将A图上的点转换到B图上求差值,再将B图上的点转换到A图上求差值,求和。

相对姿态估计。

这里只要求对估计的旋转矩阵计算loss

其中估计,令指代两个图计算出来的keypoints的 and

这个方法被称为Procrustes problem

SVD是可以backprob的实现的(同样使用可微分SVD的这篇文章也提到tensorflow有可微分SVD)

KeypointNet 结构

本文使用的KeypointNet,一个重要的性质在于平移等价,也就是说平移一个像素,输出位置也会移动一个单位。要求输出heatmap 代表第个keypoint出现在,要求使用spatial softmax去实现。

用加权平均求出对应keypoint的位置以及深度

辅助training

分离loss:对过于靠近的keypoints给一个loss

轮廓一致性:鼓励keypoints在物体内部,原因是training的时候能得到图片每一个坐标是否对应一个object,这个mask标记为