文章使用深度网络和姿态网络。 深度网络是U-Net 编码器-解码器模型结构。
编码器是经过预训练的ResNet模型,解码器能够将输出转化成深度值,这个深度值是一个归一化的相对深度,即离相机越近,值越接近0,无穷远接近1。可用深度图表示。
使用两个彩色图像作为输入来预测单个6自由度相对姿势或旋转和平移参数。单个图像作为输入来预测深度。
理解U-net:U-net是一种编码器-解码器结构,最初应用于图像分割。与传统CNN不同,之前见到的CNN往往用于分类,相当于输入一个图像,CNN层层提取特征图,最后通过两个全连接层拉成向量,用向量表达各个分类的概率。
而用于图像分割的则不同,因为最后要得到的是一个被分割的图像,因此
1 最后输出的尺寸必须是与原图一致的
2 我们可以把这个过程理解成求解一个映射,输入原图I,输出被分割的图像seg。
因此最后不能使用全连接层,而是用卷积层进行替代,那么这个网络完全由卷积层构成,编码的部分称为全卷积网络(FCN)
从FCN恢复出分割图:那么FCN得到特征图之后如何恢复成分割的图像呢。得到的高维特征图是比原图小的,因此文章采用了上采样的方法来将特征图恢复到原始图像的大小。也就是将高维特征图翻译成原图时对应的分割图像
恢复的过程并不是单纯的上采样,我们认为浅层的网络更关注于细节信息,高层的网络更关注于语义信息,因此融合了几个不同深度的预测(跳级skip),个人认为这一块是特征金字塔网络FPN的思想。这里的融合是像素级(element-wise)的融合。
参考:
https://blog.csdn.net/Formlsl/article/details/80373200
https://blog.csdn.net/qq_36269513/article/details/80420363
对文章的主要贡献的理解:
1.auto-mask技术,加在loss上,减少相对相机静止的物体(包括无穷远点)的影响。
这种mask是二进制的。对于某一些静止像素,相机静止,或是低纹理区域,如果目标图像t和源图像s之间的光度误差 小于 目标图像和恢复出的目标图像的光度误差,那么光度误差系数则为1,否则为0。相机静止的时候整个帧都会被过滤掉。这一段我的理解是目标图像和源图像光度误差很小,说明两帧之间这个像素没有变化,没有移动,那么就可以直接过滤掉。
2.用深度图修正光度重建误差。
这一思想可以参考17年的论文sfm-learner。将深度估计和位姿估计通过相机内参数联系到一起。
3 多尺度深度估计。
这一点参见FPN的思想。