《Weighted Semi-Global Matching and Center-Symmetric Census Transform for Robust Driver Assistance》

本文主要是介绍《Weighted Semi-Global Matching and Center-Symmetric Census Transform for Robust Driver Assistance》,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章概括

这篇文章是对基于census transform的SGM的扩展,有两处改进的地方:

  1. 提出Center-Symmetric Census Transform,效果跟原来的census transform相比精度降低一点,但是计算效率和存储效率提高了,为了提高CSCT的精度,,提出加权汉明距离计算。文章中的权重是规定好的,可以考虑加入自适应权重来做。
  2. 提出路径加权代价聚合策略(Weighted Semi-Global matching (wSGM)),该权重是根据平面的法线进行估计的,但是平面的法线是根据匹配结果进行估计的,这就造成一个chicken-egg的问题。这个问题的解决措施参考了ELAS算法。最终获得各条聚合路径的权重。

下面也按照立体匹配的四个步骤进行进行总结。

1、匹配代价

普通的census transform是根据中心点和邻域点的灰度值的比较,生成的一串二进制序列作为该中心点的值。而两个点之间的匹配代价这两个对应的二进制序列之间的汉明距离。
在这里插入图片描述
典型的窗口大小是3 * 3, 5 * 5, 9 * 7,对应的可以用来存储的二进制位是8位、32位、64位。

而本文参考Center-Symmetric LBPs,也提出了Center-Symmetric Census Transform,也就是中心对称的census transform,用窗口内中心对称的像素的灰度大小比较生成二进制序列作为该中心点的值。在不损失效果的前提下,计算效率和存储效率都得到了提高。
在这里插入图片描述
看公式有点不太理解,那就看图。
在这里插入图片描述
(a)图就是中心对称的census transform,可以看到,对于9 * 7窗口大小的CTCS只需要生成31位的序列,效率得到了提高。由于序列的长度变短了,相对来说可以度量的代价范围变小了,这样会损失一部分的精度,所以在计算汉明距离时加入了一个权重,这样可以扩大度量的范围,如上图(b)所示,这就是加权汉明距离

2、代价聚合(wSGM)

SGM是将NP-hard的基于MRF的二维全局优化问题简化为多一维路径代价聚合的优化问题:
在这里插入图片描述
在这里插入图片描述

如图2(a)所示,就是一维路径的代价聚合策略。最终对各条路径上的代价进行简单求和,就是各个像素点的聚合代价,利用WTA就选取聚合代价最小对应的视差:
在这里插入图片描述

本文提出的改进对不同的路径的聚合代价进行加权求和:
在这里插入图片描述
下面分三种情况对这个权重进行说明,如图2(b)所示:

  • 对于区域1,是地面,直觉告诉我们水平线上的视差应该接近一致,因此我们可以增加水平路径的权重,这样,就会使地面区域水平线的视差接近一致。
  • 对于区域2,是房子的墙 / 窗户,垂直线上的视差应该接近一致,因为我们可以增加垂直路径的权重。
  • 对于区域3,是树,可视作正向平行区域,也就是区域内各个点的视差接近一致,因此我们应该平均分配权重。

而这个权重的计算则要参考ELAS论文中的概率生成模型的方法,先计算鲁棒性强的support points,然后基于这些support points计算一个概率生成模型,利用三角剖分的方法得到很多视差平面,然后基于这些视差平面平面就可以得到表面法向量,但怎么利用这个平面法向量来计算权重,这里我没有看明白。还有elas算法如何进行三角剖分这块也不知道怎么回事。如果有人看到这篇博客的话,欢迎来跟博主在下方留言进行交流。

但是ELAS原文中,计算support points是基于sobel算子来作为像素的特征向量的,而且计算support points是为了利用这些点的信息,来加快立体匹配的过程,不需要进行全局优化这个过程。但是wSGM却为了计算权重,而另外进行三角剖分的过程,势必会造成时间复杂度的增加。如果路径权重的计算可以用更简单的方法来替换,那么将会大大提高算法的计算效率。

3、视差细化

本文没有提及视差细化,但一般来说需要LR-check,剔除小邻域,视差填充之类的。此处不再详述。

实验结果

本文用了KITTI数据集进行测试,这个数据集的训练集的GT是可以免费获取的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

可见,这个时间还挺长的,6s,其实是不足以达到实时的,但是效果确实有提升。

这篇关于《Weighted Semi-Global Matching and Center-Symmetric Census Transform for Robust Driver Assistance》的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/199098

相关文章

SQLException: No Suitable Driver Found - 完美解决方法详解

🚨 SQLException: No Suitable Driver Found - 完美解决方法详解 🚨 **🚨 SQLException: No Suitable Driver Found - 完美解决方法详解 🚨****摘要 📝****引言 🎯****正文 📚****1. 问题概述 ❗****2. JDBC 驱动程序的工作原理 🔧****3. 错误的根本原因 🕵️**

leetcode#10. Regular Expression Matching

题目 Implement regular expression matching with support for ‘.’ and ‘*’. '.' Matches any single character.'*' Matches zero or more of the preceding element.The matching should cover the entire input

css-transform对position:fixed影响

在betterScroll尝试使用position:fixed固定首列,然而并不能实现固定。因为 bscroll / iscroll 是基于 transform 属性实现滚动的, 所以 iscroll 会通过实时修改元素的 transform 属性以达到滚动的效果。父元素如果存在 transform 属性,子元素的 position: fixed 属性无效。betterScroll有个 useTr

关于OceanBase MySQL 模式中全局索引 global index 的常见问题

在OceanBase的问答区和开源社区钉钉群聊中,时常会有关于全局索引 global index的诸多提问,因此,借这篇博客,针对其中一些普遍出现的问题进行简要的解答。 什么是 global index ? 由于 MySQL 不具备 global index 的概念,因此这一问题会经常被社区版用户提及。就在前几天,就要人询问下面这个语法的意义。 create table part_tes

SpringBoot启动报错Failed to determine a suitable driver class

两种解决办法 1.在Application类上加 ` @EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class}) package com.example.demo3;import org.springframework.boot.SpringApplication;import org.springframewo

linux驱动模型 -- bus,device,device_driver之间的关系

Linux 设备驱动模型中,按照层次的组织结构,抽象成总线(struct bus_type),设备(struct device),驱动(struct device_driver)的层次组织形式,这是最原始的抽象结构,在此基础之上,根据不同类型的总线/设备/驱动,有形成了更高层次的组织结构,如 virtio总线(struct bus_type virtio_bus),virtio设备(

JavaBug系列- Failed to load driver class com.mysql.cj.jdbc.Driver in either of HikariConfig class load

JavaBug系列之Mysql驱动问题 Java医生一、关于错误信息二、如何解决问题 Java医生 本系列记录常见Bug,以及诊断过程和原因 Java/一对一零基础辅导/企业项目一对一辅导/日常Bug解决/代码讲解/毕业设计等 V:study_51ctofx 一、关于错误信息 APPLICATION FAILED TO START Description: Fai

[linux命令] 随笔集 center OS 7 蛋疼的改动 一个菜鸟的奋斗shit~~~

2018年7月24日17:22:30 虚拟机查看ip地址  center OS 7  最小化安装. 查看ip地址:使用ifconfig已经不适用了 , 需要使用 ip addr 可以看到 关闭防火墙命令也不是 stop iptables.service 命令了,  看下百度经验吧7 关闭防火墙系列命令 关闭防火墙: systemctl stop firewalld.service

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver问题

执行Class.forName(driverName)时报告此异常! Java项目中明明已经添加了MySQL-connector驱动,还是报java.lang.ClassNotFoundException: com.mysql.jdbc.Driver找不到类文件的异常, 排查了很久,原来是从jdbc.properties配置文件中读取的drivername末尾多了一个空格, 这种错误及其隐蔽,

[UVM]6.component driver monitor sequencer agent scoreboard env test

1.知识点回顾 (1)component需要有parent,因为参加构成组件,所以需要(继承); (2)object与component之间间隔report_object。 2.组件家族 (1)构建寄存器模型 :uvm_reg_predictor;激励器:driver/random_stimulus/sequencer_base/sequencer;监测器:monitor;