CN109584290A - 一种基于卷积神经网络的立体图像匹配方法 - Google Patents
一种基于卷积神经网络的立体图像匹配方法 Download PDFInfo
- Publication number
- CN109584290A CN109584290A CN201811466748.5A CN201811466748A CN109584290A CN 109584290 A CN109584290 A CN 109584290A CN 201811466748 A CN201811466748 A CN 201811466748A CN 109584290 A CN109584290 A CN 109584290A
- Authority
- CN
- China
- Prior art keywords
- matching
- convolutional neural
- neural networks
- parallax
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
- G06T7/593—Depth or shape recovery from multiple images from stereo images
- G06T7/596—Depth or shape recovery from multiple images from stereo images from three or more stereo images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
- G06T2207/10021—Stereoscopic video; Stereoscopic image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
本发明涉及一种基于卷积神经网络的立体图像匹配方法,包括:获取多个立体匹配图像对和所对应的真实视差,将其作为数据集;构建卷积神经网络,选用线性纠正单元RELU函数进行激活;采用反向传播算法训练所述卷积神经网络,确定网络误差函数和学习速率;经过所述卷积神经网络的计算,网络输出的是左右图像块的匹配代价空间图;对所述代价空间图进行匹配代价聚合、视差选择和视差精化,选择具有最小代价的像素点作为匹配点,得到最终的视差图。图像可以直接作为网络输入,通过卷积神经网络匹配算法得到视差图整体较光滑,在无纹理区域和深度值突变区域均能取得较好的匹配效果,对有光照变化和非完全校正的图像对仍具有较好的鲁棒性。
Description
技术领域
本发明涉及三维视频技术领域,特别涉及一种基于卷积神经网络的立体图像匹配方法。
背景技术
现如今立体匹配技术在机器人导航、景深渲染和视频处理等问题中有广泛应用。立体匹配技术中的双目立体匹配一般从不同角度获取同一景物的两幅图像,并计算视差信息,然后通过三角测量原理根据视差来获取物体的三维深度信息。
对于人眼来说,从场景中恢复三维信息是一件很容易的事,但对于计算机而言,在双目图像对中寻找同一场景点的匹配对应点是极其困难的,立体视觉技术仍然很不完善,其主要困难体现在以下方面:
首先,在立体匹配问题中,大多数方法都隐含地假设场景物体由朗伯(Lambertian)表面构成,从而可利用亮度不变性约束(即不同视点位置观察到的同一场景点亮度相似)作为匹配准则建立左右图像的一致性关系。然而,该假设在实际场景中并不完全成立,特别是在镜面反射、折射及投射条件下,像点的颜色和位置将随视点的变化而改变。另外,由于相机参数的不一致及图像获取过程中会引入噪声,也会导致对应点的色彩亮度不一致。尽管如此,亮度一致性约束仍然是解决立体匹配问题的一个最有效假设,几乎所有方法都是基于此设计的。
其次,当场景中存在无纹理区域或重复模式时,容易产生误匹配。区分度不高,会产生大量可能的候选匹配点,从而造成误匹配。如何准确地对这些区域进行匹配,是同行业从业人员亟待解决的一个重要问题。
最后,立体视觉中通常存在遮挡现象。遮挡现象是指场景中的某些点在一幅图像中可见而在另一幅图像中不可见的情况,主要是由景物与摄像机之间的相互位置关系所致。立体视觉中主要考虑的是半遮挡现象,由于遮挡点不存在与之对应的匹配点,因此只能通过周围点的视差来估计遮挡点的视差。如何准确地检测遮挡点并估计其视差将是同行业从业人员亟待解决的另一个重要问题。
发明内容
鉴于上述问题,本发明提出了基于卷积神经网络的匹配算法,可提高立体图像匹配的准确度。
本发明实施例提供一种基于卷积神经网络的立体图像匹配方法,包括:
S1、获取多个立体匹配图像对和所对应的真实视差,将其作为数据集;
S2、构建卷积神经网络,选用线性纠正单元RELU函数进行激活;
S3、采用反向传播算法训练所述卷积神经网络,确定网络误差函数和学习速率;
S4、经过所述卷积神经网络的计算,网络输出的是左右图像块的匹配代价空间图;
S5、对所述代价空间图进行匹配代价聚合、视差选择和视差精化,选择具有最小代价的像素点作为匹配点,得到最终的视差图。
进一步地,所述S1步骤中数据集一部分来源于左图像,一部分来源于右图像:
表示以p(x,y)为中心,n×n的邻域;根据所述图像中每一个位置,获取所述每一个位置所对应的真实视差d,选出一个正样本,一个负样本;
所述S1步骤包括:
S11、将右图像邻域中心作改变,即得到负样本,令q坐标改为:
q=(x-d+oneg,y) (1)
式中,oneg为随机值;
设定正样本q=(x-d+opos,y) (2)
式中,opos为0.5;
S12、将原图像块分成匹配正确的图像块和匹配错误的图像块后,需要对所有图像块作归一化操作;
S13、对已有的图像块作投影变换和亮度变化,得到第一图像块,将所述第一图像块加入原有的训练数据中构成最终的训练数据集。
进一步地,所述卷积神经网络结构包括:将两个输入图像块得到的特征向量归一化并作向量的点乘运算,得到输出的相似程度;
网络的输出用于初始化匹配代价,其表达式为:
CCNN(p,d)=-s(<PL(p),PR(pd)>) (3)
式中,s(<PL(p),PR(pd)>)表示网络以PL(p),PR(pd)为输入所获得的输出,负号将相似性得分转变为了匹配代价。
进一步地,所述S3步骤中确定网络误差函数,包括:
构造Hinge损失函数:
H=max(0,M+S_-S+) (4)
式中,M是一个正实数,输入是匹配正确的图像块时输出的相似程度为S+,输入是匹配错误的图像块时输出的相似程度为S-;误差函数H=0时,说明S+>S-+M,匹配正确的图像块的相似程度大于匹配错误的图像块。
进一步地,所述S3步骤确定训练方法以及学习速率和训练终止条件,包括:
采用梯度下降法调整权值,一组匹配正确的图像块和一组匹配错误的图像块同时输入,计算出相似程度S+和S_之后输入到所述误差函数(4);
以误差函数的输出H反向传播对权值求梯度,采用梯度下降法调整每一层的权值,调整的原理为:
式中,W0是原来的权值参数,H是误差函数输出;
表示本次误差对权值参数的导数,L是学习速率,L越大参数变化越快。
进一步地,所述S5步骤中视差选择,包括:
基于WTA的动态规划的全局思想进行视差选择;
定义一个包含平滑性假设的能量函数:
E(d)=Edata(d)+Esmooth(d) (7)
其中,数据项为聚合后的匹配代价,由公式(8)给出,平滑项采用线性模型,用来对视差值的突变进行处罚:
能量方程建立后,选用优化方法求得能量最小解,从而获得最优视差配置。
进一步地,所述S5步骤中视差精化,包括:
采用十字生长的方法获取视差图中每个像素点的邻域窗口;根据十字生长得到的邻域窗口的信息来对像素点的视差进行改进;
具体步骤包括:
a.在原图像上由像素点为中心,以RGB颜色信息和距离为约束条件,设置生长阈值,进行垂直方向和水平方向的生长获取邻域窗口;
b.在视差图上对窗口内的像素点进行统计,按灰度值建立直方图;
c.基于灰度直方图,统计灰度值的分布情况,选取频率最高的灰度值来取代窗口中心像素的视差;
d.对每个像素点进行以上abc步骤操作,更新整张视差图;经过区域投票后,视差图得到精化,最后再经过中值滤波得到最终视差图。
本发明的优点在于,本发明提供的一种基于卷积神经网络的立体图像匹配方法,通过大量数据的学习来分类物体、预测结果和识别特征,通过大量训练来判断两个图像块的相似程度,建立一个深度学习的卷积神经网络模型并通过大量数据的训练,该方法的性能远远超过了相似性度量函数,卷积神经网络有很高的复杂度,它能适用于更广的范围,有更好的稳定性;图像可以直接作为网络输入,通过上述卷积神经网络匹配算法得到视差图整体较光滑,在无纹理区域和深度值突变区域均能取得较好的匹配效果,对有光照变化和非完全校正的图像对仍具有较好的鲁棒性。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明提供的基于卷积神经网络的立体图像匹配方法的流程图。
图2为本发明提供的Sigmoid和Tanh函数图。
图3为本发明提供的ReLU函数图。
图4为本发明提供的卷积神经网络结构示意图。
图5为本发明提供的利用DP算法的三维表示图。
图6为本发明提供的区域投票的过程示意图。
图7为本发明提供的展示了部分标准图像利用改进后的WTA-DP算法获得的视差图和优化前的视差图的对比示意图。
图8为本发明提供的光照失真的待测试图像匹配效果参考图。
图9为本发明提供的双目立体视觉系统实物参考图。
图10为本发明提供的靶标图像对示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供一种基于卷积神经网络的立体图像匹配方法,参照图1所示,包括:
S1、获取多个立体匹配图像对和所对应的真实视差,将其作为数据集;
S2、构建卷积神经网络,选用线性纠正单元RELU函数进行激活;
S3、采用反向传播算法训练所述卷积神经网络,确定网络误差函数和学习速率;
S4、经过所述卷积神经网络的计算,网络输出的是左右图像块的匹配代价空间图;
S5、对所述代价空间图进行匹配代价聚合、视差选择和视差精化,选择具有最小代价的像素点作为匹配点,得到最终的视差图。
在立体匹配的领域中,如何进行准确的匹配是很关键的问题,传统的方法总是通过人为地定义相似性度量函数来比较两个图像块(两个窗口)的相似程度,继而判断待匹配点的匹配程度,相似性度量函数并不能构造得很复杂,而且函数的应用范围总是有限的,匹配代价的计算经常有不准确的情况出现。作为深度学习中比较成功的模型,卷积神经网络具有解决复杂问题的能力。神经网络模型的本质就是模仿动物大脑的结构,动物能够从以往的经历中学习到经验和方法,那么神经网络自然也具备这种能力。
神经网络可以通过大量数据的学习来分类物体、预测结果和识别特征,它必然可以通过大量训练来判断两个图像块的相似程度,建立一个深度学习的卷积神经网络模型并通过大量数据的训练,它的性能远远超过了相似性度量函数,卷积神经网络有很高的复杂度,它能适用于更广的范围,有更好的稳定性。因此,本发明提供了一种基于卷积神经网络的立体图像匹配方法,具体步骤如下:
A卷积神经网络简介
卷积神经网络(Convolutional Neural Network,CNN)是目前深度学习模型中使用最为广泛最为成功的一种,也是第一个真正多层结构学习算法,体现了深度学习的核心概念:层次深度。它通过利用空间关系以减少需要学习的参数数目,降低网络模型的复杂度。卷积神经网络属于有监督学习模型,使用带标签的训练数据调整参数,网络结构主要有两个特点,一方面是神经元之间的连接是非全连接,另一方面是同一层神经元之间的连接权值是共享的。权值共享的特性使卷积神经网络结构,大大降低了网络模型的复杂度,也减少了权值参数的数量,使得图像可以直接作为网络输入。
1962年,Hubel和Wiesel在对猫的视觉皮层细胞研究的基础上,提出了感受野(Receptive)的概念。1984年,Fukushima基于感受野概念提出了神经认知机(Neocognition)模型可以看作是CNN的第一个实现。1990年以来,卷积神经网络在很多方面得到了应用,例如语音识别,人脸识别等智能领域。
1)卷积神经网络结构
卷积神经网络结构整体分为:输入层、隐含层和输出层,其中隐含层主要包括特征提取层、特征映射层和激活层。顾名思义,卷积神经网络层与层之间的连接由卷积运算完成。首先,输入数据先通过特征提取层(C层)得到局部特征,一般由卷积核来提取。然后,通过特征映射层(S层)将特征映射到不同的特征空间,简单来讲,就是将特征以另外一种表达方式表现。其主要功能是对上一个卷积层中各个特征图进行降采样,以降低特征图的维度,使特征更加抽象化。在特征提取层和特征映射层之后往往会加上激活层,激活层的含义在于模仿人脑神经元的信号传递方式,大脑神经元在传递信息时都会以电信号的方式激活下一个神经元,激活层就是模仿人类大脑神经元传递信息的方式。
一般来说,构建神经网络的一个隐层需要明确隐层的输入节点数量和输出节点数量,输入与输出的连接方式,卷积核的大小,卷积核感受野的大小。当然,如果每一层都需要人工地定义并且构建,那么构造一个深度学习的卷积神经网络将会是一项巨大的工程。目前构建神经网络有许多不同的工具,例如Torch就是一种科学计算框架,主要用于机器学习计算,支持GPU和CPU运算,核心语言是Lua,支持命令行、python、Matlab和C++接口。本发明主要使用Torch来构建并训练神经网络。
误差函数的定义主要是确定网络输出的误差计算方式,不同的误差函数有不同的效果,在误差反向传播中起着至关重要的作用。学习速率和终止条件则影响着训练过程中参数调整的幅度和训练的时间。
2)卷积神经网络的具体实现
卷积神经网络主要包含数据集的准备,网络的构建以及网络训练步骤,由于卷积神经网络属于深度学习的有监督学习方法,所以采用的训练方式与传统的有监督学习类似。CNN的训练过程一般采用的是误差反向传播算法,类似于BP(Back Propagation)。先输入训练数据,经过卷积层、采样层和激活层后得到输出。然后,通过定义的误差函数,计算网络输出值与真实值之间的误差,并对误差反向求各个权值的梯度,据此调整网络的各个权值和偏差的大小。网络的具体实现步骤如下:
训练数据的准备:一般情况下,我们希望训练数据的类别和数量越多越好,样本越广泛,那么得到的神经网络就具有良好的泛用性,能够在面对不同的复杂数据时依旧有出色的表现。这个道理就好比是,人脑如果看过了各种不同的动物类型和植物类型,那么在面对未知的生物时,就能够轻易地分辨出它是属于动物还是植物。在收集到足够多的原始训练数据之后,还需要进一步的预处理,主要步骤包括:数据大小格式的统一,例如图像数据,通常调整到相同的长宽;数据平均值调整为零,要求所有图像RGB通道灰度平均值为零,灰度标准差调整成1。如果数据集是图像,可以对数据集进行投影和仿射变换获取新的样本图,以增加数据集的多样性。经过了预处理后的数据才可以作为真正的训练数据使用。
网络结构的定义:构建一个神经网络需要网络结构的定义,误差函数的定义,确定完整的神经网络模型。网络结构一般包含输入层、隐含层和输出层。
训练以及测试:确定训练速率和训练的终止条件之后,可以开始神经网络的训练,使用训练数据每训练一轮,神经网络都会有一个误差,衡量误差的大小是不是符合预定的期望。然后,根据误差对权值求梯度,将误差反向传播,依次调整各个权值参数,以达到网络最优。在一定的训练次数之后停止网络的训练,如果训练样本在上万的数量级时,训练一轮神经网络可能需要数个小时的时间,现在得益于英伟达公司所研究的CUDA技术,将计算机运算从CPU转移到GPU上,大幅度改善了计算机的运算性能,降低了训练神经网络所耗费的时间。在得到训练后的卷积神经网络之后,通常会使用准备好的测试数据来测试它的效果,如果神经网络的输出都接近于标签,那么说明网络具备了所需要的效果,至此,真正的完成了神经网络的训练,接下来便可以使用它来进行预测或者是计算。
B基于卷积神经网络的匹配代价计算
1)样本集的获取
比如,本实施例首先从Middlebury网站上下载2001、2003、2005、2006以及2014年发布的立体匹配图像对和对应的真实视差图作为数据集,如表1所示。
表1 Middlebury平台数据集
其中,在2005,2006和2014年的数据集中的每个场景是在多种照明和曝光强度条件下拍摄的,一般同一场景图像对,分别在四种照明条件和七种曝光强度下拍摄,共可得到28对图像。网络训练所需的样本集一部分来源于左图像,一部分来源于右图像: 表示以p(x,y)为中心,n×n的邻域,本文中取为11×11。
对于图中的每一个位置,可以知道它的真实视差d,可以选出一个正样本,一个负样本。
将右图邻域中心作改变,即可得到负样本,令q坐标改为:
q=(x-d+oneg,y) (1)
(1)式中,oneg为[dataset_neg_low,data_neg_high](分别指的是负样本中匹配点相对于真实匹配点所偏离的最小和最大像素距离)中的一个随机值,对应的也可取得[-data_neg_high,-data_neg_low](分别指的是负样本中匹配点相对于真实匹配点所偏离的负的最小和负的最大像素距离)参数可根据情况设定。本实施例中,可以取data_neg_high为6,data_neg_low为1.5。
同理,可设定正样本q=(x-d+opos,y)(2),opos可取[-dataset_pos,dataset_pos]区间内的任何一个值。由此把这些和最佳匹配区块相近的区块作为正样本,发现这样效果比设定opos为零更好,样本更丰富,上述dataset_pos指的是给正样本设置的一个较小的偏离的容许值,即匹配点相对与真实匹配点有偏移但绝对偏移距离小于dataset_pos时依然视为正样本。本实施例中,取dataset_pos为0.5。
将原图像块分成匹配正确的图像块和匹配错误的图像块后,需要对所有图像块作归一化操作(三个颜色通道的平均值为0,标准差为1,这是一般机器学习训练数据的必要条件)。此外,对已有的图像块作投影变换和亮度变化,得到新的图像块,将新的图像块加入原有的训练数据中构成最终的训练数据集。该步骤的目的在于,扩大训练数据的多样性和范围,加入投影变换和亮度变化之后的数据可以使神经网络具有更强的适应性,在面对未知的复杂的输入数据时可以有更好的表现。
2)卷积神经网络的构建
使用卷积神经网络计算匹配代价,首先要确定输入和输出,计算匹配代价时输入是左右图像中的两个图像块(分别以待匹配点为中心建立的窗口),输出应当是相似程度,以具体的数字来衡量。输入取为11×11的图像块,卷积核大小为3×3,共有64个卷积核,提取64种图像特征后,经过激活函数进行激活。主要的激活函数有ReLU:f(x)=max(0,x)或者对应的函数图如图2和图3所示。由于传统的激活函数Sigmoid函数,在反向传播求误差梯度时,很容易就会出现梯度消失的情况(在sigmoid接近饱和区时,变换太缓慢,导数趋于0,这种情况会造成信息丢失,从而无法完成深层网络的训练。而线性纠正单元RELU的梯度是个稳定值,因此本发明选用线性纠正单元RELU函数进行激活。
本发明提供的卷积神经网络,网络结构隐含层的前半部分由卷积层(SpatialConvolutional)和激活层(ReLU)构成,提取输入图像块的特征信息,通过一系列卷积层和激活层之后,将两个输入图像块得到的特征向量归一化并作向量的点乘运算,得到输出的相似程度(Similarity Score)。网络具体结构如图4。
网络的输出用于初始化匹配代价,其表达式为:
CCNN(p,d)=-s(<PL(p),PR(pd)>) (3)
(3)式中,s(<PL(p),PR(pd)>)表示网络以PL(p),PR(pd)为输入所获得的输出,负号将相似性得分转变为了匹配代价。匹配代价越大,相似性越小,相反,匹配代价越小,相似性越大。
3)卷积神经网络的训练过程
准备好数据和网络模型后,开始训练神经网络,CNN训练过程采用的是反向传播算法,首先输入训练数据,前向传播并计算各个神经元的激活值,计算出误差,然后将误差反向传播并对各层权值求梯度,从而不断调整各个权值参数,使得网络结构输出误差达到最优。计算这里需要确定网络误差函数、训练方法以及学习速率和训练终止条件等。
(1)确定误差函数的定义。误差函数是调整卷积神经网络参数的重要依据,只有定义了合适的误差函数,才能将网络参数朝着所期望的方向调整。在计算匹配代价时,对于神经网络的期望是使它能够正确判断输入图像块的相似程度,由于训练数据并没有附带标签,因为事先不知道两个输入图像块的相似程度,所知道的信息只有正确的视差值。因此,根据正确的视差值,将训练数据分成两类,由正确的视差值提取匹配点的图像块称为匹配正确的图像块,由错误的视差值提取的左右图像块称为匹配错误的图像块,匹配正确的图像块的相似程度一定大于匹配错误的图像块的相似程度。有了正确和错误的训练数据,即使没有明确标签,也能够定义误差函数。假设输入是匹配正确的图像块时输出的相似程度为S+,输入是匹配错误的图像块时输出的相似程度为S_,因此,构造Hinge损失函数:
H=max(0,M+S_-S+) (4)
(4)式中,M是一个正实数,本实施例可设为0.2。误差函数H>0时,说明S+<S_+M匹配正确的图像块的相似程度小于匹配错误的图像块,这显然是不符合常理的。误差函数H=0时,说明S+>S_+M,匹配正确的图像块的相似程度大于匹配错误的图像块,这是符合要求的。
由上分析,误差函数趋向于0时,说明卷积神经网络计算的相似程度越准确,根据误差函数的导数对卷积神经网络参数进行反向调整,便可以不断地使误差函数逼近于0,此时网络参数也在不断地优化,输出误差为0的时候就是网络参数最优化的时候。
(2)采用梯度下降法调整权值。一组匹配正确的图像块和一组匹配错误的图像块同时输入,计算出相似程度S+和S-之后输入到误差函数H=max(0,M+S_-S+)。以误差函数的输出H反向传播对权值求梯度,采用梯度下降法调整每一层的权值,调整的原理为:
(5)式中,W0是原来的权值参数,H是误差函数输出,表示本次误差对权值参数的导数,L是学习速率,L越大参数变化越快。
学习速率L取值过大时,导致系统有可能会变得不稳定而瘫痪;当学习速率L过小时,系统训练时间必定会变长,导致系统的收敛速度变慢。虽然学习速率过小可能会导致系统产生一定的负面影响,但它能使系统避免误差函数的局部收敛,并使系统最终趋于最小误差。因此,为确保神经网络的稳定性,一般选取较小的学习速率,本实施例中取为0.002。同时,为了加快收敛速度,本次实验一共设置训练的轮数为14轮,每轮训练使用全部的训练数据,训练的学习速率设置为0.002,最后三轮减小学习速率为原来的十分之一。
表2是用四分之一分辨率的图像准备的训练数据来训练网络时,各轮训练过程中的网络误差和训练时间的变化。从训练过程中可以看出,训练网络时每轮需要耗费1250秒左右的时间,14轮训练一共用时5个小时,网络损失函数误差为0.0605。
表2网络训练14轮过程
训练神经网络的参数并非直接通过检测最终图像质量得到,本实施例中将数据集分为两部分,一部分用作训练集,另一部分作为验证集。通过训练集训练得到的网络,在验证集上进行计算,获得其错误率来评判网络的好坏,通过保留其它参数不变,调节一个参数,寻找各个参数的最优值,经过训练得到的网络最优化结构参数如表3所示。
表3网络结构最优化参数
C匹配代价聚合
经过卷积神经网络的计算,网络输出的是左右图像块的匹配代价空间图。以左图像作为参考图像,可以得到右图像中每一个像素点对应在视差范围内的匹配代价,视差范围为0~dmax。由于单个像素的代价值精确度不高,因此需要对得到的代价图进行匹配代价聚合、视差选择和视差精化这三步优化,以选择具有最小代价的像素点作为匹配点,得到最终的视差图。
本实施例中,采用对窗口内平均匹配代价,可以结合相邻点所包含的信息,窗口的选择采用十字交叉形窗口算法,它可以自主地调整邻域的大小。具体操作是使图像中各个像素处生成一个的十字交叉窗口,这个十字交叉用于定义局部支持区域,将左、右图像的局部支持区域放在一起作为一个支持区域,聚合的匹配代价则通过支持区域中各处的匹配代价计算平均值来生成。
D视差选择
经过代价聚合后,传统局部算法大多简单地使用WTA(Winner Takes All)法进行视差选择,获得初始视差值,即:
其中C(p,d)为视差值为d的匹配代价值。WTA方法虽然快速有效,但它没有考虑相邻像素的视差限制,容易受噪声等影响而产生视差突变,进而使获得的初始视差图中存在大量的异常值和误匹配点。因此,本发明引入了基于WTA的动态规划的全局思想进行视差选择。首先,定义一个包含平滑性假设的能量函数:
E(d)=Edata(d)+Esmooth(d) (7)
其中,数据项为聚合后的匹配代价,由公式(8)给出,平滑项采用线性模型,用来对视差值的突变进行处罚:
能量方程建立后,需要选用优化方法求得能量最小解,从而获得最优视差配置。同理,对于参考图像中的一条扫描线y,从左至右遍历每一个像素点p=(x,y)计算其对应于视差值d的能量M(x,y,d),考虑视差平滑性假设,认为p的相邻像素视差值与其相近,将d'的取值限制为{d-1,d,d+1},且将利用公式(6)计算得到初始视差用d0(x-1,y)作为p'的第四个视差候选值。用公式表达如下:
(10)式中,C(x,y,d)为像素点(x,y)在视差为d时的代价值,作为能量方程的数据项;d'为p的相邻像素p'=(x-1,y)的视差取值,λ取值为0.02。在最后一列的能量计算完之后,可通过反向追踪法确定最优路径,得到该行扫描线上所有像素的最优视差配置。对每条扫描线重复以上过程,可确定整幅图像的全部视差值。图5为利用DP算法的三维表示。
上述算法在每行扫面线上的运算复杂度为O(WD),W为图像宽,D为视差范围。
E视差精化
由于经过视差选择之后的视差图中仍然存在边缘处以及低纹理区域匹配效果差的问题,所以需要寻找一些其他的改进算法来对最终视差图进行后处理,进行进一步提升匹配精度。虽然由于遮挡的缘故使得某些像素点处于半遮挡区域,但是本发明并没有采用左右一致性检测,这是因为Middlebury3.0平台在测试时,不计算遮挡区域像素的视差值,采用左右一致性检测后,网络误差反会变大。
为了提高匹配精度,本发明采用十字生长的方法获取视差图中每个像素点的邻域窗口,根据十字生长得到的邻域窗口的信息来对像素点的视差进行改进。区域投票的过程示意图如图6所示为区域投票过程示意,图6(a)投票区域、图6(b)区域视差统计、图6(c)最优视差,详细步骤如下:
1.在原图像上由像素点为中心,以RGB颜色信息和距离为约束条件,设置生长阈值,进行垂直方向和水平方向的生长获取邻域窗口。
2.在视差图上对窗口内的像素点进行统计,按灰度值建立直方图。
3.基于灰度直方图,统计灰度值的分布情况,选取频率最高的灰度值来取代窗口中心像素的视差。
4.对每个像素点进行以上操作,更新整张视差图。
经过区域投票后,视差图得到精化,最后再经过中值滤波得到最终视差图。
图7展示了部分标准图像利用包括改进后的WTA-DP算法在内的代价聚合、视差选择和视差精化的优化步骤之后获得的视差图和优化前的视差图的对比,第一行是优化前的图像,第二行是优化后的视差图,可以看出经过优化后,视差图得到较大的改善。
F实验结果
1)标准图像测试
为了验证算法的有效性,对于训练好的神经网络,采用Middlebury3.0平台提供的15幅图像对进行测试,经过本发明的卷积神经网络匹配算法得到视差图整体较光滑,在无纹理区域和深度值突变区域均能取得较好的匹配效果。对有光照变化和非完全校正的图像对仍具有较好的鲁棒性。并且本发明提供的算法获得的视差图总体平滑,在无纹理区域和深度不连续区域,本发明算法均能取得较好的匹配结果。
2)光照失真图像的匹配结果图
为了测试卷积神经网络立体匹配算法对光照失真的鲁棒性,本发明以Middlebury平台提供的不同光照下的图像为例进行实验。本发明提供的方法实验结果如图8所示。图8中所示为光照失真的待测试图像匹配效果(以左视点图像为例),从左往右依次为“Piano”,“Bicycle”,“Umbrella”,“Recycle”。同时,为了更客观地评价本发明提供的方法的性能,计算出实验所得视差图与真实视差图的PSNR值,从左往右依次为14.87dB,12.33dB,13.70dB,16.27dB。可以看出,在左右图像光照失真不一致时,本发明提供的方法仍能获得较高质量的视差图并且基本保持稳定,体现出很好的鲁棒性。
3)实际场景图像的匹配结果图
为了完成对实际场景的匹配测试,需要搭建一个双目立体视觉平台以获取输入图像对。实验平台如图9所示,主要包括:工业摄像机、镜头和立体支架。相机的分辨率为2592×1944像素,能够将获取的高清图像直接传输到计算机中保存,无需外接图像采集卡。镜头焦距为16mm,支架的横梁长度和竖直高度均可调,可以方便改变视场范围和基线距离。
由于在进行立体匹配之前需要对输入图像对进行极线校正以消除垂直视差,这些需要已知摄像机的参数矩阵。因而,首先需要对该双目立体视觉系统进行标定,以获取内外参数矩阵。不同于单目摄像机标定,立体标定除了需要计算单个摄像机的内参矩阵外,还需要计算两台摄像机之间的相对位置关系。本发明采用经典平面二维靶标标定法,该方法的好处是经过一次拍摄流程就能够标定出左右摄像机的内部参数、畸变参数以及摄像机之间的相对位置关系(旋转矩阵和平移向量)。实验中拍摄的靶标图像如图10所示,表5列出了根据拍摄的一系列靶标图像标定得到的相机参数矩阵。
表5双目标定结果
完成系统标定后,首先对获取的输入图像对进行极线校正,将其变换到平行水平位置,利用极线约束关系,可将搜索空间从二维图像降到一维直线。然后利用本发明提出的立体匹配算法求取视差深度信息。经过卷积神经网络的匹配算法得到的视差图较为平滑,在无纹理区域和视差不连续区域的主观视觉效果更好。
本发明提供了一种基于卷积神经网络的立体匹配算法。建立卷积神经网络结构,通过对Middlebury数据集进行训练得到的网络进行匹配代价计算;采用了基于十字交叉形窗口的代价聚合方法;采用WTA-DP算法进行视差选择,消除了WTA算法的视差不连续性;最后,经过区域投票算法进行视差精化得到最终的视差图。采用Middlebury3.0平台测试,加权误匹配率为3.49%,排名为14/54。并对失真图像和实际拍摄图像进行匹配,均可以得到较好的匹配效果。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (7)
1.一种基于卷积神经网络的立体图像匹配方法,其特征在于,包括:
S1、获取多个立体匹配图像对和所对应的真实视差,将其作为数据集;
S2、构建卷积神经网络,选用线性纠正单元RELU函数进行激活;
S3、采用反向传播算法训练所述卷积神经网络,确定网络误差函数和学习速率;
S4、经过所述卷积神经网络的计算,网络输出的是左右图像块的匹配代价空间图;
S5、对所述代价空间图进行匹配代价聚合、视差选择和视差精化,选择具有最小代价的像素点作为匹配点,得到最终的视差图。
2.如权利要求1所述的一种基于卷积神经网络的立体图像匹配方法,其特征在于,所述S1步骤中数据集一部分来源于左图像,一部分来源于右图像:
表示以p(x,y)为中心,n×n的邻域;根据所述图像中每一个位置,获取所述每一个位置所对应的真实视差d,选出一个正样本,一个负样本;
所述S1步骤包括:
S11、将右图像邻域中心作改变,即得到负样本,令q坐标改为:
q=(x-d+oneg,y) (1)
式中,oneg为随机值;
设定正样本q=(x-d+opos,y) (2)
式中,opos为0.5;
S12、将原图像块分成匹配正确的图像块和匹配错误的图像块后,需要对所有图像块作归一化操作;
S13、对已有的图像块作投影变换和亮度变化,得到第一图像块,将所述第一图像块加入原有的训练数据中构成最终的训练数据集。
3.如权利要求1所述的一种基于卷积神经网络的立体图像匹配方法,其特征在于,所述卷积神经网络结构包括:将两个输入图像块得到的特征向量归一化并作向量的点乘运算,得到输出的相似程度;
网络的输出用于初始化匹配代价,其表达式为:
CCNN(p,d)=-s(<PL(p),PR(pd)>) (3)
式中,s(<PL(p),PR(pd)>)表示网络以PL(p),PR(pd)为输入所获得的输出,负号将相似性得分转变为了匹配代价。
4.如权利要求1所述的一种基于卷积神经网络的立体图像匹配方法,其特征在于,所述S3步骤中确定网络误差函数,包括:
构造Hinge损失函数:
H=max(0,M+S_-S+) (4)
式中,M是一个正实数,输入是匹配正确的图像块时输出的相似程度为S+,输入是匹配错误的图像块时输出的相似程度为S_;误差函数H=0时,说明S+>S_+M,匹配正确的图像块的相似程度大于匹配错误的图像块。
5.如权利要求4所述的一种基于卷积神经网络的立体图像匹配方法,其特征在于,所述S3步骤确定训练方法以及学习速率和训练终止条件,包括:
采用梯度下降法调整权值,一组匹配正确的图像块和一组匹配错误的图像块同时输入,计算出相似程度S+和S_之后输入到所述误差函数(4);
以误差函数的输出H反向传播对权值求梯度,采用梯度下降法调整每一层的权值,调整的原理为:
式中,W0是原来的权值参数,H是误差函数输出;
表示本次误差对权值参数的导数,L是学习速率,L越大参数变化越快。
6.如权利要求1所述的一种基于卷积神经网络的立体图像匹配方法,其特征在于,所述S5步骤中视差选择,包括:
基于WTA的动态规划的全局思想进行视差选择;
定义一个包含平滑性假设的能量函数:
E(d)=Edata(d)+Esmooth(d) (7)
其中,数据项为聚合后的匹配代价,由公式(8)给出,平滑项采用线性模型,用来对视差值的突变进行处罚:
能量方程建立后,选用优化方法求得能量最小解,从而获得最优视差配置。
7.如权利要求1-6任一项所述的一种基于卷积神经网络的立体图像匹配方法,其特征在于,所述S5步骤中视差精化,包括:
采用十字生长的方法获取视差图中每个像素点的邻域窗口;根据十字生长得到的邻域窗口的信息来对像素点的视差进行改进;
具体步骤包括:
a.在原图像上由像素点为中心,以RGB颜色信息和距离为约束条件,设置生长阈值,进行垂直方向和水平方向的生长获取邻域窗口;
b.在视差图上对窗口内的像素点进行统计,按灰度值建立直方图;
c.基于灰度直方图,统计灰度值的分布情况,选取频率最高的灰度值来取代窗口中心像素的视差;
d.对每个像素点进行以上abc步骤操作,更新整张视差图;经过区域投票后,视差图得到精化,最后再经过中值滤波得到最终视差图。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811466748.5A CN109584290A (zh) | 2018-12-03 | 2018-12-03 | 一种基于卷积神经网络的立体图像匹配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811466748.5A CN109584290A (zh) | 2018-12-03 | 2018-12-03 | 一种基于卷积神经网络的立体图像匹配方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109584290A true CN109584290A (zh) | 2019-04-05 |
Family
ID=65926336
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811466748.5A Pending CN109584290A (zh) | 2018-12-03 | 2018-12-03 | 一种基于卷积神经网络的立体图像匹配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109584290A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110335222A (zh) * | 2019-06-18 | 2019-10-15 | 清华大学 | 基于神经网络的自修正弱监督双目视差提取方法及装置 |
CN110517309A (zh) * | 2019-07-19 | 2019-11-29 | 沈阳工业大学 | 一种基于卷积神经网络的单目深度信息获取方法 |
CN111079930A (zh) * | 2019-12-23 | 2020-04-28 | 深圳市商汤科技有限公司 | 数据集质量参数的确定方法、装置及电子设备 |
CN111242866A (zh) * | 2020-01-13 | 2020-06-05 | 重庆邮电大学 | 观测者动态眼位条件下ar-hud虚像畸变校正的神经网络插值方法 |
CN111368882A (zh) * | 2020-02-20 | 2020-07-03 | 南京信息工程大学 | 一种基于简化独立成分分析和局部相似性的立体匹配方法 |
CN111489385A (zh) * | 2020-04-08 | 2020-08-04 | 北京市商汤科技开发有限公司 | 双目立体匹配网络训练方法及装置 |
CN111582440A (zh) * | 2020-04-15 | 2020-08-25 | 马鞍山师范高等专科学校 | 一种基于深度学习的数据处理方法 |
CN111709977A (zh) * | 2020-03-17 | 2020-09-25 | 北京航空航天大学青岛研究院 | 一种基于自适应单峰立体匹配成本滤波的双目深度学习方法 |
CN111915503A (zh) * | 2020-06-12 | 2020-11-10 | 华南理工大学 | 一种基于树形神经网络结构的视差获取方法、存储介质及计算设备 |
CN111968063A (zh) * | 2020-09-07 | 2020-11-20 | 北京凌云光技术集团有限责任公司 | 一种形态学图像滤波装置及方法 |
CN112132201A (zh) * | 2020-09-17 | 2020-12-25 | 长春理工大学 | 一种基于卷积神经网络的非端到端立体匹配方法 |
GB2585197A (en) * | 2019-07-01 | 2021-01-06 | Sony Interactive Entertainment Inc | Method and system for obtaining depth data |
CN114066950A (zh) * | 2021-10-27 | 2022-02-18 | 北京的卢深视科技有限公司 | 单目散斑结构光图像匹配方法、电子设备及存储介质 |
CN114155303A (zh) * | 2022-02-09 | 2022-03-08 | 北京中科慧眼科技有限公司 | 基于双目相机的参数立体匹配方法和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103996202A (zh) * | 2014-06-11 | 2014-08-20 | 北京航空航天大学 | 一种基于混合匹配代价和自适应窗口的立体匹配方法 |
CN107358626A (zh) * | 2017-07-17 | 2017-11-17 | 清华大学深圳研究生院 | 一种利用条件生成对抗网络计算视差的方法 |
-
2018
- 2018-12-03 CN CN201811466748.5A patent/CN109584290A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103996202A (zh) * | 2014-06-11 | 2014-08-20 | 北京航空航天大学 | 一种基于混合匹配代价和自适应窗口的立体匹配方法 |
CN107358626A (zh) * | 2017-07-17 | 2017-11-17 | 清华大学深圳研究生院 | 一种利用条件生成对抗网络计算视差的方法 |
Non-Patent Citations (4)
Title |
---|
JURE ZBONTAR等: "Stereo Matching by Training a Convolutional Neural Network to Compare Image Patches", 《JOURNAL OF MACHINE LEARNING RESEARCH》 * |
徐豪: "基于卷积神经网络的立体匹配及视差图获取算法", 《INTERNATIONAL CONFERENCE ON POWER AND ENERGY SYSTEMS》 * |
祝世平 等: "基于改进Census变换和动态规划的立体匹配算法", 《光学学报》 * |
陈拓: "基于卷积神经网络的立体匹配技术研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110335222A (zh) * | 2019-06-18 | 2019-10-15 | 清华大学 | 基于神经网络的自修正弱监督双目视差提取方法及装置 |
CN110335222B (zh) * | 2019-06-18 | 2021-09-17 | 清华大学 | 基于神经网络的自修正弱监督双目视差提取方法及装置 |
GB2585197B (en) * | 2019-07-01 | 2023-12-20 | Sony Interactive Entertainment Inc | Method and system for obtaining depth data |
GB2585197A (en) * | 2019-07-01 | 2021-01-06 | Sony Interactive Entertainment Inc | Method and system for obtaining depth data |
CN110517309A (zh) * | 2019-07-19 | 2019-11-29 | 沈阳工业大学 | 一种基于卷积神经网络的单目深度信息获取方法 |
CN111079930A (zh) * | 2019-12-23 | 2020-04-28 | 深圳市商汤科技有限公司 | 数据集质量参数的确定方法、装置及电子设备 |
CN111079930B (zh) * | 2019-12-23 | 2023-12-19 | 深圳市商汤科技有限公司 | 数据集质量参数的确定方法、装置及电子设备 |
CN111242866A (zh) * | 2020-01-13 | 2020-06-05 | 重庆邮电大学 | 观测者动态眼位条件下ar-hud虚像畸变校正的神经网络插值方法 |
CN111242866B (zh) * | 2020-01-13 | 2023-06-16 | 重庆邮电大学 | 观测者动态眼位条件下ar-hud虚像畸变校正的神经网络插值方法 |
CN111368882A (zh) * | 2020-02-20 | 2020-07-03 | 南京信息工程大学 | 一种基于简化独立成分分析和局部相似性的立体匹配方法 |
CN111368882B (zh) * | 2020-02-20 | 2023-04-18 | 南京信息工程大学 | 一种基于简化独立成分分析和局部相似性的立体匹配方法 |
CN111709977A (zh) * | 2020-03-17 | 2020-09-25 | 北京航空航天大学青岛研究院 | 一种基于自适应单峰立体匹配成本滤波的双目深度学习方法 |
CN111489385B (zh) * | 2020-04-08 | 2021-12-07 | 北京市商汤科技开发有限公司 | 双目立体匹配网络训练方法及装置 |
CN111489385A (zh) * | 2020-04-08 | 2020-08-04 | 北京市商汤科技开发有限公司 | 双目立体匹配网络训练方法及装置 |
CN111582440A (zh) * | 2020-04-15 | 2020-08-25 | 马鞍山师范高等专科学校 | 一种基于深度学习的数据处理方法 |
CN111915503A (zh) * | 2020-06-12 | 2020-11-10 | 华南理工大学 | 一种基于树形神经网络结构的视差获取方法、存储介质及计算设备 |
CN111915503B (zh) * | 2020-06-12 | 2023-08-22 | 华南理工大学 | 一种基于树形神经网络结构的视差获取方法、存储介质及计算设备 |
CN111968063A (zh) * | 2020-09-07 | 2020-11-20 | 北京凌云光技术集团有限责任公司 | 一种形态学图像滤波装置及方法 |
CN111968063B (zh) * | 2020-09-07 | 2024-01-26 | 凌云光技术股份有限公司 | 一种形态学图像滤波装置及方法 |
CN112132201A (zh) * | 2020-09-17 | 2020-12-25 | 长春理工大学 | 一种基于卷积神经网络的非端到端立体匹配方法 |
CN112132201B (zh) * | 2020-09-17 | 2023-04-28 | 长春理工大学 | 一种基于卷积神经网络的非端到端立体匹配方法 |
CN114066950A (zh) * | 2021-10-27 | 2022-02-18 | 北京的卢深视科技有限公司 | 单目散斑结构光图像匹配方法、电子设备及存储介质 |
CN114155303A (zh) * | 2022-02-09 | 2022-03-08 | 北京中科慧眼科技有限公司 | 基于双目相机的参数立体匹配方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109584290A (zh) | 一种基于卷积神经网络的立体图像匹配方法 | |
CN110555434B (zh) | 一种局部对比和全局指导的立体图像视觉显著性检测方法 | |
CN111709409B (zh) | 人脸活体检测方法、装置、设备及介质 | |
CN108520535B (zh) | 基于深度恢复信息的物体分类方法 | |
CN107945204B (zh) | 一种基于生成对抗网络的像素级人像抠图方法 | |
CN111783748B (zh) | 人脸识别方法、装置、电子设备及存储介质 | |
CN113947589B (zh) | 一种基于对抗生成网络的弹载图像去模糊方法 | |
CN110458060A (zh) | 一种基于对抗学习的车辆图像优化方法及系统 | |
CN112215119B (zh) | 一种基于超分辨率重建的小目标识别方法、装置及介质 | |
CN106780543A (zh) | 一种基于卷积神经网络的双框架估计深度和运动方法 | |
CN103426200B (zh) | 基于无人机航拍序列图像的树木三维重建方法 | |
CN108629291B (zh) | 一种抗网格效应的人脸深度预测方法 | |
CN110175986A (zh) | 一种基于卷积神经网络的立体图像视觉显著性检测方法 | |
CN108389192A (zh) | 基于卷积神经网络的立体图像舒适度评价方法 | |
CN115311186B (zh) | 一种红外与可见光图像跨尺度注意力对抗融合方法及终端 | |
CN108615256B (zh) | 一种人脸三维重建方法及装置 | |
CN109523513A (zh) | 基于稀疏重建彩色融合图像的立体图像质量评价方法 | |
CN113674330A (zh) | 一种基于生成对抗网络的伪ct影像生成系统 | |
CN111882516B (zh) | 一种基于视觉显著性和深度神经网络的图像质量评价方法 | |
CN110351548A (zh) | 基于深度学习及视差图加权指导的立体图像质量评价方法 | |
CN116486233A (zh) | 一种多光谱双流网络的目标检测方法 | |
CN118379358A (zh) | 一种基于对抗神经网络的rgb-d相机深度模块标定方法 | |
CN113724308B (zh) | 基于光度与对比度互注意力的跨波段立体匹配算法 | |
CN111062899A (zh) | 基于引导的生成对抗网络的眨眼视频生成方法 | |
WO2022120996A1 (zh) | 视觉位置识别方法及装置、计算机设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190405 |
|
RJ01 | Rejection of invention patent application after publication |