HITNet Hierarchical Iterative Tile Refinement Network for Real-time Stereo Matching--Google(1)

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

一个x和y方向上的视差梯度(dx, dy),和一个可学习的P,给他命名为feature descriptor

Tile Hypothesis 中feature descriptor是可以学习的,所以它会为网络附加额外的信息到Tile Hypothesis上对于这部分我们不增加约束信息,只是

跟着网络end2end的学习

3.2 Feature Extractor

特征提取器产生多尺度的特征图e0–em,这些特征图用在后面initing matching 和 传播级中的warping,关于不同尺度的feature map的定义如下

3.3 Initialization

Initialization stage的目标是在不同的精度下为每个tile生成一个初始的d_init和P_init,因此 Initialization stage输出的是fronto-parallel tile hypotheses

**Tile Disparity.**为了保持初始的视差图的高分辨率,我们沿着x方向使用了重叠的tiles, 为了提取tile的特征,我们对每个提取的feature map el进行4 × 4的卷积,左边(参考)图像和右边(次要)图像的stride是不同的,以方便前面提到的重叠贴图, 对于左边的图像,我们使用了4 × 4的stride,而对于右边的图像,我们使用了4 × 1的stride,这对于保持完整的视差分辨率以最大化精度是至关重要的。这个卷积之后是一个leaky ReLU和一个1 × 1的卷积

这步输出的结果是一个新的dict,需要注意的是此时左右视图的feature map的宽度是不同的,每个tile feature是沿着扫描线是匹配的,定义matching cost如下(2)

注意,尽管初始化阶段对所有的视差都进行了完全匹配的计算,但没有必要存储整个成本量,在测试时,只需要提取最佳匹配的位置,

这样可以非常有效地利用快速内存,例如gpu上的共享内存和在单个Op中的融合实现。因此,不需要存储和处理3D成本量。

Tile Feature Descriptor

初始化阶段还预测一个特征描述P_init(l, x, y)对每个(x,y)位置和精度l

上面公式可以发现这个特征由分号前的两个因素决定,分号后是可学习的参数由1X1卷积+leaky relu实现,通过公式可以

发现P中包含matching cost,所以网络学习参数中包含了match confidence。

3.4 propagation

传播步骤以tile hypotheses为输入,输出基于空间信息传播和信息融合的精细tile hypotheses。对前面提取的特征进行

warp,warp是从右图像(次要)到左图像(参考),以预测高度准确的偏移输入tiles。另外还预测了一个置信度,该置信度允许

有效的融合从早期传播层和初始化阶段的hypotheses

Warping

这个阶段计算一个匹配损失,由左右视图feature map在分辨率l下计算得到,这个步骤用来创建一个local cost volume针对

当前的hypothesis,每个tile hypothesis 被转换成一个尺寸为4 × 4的planar patch,它原本覆盖在feature map中,我们定义

这个局部的4X4的local disparity map 为d’ 公式如下

使用沿着扫描线的线性插值,利用局部视差被用来warp得到e(R,l),从右(次要)图像warp到左(参考)图像得到e(R,l)‘ 如果d‘是精确的

那么得到的e(R,l)‘将和相应的左(参考)图像非常相似,通过比较参考(x, y)图和warp得到的图,我们定义了上图中的代价向量。

Tile Update Prediction

这一步以n个tile hypotheses为输入,并预测tile hypotheses的增量加上每个tile hypotheses的标量值w,表示这个tile hypotheses有多大可能是正确的,即一个置信度量,这个机制使用一个CNN模块U来实现,卷积架构能让网络看到空间邻域的tile hypotheses,从而能够在空间上传播信息,这一步的一个关键部分是,我们扩大了tile hypothesis使用从warping步骤中计算的匹配代价φ;通过在视差空间中为一个小邻域这样做,我们建立了一个local cost volume,允许网络更有效地精炼tile hypotheses,详细的步骤是,我们替换tile中的全部视差,我们在正负两个方向上以一个恒定的视差偏移量替换tile中的所有视差,并计算三次cost,使用此方法让a成为输入tile map h的增广tile hypothesis map

U使用没有bn的residual blocks来实现,此外还是用了dilated convolutions来增大感受野,在运行一系列具有不同膨胀因子的residual blocks之前,我们先运行1×1卷积,然后使用一个leaky ReLU来减少特征通道的数量, 更新模块以分层迭代的方式应用(Fig.2),在最低精度l=M下每个位置我们仅有一个tile hypotheses因此n=1;我们通过累加输入的tile hypotheses和增量来应用tile更新,并在每个方向上对贴图进行2倍的上采样,因此,视差d是使用tile的平面方程和剩余的tile hypothesis dx, dy和使用最近邻抽样进行上采样的p三部分完成的;在下一个分辨率M -1,我们现在有两个hypotheses:一个来自初始化阶段,另一个是较低分辨率的上采样hypotheses,故n = 2;我们利用wi为每个位置选择置信度最高的更新tile hypothesis,迭代这个过程知道分辨率为0。为了进一步细化视差图,我们将tile的大小减小了2 × 2倍,并为tile分配了full resolution特征,我们使用n = 1来运行传播模块,直到我们达到tile大小为1 × 1,

这是我们的最终预测。

4、Loss Functions

这部分会详细介绍loss部分,我们的loss依赖ground truth disparities, 为了在不同精度计算loss,我们使用maxpool来down sample GT 到我们需要的分辨率。

4.1 Initialization Loss

GT的视差是亚像素精度的浮点型,而初始化匹配过程中用的是整数的视差。因此,我们使用线性插值计算亚像素差异的matching cost,cost公式如下

公式(9)中为了简化没有写下标,训练的时候学习特征的参数使得matching cost 最小(视差像素),其他像素

位置尽量大,为了实现这一点,我们设计了一个l1对比损失如图(10),其中beta在实验中设置为1,在早期基于深度学习的立体匹配方法中,类似的对比损失也被用

于学习匹配分数。但是,他们分别使用一个随机的非匹配位置作为负样本,或者使用所有的非匹配位置作为负样本。

4.2 Propagation Loss

在传播过程中,我们对tile几何形状d,dx,dy和tile置信度w施加损失,我们使用视差GT_d和视差梯度GT_dx和GT_dy,我们通过在以像素为中心的9×9窗口

中强制将一个平面拟合到GT_d来,为了在tile几何上应用损失,我们首先将tile扩展到一个完整的分辨率视差图d使用平面方程(d,dx,dy)类似于Eq.5,我们使用来自[2]

的一般鲁棒损失函数ρ(·),它类似于一个平滑的L1损失,也就是说,Huber损失。此外,我们使用阈值A对loss进行了截断, 公式如下图

χ是一个指标函数当条件满足时值为1否则值为0,为了监督置信度w,我们施加一个损失,如果预测的hypothesis比阈值C1更接近GT,则增加了置信值,如果预测的

假设比阈值C2更远离GT,则减少了置信值

4.3 Global Loss

整个网络训练是end2end的,所以全部的loss都是在不同的scale和pixel加权求和得到总loss

5、Experiments

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值