CN104794703A - 一种基于zncc算法的实时立体匹配系统和方法 - Google Patents

一种基于zncc算法的实时立体匹配系统和方法 Download PDF

Info

Publication number
CN104794703A
CN104794703A CN201510128734.2A CN201510128734A CN104794703A CN 104794703 A CN104794703 A CN 104794703A CN 201510128734 A CN201510128734 A CN 201510128734A CN 104794703 A CN104794703 A CN 104794703A
Authority
CN
China
Prior art keywords
pixel
target image
window
parallax
zncc
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
Application number
CN201510128734.2A
Other languages
English (en)
Inventor
刘皓
林啸
叶璐
梁骏峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Advanced Technology University of Science and Technology of China
Original Assignee
Institute of Advanced Technology University of Science and Technology of China
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Advanced Technology University of Science and Technology of China filed Critical Institute of Advanced Technology University of Science and Technology of China
Priority to CN201510128734.2A priority Critical patent/CN104794703A/zh
Publication of CN104794703A publication Critical patent/CN104794703A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Image Processing (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

本发明公开了一种基于ZNCC算法的实时立体匹配系统和方法,计算目标图像和参考图像中像素点的像素值和积分图,通过ZNCC算法计算目标图像中每个像素点与参考图像中处于不同视差的像素点进行立体匹配的ZNCC算子,通过卷积算法计算目标图像中每个像素点在不同视差下WTA匹配代价,并通过比较不同视差下WTA匹配代价得到目标图像中每个像素点的最优视差,根据目标图像中像素点的最优视差图结合投影立体三角关系计算目标图像中每个像素点的深度信息,完成目标图像的实时立体匹配。通过在本发明的技术方案,实现了实时的立体匹配效果,其可靠性和准确性高。

Description

一种基于ZNCC算法的实时立体匹配系统和方法
技术领域
本发明属于计算机视觉技术领域,尤其涉及一种基于ZNCC算法的实时立体匹配系统和方法。
背景技术
在三维重建过程中,一般需要利用两个或多个图像传感器采集图像,其类似于人眼视觉的机制,通过对采集到的同一场景的两幅或多幅图像进行立体匹配,通过立体匹配找出图像之间的视差,再利用图像采集的三角关系确定场景中人物或物体的深度信息。在立体匹配过程中,通过选择匹配算法、匹配基元、相似性判断标准进行,在完成匹配后,可以得出场景中物体的视差图。然而,在实际应用过程中,当立体匹配计算量较大时,难以实现实时的立体匹配效果。
发明内容
为了解决背景技术中存在的技术问题,本发明提出了一种基于ZNCC算法的实时立体匹配系统和方法,实现了实时的立体匹配效果,其可靠性和准确性高。
本发明提出的一种基于ZNCC算法的实时立体匹配系统,包括:积分图计算模块、ZNCC算子计算模块、WTA匹配代价计算模块、深度信息计算模块;
所述积分图计算模块,用于计算目标图像和参考图像中像素点的像素值和积分图;
所述ZNCC算子计算模块,与所述积分图计算模块连接,用于根据目标图像和参考图像中像素点的像素值和积分图,通过ZNCC算法计算目标图像中每个像素点与参考图像中处于不同视差的像素点进行立体匹配的ZNCC算子;
所述WTA匹配代价计算模块,与所述ZNCC算子计算模块连接,用于根据目 标图像中每个像素点与参考图像中处于不同视差的像素点进行立体匹配的ZNCC算子,通过卷积算法计算目标图像中每个像素点在不同视差下WTA匹配代价,并通过比较不同视差下WTA匹配代价得到目标图像中每个像素点的最优视差;
所述深度信息计算模块,与所述WTA匹配代价计算模块连接,用于根据目标图像中像素点的最优视差图结合投影立体三角关系计算目标图像中每个像素点的深度信息,完成目标图像的实时立体匹配。
优选地,所述积分图计算模块计算目标图像和参考图像中像素点的像素值和积分图具体包括:计算目标图像和参考图像中每个像素点在第一窗口内所有像素点的像素值之和,得到目标图像和参考图像中像素点的像素值和积分图;
优选地,所述第一窗口以起始像素点(0,0)至当前像素点(x,y)为对角顶点的矩形窗口;优选地,所述起始像素点(0,0)为图像左上角处于顶点位置的像素点;
优选地,采用行前缀加法和列前缀加法计算目标图像和参考图像中每个像素点在第一窗口内所有像素点的像素值之和;
优选地,先采用行前缀加法计算目标图像和参考图像中每个像素点所在行的前缀和,得到行积分图并进行矩阵转置,然后采用列前缀加法计算目标图像和参考图像中每个像素点所在列的前缀和,得到列积分图并进行矩阵转置,从而得到目标图像和参考图像中像素点的像素值和积分图;
或者,先采用列前缀加法计算目标图像和参考图像中每个像素点所在列的前缀和,得到列积分图并进行矩阵转置然后采用行前缀加法计算目标图像和参考图像中每个像素点所在行的前缀和,得到行积分图并进行矩阵转置,从而得到目标图像和参考图像中像素点的像素值和积分图;
优选地,在计算像素点(x,y)的像素值之和时,按照以下方式进行:
在行前缀加法计算时,其计算公式如下:根据行前缀加法计算结果,在列前缀加法计算时,其计算公式如下:从而得到像素点(x,y)在第一窗口内所有像素点的像素值之和;
优选地,在行前缀加法的计算过程中,采用多个线程对多行并行计算,或者,在列前缀加法的计算过程中,采用多个线程对多列并行计算。
优选地,所述ZNCC算子计算模块通过ZNCC算法计算目标图像中每个像素点与参考图像中处于不同视差的像素点进行立体匹配的ZNCC算子,ZNCC算法的计算公式如下:
Z ( x , y , d ) = n × S TR ( x , y , d ) - S T ( x , y ) × S R ( x , y , d ) ( n × S TT ( x , y ) - S T 2 ( x , y ) ) × ( n × S RR ( x , y , d ) - S R 2 ( x , y , d ) ) ,
其中,Z(x,y,d)为目标图像T中像素点(x,y)与参考图像R中处于视差d的像素点进行立体匹配的ZNCC算子,d为参考图像的视差距离,
ST(x,y)为目标图像T上像素点(x,y)在第二窗口内所有n个像素点的像素值之和,STT(x,y)为目标图像T上像素点(x,y)在第二窗口内所有n个像素点的像素值平方之和,SR(x,y,d)为参考图像R中处于视差d的像素点(x±d,y)在第二窗口内所有n个像素点的像素值之和,SRR(x,y,d)为参考图像R中处于视差d的像素点(x±d,y)在第二窗口内所有n个像素点的像素值平方之和,STR(x,y,d)为目标图像T上像素点(x,y)在第二窗口内所有n个像素点和参考图像R中处于视差d的像素点(x±d,y)在第二窗口内所有n个像素点的对应像素值乘积之和;
优选地,所述第二窗口是以像素点(x,y)为基准点,向左、右分别平移k1、k2个像素点并且向下、上分别平移k3、k4个像素点,以平移得到的像素点 作为第二窗口中各边的中心点,从而得到矩形的第二窗口,其长和宽分别为k1+k2+1和k3+k4+1,在第二窗口中,n=(k1+k2+1)×(k3+k4+1);
在所述第二窗口中ZNCC算法的各个参数可表达如下:
S T ( x , y ) = Σ i = - k 1 k 2 Σ j = - k 3 k 4 G T ( x + i , y + j ) ,
S TT ( x , y ) = Σ i = - k 1 k 2 Σ j = - k 3 k 4 G T 2 ( x + i , y + j ) ,
S R ( x , y , d ) = Σ i = - k 1 k 2 Σ j = - k 3 k 4 G R ( x + i + d , y + j ) ,
S RR ( x , y , d ) = Σ i = - k 1 k 2 Σ j = - k 3 k 4 G R 2 ( x + i + d , y + j ) ,
S TR ( x , y , d ) = Σ i = - k 1 k 2 Σ j = - k 3 k 4 G T ( x + i , y + j ) G R ( x + i + d , y + j ) ;
优选地,k1、k2、k3、k4的取值与目标图像的分辨率成正比关系;优选地,k1=k2=k3=k4;优选地,对于分辨率为1024×768的目标图像,k1=k2=k3=k4=10;
优选地,在计算目标图像中每个像素点与参考图像中处于不同视差的像素点进行立体匹配的ZNCC算子时,采用多个线程对多个像素点并行计算,每个线程对一个像素点在不同视差下的ZNCC算子进行计算。
优选地,所述WTA匹配代价计算模块通过卷积算法计算目标图像中每个像素点在不同视差下WTA匹配代价,具体包括:根据目标图像中每个像素点与参考图像中处于不同视差的像素点进行立体匹配的ZNCC算子,通过设置卷积矩阵,计算卷积矩阵与目标图像中每个像素点在第三窗口内所有m个像素点在视差d下的ZNCC算子的对应乘积之和,得到目标图像中每个像素点在视差d下的WTA 匹配代价,卷积矩阵的行列数与第三窗口中像素点矩阵的行列数分别相等;
优选地,在计算目标图像中像素点(x,y)在视差d下WTA匹配代价时,通过设置(2t+1)×(2t+1)的卷积矩阵C,所述第三窗口是以像素点(x,y)为中心点,向左、右、下、上分别平移t个像素点,以平移得到的四个像素点作为第三窗口中各边的中心点,从而得到正方形的第三窗口,其边长为2t+1,在第三窗口中,m=(2t+1)×(2t+1);
在计算WTA匹配代价时,卷积算法的计算公式如下:
W ( x , y , d ) = Σ i = - t t Σ j = - t t Z ( x + i , y + j , d ) × C ij ;
优选地,t的取值与目标图像的分辨率成正比关系;优选地,对于分辨率为1024×768的目标图像,t=3;
优选地,在通过卷积算法计算目标图像中每个像素点在不同视差下WTA匹配代价时,采用多个线程对多个像素点并行计算,每个线程对一个像素点在不同视差下的WTA匹配代价进行计算;
优选地,根据目标图像中每个像素点在不同视差下WTA匹配代价,取WTA匹配代价的最小值所在的视差作为目标图像中每个像素点的最优视差,从而得到目标图像中像素点的最优视差图。
优选地,所述深度信息计算模块根据目标图像中像素点的最优视差图结合投影立体三角关系计算目标图像中每个像素点的深度信息,其计算公式如下:
z = b × f d ( x , y ) ,
其中,z为像素点的深度信息,b为两个图像采集装置的基线距离,两个图像采集装置分别用于采集目标图像与参考图像,f为两个图像采集装置的焦距, d(x,y)为目标图像中像素点(x,y)的最优视差。
本发明还提出了一种基于ZNCC算法的实时立体匹配方法,包括以下步骤;
S1、计算目标图像和参考图像中像素点的像素值和积分图;
S2、通过ZNCC算法计算目标图像中每个像素点与参考图像中处于不同视差的像素点进行立体匹配的ZNCC算子;
S3、通过卷积算法计算目标图像中每个像素点在不同视差下WTA匹配代价,并通过比较不同视差下WTA匹配代价得到目标图像中每个像素点的最优视差;
S4、根据目标图像中像素点的最优视差图结合投影立体三角关系计算目标图像中每个像素点的深度信息,完成目标图像的实时立体匹配。
优选地,在S1中具体包括:计算目标图像和参考图像中每个像素点在第一窗口内所有像素点的像素值之和,得到目标图像和参考图像中像素点的像素值和积分图;
优选地,所述第一窗口以起始像素点(0,0)至当前像素点(x,y)为对角顶点的矩形窗口;优选地,所述起始像素点(0,0)为图像左上角处于顶点位置的像素点;
优选地,采用行前缀加法和列前缀加法计算目标图像和参考图像中每个像素点在第一窗口内所有像素点的像素值之和;
优选地,先采用行前缀加法计算目标图像和参考图像中每个像素点所在行的前缀和,得到行积分图并进行矩阵转置,然后采用列前缀加法计算目标图像和参考图像中每个像素点所在列的前缀和,得到列积分图并进行矩阵转置,从而得到目标图像和参考图像中像素点的像素值和积分图;
或者,先采用列前缀加法计算目标图像和参考图像中每个像素点所在列的前缀和,得到列积分图并进行矩阵转置然后采用行前缀加法计算目标图像和参 考图像中每个像素点所在行的前缀和,得到行积分图并进行矩阵转置,从而得到目标图像和参考图像中像素点的像素值和积分图;
优选地,在计算像素点(x,y)的像素值之和时,按照以下方式进行:
在行前缀加法计算时,其计算公式如下:根据行前缀加法计算结果,在列前缀加法计算时,其计算公式如下:从而得到像素点(x,y)在第一窗口内所有像素点的像素值之和;
优选地,在行前缀加法的计算过程中,采用多个线程对多行并行计算,或者,在列前缀加法的计算过程中,采用多个线程对多列并行计算。
优选地,在S2中,通过ZNCC算法计算目标图像中每个像素点与参考图像中处于不同视差的像素点进行立体匹配的ZNCC算子,ZNCC算法的计算公式如下:
Z ( x , y , d ) = n × S TR ( x , y , d ) - S T ( x , y ) × S R ( x , y , d ) ( n × S TT ( x , y ) - S T 2 ( x , y ) ) × ( n × S RR ( x , y , d ) - S R 2 ( x , y , d ) ) ,
其中,Z(x,y,d)为目标图像T中像素点(x,y)与参考图像R中处于视差d的像素点进行立体匹配的ZNCC算子,d为参考图像的视差距离,
ST(x,y)为目标图像T上像素点(x,y)在第二窗口内所有n个像素点的像素值之和,STT(x,y)为目标图像T上像素点(x,y)在第二窗口内所有n个像素点的像素值平方之和,SR(x,y,d)为参考图像R中处于视差d的像素点(x±d,y)在第二窗口内所有n个像素点的像素值之和,SRR(x,y,d)为参考图像R中处于视差d的像素点(x±d,y)在第二窗口内所有n个像素点的像素值平方之和,STR(x,y,d)为目标图像T上像素点(x,y)在第二窗口内所有n个像素点和参考图像R中处于视差d的像素点(x±d,y)在第二窗口内所有n个像素点的对应像素值乘积之和;
优选地,所述第二窗口是以像素点(x,y)为基准点,向左、右分别平移k1、k2个像素点并且向下、上分别平移k3、k4个像素点,以平移得到的像素点作为第二窗口中各边的中心点,从而得到矩形的第二窗口,其长和宽分别为k1+k2+1和k3+k4+1,在第二窗口中,n=(k1+k2+1)×(k3+k4+1);
在所述第二窗口中ZNCC算法的各个参数可表达如下:
S T ( x , y ) = Σ i = - k 1 k 2 Σ j = - k 3 k 4 G T ( x + i , y + j ) ,
S TT ( x , y ) = Σ i = - k 1 k 2 Σ j = - k 3 k 4 G T 2 ( x + i , y + j ) ,
S R ( x , y , d ) = Σ i = - k 1 k 2 Σ j = - k 3 k 4 G R ( x + i + d , y + j ) ,
S RR ( x , y , d ) = Σ i = - k 1 k 2 Σ j = - k 3 k 4 G R 2 ( x + i + d , y + j ) ,
S TR ( x , y , d ) = Σ i = - k 1 k 2 Σ j = - k 3 k 4 G T ( x + i , y + j ) G R ( x + i + d , y + j ) ;
优选地,k1、k2、k3、k4的取值与目标图像的分辨率成正比关系;优选地,k1=k2=k3=k4;优选地,对于分辨率为1024×768的目标图像,k1=k2=k3=k4=10;
优选地,在S2中,在计算目标图像中每个像素点与参考图像中处于不同视差的像素点进行立体匹配的ZNCC算子时,采用多个线程对多个像素点并行计算,每个线程对一个像素点在不同视差下的ZNCC算子进行计算。
优选地,在S3中,通过卷积算法计算目标图像中每个像素点在不同视差下WTA匹配代价,具体包括:根据目标图像中每个像素点与参考图像中处于不同视差的像素点进行立体匹配的ZNCC算子,通过设置卷积矩阵,计算卷积矩阵与目标图像中每个像素点在第三窗口内所有m个像素点在视差d下的ZNCC算子的对 应乘积之和,得到目标图像中每个像素点在视差d下的WTA匹配代价,其中,卷积矩阵的行列数与第三窗口包括的像素点矩阵的行列数分别相等;
优选地,在S3中,在计算目标图像中像素点(x,y)在视差d下WTA匹配代价时,通过设置(2t+1)×(2t+1)的卷积矩阵C,所述第三窗口是以像素点(x,y)为中心点,向左、右、下、上分别平移t个像素点,以平移得到的四个像素点作为第三窗口中各边的中心点,从而得到正方形的第三窗口,其边长为2t+1,在第三窗口中,m=(2t+1)×(2t+1);
在计算WTA匹配代价时,卷积算法的计算公式如下:
W ( x , y , d ) = Σ i = - t t Σ j = - t t Z ( x + i , y + j , d ) × C ij ;
优选地,t的取值与目标图像的分辨率成正比关系;优选地,对于分辨率为1024×768的目标图像,t=3;
优选地,在S3中,在通过卷积算法计算目标图像中每个像素点在不同视差下WTA匹配代价时,采用多个线程对多个像素点并行计算,每个线程对一个像素点在不同视差下的WTA匹配代价进行计算;
优选地,在S3中,通过比较不同视差下WTA匹配代价得到目标图像中每个像素点的最优视差,具体包括:比较目标图像中每个像素点在不同视差下WTA匹配代价,取WTA匹配代价的最小值所在的视差作为目标图像中每个像素点的最优视差,从而得到目标图像中像素点的最优视差图。
优选地,在S4中,根据目标图像中像素点的最优视差图结合投影立体三角关系计算目标图像中每个像素点的深度信息,其计算公式如下:
z = b × f d ( x , y ) ,
其中,z为像素点的深度信息,b为两个图像采集装置的基线距离,两个图像采集装置分别用于采集目标图像与参考图像,f为两个图像采集装置的焦距,d(x,y)为目标图像中像素点(x,y)的最优视差。
在本发明中,计算目标图像和参考图像中像素点的像素值和积分图,通过ZNCC算法计算目标图像中每个像素点与参考图像中处于不同视差的像素点进行立体匹配的ZNCC算子,通过卷积算法计算目标图像中每个像素点在不同视差下WTA匹配代价,并通过比较不同视差下WTA匹配代价得到目标图像中每个像素点的最优视差,根据目标图像中像素点的最优视差图结合投影立体三角关系计算目标图像中每个像素点的深度信息,完成目标图像的实时立体匹配;通过本申请的技术方案,实现了实时的立体匹配效果,其可靠性和准确性高。
附图说明
图1为本发明中一种基于ZNCC算法的实时立体匹配系统的结构原理图。
图2为本发明中一种基于ZNCC算法的实时立体匹配方法的流程示意图。
图3为本发明实施例中像素点的像素值和积分图计算过程示意图。
图4为本发明实施例中进行行前缀加法并行计算过程示意图。
图5为本发明实施例中像素点的像素值和积分图并行计算过程示意图。
图6为本发明实施例中像素点在第二窗口的积分图计算过程示意图。
图7为本发明实施例中进行ZNCC算法计算过程示意图。
图8为本发明实施例中ZNCC算子并行计算过程示意图。
图9为本发明实施例中WTA匹配代价计算过程示意图。
图10为本发明实施例中WTA匹配代价并行计算过程示意图。
图11为本发明实施例中投影立体三角关系示意图。
具体实施方式
如图1所示,图1为本发明中一种基于ZNCC算法的实时立体匹配系统的结构原理图。
本发明提出的一种基于ZNCC算法的实时立体匹配系统,包括:积分图计算模块、ZNCC算子计算模块、WTA匹配代价计算模块、深度信息计算模块;
所述积分图计算模块,用于计算目标图像和参考图像中像素点的像素值和积分图;
所述ZNCC算子计算模块,与所述积分图计算模块连接,用于根据目标图像和参考图像中像素点的像素值和积分图,通过ZNCC算法计算目标图像中每个像素点与参考图像中处于不同视差的像素点进行立体匹配的ZNCC算子;
所述WTA匹配代价计算模块,与所述ZNCC算子计算模块连接,用于根据目标图像中每个像素点与参考图像中处于不同视差的像素点进行立体匹配的ZNCC算子,通过卷积算法计算目标图像中每个像素点在不同视差下WTA匹配代价,并通过比较不同视差下WTA匹配代价得到目标图像中每个像素点的最优视差;
所述深度信息计算模块,与所述WTA匹配代价计算模块连接,用于根据目标图像中像素点的最优视差图结合投影立体三角关系计算目标图像中每个像素点的深度信息,完成目标图像的实时立体匹配。
在本发明具体实施例中,积分图计算模块在计算目标图像和参考图像中像素点的像素值和积分图的过程中,具体计算目标图像和参考图像中每个像素点在第一窗口内所有像素点的像素值之和,从而得到目标图像和参考图像中像素点的像素值和积分图;
其中,第一窗口以起始像素点(0,0)至当前像素点(x,y)为对角顶点的矩形窗口,选择起始像素点(0,0)为目标图像和参考图像上左上角处于顶点位置的像素点。
例如,对于数组a(x),根据前缀加法得出的结果可表示为参照图3,在像素值和积分图中,像素点(x,y)处的像素值之和是在由像素点(0,0)与像素点(x,y)为对角顶点构成的矩形窗口内所有像素点的像素值之和。
在具体计算过程中,采用行前缀加法和列前缀加法计算目标图像和参考图像中每个像素点在第一窗口内所有像素点的像素值之和,具体地对于行前缀加法和列前缀加法的计算顺序并不做限定,可以先采用行前缀加法再采用列前缀加法进行计算,或者,先采用列前缀加法再采用行前缀加法进行计算。
在行前缀加法或者列前缀加法的计算过程中,每一行或者每一列的计算是相对独立的,所以可以使用多个线程进行并行计算;在行前缀加法的计算过程中采用多个线程对多行并行计算,在列前缀加法的计算过程中采用多个线程对多列并行计算,从而得出目标图像和参考图像中像素点的像素值和积分图。
参照图4,对于八个元素进行行前缀加法的并行计算过程中,第一步采用八个线程读取八个元素,然后以步长为1对相邻元素之间进行加法运算,下一步再以步长为2对相邻元素之间进行加法运算,最后以步长为4对相邻元素之间进行加法运算,从而完成所有元素的行前缀加法计算。
在像素值和积分图的并行计算过程中,GPU并行计算不同于CPU中利用单个线程进行计算,在GPU中多个线程并行计算过程,对每个线程进行任务划分,从而在访问数据时不会产生访存冲突或者计算结果错误的情况。
在GPU并行计算过程中,通过采用一个线程块处理一行元素的方法进行行前缀加法计算,对于需要处理的图像分辨率为M×N大小的目标图像,则需要N个线程块进行计算,每个线程块需要处理M个元素;将线程块的大小设计为m个线程,让每个线程首先读取M/m个元素,将这M/m个元素进行加法求和得出 的结果进行存储在共享存储器中,再用m个线程对共享存储器中的m个元素进行行前缀加法运算。这样,采用上述运算方式可以减少加法的次数,并减小反复地读取数据的次数,从而提高了计算效率。
需要说明的是,对于任意大小的目标图像都可以图4的计算方式来完成目标图像中像素点的像素值和积分图的计算。
列前缀加法的计算过程与行前缀加法的计算过程相似,在进行列前缀加法的计算过程中,需要先对行前缀加法的计算结果进行转置,即对M×N形式的矩阵进行矩阵转置并得到转置后的计算结果,则图像的积分图转换成N×M的矩阵形式,再对该N×M矩阵进行行前缀加法计算,其计算过程与转置前的行前缀加法的计算完全一致,然后对得出列前缀加法的计算结果再次进行矩阵转置,完成计算过程,最终得到M×N的目标图像中像素点的像素值和积分图。
例如,先采用行前缀加法计算目标图像和参考图像中每个像素点所在行的前缀和,得到行积分图并进行矩阵转置,然后采用列前缀加法计算目标图像和参考图像中每个像素点所在列的前缀和,得到列积分图并进行矩阵转置,最终得到目标图像和参考图像中像素点的像素值和积分图;
如图5所示,在行前缀加法计算时,其计算公式如下:
根据行前缀加法计算结果,经过矩阵转置,然后在列前缀加法计算时,其计算公式如下:
再次进行矩阵转置,最终得到像素点(x,y)在第一窗口内所有像素点的像素值之和。
另外,可以先采用列前缀加法计算目标图像和参考图像中每个像素点所在列的前缀和,得到列积分图并进行矩阵转置然后采用行前缀加法计算目标图像 和参考图像中每个像素点所在行的前缀和,得到行积分图并进行矩阵转置,最终得到目标图像和参考图像中像素点的像素值和积分图;其计算过程可以参考先行前缀加法后列前缀加法的计算过程,再次不再赘述。
通过上述计算方式,遍历目标图像和参考图像中所有像素点,得到目标图像和参考图像中像素点的像素值和积分图。
在本发明具体实施例中,ZNCC算子计算模块通过ZNCC算法计算目标图像中每个像素点与参考图像中处于不同视差的像素点进行立体匹配的ZNCC算子,ZNCC算法的计算公式如下:
Z ( x , y , d ) = n × S TR ( x , y , d ) - S T ( x , y ) × S R ( x , y , d ) ( n × S TT ( x , y ) - S T 2 ( x , y ) ) × ( n × S RR ( x , y , d ) - S R 2 ( x , y , d ) ) ,
其中,Z(x,y,d)为目标图像T中像素点(x,y)与参考图像R中处于视差d的像素点进行立体匹配的ZNCC算子,d为参考图像的视差距离;
参照图6和图7,ST(x,y)为目标图像T上像素点(x,y)在第二窗口内所有n个像素点的像素值之和,STT(x,y)为目标图像T上像素点(x,y)在第二窗口内所有n个像素点的像素值平方之和,SR(x,y,d)为参考图像R中处于视差d的像素点(x±d,y)在第二窗口内所有n个像素点的像素值之和,SRR(x,y,d)为参考图像R中处于视差d的像素点(x±d,y)在第二窗口内所有n个像素点的像素值平方之和,STR(x,y,d)为目标图像T上像素点(x,y)在第二窗口内所有n个像素点和参考图像R中处于视差d的像素点(x±d,y)在第二窗口内所有n个像素点的对应像素值乘积之和;
参照图7,在计算SR(x,y,d)SRR(x,y,d)和STR(x,y,d)的过程中需要考虑视差因素,根据目标图像T中像素点(x,y)确定参考图像R在视差转换之后的对应像素点(x±d,y),参考图像R中像素点(x+d,y)是将参考图像R 向右平移d之后参考图像R中与目标图像T中像素点(x,y)对应的像素点,参考图像R中像素点(x-d,y)是将参考图像R向左平移d之后参考图像R中与目标图像T中像素点(x,y)对应的像素点。
参照图6和图7,所述第二窗口是以像素点(x,y)为基准点,向左、右分别平移k1、k2个像素点并且向下、上分别平移k3、k4个像素点,以平移得到的像素点作为第二窗口中各边的中心点,从而得到矩形的第二窗口,其长和宽分别为k1+k2+1和k3+k4+1,在第二窗口中像素点的数量n=(k1+k2+1)×(k3+k4+1);
在所述第二窗口中ZNCC算法的各个参数可表达如下:
S T ( x , y ) = Σ i = - k 1 k 2 Σ j = - k 3 k 4 G T ( x + i , y + j ) ,
S TT ( x , y ) = Σ i = - k 1 k 2 Σ j = - k 3 k 4 G T 2 ( x + i , y + j ) ,
S R ( x , y , d ) = Σ i = - k 1 k 2 Σ j = - k 3 k 4 G R ( x + i + d , y + j ) ,
S RR ( x , y , d ) = Σ i = - k 1 k 2 Σ j = - k 3 k 4 G R 2 ( x + i + d , y + j ) ,
S TR ( x , y , d ) = Σ i = - k 1 k 2 Σ j = - k 3 k 4 G T ( x + i , y + j ) G R ( x + i + d , y + j ) ;
在第二窗口的设计过程中,k1、k2、k3、k4的取值与目标图像的分辨率成正比关系;在实际应用过程中,可以选择k1=k2=k3=k4,这样构成的第二窗口为正方形。
例如,对于分辨率为1024×768的目标图像,k1=k2=k3=k4=10。
根据上述计算方式,遍历目标图像中所有像素点,得到目标图像中每个像素点与参考图像中处于不同视差的像素点进行立体匹配的ZNCC算子。
在计算目标图像中每个像素点与参考图像中处于不同视差的像素点进行立体匹配的ZNCC算子时,采用多个线程对多个像素点并行计算,每个线程对一个像素点在不同视差下的ZNCC算子进行计算。
参照图8,通过设计多个线程块,每个线程均读取目标图像中一个像素点所在第二窗口的ST、STT、SR、SRR以及STR,然后通过计算完成ZNCC算子的计算,计算完成后将计算结果进行存储存。
在本发明具体实施例中,WTA匹配代价计算模块通过卷积算法计算目标图像中每个像素点在不同视差下WTA匹配代价的过程中,根据目标图像中每个像素点与参考图像中处于不同视差的像素点进行立体匹配的ZNCC算子,通过设置卷积矩阵(卷积核),计算卷积矩阵与目标图像中每个像素点在第三窗口内所有m个像素点在视差d下的ZNCC算子的对应乘积之和,得到目标图像中每个像素点在视差d下的WTA匹配代价,卷积矩阵的行列数与第三窗口中像素点矩阵的行列数分别相等。
参照图9,在计算目标图像中像素点(x,y)在视差d下WTA匹配代价时,通过设置(2t+1)×(2t+1)的卷积矩阵C,所述第三窗口是以像素点(x,y)为中心点,向左、右、下、上分别平移t个像素点,以平移得到的四个像素点作为第三窗口中各边的中心点,从而得到正方形的第三窗口,其边长为2t+1,在第三窗口中像素点的数量m=(2t+1)×(2t+1);
在计算WTA匹配代价时,卷积算法的计算公式如下:
W ( x , y , d ) = Σ i = - t t Σ j = - t t Z ( x + i , y + j , d ) × C ij ;
在卷积计算过程中,卷积核可以根据需要进行选择,例如可以设置成高斯卷积核,或者构造每个像素点相对于卷积核中心距离所构成的卷积核。
在第三窗口(卷积核)的设计过程中,t的取值与目标图像的分辨率成正比关系,例如,对于分辨率为1024×768的目标图像,可以选择t=3。
根据上述计算方式,遍历目标图像中所有像素点,得到目标图像中每个像素点在不同视差下WTA匹配代价。
参照图10,在通过卷积算法计算目标图像中每个像素点在不同视差下WTA匹配代价时,利用GPU并行计算,通过设计多个线程对多个像素点进行WTA匹配代价计算,每个线程读取一个像素点在不同视差下的ZNCC算子,然后再以每个像素点为中心的第三窗口的WTA匹配代价进行计算,计算完成后将计算结果进行存储存。
根据上述计算得到的目标图像中每个像素点在不同时差下的WTA匹配代价,取WTA匹配代价的最小值所在的视差作为目标图像中每个像素点的最优视差,从而得到目标图像中像素点的最优视差图。
在本发明具体实施例中,深度信息计算模块根据目标图像中像素点的最优视差图结合投影立体三角关系计算目标图像中每个像素点的深度信息,其计算公式如下:
z = b × f d ( x , y ) ,
其中,z为像素点的深度信息,b为两个图像采集装置的基线距离,即两个图像采集装置的投影中心连线的距离,两个图像采集装置分别用于采集目标图像与参考图像,f为两个图像采集装置的焦距,d(x,y)为目标图像中像素点(x,y)的最优视差。
参照图11,根据双目视觉原理,两个图像采集装置分别目标图像和参考图像,对于目标图像中的像素点P(xc,yc,zc),在XZ平面的投影图上,点p在V1和V2视角下的图像坐标并分别表示为:
pleft=(Xleft,Yleft),pright=(Xright,Yright),
其中,pleft代表像素点P在参考图像中的图像坐标,pright代表像素点P在目标中的图像坐标;
根据得到的点p的最优视差为d(x,y),根据投影立体三角关系,点p的深度信息的计算公式如下:
X left f = x c z c ,
X right f = x c - b z c ,
其中,最优视差d=Xleft-Xright
从而得到点p的深度信息 z z = b × f d = b × f X left - X right ;
其中,b为两个图像采集装置的投影中心连线的距离(基线距离),f为图像采集装置的焦距。
根据上述计算方式,根据目标图像中像素点的最优视差图,可以获得目标图像中每一像素点的深度信息,从而完成目标图像的实时立体匹配。
如图2所示,图2为本发明中一种基于ZNCC算法的实时立体匹配方法的流程示意图。
参照图2,本发明提出的一种基于ZNCC算法的实时立体匹配方法,包括以下步骤;
S1、计算目标图像和参考图像中像素点的像素值和积分图;
S2、通过ZNCC算法计算目标图像中每个像素点与参考图像中处于不同视差的像素点进行立体匹配的ZNCC算子;
S3、通过卷积算法计算目标图像中每个像素点在不同视差下WTA匹配代价,并通过比较不同视差下WTA匹配代价得到目标图像中每个像素点的最优视差;
S4、根据目标图像中像素点的最优视差图结合投影立体三角关系计算目标图像中每个像素点的深度信息,完成目标图像的实时立体匹配。
在S1中,计算目标图像和参考图像中像素点的像素值和积分图具体包括:通过计算目标图像和参考图像中每个像素点在第一窗口内所有像素点的像素值之和,得到目标图像和参考图像中像素点的像素值和积分图,其中,所述第一窗口以起始像素点(0,0)至当前像素点(x,y)为对角顶点的矩形窗口,所述起始像素点(0,0)为图像左上角处于顶点位置的像素点;
具体地,采用行前缀加法和列前缀加法计算目标图像和参考图像中每个像素点在第一窗口内所有像素点的像素值之和;具体地对于行前缀加法和列前缀加法的计算顺序并不做限定,可以先采用行前缀加法再采用列前缀加法进行计算,或者,先采用列前缀加法再采用行前缀加法进行计算。
例如,先采用行前缀加法计算目标图像和参考图像中每个像素点所在行的前缀和,得到行积分图并进行矩阵转置,然后采用列前缀加法计算目标图像和参考图像中每个像素点所在列的前缀和,得到列积分图并进行矩阵转置,从而得到目标图像和参考图像中像素点的像素值和积分图。
计算像素点(x,y)像素值之和,在行前缀加法计算时,其计算公式如下:
S x ( i , j ) Σ i = 0 x I ( i , j ) ,
根据行前缀加法计算结果,经过矩阵转置,然后在列前缀加法计算时,其 计算公式如下:
S ( x , y ) Σ j = 0 y S x ( x , y ) ,
再次进行矩阵转置,最终得到像素点(x,y)在第一窗口内所有像素点的像素值之和。
在S2中,通过ZNCC算法计算目标图像中每个像素点与参考图像中处于不同视差的像素点进行立体匹配的ZNCC算子,ZNCC算法的计算公式如下:
Z ( x , y , d ) = n × S TR ( x , y , d ) - S T ( x , y ) × S R ( x , y , d ) ( n × S TT ( x , y ) - S T 2 ( x , y ) ) × ( n × S RR ( x , y , d ) - S R 2 ( x , y , d ) ) ,
其中,Z(x,y,d)为目标图像T中像素点(x,y)与参考图像R中处于视差d的像素点进行立体匹配的ZNCC算子,d为参考图像的视差距离,
ST(x,y)为目标图像T上像素点(x,y)在第二窗口内所有n个像素点的像素值之和,STT(x,y)为目标图像T上像素点(x,y)在第二窗口内所有n个像素点的像素值平方之和,SR(x,y,d)为参考图像R中处于视差d的像素点(x±d,y)在第二窗口内所有n个像素点的像素值之和,SRR(x,y,d)为参考图像R中处于视差d的像素点(x±d,y)在第二窗口内所有n个像素点的像素值平方之和,STR(x,y,d)为目标图像T上像素点(x,y)在第二窗口内所有n个像素点和参考图像R中处于视差d的像素点(x±d,y)在第二窗口内所有n个像素点的对应像素值乘积之和;
所述第二窗口是以像素点(x,y)为基准点,向左、右分别平移k1、k2个像素点并且向下、上分别平移k3、k4个像素点,以平移得到的像素点作为第二窗口中各边的中心点,从而得到矩形的第二窗口,其长和宽分别为k1+k2+1和k3+k4+1,在第二窗口中,n=(k1+k2+1)×(k3+k4+1);在所述第二窗口中ZNCC算法的各个参数可表达如下:
S T ( x , y ) = Σ i = - k 1 k 2 Σ j = - k 3 k 4 G T ( x + i , y + j ) ,
S TT ( x , y ) = Σ i = - k 1 k 2 Σ j = - k 3 k 4 G T 2 ( x + i , y + j ) ,
S R ( x , y , d ) = Σ i = - k 1 k 2 Σ j = - k 3 k 4 G R ( x + i + d , y + j ) ,
S RR ( x , y , d ) = Σ i = - k 1 k 2 Σ j = - k 3 k 4 G R 2 ( x + i + d , y + j ) ,
S TR ( x , y , d ) = Σ i = - k 1 k 2 Σ j = - k 3 k 4 G T ( x + i , y + j ) G R ( x + i + d , y + j ) ;
在S3中,通过卷积算法计算目标图像中每个像素点在不同视差下WTA匹配代价,具体包括:根据目标图像中每个像素点与参考图像中处于不同视差的像素点进行立体匹配的ZNCC算子,通过设置卷积矩阵,计算卷积矩阵与目标图像中每个像素点在第三窗口内所有m个像素点在视差d下的ZNCC算子的对应乘积之和,得到目标图像中每个像素点在视差d下的WTA匹配代价,其中,卷积矩阵的行列数与第三窗口包括的像素点矩阵的行列数分别相等;
在S3中,在计算目标图像中像素点(x,y)在视差d下WTA匹配代价时,通过设置(2t+1)×(2t+1)的卷积矩阵C,所述第三窗口是以像素点(x,y)为中心点,向左、右、下、上分别平移t个像素点,以平移得到的四个像素点作为第三窗口中各边的中心点,从而得到正方形的第三窗口,其边长为2t+1,在第三窗口中,m=(2t+1)×(2t+1);
在计算WTA匹配代价时,卷积算法的计算公式如下:
W ( x , y , d ) = Σ i = - t t Σ j = - t t Z ( x + i , y + j , d ) × C ij ;
在S3中,通过比较不同视差下WTA匹配代价得到目标图像中每个像素点的最优视差,具体包括:比较目标图像中每个像素点在不同视差下WTA匹配代价,取WTA匹配代价的最小值所在的视差作为目标图像中每个像素点的最优视差,从而得到目标图像中像素点的最优视差图。
在S4中,根据目标图像中像素点的最优视差图结合投影立体三角关系计算目标图像中每个像素点的深度信息,其计算公式如下:
z = b × f d ( x , y ) ,
其中,z为像素点的深度信息,b为两个图像采集装置的基线距离,即两个图像采集装置的投影中心连线的距离,两个图像采集装置分别用于采集目标图像与参考图像,f为两个图像采集装置的焦距,d(x,y)为目标图像中像素点(x,y)的最优视差。
在本发明中,计算目标图像和参考图像中像素点的像素值和积分图,通过ZNCC算法计算目标图像中每个像素点与参考图像中处于不同视差的像素点进行立体匹配的ZNCC算子,通过卷积算法计算目标图像中每个像素点在不同视差下WTA匹配代价,并通过比较不同视差下WTA匹配代价得到目标图像中每个像素点的最优视差,根据目标图像中像素点的最优视差图结合投影立体三角关系计算目标图像中每个像素点的深度信息,完成目标图像的实时立体匹配;通过本申请的技术方案,实现了实时的立体匹配效果,其可靠性和准确性高。
在本发明中,基于局部窗口的立体匹配中,ZNCC匹配标准相对于简单的局部匹配标准SAD、SSD等方法更为可靠,通过选择匹配标准为ZNCC算子,使用逐点匹配策略或者基于特征点的匹配策略;通过改进的WTA算法,使得匹配的时间和精度不会受到匹配窗口大小的影响,经过测试发现匹配的效果较为准确 和高效。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

Claims (10)

1.一种基于ZNCC算法的实时立体匹配系统,其特征在于,包括:积分图计算模块、ZNCC算子计算模块、WTA匹配代价计算模块、深度信息计算模块;
所述积分图计算模块,用于计算目标图像和参考图像中像素点的像素值和积分图;
所述ZNCC算子计算模块,与所述积分图计算模块连接,用于根据目标图像和参考图像中像素点的像素值和积分图,通过ZNCC算法计算目标图像中每个像素点与参考图像中处于不同视差的像素点进行立体匹配的ZNCC算子;
所述WTA匹配代价计算模块,与所述ZNCC算子计算模块连接,用于根据目标图像中每个像素点与参考图像中处于不同视差的像素点进行立体匹配的ZNCC算子,通过卷积算法计算目标图像中每个像素点在不同视差下WTA匹配代价,并通过比较不同视差下WTA匹配代价得到目标图像中每个像素点的最优视差;
所述深度信息计算模块,与所述WTA匹配代价计算模块连接,用于根据目标图像中像素点的最优视差图结合投影立体三角关系计算目标图像中每个像素点的深度信息,完成目标图像的实时立体匹配。
2.根据权利要求1所述的基于ZNCC算法的实时立体匹配系统,其特征在于,所述积分图计算模块计算目标图像和参考图像中像素点的像素值和积分图具体包括:计算目标图像和参考图像中每个像素点在第一窗口内所有像素点的像素值之和,得到目标图像和参考图像中像素点的像素值和积分图;
优选地,所述第一窗口以起始像素点(0,0)至当前像素点(x,y)为对角顶点的矩形窗口;优选地,所述起始像素点(0,0)为图像左上角处于顶点位置的像素点;
优选地,采用行前缀加法和列前缀加法计算目标图像和参考图像中每个像素点在第一窗口内所有像素点的像素值之和;
优选地,先采用行前缀加法计算目标图像和参考图像中每个像素点所在行的前缀和,得到行积分图并进行矩阵转置,然后采用列前缀加法计算目标图像和参考图像中每个像素点所在列的前缀和,得到列积分图并进行矩阵转置,从而得到目标图像和参考图像中像素点的像素值和积分图;
或者,先采用列前缀加法计算目标图像和参考图像中每个像素点所在列的前缀和,得到列积分图并进行矩阵转置然后采用行前缀加法计算目标图像和参考图像中每个像素点所在行的前缀和,得到行积分图并进行矩阵转置,从而得到目标图像和参考图像中像素点的像素值和积分图;
优选地,在计算像素点(x,y)的像素值之和时,按照以下方式进行:
在行前缀加法计算时,其计算公式如下:根据行前缀加法计算结果,在列前缀加法计算时,其计算公式如下:从而得到像素点(x,y)在第一窗口内所有像素点的像素值之和;
优选地,在行前缀加法的计算过程中,采用多个线程对多行并行计算,或者,在列前缀加法的计算过程中,采用多个线程对多列并行计算。
3.根据权利要求1或2所述的基于ZNCC算法的实时立体匹配系统,其特征在于,所述ZNCC算子计算模块通过ZNCC算法计算目标图像中每个像素点与参考图像中处于不同视差的像素点进行立体匹配的ZNCC算子,ZNCC算法的计算公式如下:
其中,Z(x,y,d)为目标图像T中像素点(x,y)与参考图像R中处于视差d的像素点进行立体匹配的ZNCC算子,d为参考图像的视差距离,
ST(x,y)为目标图像T上像素点(x,y)在第二窗口内所有n个像素点的像素值之和,STT(x,y)为目标图像T上像素点(x,y)在第二窗口内所有n个像素点的像素值平方之和,SR(x,y,d)为参考图像R中处于视差d的像素点(x±d,y)在第二窗口内所有n个像素点的像素值之和,SRR(x,y,d)为参考图像R中处于视差d的像素点(x±d,y)在第二窗口内所有n个像素点的像素值平方之和,STR(x,y,d)为目标图像T上像素点(x,y)在第二窗口内所有n个像素点和参考图像R中处于视差d的像素点(x±d,y)在第二窗口内所有n个像素点的对应像素值乘积之和;
优选地,所述第二窗口是以像素点(x,y)为基准点,向左、右分别平移k1、k2个像素点并且向下、上分别平移k3、k4个像素点,以平移得到的像素点作为第二窗口中各边的中心点,从而得到矩形的第二窗口,其长和宽分别为k1+k2+1和k3+k4+1,在第二窗口中,n=(k1+k2+1)×(k3+k4+1);
在所述第二窗口中ZNCC算法的各个参数可表达如下:
优选地,k1、k2、k3、k4的取值与目标图像的分辨率成正比关系;优选地, k1=k2=k3=k4;优选地,对于分辨率为1024×768的目标图像,k1=k2=k3=k4=10;
优选地,在计算目标图像中每个像素点与参考图像中处于不同视差的像素点进行立体匹配的ZNCC算子时,采用多个线程对多个像素点并行计算,每个线程对一个像素点在不同视差下的ZNCC算子进行计算。
4.根据权利要求1-3中任一项所述的基于ZNCC算法的实时立体匹配系统,其特征在于,所述WTA匹配代价计算模块通过卷积算法计算目标图像中每个像素点在不同视差下WTA匹配代价,具体包括:根据目标图像中每个像素点与参考图像中处于不同视差的像素点进行立体匹配的ZNCC算子,通过设置卷积矩阵,计算卷积矩阵与目标图像中每个像素点在第三窗口内所有m个像素点在视差d下的ZNCC算子的对应乘积之和,得到目标图像中每个像素点在视差d下的WTA匹配代价,卷积矩阵的行列数与第三窗口中像素点矩阵的行列数分别相等;
优选地,在计算目标图像中像素点(x,y)在视差d下WTA匹配代价时,通过设置(2t+1)×(2t+1)的卷积矩阵C,所述第三窗口是以像素点(x,y)为中心点,向左、右、下、上分别平移t个像素点,以平移得到的四个像素点作为第三窗口中各边的中心点,从而得到正方形的第三窗口,其边长为2t+1,在第三窗口中,m=(2t+1)×(2t+1);
在计算WTA匹配代价时,卷积算法的计算公式如下:
优选地,t的取值与目标图像的分辨率成正比关系;优选地,对于分辨率为1024×768的目标图像,t=3;
优选地,在通过卷积算法计算目标图像中每个像素点在不同视差下WTA匹配代价时,采用多个线程对多个像素点并行计算,每个线程对一个像素点在不 同视差下的WTA匹配代价进行计算;
优选地,根据目标图像中每个像素点在不同视差下WTA匹配代价,取WTA匹配代价的最小值所在的视差作为目标图像中每个像素点的最优视差d(x,y),从而得到目标图像中像素点的最优视差图。
5.根据权利要求1-4中任一项所述的基于ZNCC算法的实时立体匹配系统,其特征在于,所述深度信息计算模块根据目标图像中像素点的最优视差图结合投影立体三角关系计算目标图像中每个像素点的深度信息,其计算公式如下:
其中,z为像素点的深度信息,b为两个图像采集装置的基线距离,两个图像采集装置分别用于采集目标图像与参考图像,f为两个图像采集装置的焦距,d(x,y)为目标图像中像素点(x,y)的最优视差。
6.一种基于ZNCC算法的实时立体匹配方法,其特征在于,包括以下步骤;
S1、计算目标图像和参考图像中像素点的像素值和积分图;
S2、通过ZNCC算法计算目标图像中每个像素点与参考图像中处于不同视差的像素点进行立体匹配的ZNCC算子;
S3、通过卷积算法计算目标图像中每个像素点在不同视差下WTA匹配代价,并通过比较不同视差下WTA匹配代价得到目标图像中每个像素点的最优视差;
S4、根据目标图像中像素点的最优视差图结合投影立体三角关系计算目标图像中每个像素点的深度信息,完成目标图像的实时立体匹配。
7.根据权利要求6所述的基于ZNCC算法的实时立体匹配方法,其特征在于,在S1中具体包括:计算目标图像和参考图像中每个像素点在第一窗口内所有像素点的像素值之和,得到目标图像和参考图像中像素点的像素值和积分图;
优选地,所述第一窗口以起始像素点(0,0)至当前像素点(x,y)为对角顶点的矩形窗口;优选地,所述起始像素点(0,0)为图像左上角处于顶点位置的像素点;
优选地,采用行前缀加法和列前缀加法计算目标图像和参考图像中每个像素点在第一窗口内所有像素点的像素值之和;
优选地,先采用行前缀加法计算目标图像和参考图像中每个像素点所在行的前缀和,得到行积分图并进行矩阵转置,然后采用列前缀加法计算目标图像和参考图像中每个像素点所在列的前缀和,得到列积分图并进行矩阵转置,从而得到目标图像和参考图像中像素点的像素值和积分图;
或者,先采用列前缀加法计算目标图像和参考图像中每个像素点所在列的前缀和,得到列积分图并进行矩阵转置然后采用行前缀加法计算目标图像和参考图像中每个像素点所在行的前缀和,得到行积分图并进行矩阵转置,从而得到目标图像和参考图像中像素点的像素值和积分图;
优选地,在计算像素点(x,y)的像素值之和时,按照以下方式进行:
在行前缀加法计算时,其计算公式如下:根据行前缀加法计算结果,在列前缀加法计算时,其计算公式如下:从而得到像素点(x,y)在第一窗口内所有像素点的像素值之和;
优选地,在行前缀加法的计算过程中,采用多个线程对多行并行计算,或者,在列前缀加法的计算过程中,采用多个线程对多列并行计算。
8.根据权利要求6或7所述的基于ZNCC算法的实时立体匹配方法,其特征在于,在S2中,通过ZNCC算法计算目标图像中每个像素点与参考图像中处于不同视差的像素点进行立体匹配的ZNCC算子,ZNCC算法的计算公式如下:
其中,Z(x,y,d)为目标图像T中像素点(x,y)与参考图像R中处于视差d的像素点进行立体匹配的ZNCC算子,d为参考图像的视差距离,
ST(x,y)为目标图像T上像素点(x,y)在第二窗口内所有n个像素点的像素值之和,STT(x,y)为目标图像T上像素点(x,y)在第二窗口内所有n个像素点的像素值平方之和,SR(x,y,d)为参考图像R中处于视差d的像素点(x±d,y)在第二窗口内所有n个像素点的像素值之和,SRR(x,y,d)为参考图像R中处于视差d的像素点(x±d,y)在第二窗口内所有n个像素点的像素值平方之和,STR(x,y,d)为目标图像T上像素点(x,y)在第二窗口内所有n个像素点和参考图像R中处于视差d的像素点(x±d,y)在第二窗口内所有n个像素点的对应像素值乘积之和;
优选地,所述第二窗口是以像素点(x,y)为基准点,向左、右分别平移k1、k2个像素点并且向下、上分别平移k3、k4个像素点,以平移得到的像素点作为第二窗口中各边的中心点,从而得到矩形的第二窗口,其长和宽分别为k1+k2+1和k3+k4+1,在第二窗口中,n=(k1+k2+1)×(k3+k4+1);
在所述第二窗口中ZNCC算法的各个参数可表达如下:
优选地,k1、k2、k3、k4的取值与目标图像的分辨率成正比关系;优选地,k1=k2=k3=k4;优选地,对于分辨率为1024×768的目标图像,k1=k2=k3=k4=10;
优选地,在S2中,在计算目标图像中每个像素点与参考图像中处于不同视差的像素点进行立体匹配的ZNCC算子时,采用多个线程对多个像素点并行计算,每个线程对一个像素点在不同视差下的ZNCC算子进行计算。
9.根据权利要求6-8中任一项所述的基于ZNCC算法的实时立体匹配方法,其特征在于,在S3中,通过卷积算法计算目标图像中每个像素点在不同视差下WTA匹配代价,具体包括:根据目标图像中每个像素点与参考图像中处于不同视差的像素点进行立体匹配的ZNCC算子,通过设置卷积矩阵,计算卷积矩阵与目标图像中每个像素点在第三窗口内所有m个像素点在视差d下的ZNCC算子的对应乘积之和,得到目标图像中每个像素点在视差d下的WTA匹配代价,其中,卷积矩阵的行列数与第三窗口包括的像素点矩阵的行列数分别相等;
优选地,在S3中,在计算目标图像中像素点(x,y)在视差d下WTA匹配代价时,通过设置(2t+1)×(2t+1)的卷积矩阵C,所述第三窗口是以像素点(x,y)为中心点,向左、右、下、上分别平移t个像素点,以平移得到的四个像素点作为第三窗口中各边的中心点,从而得到正方形的第三窗口,其边长为2t+1,在第三窗口中,m=(2t+1)×(2t+1);
在计算WTA匹配代价时,卷积算法的计算公式如下:
优选地,t的取值与目标图像的分辨率成正比关系;
优选地,对于分辨率为1024×768的目标图像,t=3;
优选地,在S3中,在通过卷积算法计算目标图像中每个像素点在不同视差下WTA匹配代价时,采用多个线程对多个像素点并行计算,每个线程对一个像素点在不同视差下的WTA匹配代价进行计算;
优选地,在S3中,通过比较不同视差下WTA匹配代价得到目标图像中每个像素点的最优视差,具体包括:比较目标图像中每个像素点在不同视差下WTA匹配代价,取WTA匹配代价的最小值所在的视差作为目标图像中每个像素点的最优视差,从而得到目标图像中像素点的最优视差图。
10.根据权利要求6-9中任一项所述的基于ZNCC算法的实时立体匹配方法,其特征在于,在S4中,根据目标图像中像素点的最优视差图结合投影立体三角关系计算目标图像中每个像素点的深度信息,其计算公式如下:
其中,z为像素点的深度信息,b为两个图像采集装置的基线距离,两个图像采集装置分别用于采集目标图像与参考图像,f为两个图像采集装置的焦距,d(x,y)为目标图像中像素点(x,y)的最优视差。
CN201510128734.2A 2015-03-23 2015-03-23 一种基于zncc算法的实时立体匹配系统和方法 Pending CN104794703A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510128734.2A CN104794703A (zh) 2015-03-23 2015-03-23 一种基于zncc算法的实时立体匹配系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510128734.2A CN104794703A (zh) 2015-03-23 2015-03-23 一种基于zncc算法的实时立体匹配系统和方法

Publications (1)

Publication Number Publication Date
CN104794703A true CN104794703A (zh) 2015-07-22

Family

ID=53559483

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510128734.2A Pending CN104794703A (zh) 2015-03-23 2015-03-23 一种基于zncc算法的实时立体匹配系统和方法

Country Status (1)

Country Link
CN (1) CN104794703A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107481246A (zh) * 2017-07-14 2017-12-15 天津大学 基于匹配代价更新及图像分割的视差精炼算法
CN110060285A (zh) * 2019-04-29 2019-07-26 中国水利水电科学研究院 一种基于surf算法的遥感图像配准方法及系统
WO2020197494A1 (en) * 2019-03-26 2020-10-01 Agency For Science, Technology And Research Place recognition

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102129567A (zh) * 2011-03-17 2011-07-20 南京航空航天大学 一种基于色彩分割和自适应窗口的快速立体匹配方法
CN103593845A (zh) * 2013-11-19 2014-02-19 天津大学 对光照强度及图像旋转不敏感的图像匹配方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102129567A (zh) * 2011-03-17 2011-07-20 南京航空航天大学 一种基于色彩分割和自适应窗口的快速立体匹配方法
CN103593845A (zh) * 2013-11-19 2014-02-19 天津大学 对光照强度及图像旋转不敏感的图像匹配方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
D.M.TSAI等: "Fast normalized cross correlation for defect detect", 《PATTERN RECOGNITION LETTERS》 *
来春风: "数字近景影像稠密匹配方法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
王梦伟: "基于投影散斑的实时场景深度恢复", 《计算机辅助设计与图形学学报》 *
赖小波: "一种复杂背景图像三维重建算法及其医学应用", 《浙江大学学报(工学版)》 *
陈国赟: "时空结合的深度视频估计及相关研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107481246A (zh) * 2017-07-14 2017-12-15 天津大学 基于匹配代价更新及图像分割的视差精炼算法
CN107481246B (zh) * 2017-07-14 2019-08-16 天津大学 基于匹配代价更新及图像分割的视差精炼方法
WO2020197494A1 (en) * 2019-03-26 2020-10-01 Agency For Science, Technology And Research Place recognition
CN110060285A (zh) * 2019-04-29 2019-07-26 中国水利水电科学研究院 一种基于surf算法的遥感图像配准方法及系统

Similar Documents

Publication Publication Date Title
CN103106688B (zh) 基于双层配准方法的室内三维场景重建方法
CN101887589B (zh) 一种基于立体视觉的实拍低纹理图像重建方法
CN107886477A (zh) 无人驾驶中立体视觉与低线束激光雷达的融合矫正方法
CN103093479B (zh) 一种基于双目视觉的目标定位方法
CN103115613B (zh) 一种空间三维定位方法
CN102750697A (zh) 一种参数标定方法及装置
CN103604417B (zh) 物方信息约束的多视影像双向匹配策略
CN103712604B (zh) 一种光学多目标三维空间定位方法及系统
CN111260707B (zh) 一种基于光场epi图像的深度估计方法
CN104539928A (zh) 一种光栅立体印刷图像合成方法
CN103996220A (zh) 一种智能交通中的三维重建方法及系统
CN111985551B (zh) 一种基于多重注意力网络的立体匹配算法
CN104268876A (zh) 基于分块的摄像机标定方法
CN105654547A (zh) 三维重建方法
CN105222717A (zh) 一种标的物长度测量方法及装置
Mattoccia Stereo vision algorithms for fpgas
CN103308000B (zh) 基于双目视觉的曲线物体测量方法
CN103093460A (zh) 基于平行视差的移动相机虚拟阵列标定方法
CN104794713A (zh) 基于arm和双目视觉的温室作物数字化成像方法
CN110096993A (zh) 双目立体视觉的目标检测设备及方法
CN104794703A (zh) 一种基于zncc算法的实时立体匹配系统和方法
CN104864849A (zh) 视觉导航方法和装置以及机器人
CN105761270A (zh) 一种基于外极线距离变换的树型滤波立体匹配方法
CN107374638A (zh) 一种基于双目视觉模块的身高测量系统及方法
CN110033483A (zh) 基于dcnn深度图生成方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20150722