UnsupervisedMonocular Depth Estimation with Left-Right Consistency

为什么能注意到这篇文章呢,因为它是端到端,同时在loss处可以达到左右一致性检测。就是将post-processing结合到了端到端之中。因此,我很注重它的loss。

一般接触的算法都是supervise的,就是都需要质量比较好的ground truth。

这篇还有个贡献就是不需要ground truth也依旧可以训练。以图像重建loss可以生成disparity。听说结果比supervise的都要好(吹?)

总结一下,该论文的算法结构模仿DispNet。而且非监督,不需要ground truth深度信息,且直接在loss上面包含了left-right consistency(左右一致性矫正)

Depth Estimation as Image Reconstruction

可以将深度预测问题看成回归问题,即将双目相机的左右两图,左图可以回归成右图即可。


我们的loss module output产生左右两个视差图,loss包含了平滑项,重建项,还有左右视差一致性项。每四个输出scale重复这样的module。C:卷积,UC:上采样卷积S:双边采样 US:上采样 SC:Skip 连接。注意哦~我们的每个model包含 上采样的内容,

3.Method

提出基于左右一致性检测的新颖深度训练loss。这样网络不需要监督信息

3.1 Depth Estimation as Image Reconstruction

就是将监督的回归问题,转化成了非监督的重建问题,最小化重建误差。就是左边warp到右边,右边warp到左边。然后求重建误差最小。

3.2 Depth Estimation Network

本文奇特的是只根据一张左图同时产生两个disparity信息(左->右,右->左),使得它们相互一致~



就是一个左图,产生了左视察,然后左视差形成右视差。。


这个就是网络结构,思路来自于DispNet。

代码如下:

    def conv(self, x, num_out_layers, kernel_size, stride, activation_fn=tf.nn.elu):
        p = np.floor((kernel_size - 1) / 2).astype(np.int32)
        p_x = tf.pad(x, [[0, 0], [p, p], [p, p], [0, 0]])
        return slim.conv2d(p_x, num_out_layers, kernel_size, stride, 'VALID', activation_fn=activation_fn)


    def conv_block(self, x, num_out_layers, kernel_size):
        conv1 = self.
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值