SGM-Nets:第一个将SGM与深度学习结合的网络

2019 年 11 月 16 日 计算机视觉life

点击上方“计算机视觉life”,选择“星标”

快速获得最新干货

1. 简介

本文将对2017年的CVPR会议文章《SGM-Nets: Semi-global matching with neural networks》进行简介,该论文作者为Akihito Seki(东芝公司)、Marc Pollefeys(苏黎世联邦工业大学以及微软公司)。研究针对SGM需要根据影像人工调整惩罚参数的问题,利用深度学习网络自动学习惩罚参数,最后利用Kitti标准数据集进行测试,获得了较好的匹配效果。

2. SGM-Nets

SGM是一种著名的密集匹配方法,SGM简要介绍见(链接至之前写的SGM的文章)。整体研究框架见图1。

图一:整体研究架构。SGM利用SGM-Net所估计的惩罚参数P1和P2进行视差估计。SGM-Net在每一个代价聚集方向上利用图像块与对应位置进行迭代训练。

如图1所示,整体分为两个阶段,即训练阶段与测试阶段,在训练阶段中SGM-Net通过最小化“路径代价”与“邻域代价”迭代训练,以期为每一个像素提供 。在测试阶段中,SGM利用SGM-Net估计的 进行视差估计。网络输入为小影像块以及其位置,输出为3D物体结构的惩罚参数。

2.1 路径代价


图二:代价聚集示意图。

假设像素 的真实视差为 ,那么某一经过该像素的路径代价应当小于任何的其他路径,即, 为便于反向传播,该研究利用hinge损失对其进行表示:

其中,m代表边界。如图2所示,为某一路径下相邻的4个像素,以及每个像素对应的5个候选视差,橙色与紫色的实线分别代表经由 像素正确视差与错误视差 ,聚集代价分别为:

通用表示则为:

其中 表示每个像素的累计代价以及减去的最小代价。将该式代入hinge损失,并对路径r 进行偏微分,得:

据上式可进行正向与反向的传播,该损失函数被该研究定义为“路径损失”。

路径代价的计算无需地面真值,故而可较为容易地使用真实环境下获取的数据集,如KITTI。但路径代价没有考虑到中间路径,如图二中红色虚线路径为真实的路径,但其代价与橙色路径的代价一致。仅以路径代价为损失函数进行网络训练与SGM的结果对比图如图3(c)所示,整体而言,以路径代价为损失进行训练后所得到的视差图效果较SGM更优,但在A处存在信息丢失情况。


图三:不同损失函数所得到的结果与SGM的对比图。

2.2 邻域代价

为去除路径代价中中间路径的模糊性,引入“邻域代价”,基本思想为在所有的路径中,穿过连续像素正确视差的路径的代价值必须最小,如图4所示, , 以及 理应小于其他代价


图四:连续像素之间的视差关系,(a)为边界关系,(b)为倾斜关系,(c)为平滑关系,红线代表正确视差关系,蓝线表示错误视差关系。

邻域代价的公式表示为:

其中 表示:

则表示为一个依赖相邻像素关系的函数,如边界 倾斜以及平坦 关系,分别为:

至此,邻域代价可利用类似于路径代价的方式进行微分。应用邻域代价的一个重要前提条件是在像素 的视差必须要估计正确,正因如此,邻域代价无法应用至所有像素,当仅仅使用邻域代价进行训练时,A处细节部分可被保留住,但在B处存在错误匹配,如图三(d)所示。

2.3 综合损失函数

为中和路径代价与邻域代价的优势与弊端,该研究提出最终的综合损失函数为:


其中 表示混合比例。该研究在每个方向r上随机抽取相同数量的边界像素 、倾斜像素 和平坦 。所有 均有真实视差的标签。惩罚参数 的大小与累积成本 有关,反之,累积成本也取决于惩罚参数大小。因此,网络将迭代地进行惩罚参数估计,如图一所示。用该综合损失函数的训练结果如图三(e)所示。

2.4 有向参数化

以上2.1,2.2,2.3中所述内容为SGM的标准参数化,该节将介绍对应的有向参数化。图五为有向参数化的基本思想示意图,所谓的有向参数化指 随着视差变化的正向和负向有着不同的数值。


图五:有向参数化示意图。

在有向参数化中, 变为:

变为:

邻域代价中的 则变为:

边界像素 变为:

倾斜像素 则变为:


平坦区域的 不变。

2.5 SGM-Net 网络架构

如图六所示,网络的输入为5*5大小的灰度图像块以及其归一化的位置,网络含有两个卷积层,每个卷积层分别含有16个3 * 3大小的滤波器,且每个卷积层后带着一个ReLU层,再往后跟着一个级联层,用来进行信息结合,第四层为size为128的全连接层以及ReLU层,第五层为size为128的全连接层以及 的ELU层(Exponential Linear Unit),为使SGM的惩罚恒为正数,最后再加上一个常量1。


图六:SGM-Net网络框架。

3. 实验

SGM-Net的训练在 NVIDIA(R) Titan X上利用Torch7进行。在测试SGD和Adam后,发现Adam所达到的误差较小,故而选取了Adam进行优化。网络的初始化是随机的。

在实验过程中,该研究使用SceneFlow中的“Driving”数据集作为合成影像,KITTI 2012和KITTI 2015作为真实影像。SceneFlow数据提供像素级的真实视差,因此,邻域代价可被利用。表一为以不同数据为训练数据时的测试精度比较表,可以看到,对真实影像进行训练有助于提高SGM-Net的精度。


表一:以不同数据为训练数据时的SGM-Net测试精度比较表。

图七为手动调整惩罚参数,标准SGM-Net以及有向SGM-Net的实验结果图,其中黄色箭头代表明显的错误,右上角的数字表示 Out-Noc 误差。


图七:KITTI 2012训练影像,手动调参、标准SGM-Net与有向SGM-Net的实验结果对比图。

表二为在K12训练,K12训练以及在K15训练,K12测试的总体准确率表。


表二:K12训练,K12训练以及在K15训练,K12测试的总体准确率表。

截至2016年的10月18日,该方法名列K12和K15的榜首,如今随着深度学习在立体匹配领域的深入,该方法虽然已经在榜上占不住一席之地,但文章思想仍值得借鉴与学习。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、检测分割识别、三维视觉、医学影像、GAN、自动驾驶、计算摄影、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~


投稿欢迎联系:simiter@126.com

推荐阅读

最全综述 | 医学图像处理

最全综述 | 图像分割算法

最全综述 | 图像目标检测

目标检测技术二十年综述

综述 | CVPR2019目标检测方法进展
参加 CVPR 2019 技术见闻总结

现在投身于计算机视觉是否明智?

如何激怒一个自动驾驶(无人驾驶、智能汽车)爱好者?

原来CNN是这样提取图像特征的。。。

AI资源对接需求汇总:第1期
AI资源对接需求汇总:第2期
AI资源对接需求汇总:第3期

计算机视觉方向简介 | 人体骨骼关键点检测综述

计算机视觉方向简介 | 人脸识别中的活体检测算法综述

计算机视觉方向简介 | 目标检测最新进展总结与展望

计算机视觉方向简介 | 人脸表情识别

计算机视觉方向简介 | 人脸颜值打分

计算机视觉方向简介 | 深度学习自动构图

计算机视觉方向简介 | 基于RGB-D的3D目标检测

计算机视觉方向简介 | 人体姿态估计


最新AI干货,我在看  

登录查看更多
0

相关内容

华为发布《自动驾驶网络解决方案白皮书》
专知会员服务
122+阅读 · 2020年5月22日
神经网络的拓扑结构,TOPOLOGY OF DEEP NEURAL NETWORKS
专知会员服务
30+阅读 · 2020年4月15日
CVPR2019 | R-MVSNet: 一个高精度高效率的三维重建网络
计算机视觉life
9+阅读 · 2019年3月14日
干货 | 受限玻尔兹曼机基础教程
机器学习算法与Python学习
7+阅读 · 2018年3月27日
神经网络bp算法推导
统计学习与视觉计算组
11+阅读 · 2017年11月17日
入门 | 一文概览深度学习中的激活函数
深度学习世界
4+阅读 · 2017年11月3日
干货 | 深度学习之损失函数与激活函数的选择
机器学习算法与Python学习
15+阅读 · 2017年9月18日
语义分割中的深度学习方法全解:从FCN、SegNet到DeepLab
炼数成金订阅号
26+阅读 · 2017年7月10日
Learning Dynamic Routing for Semantic Segmentation
Arxiv
8+阅读 · 2020年3月23日
Real-time Scalable Dense Surfel Mapping
Arxiv
5+阅读 · 2019年9月10日
Arxiv
19+阅读 · 2018年6月27日
Arxiv
6+阅读 · 2018年3月12日
VIP会员
相关资讯
CVPR2019 | R-MVSNet: 一个高精度高效率的三维重建网络
计算机视觉life
9+阅读 · 2019年3月14日
干货 | 受限玻尔兹曼机基础教程
机器学习算法与Python学习
7+阅读 · 2018年3月27日
神经网络bp算法推导
统计学习与视觉计算组
11+阅读 · 2017年11月17日
入门 | 一文概览深度学习中的激活函数
深度学习世界
4+阅读 · 2017年11月3日
干货 | 深度学习之损失函数与激活函数的选择
机器学习算法与Python学习
15+阅读 · 2017年9月18日
语义分割中的深度学习方法全解:从FCN、SegNet到DeepLab
炼数成金订阅号
26+阅读 · 2017年7月10日
Top
微信扫码咨询专知VIP会员