发明内容
为解决现有技术中存在的问题,本发明的实施例提供了一种视差获取方法、装置和系统,能够降低进行立体匹配时的搜索范围,显著减少了获取视差时的计算量,提高了系统的整体性能。
为达到上述目的,本发明的实施例采用如下技术方案:
本发明实施例提供了一种视差获取方法,所述方法包括:
对第一图像和第二图像分别进行关键点提取,获取第一图像关键点和第二图像关键点;
利用所述第一图像关键点和第二图像关键点进行立体匹配,得到第一图像关键点在第二图像关键点中对应的匹配点;
计算所述第一图像关键点的视差并根据所述视差获取视差图。
进一步的,所述方法还包括:
获取在第二图像的第a行中第b列起向第一图像方向一侧的预定范围内的各关键点,其中,所述a和b分别为第一图像中关键点的行坐标和列坐标;
计算所述第一图像关键点(a,b)和所述关键点(a,b)对应的第二图像中各关键点的匹配值;
根据所述匹配值确定第一图像关键点(a,b)在第二图像中的匹配点。
进一步的,包括:
按照扫描顺序,将所述第一图像关键点后的下一个扫描点作为参考点,所述关键点、参考点在第一图像中行坐标和列坐标分别为a和b、a和d;
在第二图像的搜索范围内获取该参考点的匹配点,所述搜索范围是由第a行中从第b-DIF列至第d列构成,其中,DIF为所述第一图像关键点的视差;
计算所述参考点与该参考点的匹配点之间的视差,并将该参考点作为关键点。
进一步的,还包括:
选取第一图像中非关键点(m,n)对应的近邻关键点(o,p);
在第二图像的第二搜索范围内获取该非关键点的匹配点,所述第二搜索范围是由第m行中从第n-DIF列至第p列构成,其中,DIF为所述第一图像中近邻关键点的视差;
计算所述非关键点与该非关键点的匹配点之间的视差。
其中,提取第一图像和第二图像的图像边缘点作为所述关键点;利用Census准则执行所述第一图像关键点和第二图像关键点的立体匹配。
本发明实施例还提供了一种视差获取装置,所述装置包括:
关键点提取单元,用于对第一图像和第二图像分别进行关键点提取,获取第一图像关键点和第二图像关键点;
关键点匹配单元,用于利用所述第一图像关键点和第二图像关键点进行立体匹配,得到第一图像关键点在第二图像关键点中对应的匹配点;
视差获取单元,用于计算所述第一图像关键点的视差并根据所述视差获取视差图。
进一步的,所述关键点匹配单元,还用于获取在第二图像的第a行中第b列起向第一图像方向一侧的预定范围内的各关键点,其中,所述a和b分别为第一图像中关键点的行坐标和列坐标;计算所述第一图像关键点(a,b)和所述关键点(a,b)对应的第二图像中各关键点的匹配值;根据所述匹配值确定第一图像关键点(a,b)在第二图像中的匹配点。
进一步的,所述视差获取单元包括:
参考点视差获取模块,用于按照扫描顺序,将所述第一图像关键点后的下一个扫描点作为参考点,所述关键点、参考点在第一图像中行坐标和列坐标分别为a和b、a和d;在第二图像的搜索范围内获取该参考点的匹配点,所述搜索范围是由第a行中从第b-DIF列至第d列构成,其中,DIF为所述第一图像中关键点的视差;计算所述参考点与该参考点的匹配点之间的视差,并将该参考点作为关键点。
非关键点视差获取模块,用于选取第一图像中非关键点(m,n)对应的近邻关键点(o,p);在第二图像的第二搜索范围内获取该非关键点的匹配点,所述第二搜索范围是由第m行中从第n-DIF列至第p列构成,其中,DIF为所述第一图像中近邻关键点的视差;计算所述非关键点与该非关键点的匹配点之间的视差。
本发明实施例还提供了一种视差获取系统,所述系统包括上述的视差获取装置。
本发明实施例提供的技术方案,深入考虑了立体匹配技术的特点,根据不同像素点的不同特性,首先确定出对被匹配图像进行立体匹配时重要性较大的关键点,计算该关键点的视差;通过关键点及其视差获取立体匹配时重要性较小的非关键点及其视差。本发明实施例提供的技术方案降低了匹配时的搜索范围,显著减少了视差获取时的计算量,提高了系统的整体性能。
具体实施方式
为了更清楚地说明本发明实施例的技术方案,下面将结合附图对本发明的实施例进行详细的介绍,下面的描述仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些实施例获得本发明的其他的实施方式。
本发明实施例提供的视差获取方法,包括:对第一图像和第二图像分别进行关键点提取,获取第一图像关键点和第二图像关键点;利用所述第一图像关键点和第二图像关键点进行立体匹配,得到第一图像关键点在第二图像关键点中对应的匹配点;计算所述第一图像关键点的视差并根据所述视差获取视差图。
上述第一图像和第二图像可以为用于立体匹配的双目图像,如左右图像,但不对图像的数量和具体类型进行限制。本发明实施例主要以双目图像的立体匹配为例进行说明。如图1所示,所述方法包括:
步骤S1:在被匹配图像和匹配图像中确定立体匹配的关键点。
即将第一图像作为被匹配图像,将第二图像作为匹配图像。所述被匹配图像和匹配图像为采集到的场景的双目图像,双目图像是根据立体识别原理,从两个或多个视点观察同一景物,获取的物体在不同视角下的图像。根据该双目图像通过三角测量原理等,计算左右图像像素间的位置偏差,即视差。
优选地,采用双目摄像机采集的所述双目图像,即左图像和右图像,选取左图像为被匹配图像,右图像为匹配图像(以下均以此为例进行说明)。由于左右两台摄相机在拍摄同一场景的时候会存在一定的视差,即相同目标在水平方向上有一定的位移,距离摄像机近的物体视差大,距离摄像机远的物体视差小,依据此原理通过立体匹配的方法从获取的双目图像中提取视差图。
本发明实施例提供一种在被匹配图像和匹配图像中选取关键点的方法,具体如下:关键点应该是在被匹配图像和匹配图像中特征比较明显,容易被正确识别并提取的像素点,关键点影响后续图像中其它点的立体匹配,因此必须选取合适的关键点。本发明实施例中考虑到图像中特征比较明显的点一般位于物体的边缘上,优选的,选取边缘点作为关键点。分别对左图像和右图像进行边缘提取,将获取到的边缘点作为关键点。
但不限于此,可以选取其它具有明显特征的点作为关键点或根据需要选取合适的关键点。
步骤S2:计算所述被匹配图像中关键点的视差。
选取关键点后,首先进行关键点的立体匹配,计算该关键点的视差。
获取所述被匹配图像的关键点在匹配图像中的匹配点,具体处理如下:
步骤S21:在双目摄像机采集的左图像中,按从左至右的顺序逐行扫描,寻找关键点(以下都以边缘点为例),若遇到的一个边缘点为A,其坐标为(a,b),a为行坐标,b为列坐标;
步骤S22:在双目摄像机采集的右图像中,在与A点相同位置的行,即第a行中,向第b列起至被匹配图像方向一侧的预定范围内的搜索关键点,所述预定范围为包含一定数量N像素点的范围,该范围根摄像机摄像头的具体参数及架设高度有关,如应用在公交客流自动统计系统时,N可取30。
即当左图像为被匹配图像时,在右图像中第a行中第b列起向左的30个像素点范围内搜索边缘点,假设这时找到M个边缘点。
步骤S123:在左右图像中对点A进行立体匹配。
由于边缘点具有明显的特征且细节丰富,进行立体匹配以获取关键点A的匹配点时,本发明实施例采用在5×5的窗口中采用计算量较小的Census准则即可达到理想的效果。
即左图像中在以A为中心的5×5的窗口中计算Census值,右图像中分别在以找到的M个边缘点为中心5×5的窗口中计算的Census值,将A点的Census值分别与M个Census值进行相似度比较,获取匹配值,当相似点的个数(如25个)大于等于预定个数(如20个)时,A点与右图像M个点中哪一个点的相似度最大,即获得了最优的匹配值,则认为A点与该点匹配,可得到A点的匹配点为B点,B的坐标为(a,c);当相似点的个数小于预定个数时,将A点从关键点中清除。
由于M点的个数相对很少,搜索范围较小,并且Census的匹配准则比较简单,所以关键点的立体匹配速度很快。
步骤S24:当关键点A存在匹配点B时,计算A的视差DIF=b-c。
重复上述步骤S21至步骤24的操作,得到步骤S1确定的所有关键点的视差。
进一步的,在进行关键点的处理时,本发明实施例还包括:根据所述被匹配图像的关键点和视差,获取所述各关键点对应的参考点、该参考点的匹配点及其视差,并将该参考点作为关键点,具体包括如下处理:
步骤S25:参考点的选取
本发明实施例二中选取左图像中关键点A后的下一个扫描点作为参考点,即将紧挨关键点A右侧的点选取为参考点C,其坐标为(a,d)。
再将C点右侧的点作为参考点,依次选取,直至遇到该行的下一个关键点。各行之间的操作是独立的,互不影响。
步骤S26:参考点的立体匹配及视差
在匹配图像即右图像中的搜索范围内获取该参考点的匹配点,所述搜索范围由匹配图像中由第a行中从第(b-DIF)列至第d列构成,其中,DIF为所述被匹配图像中关键点的视差,即在与C点同行(第a行)数据中,并且在第(b-DIF)列至第d列范围内搜索C的匹配点,这里,本发明实施例采用7×7窗口的归一化互相关匹配准则,获取到C点的匹配点,并计算C点的视差DIF_C。但不局限于此,包括其它适合的匹配规则。
然后将C点视为关键点,依次重复上述操作,例如,紧挨点C(a,d)的右侧的点为D点,其坐标为(a,e)。则对于D点来说,C点为其可参考的关键点,若C的视差为DIF_C,则D点在右图像中的搜索范围是第a行数据中的(d-DIF_C)列至e列,获取D点的匹配点,计算D点的视差DIF_D,将D点视为关键点;若不存在匹配点,清除D点。依次类推可计算出关键点右侧的所有的点的视差。
步骤S3:根据所述视差和关键点,获取所述被匹配图像中非关键点的视差。
通过上述步骤S1及步骤S2的操作,左图像中已计算出视差的点都可被视为关键点,剩余的点为非关键点。
首先,选取被匹配图像中非关键点(m,n)对应的近邻关键点(o,p),在本发明实施例中在向扫描方向相反的方向一侧的像素行中选取所述近邻关键点,即在非关键点左侧的上下行中寻找关键点。
利用该关键点的参照步骤S26相同的方式,在匹配图像中与非关键点相同位置行中,利用寻找到的关键点的视差确定的列的范围内,进行非关键点的立体匹配和视差计算。即在由第m行中从第(n-DIF)列至第p列构成的范围中搜索非关键点的匹配点,其中,DIF为所述被匹配图像中近邻关键点的视差。
由上所述,本发明实施例提供的立体匹配中获取视差的方法,将匹配过程分为三个主要层次,首先进行关键点的匹配和视差计算,利用较简单的匹配规则和较小的窗口即可获得较好的效果;然后根据关键点及其视差等信息,对其周围的参考点进行匹配,最后处理剩余的像素点。在进行参考点和非关键点的匹配时,搜索范围的大小根据其作为基准的关键点视差的不同而不同,大大缩小了搜索的范围,提高了匹配的速度。
下面通过实验结果,直观地显示本发明实施例所达到的效果,如图2(a)至图2(f)所示,显示了将上述视差获取方法应用在公交自动统计系统时的一个具体场景,其中,图2(a)和图2(b)为采集的不包括乘客的背景场景的双目图像,图2(a)为左图像,图2(b)为右图像,图2(c)为获取到的背景视差图像。图2(d)和图2(e)为采集的包括乘客的当前场景的双目图像,图2(d)为左图像,图2(e)为右图像,图2(f)为获取到的当前视差图像。
本发明实施例还提供了一种视差获取装置,如图3所示,所述装置包括:
关键点提取单元31,用于对第一图像和第二图像分别进行关键点提取,获取第一图像关键点和第二图像关键点;
关键点匹配单元32,用于利用所述第一图像关键点和第二图像关键点进行立体匹配,得到第一图像关键点在第二图像关键点中对应的匹配点;
视差获取单元33,用于计算所述第一图像关键点的视差并根据所述视差获取视差图。
进一步的,所述关键点匹配单元32,还用于获取在第二图像的第a行中第b列起向第一图像方向一侧的预定范围内的各关键点,其中,所述a和b分别为第一图像中关键点的行坐标和列坐标;计算所述第一图像关键点(a,b)和所述关键点(a,b)对应的第二图像中各关键点的匹配值;根据所述匹配值确定第一图像关键点(a,b)在第二图像中的匹配点。
进一步的,所述视差获取单元包括:
参考点视差获取模块,用于按照扫描顺序,将所述第一图像关键点后的下一个扫描点作为参考点,所述关键点、参考点在第一图像中行坐标和列坐标分别为a和b、a和d;在第二图像的搜索范围内获取该参考点的匹配点,所述搜索范围是由第a行中从第(b-DIF)列至第d列构成,其中,DIF为所述第一图像中关键点的视差;计算所述参考点与该参考点的匹配点之间的视差,并将该参考点作为关键点。
所述视差获取单元还包括:
非关键点视差获取模块,用于选取第一图像中非关键点(m,n)对应的近邻关键点(o,p);在第二图像的第二搜索范围内获取该非关键点的匹配点,所述第二搜索范围是由第m行中从第(n-DIF)列至第p列构成,其中,DIF为所述第一图像中近邻关键点的视差;计算所述非关键点与该非关键点的匹配点之间的视差。
本发明装置实施例中各功能模块的具体工作方法可参见本发明的方法实施例。
本发明实施例还提供了一种视差获取系统,所述系统包括上述视差获取装置。
本发明实施例提供的技术方案,深入考虑了立体匹配技术的特点,根据不同像素点的不同特性,首先确定出对被匹配图像进行立体匹配时重要性较大的关键点,计算该关键点的视差;通过关键点及其视差获取立体匹配时重要性较小的非关键点及其视差。本发明实施例提供的技术方案降低了匹配时的搜索范围,显著减少了视差获取时的计算量,提高了系统的整体性能。
本领域普通技术人员可以理解实现上述实施例中的全部或部分步骤,可以通过程序指令相关硬件完成。所述实施例对应的软件可以存储在一个计算机可存储读取的介质中。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。