CN112232372B - 一种基于opencl的单目立体匹配及加速的方法 - Google Patents

一种基于opencl的单目立体匹配及加速的方法 Download PDF

Info

Publication number
CN112232372B
CN112232372B CN202010984260.2A CN202010984260A CN112232372B CN 112232372 B CN112232372 B CN 112232372B CN 202010984260 A CN202010984260 A CN 202010984260A CN 112232372 B CN112232372 B CN 112232372B
Authority
CN
China
Prior art keywords
max
cost
image
opencl
pixel
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.)
Active
Application number
CN202010984260.2A
Other languages
English (en)
Other versions
CN112232372A (zh
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.)
Nanjing University of Science and Technology
Original Assignee
Nanjing University of Science and Technology
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 Nanjing University of Science and Technology filed Critical Nanjing University of Science and Technology
Priority to CN202010984260.2A priority Critical patent/CN112232372B/zh
Publication of CN112232372A publication Critical patent/CN112232372A/zh
Application granted granted Critical
Publication of CN112232372B publication Critical patent/CN112232372B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/2433Single-class perspective, e.g. one-against-all classification; Novelty detection; Outlier detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Image Processing (AREA)

Abstract

本发明公开了一种基于OPENCL实现的单目立体匹配及加速的方法,包括对两幅图像进行Census变换得到二进制码流,用汉明距离得到初始的匹配成本Cost,对初始匹配成本Cost进行基于SGM的成本聚合,使用胜者为王WTA算法和离群点检测Outlier算法计算出可靠、稠密的视差图,再使用亚像素插值算法对视差图进行优化处理。在OPENCL运行环境下,整个代码的运行耗时在10ms以内。本发明使用的OPENCL的共享内存机制和线程同步机制,属于GPU计算领域,能大幅度缩减计算耗时,实现最大限度加速。

Description

一种基于OPENCL的单目立体匹配及加速的方法
技术领域
本发明属于计算机视觉技术领域,具体为一种基于OPENCL实现的单目立体匹配及加速的方法。
背景技术
立体匹配问题计算流程基本上都可以分为匹配代价计算、代价聚合、视差计算、视差优化这四个步骤。在上述框架下,立体匹配算法基本被分类为两种:(1)局部算法:匹配代价计算=>代价聚合=>视差计算=>视差优化。(2)全局算法:匹配代价计算=>视差计算=>视差优化。局部算法一般在代价聚合之后,通过选择最低匹配代价来得到对应的视差。全局算法没有进行代价聚合,而是定义了一个包含数据项和平滑项的能量函数并通过最小化能量函数来求得视差,数据项一般为所有像素的代价和,平滑项一般为对邻域像素视差差异的惩罚,部分方法还添加更多的项,比如对遮挡区域的惩罚、左右一致性或对称性约束,或者根据分割区域对平滑项进行加权等。
全局算法由于非常高的运算量或内存消耗,在大多数场合都无法应用,而局部算法虽然速度很快,但是鲁棒性差,匹配质量比较低。2005年,一种半全局的立体匹配算法被提出,叫做SGM,该算法建议采用单像素互信息(HMI)作为匹配代价,沿着多个方向进行一维能量最小化来近似替代二维全局能量最小化,因此被称为半全局算法。SGM的运算速度远远快于大多数全局算法,同时精度也比较高,除了深度学习的方法外,SGM在各种公开数据集的双目匹配任务的排行榜上一直都位列前排,证明了SGM算法的强大。尽管SGM算法能够提供较好的立体匹配结果,但是其算法复杂度仍然很高,在CPU上SGM算法的耗时大于10秒,严重阻碍了SGM算法在实时立体匹配上的应用。因
发明内容
本发明的目的在于提出了一种基于OPENCL实现的单目立体匹配及加速的方法。
实现本发明目的的技术解决方案为:一种基于OPENCL实现的单目立体匹配及加速的方法,包括:
步骤一:基于OPENCL对带有散斑的被测场景图像和带有散斑的参考面图像进行Census变换得到二进制码流,作为中心像素的Census变换值;
步骤二:在视差范围内基于OPENCL的进行汉明距离计算,并根据汉明距离得到初始的匹配成本;
步骤三:对初始匹配成本进行基于OPENCL的成本聚合,获得匹配成本;
步骤四:基于OPENCL使用胜者为王WTA算法和离群点检测Outlier算法计算出视差图;
步骤五:基于OPENCL使用亚像素插值算法对视差图进行优化处理,获得带有散斑的被测场景图像的插值后的视差图。
优选地,对图像进行Census变换得到二进制码流的具体公式为:
其中,I(x,y)是窗口中心像素,I(x+i,y+j)是窗口内邻域像素,是按位连接运算,C(I(x,y),I(x+i,y+j))是像素间的灰度比较操作,Census(x,y)为中心像素的Census变换值。
优选地,基于OPENCL对带有散斑的被测场景图像和带有散斑的参考面图像进行Census变换得到二进制码流的具体过程为:
在核函数中,创建一块大小为(32+LEFT*2)*(32+TOP*2)的局部内存window用于存储图像中的部分像素,其中,LEFT和TOP是Census变换中窗口的左半径和上半径;
在同一局部工作组下的线程将散斑图像以(32+LEFT*2)*(32+TOP*2)的大小存入局部内存中;
同一局部工作组下的每个线程独立地对以局部内存window的中心像素为中心的32×32窗口内的一个像素进行Census变换。
优选地,在视差范围内基于OPENCL的进行汉明距离计算的具体过程为:
在核函数中,创建一块大小为(Dmax-Dmin+1)的局部内存SharedBase和一块大小为2×(Dmax-Dmin+1)的局部内存SharedMatch用于存储位于图像中同一行的部分Census变换结果;
在同一局部工作组下的线程将同一行的Census变换结果中[1-Dmax,1-Dmin]列的数据存入局部内存SharedMatch中的后Dmax-Dmin+1列中;
启动循环计算操作,将局部内存SharedMatch中的后Dmax-Dmin+1列存入局部内存SharedMatch中的前Dmax-Dmin+1列中,将同一行的Census变换结果中[2-Dmin,Dmax-2×Dmin+2]列的数据存入局部内存SharedMatch中的后Dmax-Dmin+1列中,将同一行的Census变换结果中[1,Dmax-Dmin+1]列的数据存入局部内存SharedBase中;
实现同一局部工作组下所有线程的同步;
遍历整个视差范围[Dmin,Dmax],对同一行的Census变换结果中前Dmax-Dmin+1列数据执行汉明距离计算操作;
通过循环计算操作,依次对同一行的Census变换结果中连续的Dmax-Dmin+1个数据进行汉明距离计算。
优选地,采用4路径聚合获得的匹配成本具体为:
其中,点p坐标为(x,y),Cost(p,d)为点p在视差为d时的初始匹配成本。Costi(p,d)为来自第i个路径成本聚合后的匹配成本;当i为1,2,3,4时,ri分别为(0,1),(0,-1),(1,0),(-1,0);P1,P2分别为较小和较大的惩罚参数;为点p在整个视差范围[Dmin,Dmax]内成本聚合后的匹配成本的最小值;S(p,d)为成本聚合后匹配成本。
优选地,对每个路径进行基于OPENCL的成本聚合的具体过程为:
在对应的核函数中,创建一块大小为5×(Dmax-Dmin+1)/4的局部内存temp用于存储位于图像中某一像素在整个视差范围[Dmin,Dmax]内成本聚合后的匹配成本;
(1)在同一局部工作组下的所有线程将图像的同一行中第1个像素在整个视差范围[Dmin,Dmax]内的初始匹配成本存入局部内存temp中的前Dmax-Dmin+1列中;每个线程执行4次内存读取和写入操作,并对这四个值求取最小值存入局部内存temp中的后(Dmax-Dmin+1)/4列中,并实现同一局部工作组下所有线程的同步;
(2)在第0号线程中对局部内存temp中的后(Dmax-Dmin+1)/4列中的数据求取最小值,得到图像的同一行中第1个像素在整个视差范围[Dmin,Dmax]内成本聚合后的匹配成本的最小值;
(3)对于图像的同一行中第2个像素,读取图像的同一行中第1个像素在整个视差范围[Dmin,Dmax]内的初始匹配成本;重复上述操作(1)(2),得到图像的同一行中第2个像素在整个视差范围[Dmin,Dmax]内成本聚合后的匹配成本;
重复步骤(1)-(3),对大小为H×W×(Dmax-Dmin+1)的初始匹配成本Cost(p,d)在视差范围[Dmin,Dmax]内对第1个路径进行基于OPENCL的成本聚合。
优选地,使用胜者为王WTA算法在某个像素的所有视差下的匹配成本值中选择最小匹配成本值所对应的视差作为最优视差,由如下公式表示:
其中,Dleft(x,y)和Dright(x,y)分别对应着带有散斑的被测场景图像和带有散斑的参考面图像的视差图;
采用离群点检测Outlier算法检测出视差图Dleft(x,y)中的离群点,可由如下公式表示:
优选地,使用亚像素插值算法对视差图进行优化处理获得的插值后的视差图具体为:
本发明与现有技术相比,其显著优点为:
本发明利用OPENCL并行化技术对一幅带有散斑的参考面图像和一幅带有散斑的被测场景图像进行立体匹配,并生成视差图;本发明是基于共享内存机制和线程同步机制实现的,在OPENCL运行环境下,整个代码的运行耗时在10ms以内;
本发明使用的OPENCL的共享内存机制和线程同步机制,属于GPU计算领域,能大幅度缩减计算耗时,实现最大限度加速,在基于OPENCL的加速算法,运行耗时在10ms以内,比传统的CPU方法快了100倍以上。
下面结合附图对本发明做进一步详细的描述。
附图说明
图1是一种基于OPENCL实现的单目立体匹配及加速的方法。
具体实施方式
一种基于OPENCL的单目立体匹配及加速的方法,利用OPENCL并行化技术对一幅带有散斑的参考面图像和一幅带有散斑的被测场景图像进行立体匹配,并生成视差图,本发明基于共享内存机制和线程同步机制实现,包括:对两幅图像进行Census变换得到二进制码流,用汉明距离得到初始的匹配成本Cost,对初始匹配成本Cost进行基于SGM的成本聚合,使用胜者为王WTA算法和离群点检测Outlier算法计算出可靠、稠密的视差图,再使用亚像素插值算法对视差图进行优化处理。在OPENCL运行环境下,整个代码的运行耗时在10ms以内,具体步骤为:
步骤一:对带有散斑的被测场景图像和带有散斑的参考面图像进行Census变换得到二进制码流;
Census变换是一种基于窗口的图像处理方法。本发明中使用的窗口大小为9×9,通过将窗口中心像素的灰度值与其窗口内邻域像素的灰度值进行比较得到二进制码流,作为中心像素的Census变换值Census(x,y),可由如下公式表示:
其中,I(x,y)是窗口中心像素,I(x+i,y+j)是窗口内邻域像素,是按位连接运算从而得到二进制码流。C(I(x,y),I(x+i,y+j))是像素间的灰度比较操作。
当对分辨率为H×W的图像进行基于OPENCL的Census变换时,对应的核函数的工作组维度work_dims为2,全局工作组大小global_work_size为(floor((H+32-1)/32)×32),floor((W+32-1)/32)×32)),局部工作组大小local_work_size为(32,32)。在对应的核函数中,首先创建一块大小为(32+LEFT*2)*(32+TOP*2)的局部内存window用于存储图像中的部分像素,其中,LEFT和TOP是Census变换中窗口的左半径和上半径,均为4。局部内存window仅允许同一局部工作组下的线程访问。在同一局部工作组下的线程将散斑图像以(32+LEFT*2)*(32+TOP*2)的大小存入局部内存中。由于局部工作组大小local_work_size为(32,32),因此每个线程只需执行1-2次内存读取和写入操作,并通过函数barrier(CLK_LOCAL_MEM_FENCE)实现同一局部工作组下所有线程的同步。然后,同一局部工作组下的每个线程将独立地对以局部内存window的中心像素为中心的32×32窗口内的一个像素进行Census变换。在实施Census变换时,线程只需对局部内存window进行访问以获取9×9窗口的像素灰度信息,提高了内存访问效率,从而极大地Census变换的计算效率。
步骤二:用汉明距离得到初始的匹配成本Cost。
在对两幅图像进行Census变换得到二进制码流Censusleft(x,y)和Censusright(x,y)后,汉明距离实际上就是比较Census变换得到的二进制码流中二进制序列不同的个数。为了得到初始的匹配成本Cost,应在立体匹配的视差范围[Dmin,Dmax]内,计算两幅图像二进制码流Censusleft(x,y)与Censusright(x,y-d)之间的汉明距离,可由如下公式表示:
Cost(x,y,d)=Hamming(Censusleft(x,y),Censusright(x,y-d))
其中,Censusleft(x,y)是带有散斑的被测场景图像的Census变换结果,Censusright(x,y)是带有散斑的参考面图像的Census变换结果,Hamming是比较Census变换得到的二进制码流中二进制序列不同的个数。则初始的匹配成本为:Cost(x,y,d)C(I(x,y),I(x+i,y+j))。d是视差范围[Dmin,Dmax]内的某一个视差值。
当对分辨率为H×W的Census变换结果在视差范围[Dmin,Dmax]内进行基于OPENCL的汉明距离计算时,对应的核函数的工作组维度work_dims为1,全局工作组大小global_work_size为H×(Dmax-Dmin+1),局部工作组大小local_work_size为Dmax-Dmin+1。每个局部工作组将独立地对图像中某一行的数据进行汉明距离计算。在对应的核函数中,首先创建一块大小为(Dmax-Dmin+1)的局部内存SharedBase和一块大小为2×(Dmax-Dmin+1)的局部内存SharedMatch用于存储位于图像中同一行的部分Census变换结果。局部内存SharedBase和SharedMatch仅允许同一局部工作组下的线程访问。在同一局部工作组下的线程将同一行的Census变换结果中[1-Dmax,1-Dmin]列的数据存入局部内存SharedMatch中的后Dmax-Dmin+1列中。然后启动循环计算操作,首先将局部内存SharedMatch中的后Dmax-Dmin+1列存入局部内存SharedMatch中的前Dmax-Dmin+1列中,然后将同一行的Census变换结果中[2-Dmin,Dmax-2×Dmin+2]列的数据存入局部内存SharedMatch中的后Dmax-Dmin+1列中,将同一行的Census变换结果中[1,Dmax-Dmin+1]列的数据存入局部内存SharedBase中。通过barrier(CLK_LOCAL_MEM_FENCE)实现同一局部工作组下所有线程的同步。然后遍历整个视差范围[Dmin,Dmax],对同一行的Census变换结果中前Dmax-Dmin+1列数据执行汉明距离计算操作。同样地,通过循环计算操作,依次对同一行的Census变换结果中连续的Dmax-Dmin+1个数据进行汉明距离计算,从而对同一行的每个像素进行汉明距离计算,最终对分辨率为H×W的Census变换结果在视差范围[Dmin,Dmax]内进行基于OPENCL的汉明距离计算。在实施汉明距离计算时,由于只需对分辨率为H×W的整个Census变换结果进行一次访问操作,然后线程仅对局部内存SharedBase和SharedMatch进行访问操作,提高了内存访问效率,从而极大地提高了汉明距离计算效率。
步骤三:对初始匹配成本Cost进行基于SGM的成本聚合。
为了降低算法耗时,本发明采用的基于SGM的成本聚合是4路径聚合,可由如下公式表示:
其中,点p坐标为(x,y),Cost(p,d)为点p在视差为d时的初始匹配成本。Costi(p,d)为来自第i个路径成本聚合后的匹配成本。当i为1,2,3,4时,ri分别为(0,1),(0,-1),(1,0),(-1,0)。P1,P2分别为较小和较大的惩罚参数。为点p在整个视差范围[Dmin,Dmax]内成本聚合后的匹配成本的最小值。S(p,d)为经过基于SGM的成本聚合后匹配成本。
例如,当对大小为H×W×(Dmax-Dmin+1)的初始匹配成本Cost(p,d)在视差范围[Dmin,Dmax]内对第1个路径进行基于OPENCL的成本聚合时,对应的核函数的工作组维度work_dims为1,全局工作组大小global_work_size为H×(Dmax-Dmin+1)/4,局部工作组大小local_work_size为(Dmax-Dmin+1)/4。当对第1个路径进行基于OPENCL的成本聚合,每个局部工作组将独立地对图像中某一行的数据通过由左至右的路径进行成本聚合。在对应的核函数中,首先创建一块大小为5×(Dmax-Dmin+1)/4的局部内存temp用于存储位于图像中某一像素在整个视差范围[Dmin,Dmax]内成本聚合后的匹配成本。局部内存temp仅允许同一局部工作组下的线程访问。在同一局部工作组下的所有线程首先对图像的同一行中第1个像素在整个视差范围[Dmin,Dmax]内的初始匹配成本存入局部内存temp中的前Dmax-Dmin+1列中。每个线程只需执行4次内存读取和写入操作,并对这四个值求取最小值存入局部内存temp中的后(Dmax-Dmin+1)/4列中,并通过barrier(CLK_LOCAL_MEM_FENCE)实现同一局部工作组下所有线程的同步。然后在第0号线程中对局部内存temp中的后(Dmax-Dmin+1)/4列中的数据求取最小值从而得到图像的同一行中第1个像素在整个视差范围[Dmin,Dmax]内成本聚合后的匹配成本的最小值。然后,对于图像的同一行中第2个像素,由于局部内存temp中已经保存了图像的同一行中第1个像素在整个视差范围[Dmin,Dmax]内成本聚合后的匹配成本,因此仅需读取图像的同一行中第1个像素在整个视差范围[Dmin,Dmax]内的初始匹配成本。然后重复上述操作,可以得到图像的同一行中第2个像素在整个视差范围[Dmin,Dmax]内成本聚合后的匹配成本。依次类推,最终对大小为H×W×(Dmax-Dmin+1)的初始匹配成本Cost(p,d)在视差范围[Dmin,Dmax]内对第1个路径进行基于OPENCL的成本聚合。在实施成本聚合时,由于只需对大小为H×W×(Dmax-Dmin+1)的初始匹配成本Cost(p,d)进行一次访问操作,然后线程仅对局部内存temp进行访问操作,提高了内存访问效率,从而极大地提高了成本聚合计算效率。
根据同样的方法,大小为H×W×(Dmax-Dmin+1)的初始匹配成本Cost(p,d)在视差范围[Dmin,Dmax]内对4个路径进行基于OPENCL的成本聚合,从而得到经过基于SGM的成本聚合后的匹配成本S(p,d)。
步骤四:使用胜者为王WTA算法和离群点检测Outlier算法计算出可靠、稠密的视差图。胜者为王WTA算法是指在某个像素的所有视差下的匹配成本值中选择最小匹配成本值所对应的视差作为最优视差,可由如下公式表示:
其中,Dleft(x,y)和Dright(x,y)分别对应着带有散斑的被测场景图像和带有散斑的参考面图像的视差图。
离群点检测Outlier算法是利用Dleft(x,y)和Dright(x,y)实现左右一致性验证,从而检测出视差图Dleft(x,y)中的离群点,可由如下公式表示:
当对大小为H×W×(Dmax-Dmin+1)的匹配成本S(x,y,d)在视差范围[Dmin,Dmax]内进行基于OPENCL的胜者为王WTA算法时,对应的核函数的工作组维度work_dims为1,全局工作组大小global_work_size为H×W,局部工作组大小local_work_size为128。每个线程在图像中每个像素执行胜者为王WTA算法,从而得到Dleft(x,y)和Dright(x,y)。
当对大小为H×W的Dleft(x,y)和Dright(x,y)进行基于OPENCL的离群点检测Outlier算法时,对应的核函数的工作组维度work_dims为1,全局工作组大小global_work_size为H×W,局部工作组大小local_work_size为128。每个线程在图像中每个像素执行离群点检测Outlier算法,从而得到优化后的Dleft(x,y)。
步骤五:使用亚像素插值算法对视差图进行优化处理。亚像素插值算法主要通过三点线性拟合对每个像素实施插值算法来提高WTA算法得到的视差精度。可由如下公式表示:
其中,为带有散斑的被测场景图像的插值后的视差图。
当对大小为H×W的Dleft(x,y)进行基于OPENCL的亚像素插值算法时,对应的核函数的工作组维度work_dims为1,全局工作组大小global_work_size为H×W,局部工作组大小local_work_size为128。每个线程在图像中每个像素执行亚像素插值算法,从而得到
本发明采用单目相关SGM立体匹配算法,利用OPENCL的共享内存机制和线程同步机制,将原本的算法程序计算时间由秒级别降低到毫秒级别。

Claims (4)

1.一种基于OPENCL实现的单目立体匹配及加速的方法,其特征在于,包括:
步骤一:基于OPENCL对带有散斑的被测场景图像和带有散斑的参考面图像进行Census变换得到二进制码流,作为中心像素的Census变换值,具体过程为:
在核函数中,创建一块大小为(32+LEFT*2)*(32+TOP*2)的局部内存window用于存储图像中的部分像素,其中,LEFT和TOP是Census变换中窗口的左半径和上半径;
在同一局部工作组下的线程将散斑图像以(32+LEFT*2)*(32+TOP*2)的大小存入局部内存中;
同一局部工作组下的每个线程独立地对以局部内存window的中心像素为中心的32×32窗口内的一个像素进行Census变换;
步骤二:在视差范围内基于OPENCL的进行汉明距离计算,并根据汉明距离得到初始的匹配成本,具体过程为:
在核函数中,创建一块大小为(Dmax-Dmin+1)的局部内存SharedBase和一块大小为2×(Dmax-Dmin+1)的局部内存SharedMatch用于存储位于图像中同一行的部分Census变换结果;
在同一局部工作组下的线程将同一行的Census变换结果中[1-Dmax,1-Dmin]列的数据存入局部内存SharedMatch中的后Dmax-Dmin+1列中;
启动循环计算操作,将局部内存SharedMatch中的后Dmax-Dmin+1列存入局部内存SharedMatch中的前Dmax-Dmin+1列中,将同一行的Census变换结果中[2-Dmin,Dmax-2×Dmin+2]列的数据存入局部内存SharedMatch中的后Dmax-Dmin+1列中,将同一行的Census变换结果中[1,Dmax-Dmin+1]列的数据存入局部内存SharedBase中;
实现同一局部工作组下所有线程的同步;
遍历整个视差范围[Dmin,Dmax],对同一行的Census变换结果中前Dmax-Dmin+1列数据执行汉明距离计算操作;
通过循环计算操作,依次对同一行的Census变换结果中连续的Dmax-Dmin+1个数据进行汉明距离计算;
步骤三:对初始匹配成本进行基于OPENCL的成本聚合,获得匹配成本,采用4路径聚合获得的匹配成本具体为:
其中,点p坐标为(x,y),Cost(p,d)为点p在视差为d时的初始匹配成本,Costi(p,d)为来自第i个路径成本聚合后的匹配成本;当i为1,2,3,4时,ri分别为(0,1),(0,-1),(1,0),(-1,0);P1,P2分别为较小和较大的惩罚参数;为点p在整个视差范围[Dmin,Dmax]内成本聚合后的匹配成本的最小值;S(p,d)为成本聚合后匹配成本;
对每个路径进行基于OPENCL的成本聚合的具体过程为:
在对应的核函数中,创建一块大小为5×(Dmax-Dmin+1)/4的局部内存temp用于存储位于图像中某一像素在整个视差范围[Dmin,Dmax]内成本聚合后的匹配成本;
(1)在同一局部工作组下的所有线程将图像的同一行中第1个像素在整个视差范围[Dmin,Dmax]内的初始匹配成本存入局部内存temp中的前Dmax-Dmin+1列中;每个线程执行4次内存读取和写入操作,并对这四个值求取最小值存入局部内存temp中的后(Dmax-Dmin+1)/4列中,并实现同一局部工作组下所有线程的同步;
(2)在第0号线程中对局部内存temp中的后(Dmax-Dmin+1)/4列中的数据求取最小值,得到图像的同一行中第1个像素在整个视差范围[Dmin,Dmax]内成本聚合后的匹配成本的最小值;
(3)对于图像的同一行中第2个像素,读取图像的同一行中第1个像素在整个视差范围[Dmin,Dmax]内的初始匹配成本;重复上述操作(1)(2),得到图像的同一行中第2个像素在整个视差范围[Dmin,Dmax]内成本聚合后的匹配成本;
重复步骤(1)-(3),对大小为H×W×(Dmax-Dmin+1)的初始匹配成本Cost(p,d)在视差范围[Dmin,Dmax]内对第1个路径进行基于OPENCL的成本聚合;
步骤四:基于OPENCL使用胜者为王WTA算法和离群点检测Outlier算法计算出视差图;
步骤五:基于OPENCL使用亚像素插值算法对视差图进行优化处理,获得带有散斑的被测场景图像的插值后的视差图。
2.根据权利要求1所述的基于OPENCL实现的单目立体匹配及加速的方法,其特征在于,对图像进行Census变换得到二进制码流的具体公式为:
其中,I(x,y)是窗口中心像素,I(x+i,y+j)是窗口内邻域像素,是按位连接运算,C(I(x,y),I(x+i,y+j))是像素间的灰度比较操作,Census(x,y)为中心像素的Census变换值。
3.根据权利要求1所述的基于OPENCL实现的单目立体匹配及加速的方法,其特征在于,使用胜者为王WTA算法在某个像素的所有视差下的匹配成本值中选择最小匹配成本值所对应的视差作为最优视差,由如下公式表示:
其中,Dleft(x,y)和Dright(x,y)分别对应着带有散斑的被测场景图像和带有散斑的参考面图像的视差图;
采用离群点检测Outlier算法检测出视差图Dleft(x,y)中的离群点,可由如下公式表示:
4.根据权利要求3所述的基于OPENCL实现的单目立体匹配及加速的方法,其特征在于,使用亚像素插值算法对视差图进行优化处理获得的插值后的视差图具体为:
CN202010984260.2A 2020-09-18 2020-09-18 一种基于opencl的单目立体匹配及加速的方法 Active CN112232372B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010984260.2A CN112232372B (zh) 2020-09-18 2020-09-18 一种基于opencl的单目立体匹配及加速的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010984260.2A CN112232372B (zh) 2020-09-18 2020-09-18 一种基于opencl的单目立体匹配及加速的方法

Publications (2)

Publication Number Publication Date
CN112232372A CN112232372A (zh) 2021-01-15
CN112232372B true CN112232372B (zh) 2023-08-01

Family

ID=74107290

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010984260.2A Active CN112232372B (zh) 2020-09-18 2020-09-18 一种基于opencl的单目立体匹配及加速的方法

Country Status (1)

Country Link
CN (1) CN112232372B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114359683B (zh) * 2021-12-31 2023-10-20 电子科技大学 一种面向文本定位的单内核hog高效异构加速方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10368059B2 (en) * 2015-10-02 2019-07-30 Atheer, Inc. Method and apparatus for individualized three dimensional display calibration
CN110310220A (zh) * 2018-03-27 2019-10-08 广东瑞图万方科技股份有限公司 一种半全局实时立体匹配方法
CN109255811B (zh) * 2018-07-18 2021-05-25 南京航空航天大学 一种基于可信度图视差优化的立体匹配方法

Also Published As

Publication number Publication date
CN112232372A (zh) 2021-01-15

Similar Documents

Publication Publication Date Title
CN110490919B (zh) 一种基于深度神经网络的单目视觉的深度估计方法
EP3273412B1 (en) Three-dimensional modelling method and device
Chen et al. Direct-posenet: Absolute pose regression with photometric consistency
WO2016183464A1 (en) Deepstereo: learning to predict new views from real world imagery
US8538137B2 (en) Image processing apparatus, information processing system, and image processing method
CN108776989A (zh) 基于稀疏slam框架的低纹理平面场景重建方法
Cheng et al. Real-time and efficient 6-D pose estimation from a single RGB image
US7602966B2 (en) Image processing method, image processing apparatus, program and recording medium
CN106096516A (zh) 一种三维目标跟踪的方法及装置
CN112232372B (zh) 一种基于opencl的单目立体匹配及加速的方法
CN114494150A (zh) 一种基于半直接法的单目视觉里程计的设计方法
Kallwies et al. Triple-SGM: stereo processing using semi-global matching with cost fusion
Mehl et al. M-fuse: Multi-frame fusion for scene flow estimation
Zhang et al. A visual-inertial dynamic object tracking SLAM tightly coupled system
Liu et al. When epipolar constraint meets non-local operators in multi-view stereo
Long et al. Detail preserving residual feature pyramid modules for optical flow
CN111179327A (zh) 一种深度图的计算方法
CN114998411B (zh) 结合时空增强光度损失的自监督单目深度估计方法和装置
Zhou et al. DecoupledPoseNet: Cascade decoupled pose learning for unsupervised camera ego-motion estimation
CN115239559A (zh) 一种融合视图合成的深度图超分辨率方法及系统
CN112116640B (zh) 一种基于OpenCL的双目立体匹配方法
CN112001867A (zh) 一种基于cuda的单目立体匹配及加速的方法
CN112116641B (zh) 一种基于OpenCL的散斑图像匹配方法
Zhao et al. Miniature 3D depth camera for real-time reconstruction
Fu et al. 3D registration based on V-SLAM and application in augmented reality

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
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Zuo Chao

Inventor after: Yin Wei

Inventor after: Chen Qian

Inventor after: Feng Shijie

Inventor after: Sun Jiasong

Inventor after: Hu Yan

Inventor after: Tao Tianyang

Inventor before: Yin Wei

Inventor before: Zuo Chao

Inventor before: Chen Qian

Inventor before: Feng Shijie

Inventor before: Sun Jiasong

Inventor before: Hu Yan

Inventor before: Tao Tianyang

GR01 Patent grant
GR01 Patent grant