CN107358638B - 视差图计算方法和装置、电子设备、计算机存储介质 - Google Patents
视差图计算方法和装置、电子设备、计算机存储介质 Download PDFInfo
- Publication number
- CN107358638B CN107358638B CN201710593224.1A CN201710593224A CN107358638B CN 107358638 B CN107358638 B CN 107358638B CN 201710593224 A CN201710593224 A CN 201710593224A CN 107358638 B CN107358638 B CN 107358638B
- Authority
- CN
- China
- Prior art keywords
- disparity
- image
- map
- parallax
- reduced
- 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
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 103
- 238000000034 method Methods 0.000 claims abstract description 65
- 238000009499 grossing Methods 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 8
- 230000003321 amplification Effects 0.000 abstract description 4
- 238000003199 nucleic acid amplification method Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 9
- 238000001914 filtration Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种视差图计算方法和装置、电子设备、计算机存储介质,其中,方法包括:分别将左图像和右图像的宽和高都缩小为原来的1/n,得到缩小左图和缩小右图,其中,n为大于一的正整数;对所述缩小左图和缩小右图计算缩小视差值,基于计算得到的缩小视差值得到缩小视差图,所述缩小视差图包括至少两个视差层;将所述缩小视差图的宽和高分别放大为原来的n倍,所述缩小视差图中每两个相邻视差层之间的视差值的差值放大为原来的n倍;分别计算所有所述视差层的层视差图,将所有所述层视差图叠加得到对应所述左图像和右图像的视差图。本实施例通过图像的缩小和放大过程,减少了计算量和内存消耗,使视差图的计算能够更广泛的推广应用。
Description
技术领域
本发明涉及立体视觉技术,尤其是一种视差图计算方法和装置、电子设备、计算机存储介质。
背景技术
立体视觉是靠计算同一个物体在左右两个摄像头中位置的不同(视差)来计算物体距离的,左右两幅图像,经过复杂的计算,最后得到的是一个由物体像素点构成的视差图;然后再经过摄像头的透视参数,计算出每个像素点的距离,最后得到深度图。
发明内容
本发明实施例所要解决的一个技术问题是:提供一种视差图计算技术。
本发明实施例提供的一种视差图计算方法,包括:
分别将左图像和右图像的宽和高都缩小为原来的1/n,得到缩小左图和缩小右图,其中,n为大于一的正整数;
对所述缩小左图和缩小右图计算缩小视差值,基于计算得到的缩小视差值得到缩小视差图,所述缩小视差图包括至少两个视差层;
将所述缩小视差图的宽和高分别放大为原来的n倍,所述缩小视差图中每两个相邻视差层之间的视差值的差值放大为原来的n倍;
分别计算所有所述视差层的层视差图,将所有所述层视差图叠加得到对应所述左图像和右图像的视差图。
基于上述方法的另一实施例中,还包括:基于原图分别通过两个采集设备获得左图像和右图像,基于两个采集设备的相关信息获得左图像与右图像的最大视差值。
基于上述方法的另一实施例中,所述缩小视差图包括最大视差值的1/n数量的视差层。
基于上述方法的另一实施例中,所述缩小视差图中每两个相邻视差层之间的视差值的差值为1。
基于上述方法的另一实施例中,所述计算一个所述视差层的层视差图,包括:
选取一个视差层,基于所述视差层和缩小视差图得到一个蒙版,所述蒙版只包括1和0两个像素值;
将蒙版与左图像做与运算得到左残差图;将右图像向左平移蒙版对应的视差值数量的像素后与蒙版做与运算得到右残差图;
基于所述左残差图和所述右残差图计算得到所述左残差图与所述右残差图的残差视差图,所述残差视差图等于所述左残差图与所述右残差图的残差视差值加所述视差层的视差值;
将所述残差视差图与蒙版做与运算得到对应所述视差层的层视差图。
基于上述方法的另一实施例中,所述计算所述左残差图与所述右残差图的残差视差值,包括:
将蒙版分割为至少两个矩形分块图,每个所述分块图的边长大于等于n;
获得所有包括非零元素的分块图的位置和大小作为计算块;
按照所述计算块的位置和大小在所述左残差图和右残差图中查找相应的位置和大小进行计算,得到残差视差值。
基于上述方法的另一实施例中,将所有所述层视差图叠加得到对应所述左图像和右图像的视差图,包括:
将所有所述层视差图的同一位置的视差值相加,得到所述位置的视差值;
基于得到的所有位置的视差值,得到对应所述左图像和右图像的视差图。
基于上述方法的另一实施例中,还包括:将所述得到的视差图进行边缘平滑处理,得到边缘平滑的目标视差图。
基于上述方法的另一实施例中,所述n的取值根据计算节省率获得;
所述计算节省率等于n与最大视差值的比值加n的三次方分之一。
根据本发明实施例的另一个方面,提供的一种视差图计算装置,包括:
缩小单元,用于分别将左图像和右图像的宽和高都缩小为原来的1/n,得到缩小左图和缩小右图,其中,n为大于一的正整数;
视差计算单元,用于对所述缩小左图和缩小右图计算缩小视差值,基于计算得到的缩小视差值得到缩小视差图,所述缩小视差图包括至少两层视差层;
放大单元,用于将所述缩小视差图的宽和高分别放大为原来的n倍,所述缩小视差图中每两个相邻视差层之间的视差值的差值放大为原来的n倍;
层视差图单元,用于分别计算所有所述视差层的层视差图;
叠加单元,用于将所有所述层视差图叠加得到对应所述左图像和右图像的视差图。
基于上述装置的另一实施例中,还包括:
最大视差单元,用于基于原图分别通过两个采集设备获得左图像和右图像,基于两个采集设备的相关信息获得左图像与右图像的最大视差值。
基于上述装置的另一实施例中,所述缩小视差图包括最大视差值的1/n数量的视差层。
基于上述装置的另一实施例中,所述缩小视差图中每两个相邻视差层之间的视差值的差值为1。
基于上述装置的另一实施例中,所述层视差图单元,包括:
蒙版选取模块,用于选取一个视差层,基于所述视差层和缩小视差图得到一个蒙版,所述蒙版只包括1和0两个像素值;
残差图模块,用于将蒙版与左图像做与运算得到左残差图;将右图像向左平移蒙版对应的视差值数量的像素后与蒙版做与运算得到右残差图;
残差视差图模块,用于基于所述左残差图和所述右残差图计算得到所述左残差图与所述右残差图的残差视差图,所述残差视差图等于所述左残差图与所述右残差图的残差视差值加所述视差层的视差值;
层视差图模块,用于将所述残差视差图与蒙版做与运算得到对应所述视差层的层视差图。
基于上述装置的另一实施例中,所述残差视差图模块,包括:
分割模块,用于将蒙版分割为至少两个矩形分块图,每个所述分块图的边长大于等于n;获得所有包括非零元素的分块图的位置和大小作为计算块;
计算模块,用于按照所述计算块的位置和大小在所述左残差图和右残差图中查找相应的位置和大小进行计算,得到残差视差值。
基于上述装置的另一实施例中,所述叠加单元,具体用于将所有所述层视差图的同一位置的视差值相加,得到所述位置的视差值;基于得到的所有位置的视差值,得到对应所述左图像和右图像的视差图。
基于上述装置的另一实施例中,还包括:
平滑单元,用于将所述得到的视差图进行边缘平滑处理,得到边缘平滑的目标视差图。
基于上述装置的另一实施例中,所述n的取值根据计算节省率获得;
所述计算节省率等于n与最大视差值的比值加n的三次方分之一。
根据本发明实施例的另一个方面,提供的一种电子设备,设置有如上任一所述的视差图计算装置。
根据本发明实施例的另一个方面,提供的一种电子设备,存储器,用于存储可执行指令;
以及处理器,用于与所述存储器通信以执行所述可执行指令从而完成上述任一所述视差图计算方法的操作。
根据本发明实施例的另一个方面,提供的一种计算机存储介质,用于存储计算机可读取的指令,其特征在于,所述指令被执行时执行如上任一所述视差图计算方法的操作。
基于本发明上述实施例提供的视差图计算方法和装置、电子设备、计算机存储介质;通过分别将左图像和右图像的宽和高都缩小为原来的1/n,对缩小左图和缩小右图计算缩小视差值,由于图像面积变小,因此计算视差值的计算量得了了极大的减少;将缩小视差图的宽和高分别放大为原来的n倍,为了得到准确的视差图,对于得到的缩小视差图进行放大,分别计算所有视差层的层视差图,将所有层视差图叠加得到对应左图像和右图像的视差图;通过分别计算视差层的层视差图,将层视差图叠加后得到视差图,通过图像的缩小和放大过程,减少了计算量和内存消耗,使视差图的计算能够更广泛的推广应用。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本发明的实施例,并且连同描述一起用于解释本发明的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:
图1为现有技术中视差计算示意图。
图2为本发明视差图计算方法一个实施例的流程图。
图3为本发明视差图计算方法一个实施例的流程图。
图4为本发明视差图计算方法又一个实施例的流程图。
图5为计算节省率与n的取值的关系曲线图。
图6a-6f为本发明视差图计算方法一个具体示例中的图像处理示意图。
图7为本发明视差图计算装置一个实施例的结构示意图。
图8为本发明视差图计算装置另一个实施例的结构示意图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本发明实施例可以应用于计算机***/服务器,其可与众多其它通用或专用计算***环境或配置一起操作。适于与计算机***/服务器一起使用的众所周知的计算***、环境和/或配置的例子包括但不限于:个人计算机***、服务器计算机***、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的***、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机***﹑大型计算机***和包括上述任何***的分布式云计算技术环境,等等。
计算机***/服务器可以在由计算机***执行的计算机***可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机***/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算***存储介质上。
在计算视差图时,关键是通过两个摄像设备获得的左右两幅图中同一个物体的匹配,即在左图中的点,必须准确地在右图中找到它的对应点,才能得到准确的视差。
现有技术中,在计算视差图的时候,一般设定了一个图中所有像素的最大视差值dmax,然后左图中的每个像素点,都要在右图中找到左图某一点的对应点,再计算出左右两个点相对于图像左边缘的差值,这就是视差;因为事先不知道哪个点是左图的对应点,因此要在右图中计算出相距该点偏离最大视差值dmax个像素点的匹配值,然后从这最大视差值dmax个数据中,找到一个最佳的匹配点,作为左图的匹配点,它的偏移值就是该点的视差。例如,最大视差如果是128个像素,那么左图中位置(300,10)的像素点,在右图中我们要分别计算(300,10),(299,10)……(173,10)像素点与(300,10)点匹配的代价值,代价值是用于评价两个点的匹配情况的一个值;不同的情况有不同的代价值计算方法,例如:常见的有灰度差的平方,灰度差的绝对值,灰度差平方和,灰度值绝对值平方和等等。
这样也就是一幅宽w个像素,高h个像素的图片,最大视差为dmax,w和h的值取决于摄像头上感光元器件的大小和每个感光点的大小,也就是分辨率;dmax的值取决于每个摄像头的焦距、两个摄像头的之间的间距;经过计算,中间的匹配代价值要计算w*h*dmax个点的值,然后从这些图中找到最优的w*h个像素;其中,最优的像素匹配指两个图像上经判断最大可能为同一个点的一对点,判断最优的方法也因具体方法不同而不同,例如绝对灰度差方法则是所有点对中,差值最小的对为最佳匹配,归一化互相关则是代价值最大为最佳匹配,计算左右的差距,所指差距是一个物体在左右两个相机的图像上形成两个像,每个像离自己图像左侧边缘的像素的个数乘以感光元器件上感光点的大小,然后相减可得,得到视差图,计算量和内存消耗相当大,一般机器都难以完成。
图1为现有技术中视差计算示意图。如图1所示,Z是物体P离相机的距离,B是两个相机之间的距离,f是相机的焦距,Xr是物体P在左侧相机上成的像离图像左边的距离,Xt是物体P在右侧相机上成的像离图像左边的距离,如果设感光器件上一个像素的大小为μ,则物体在左右相机上成像离左边距离的像素为Xr/μ和Xt/μ,μ对相机是固定的,因此只要计算左右图上的像素点差值,即视差,就可以计算出Xr-Xt的值。
其中:Z=B*f/(Xr-Xt) 公式(1)。
图2为本发明视差图计算方法一个实施例的流程图。如图2所示,该实施例方法包括:
步骤202,分别将左图像和右图像的宽和高都缩小为原来的1/n,得到缩小左图和缩小右图。
其中,n为大于一的正整数,n值的确定是根据本发明方法的计算量与现有技术的计算量的比值决定的,并不是n值越大越好,当n值取最佳值时,相对于同样的图像,本发明方法能节省最多的计算量。
步骤203,对缩小左图和缩小右图计算缩小视差值,基于计算得到的缩小视差值得到缩小视差图。
其中,缩小视差图包括至少两个视差层;由于将左图像和右图像的宽和高都缩为原来的1/n,则同一个点在左图像和右图像上距离左边的差距也将缩小为原来的1/n,也就是说视差缩小为原来的1/n,因为视差为像素,只能为整数,这样就意味着视差相差0~n-1的视差层被合并成了一层视差层。
步骤204,将缩小视差图的宽和高分别放大为原来的n倍,缩小视差图中每两个相邻视差层之间的视差值的差值放大为原来的n倍。
因为之前的步骤中进行了缩小,因此要得到准确的视差图,需要将缩小视差图放大为本身的n倍,此时就将合并成一层的视差层之间的0~n-1的视差层显示出来。
步骤205,分别计算所有视差层的层视差图,将所有层视差图叠加得到对应左图像和右图像的视差图。
基于本发明上述实施例提供的视差图计算方法;通过分别将左图像和右图像的宽和高都缩小为原来的1/n,对缩小左图和缩小右图计算缩小视差值,由于图像面积变小,因此计算视差值的计算量得了了极大的减少;将缩小视差图的宽和高分别放大为原来的n倍,为了得到准确的视差图,对于得到的缩小视差图进行放大,分别计算所有视差层的层视差图,将所有层视差图叠加得到对应左图像和右图像的视差图;通过分别计算视差层的层视差图,将层视差图叠加后得到视差图,通过图像的缩小和放大过程,减少了计算量和内存消耗,使视差图的计算能够更广泛的推广应用。
图3为本发明视差图计算方法一个实施例的流程图。如图3所示,该实施例方法包括:
步骤301,基于原图分别通过两个采集设备获得左图像和右图像,基于两个采集设备的相关信息获得左图像与右图像的最大视差值。
根据公式(1)中提出的距离公式转换后得到计算视差d的公式(2):
d=B*f/Z 公式(2)
d为视差值,Z是物体P离相机的距离,B是两个相机之间的距离,f是相机的焦距,如果观察的最近距离为Zmin的话,得到的结果为最大视差值dmax;最近距离是由每个项目的需求来定的,一旦确定了Zmin,则就可以确定出最大视差值dmax。
步骤202,分别将左图像和右图像的宽和高都缩小为原来的1/n,得到缩小左图和缩小右图。
其中,n为大于一的正整数,n值的确定是根据本发明方法的计算量与现有技术的计算量的比值决定的,并不是n值越大越好,当n值取最佳值时,相对于同样的图像,本发明方法能节省最多的计算量。
步骤203,对缩小左图和缩小右图计算缩小视差值,基于计算得到的缩小视差值得到缩小视差图。
其中,缩小视差图包括至少两个视差层;由于将左图像和右图像的宽和高都缩为原来的1/n,则同一个点在左图像和右图像上距离左边的差距也将缩小为原来的1/n,也就是说视差缩小为原来的1/n,因为视差为像素,只能为整数,这样就意味着视差相差0~n-1的视差层被合并成了一层视差层。
步骤204,将缩小视差图的宽和高分别放大为原来的n倍,缩小视差图中每两个相邻视差层之间的视差值的差值放大为原来的n倍。
因为之前的步骤中进行了缩小,因此要得到准确的视差图,需要将缩小视差图放大为本身的n倍,此时就将合并成一层的视差层之间的0~n-1的视差层显示出来。
步骤205,分别计算所有视差层的层视差图,将所有层视差图叠加得到对应左图像和右图像的视差图。
本实施例中,通过获得的最大视差值为后续计算视差层的层视差图提供了计算基础,在本实施例中,对于计算视差值的方法可以采用现有技术中已知的计算方法,由于将左图像和右图像的宽和高都缩小为了原来的1/n,计算得到的视差层也减少为原来的1/n,此时,视差相差0~n-1的层被合并成了一层,例如:原来视差0~128,取n=4时,缩小左右图像为原来的1/4,则视差为0~3的层现在视差都为0,视差为4~7的层现在视差都为1,视差为8~11的层现在视差都为2,依此类推,最终最大视差为32,此时的计算量将由原来的width宽度像素值*height高度像素值*dmax最大视差值,变为width/4*height/4*dmax/4,降低为原来的1/64,即1/n3。等计算完成后把视差图再放大,则视差放大为原来的n倍。这样我们得到的是视差为0,n,2n,3n,……的视差层,而每个视差层还包含了0~n-1个小的差异层;计算每个视差层得到层视差图,叠加就得到视差图,这个过程节省了大量计算量,对计算工具的要求较低,并且计算速度大大加快。
在本发明视差图计算方法上述各实施例的一个具体示例中,缩小视差图包括最大视差值的1/n数量的视差层。
由于将左图像和右图像都缩小到了原来的1/n,因此,得到的视差图也缩小到了1/n,此时得到的缩小后的最大视差值等于未缩小的最大视差值的1/n,此时视差层的数量也相应减少,如果不缩小,得到的视差层应该是最大视差值数量的视差层,本实施例经过缩小,就变成了最大视差值的1/n数量的视差层。
在本发明视差图计算方法上述各实施例的一个具体示例中,缩小视差图中每两个相邻视差层之间的视差值的差值为1。
图4为本发明视差图计算方法又一个实施例的流程图。如图4所示,该实施例方法中,计算一个视差层的层视差图的过程可以包括:
步骤405,选取一个视差层,基于视差层和缩小视差图得到一个蒙版。
其中,蒙版只包括1和0两个像素值。选取视差为i*n的视差层作为蒙版,蒙版就是选框的外部,选框的内部就是选区,此时缩小视差图上如果某点的视差为i*n,则蒙版上对应该点的位置的值为1,其余位置为0。
步骤406,将蒙版与左图像做与运算得到左残差图;将右图像向左平移蒙版对应的视差值数量的像素后与蒙版做与运算得到右残差图。
将右图像平移的原因是,因为蒙版与右图像之间的视差值为i*n,根据视差的定义,平移后得到的图像才能与蒙版对齐,对齐后才能做内部的精细视差搜索。
步骤407,基于左残差图和右残差图计算得到左残差图与右残差图的残差视差图。
其中,由于在选取蒙版的时候做了偏移,偏移像素为i*n,因此,在恢复到原来的时候需要将偏移量加上,此时,残差视差图等于左残差图与右残差图的残差视差值加视差层的视差值。
步骤408,将所残差视差图与蒙版做与运算得到对应该视差层的层视差图。
本实施例中通过选取蒙版的方式将0~n-1的差异层显示出来,把刚才得到的放大了的0~dmax/n层视差层中地i层作为蒙版,和左图直接做与操作,得到只含视差为i*n的左残差图,然后把右图所有像素向左平移i*n个像素,然后也和蒙版做与操作,得到只含视差为i*n的右残差图,接下来计算左残差图与右残差图的视差,此时最大视差变为了n,需要注意的是,此时只是计算了一部分图的视差,记为Img(i),蒙版以外的区域为0,非计算区域。
在本发明视差图计算方法上述各实施例的一个具体示例中,计算左残差图与右残差图的残差视差值,包括:
将蒙版分割为至少两个矩形分块图,每个分块图的边长大于等于n;
获得所有包括非零元素的分块图的位置和大小作为计算块;
按照计算块的位置和大小在左残差图和右残差图中查找相应的位置和大小进行计算,得到残差视差值。
本实施例中将蒙版切分成m*m的分块图,其中m的取值大于等于n,对于切分获得的分块图中,如果包含非0元素,就在左残差图和右残差图中查找相应的位置和大小进行计算,得到残差视差值,而在某些分块图中的元素都是0时,则在左残差图和右残差图中对应该分块图的位置不进行计算,通过分块进一步减少了计算量,加快了计算速度。
在本发明视差图计算方法上述各实施例的一个具体示例中,将所有层视差图叠加得到对应左图像和右图像的视差图,包括:
将所有层视差图的同一位置的视差值相加,得到位置的视差值;
基于得到的所有位置的视差值,得到对应左图像和右图像的视差图。
在本实施例中,由于基于选取的一个蒙版计算左残差图与右残差图的层视差图时,只是计算了一部分图的视差,记为Img(i),因为得到的所有层视差图大小相同,因此,Img(0)+Img(1)+….+Img(dmax/n)等于原图的所有像素,因此,需要将得到的所有层视差图叠加获得视差图,实际上只做了width*height*n的计算量,把两次搜索的计算量加起来,通过本实施例方法计算视差图,实际上的计算量为width*height*dmax/n3+width*height*n,现在的计算量只占原来的(n+dmax/n3)/dmax,即n/dmax+1/n3。
本发明视差图计算方法的还一个实施例中,在上述各实施例的基础上,还包括:将得到的视差图进行边缘平滑处理,得到边缘平滑的目标视差图。
由于本发明方法对图像先进行缩小,后进行放大,在图像缩放和图像拼接过程中,可能会使图像的边缘产生锯齿,为了得到更好的视差图,因此,需要进行边缘平滑处理,通常采用滤波的方法实现边缘平滑处理,例如:中值滤波、均值滤波和高斯滤波等,在本发明中通过反复实践得到中值滤波的效果最佳,可有效消除边缘的锯齿。
在本发明视差图计算方法上述各实施例的一个具体示例中,n的取值根据计算节省率获得,当计算节省率最小时,n值最佳;
计算节省率等于n与最大视差值的比值加n的三次方分之一。
在本实施例中,计算节省率等于n/dmax+1/n3,图5为计算节省率与n的取值的关系曲线图。如图5所示,横坐标为n值,纵坐标为计算节省率;例如,用dmax=128时,从上图的效率图可以看出,n=4为最低点,为最佳选择,计算节省率达到了0.05左右,是原来的1/20,这里计算节省率的计算是其它运算(如:平移、与运算等)暂不考虑的理论值。
本发明提供的视差图计算方法,图6a-6f为本发明视差图计算方法一个具体示例中的图像处理示意图。如图6a-6f所示,图6a为通过两个摄像机获得的左图像和右图像,此时获得的左图像和右图像可以为彩色图像或黑白图像;图6b为缩小1/4之后得到的视差图;图6c为缩小视差图对应的视差层;图6d为取某一视差层作为蒙版得到的左残差图和右残差图;图6e为计算得到的左残差图与右残差图的残差视差图;图6f为将所有层视差图叠加得到对应左图像和右图像的视差图。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图7为本发明视差图计算装置一个实施例的结构示意图。该实施例的装置可用于实现本发明上述各方法实施例。如图7所示,该实施例的装置包括:
缩小单元72,用于分别将左图像和右图像的宽和高都缩小为原来的1/n,得到缩小左图和缩小右图,其中,n为大于一的正整数。
视差计算单元73,用于对缩小左图和缩小右图计算缩小视差值,基于计算得到的缩小视差值得到缩小视差图,缩小视差图包括至少两层视差层。
放大单元74,用于将缩小视差图的宽和高分别放大为原来的n倍,缩小视差图中每两个相邻视差层之间的视差值的差值放大为原来的n倍;
层视差图单元75,用于分别计算所有视差层的层视差图;
叠加单元76,用于将所有层视差图叠加得到对应所述左图像和右图像的视差图。
基于本发明上述实施例提供的视差图计算装置;通过分别将左图像和右图像的宽和高都缩小为原来的1/n,对缩小左图和缩小右图计算缩小视差值,由于图像面积变小,因此计算视差值的计算量得到了极大的减少;将缩小视差图的宽和高分别放大为原来的n倍,为了得到准确的视差图,对于得到的缩小视差图进行放大,分别计算所有视差层的层视差图,将所有层视差图叠加得到对应左图像和右图像的视差图;通过分别计算视差层的层视差图,将层视差图叠加后得到视差图,通过图像的缩小和放大过程,减少了计算量和内存消耗,使视差图的计算能够更广泛的推广应用。
图8为本发明视差图计算装置另一个实施例的结构示意图。如图8所示,该实施例装置还包括:
最大视差单元81,用于基于原图分别通过两个采集设备获得左图像和右图像,基于两个采集设备的相关信息获得左图像与右图像的最大视差值。
本实施例中,通过获得的最大视差值为后续计算视差层的层视差图提供了计算基础,在本实施例中,对于计算视差值的方法可以采用现有技术中已知的计算方法,由于将左图像和右图像的宽和高都缩小为了原来的1/n,计算得到的视差层也减少为原来的1/n,此时,视差相差0~n-1的层被合并成了一层,例如:原来视差0~128,取n=4时,缩小左右图像为原来的1/4,则视差为0~3的层现在视差都为0,视差为4~7的层现在视差都为1,视差为8~11的层现在视差都为2,依此类推,最终最大视差为32,此时的计算量将由原来的width宽度像素值*height高度像素值*dmax最大视差值,变为width/4*height/4*dmax/4,降低为原来的1/64,即1/n3。等计算完成后把视差图再放大,则视差放大为原来的n倍。这样我们得到的是视差为0,n,2n,3n,……的视差层,而每个视差层还包含了0~n-1个小的差异层;计算每个视差层得到层视差图,叠加就得到视差图,这个过程节省了大量计算量,对计算工具的要求较低,并且计算速度大大加快。
在本发明视差图计算装置上述各实施例的一个具体示例中,缩小视差图包括最大视差值的1/n数量的视差层。
在本发明视差图计算装置上述各实施例的一个具体示例中,缩小视差图中每两个相邻视差层之间的视差值的差值为1。
本发明视差图计算装置的又一个实施例,在上述各实施例的基础上,层视差图单元75,包括:
蒙版选取模块,用于选取一个视差层,基于视差层和缩小视差图得到一个蒙版,蒙版只包括1和0两个像素值;
残差图模块,用于将蒙版与左图像做与运算得到左残差图;将右图像向左平移蒙版对应的视差值数量的像素后与蒙版做与运算得到右残差图;
残差视差图模块,用于基于左残差图和右残差图计算得到左残差图与右残差图的残差视差图,残差视差图等于左残差图与右残差图的残差视差值加视差层的视差值;
层视差图模块,用于将残差视差图与蒙版做与运算得到对应视差层的层视差图。
本实施例中通过选取蒙版的方式将0~n-1的差异层显示出来,把上述实施例得到的放大了的0~dmax/n层视差层中地i层作为蒙版,和左图直接做与操作,得到只含视差为i*n的左残差图,然后把右图所有像素向左平移i*n个像素,然后也和蒙版做与操作,得到只含视差为i*n的右残差图,接下来计算左残差图与右残差图的视差,此时最大视差变为了n,需要注意的是,此时只是计算了一部分图的视差,记为Img(i),蒙版以外的区域为0,非计算区域。
在本发明视差图计算装置上述各实施例的一个具体示例中,残差视差图模块,包括:
分割模块,用于将蒙版分割为至少两个矩形分块图,每个分块图的边长大于等于n;获得所有包括非零元素的分块图的位置和大小作为计算块;
计算模块,用于按照计算块的位置和大小在左残差图和右残差图中查找相应的位置和大小进行计算,得到残差视差值。
在本发明视差图计算装置上述各实施例的一个具体示例中,叠加单元76,具体用于将所有层视差图的同一位置的视差值相加,得到位置的视差值;基于得到的所有位置的视差值,得到对应左图像和右图像的视差图。
本发明视差图计算装置的还一个实施例中,在上述各实施例的基础上,还包括:
平滑单元,用于将得到的视差图进行边缘平滑处理,得到边缘平滑的目标视差图。
由于本发明方法对图像先进行缩小,后进行放大,在图像缩放和图像拼接过程中,可能会使图像的边缘产生锯齿,为了得到更好的视差图,因此,需要进行边缘平滑处理,通常采用滤波的方法实现边缘平滑处理,例如:中值滤波、均值滤波和高斯滤波等,在本发明中通过反复实践得到中值滤波的效果最佳,可有效消除边缘的锯齿。
在本发明视差图计算装置上述各实施例的一个具体示例中,n的取值根据计算节省率获得,当计算节省率最小时,n值最佳;
计算节省率等于n与最大视差值的比值加n的三次方分之一。
根据本发明实施例的另一个方面,提供的一种电子设备,设置有如上述任一实施例所述的视差图计算装置。
根据本发明实施例的另一个方面,提供的一种电子设备,包括:存储器,用于存储可执行指令;
以及处理器,用于与所述存储器通信以执行所述可执行指令从而完成上述任一实施例所述视差图计算方法的操作。
根据本发明实施例的另一个方面,提供的一种计算机存储介质,用于存储计算机可读取的指令,指令被执行时执行上述任一实施例所述视差图计算方法的操作。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于***实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
可能以许多方式来实现本发明的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
Claims (17)
1.一种视差图计算方法,其特征在于,包括:
基于原图分别通过两个采集设备获得左图像和右图像,基于两个采集设备的相关信息获得左图像与右图像的最大视差值;
分别将左图像和右图像的宽和高都缩小为原来的1/n,得到缩小左图和缩小右图,其中,n为大于一的正整数;
对所述缩小左图和缩小右图计算缩小视差值,基于计算得到的缩小视差值得到缩小视差图,所述缩小视差图包括最大视差值的1/n数量的视差层;
将所述缩小视差图的宽和高分别放大为原来的n倍,所述缩小视差图中每两个相邻视差层之间的视差值的差值放大为原来的n倍;
分别计算所有所述视差层的层视差图,将所有所述层视差图叠加得到对应所述左图像和右图像的视差图。
2.根据权利要求1所述的方法,其特征在于,所述缩小视差图中每两个相邻视差层之间的视差值的差值为1。
3.根据权利要求1-2任一所述的方法,其特征在于,所述计算一个所述视差层的层视差图,包括:
选取一个视差层,基于所述视差层和缩小视差图得到一个蒙版,所述蒙版只包括1和0两个像素值;
将蒙版与左图像做与运算得到左残差图;将右图像向左平移蒙版对应的视差值数量的像素后与蒙版做与运算得到右残差图;
基于所述左残差图和所述右残差图计算得到所述左残差图与所述右残差图的残差视差图,所述残差视差图等于所述左残差图与所述右残差图的残差视差值加所述视差层的视差值;
将所述残差视差图与蒙版做与运算得到对应所述视差层的层视差图。
4.根据权利要求3所述的方法,其特征在于,所述计算所述左残差图与所述右残差图的残差视差值,包括:
将蒙版分割为至少两个矩形分块图,每个所述分块图的边长大于等于n;
获得所有包括非零元素的分块图的位置和大小作为计算块;
按照所述计算块的位置和大小在所述左残差图和右残差图中查找相应的位置和大小进行计算,得到残差视差值。
5.根据权利要求1-2任一所述的方法,其特征在于,将所有所述层视差图叠加得到对应所述左图像和右图像的视差图,包括:
将所有所述层视差图的同一位置的视差值相加,得到所述位置的视差值;
基于得到的所有位置的视差值,得到对应所述左图像和右图像的视差图。
6.根据权利要求1-2任一所述的方法,其特征在于,还包括:将所述得到的视差图进行边缘平滑处理,得到边缘平滑的目标视差图。
7.根据权利要求1-2任一所述的方法,其特征在于,所述n的取值根据计算节省率获得;
所述计算节省率等于n与最大视差值的比值加n的三次方分之一。
8.一种视差图计算装置,其特征在于,包括:
最大视差单元,用于基于原图分别通过两个采集设备获得左图像和右图像,基于两个采集设备的相关信息获得左图像与右图像的最大视差值;
缩小单元,用于分别将左图像和右图像的宽和高都缩小为原来的1/n,得到缩小左图和缩小右图,其中,n为大于一的正整数;
视差计算单元,用于对所述缩小左图和缩小右图计算缩小视差值,基于计算得到的缩小视差值得到缩小视差图,所述缩小视差图包括最大视差值的1/n数量的视差层;
放大单元,用于将所述缩小视差图的宽和高分别放大为原来的n倍,所述缩小视差图中每两个相邻视差层之间的视差值的差值放大为原来的n倍;
层视差图单元,用于分别计算所有所述视差层的层视差图;
叠加单元,用于将所有所述层视差图叠加得到对应所述左图像和右图像的视差图。
9.根据权利要求8所述的装置,其特征在于,所述缩小视差图中每两个相邻视差层之间的视差值的差值为1。
10.根据权利要求8-9任一所述的装置,其特征在于,所述层视差图单元,包括:
蒙版选取模块,用于选取一个视差层,基于所述视差层和缩小视差图得到一个蒙版,所述蒙版只包括1和0两个像素值;
残差图模块,用于将蒙版与左图像做与运算得到左残差图;将右图像向左平移蒙版对应的视差值数量的像素后与蒙版做与运算得到右残差图;
残差视差图模块,用于基于所述左残差图和所述右残差图计算得到所述左残差图与所述右残差图的残差视差图,所述残差视差图等于所述左残差图与所述右残差图的残差视差值加所述视差层的视差值;
层视差图模块,用于将所述残差视差图与蒙版做与运算得到对应所述视差层的层视差图。
11.根据权利要求10所述的装置,其特征在于,所述残差视差图模块,包括:
分割模块,用于将蒙版分割为至少两个矩形分块图,每个所述分块图的边长大于等于n;获得所有包括非零元素的分块图的位置和大小作为计算块;
计算模块,用于按照所述计算块的位置和大小在所述左残差图和右残差图中查找相应的位置和大小进行计算,得到残差视差值。
12.根据权利要求8-9任一所述的装置,其特征在于,所述叠加单元,具体用于将所有所述层视差图的同一位置的视差值相加,得到所述位置的视差值;基于得到的所有位置的视差值,得到对应所述左图像和右图像的视差图。
13.根据权利要求8-9任一所述的装置,其特征在于,还包括:
平滑单元,用于将所述得到的视差图进行边缘平滑处理,得到边缘平滑的目标视差图。
14.根据权利要求8-9任一所述的装置,其特征在于,所述n的取值根据计算节省率获得;
所述计算节省率等于n与最大视差值的比值加n的三次方分之一。
15.一种电子设备,其特征在于,设置有如权利要求8-14任一所述的视差图计算装置。
16.一种电子设备,其特征在于,包括:存储器,用于存储可执行指令;
以及处理器,用于与所述存储器通信以执行所述可执行指令从而完成权利要求1至7任一所述视差图计算方法的操作。
17.一种计算机存储介质,用于存储计算机可读取的指令,其特征在于,所述指令被执行时执行权利要求1至7任一所述视差图计算方法的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710593224.1A CN107358638B (zh) | 2017-07-19 | 2017-07-19 | 视差图计算方法和装置、电子设备、计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710593224.1A CN107358638B (zh) | 2017-07-19 | 2017-07-19 | 视差图计算方法和装置、电子设备、计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107358638A CN107358638A (zh) | 2017-11-17 |
CN107358638B true CN107358638B (zh) | 2020-11-27 |
Family
ID=60284266
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710593224.1A Active CN107358638B (zh) | 2017-07-19 | 2017-07-19 | 视差图计算方法和装置、电子设备、计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107358638B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107798694B (zh) * | 2017-11-23 | 2021-06-29 | 海信集团有限公司 | 一种像素点视差值计算方法、装置及终端 |
CN108346160A (zh) * | 2017-12-22 | 2018-07-31 | 湖南源信光电科技股份有限公司 | 基于视差图背景差法和Meanshift结合的多运动目标跟踪方法 |
CN108520536B (zh) * | 2018-03-27 | 2022-01-11 | 海信集团有限公司 | 一种视差图的生成方法、装置及终端 |
CN110310317A (zh) * | 2019-06-28 | 2019-10-08 | 西北工业大学 | 一种基于深度学习的单目视觉场景深度估计的方法 |
CN112767293B (zh) * | 2021-01-11 | 2023-04-11 | 达闼机器人股份有限公司 | 获取视差图像的方法、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102547325A (zh) * | 2010-09-28 | 2012-07-04 | 富士胶片株式会社 | 立体图像粘贴***以及用于控制该***操作的方法和程序 |
CN103679680A (zh) * | 2012-08-31 | 2014-03-26 | 富士通株式会社 | 立体匹配方法和*** |
CN104166992A (zh) * | 2014-07-25 | 2014-11-26 | 广东外语外贸大学 | 基于网格变形的内容感知双目图像缩放方法 |
JP2016042662A (ja) * | 2014-08-18 | 2016-03-31 | キヤノン株式会社 | 画像処理装置、撮像装置、画像処理方法、プログラム、記憶媒体 |
CN106525004A (zh) * | 2016-11-09 | 2017-03-22 | 人加智能机器人技术(北京)有限公司 | 双目立体视觉***及深度测量方法 |
CN106791782A (zh) * | 2016-12-19 | 2017-05-31 | 北京星辰美豆文化传播有限公司 | 基于单摄像头的立体图像的拍摄方法、装置和电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5874192B2 (ja) * | 2011-04-11 | 2016-03-02 | ソニー株式会社 | 画像処理装置、画像処理方法、及びプログラム |
-
2017
- 2017-07-19 CN CN201710593224.1A patent/CN107358638B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102547325A (zh) * | 2010-09-28 | 2012-07-04 | 富士胶片株式会社 | 立体图像粘贴***以及用于控制该***操作的方法和程序 |
CN103679680A (zh) * | 2012-08-31 | 2014-03-26 | 富士通株式会社 | 立体匹配方法和*** |
CN104166992A (zh) * | 2014-07-25 | 2014-11-26 | 广东外语外贸大学 | 基于网格变形的内容感知双目图像缩放方法 |
JP2016042662A (ja) * | 2014-08-18 | 2016-03-31 | キヤノン株式会社 | 画像処理装置、撮像装置、画像処理方法、プログラム、記憶媒体 |
CN106525004A (zh) * | 2016-11-09 | 2017-03-22 | 人加智能机器人技术(北京)有限公司 | 双目立体视觉***及深度测量方法 |
CN106791782A (zh) * | 2016-12-19 | 2017-05-31 | 北京星辰美豆文化传播有限公司 | 基于单摄像头的立体图像的拍摄方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN107358638A (zh) | 2017-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107358638B (zh) | 视差图计算方法和装置、电子设备、计算机存储介质 | |
JP6951565B2 (ja) | 深度推定方法及び装置、電子機器並びに媒体 | |
US20160301868A1 (en) | Automated generation of panning shots | |
US9313473B2 (en) | Depth video filtering method and apparatus | |
US20200090358A1 (en) | Depth data processing system capable of performing image registration on depth maps to optimize depth data | |
JP4941565B2 (ja) | 対応点探索装置および対応点探索方法 | |
CN104754180A (zh) | 降低视频画面抖动的方法与装置 | |
Yang et al. | Dynamic 3D scene depth reconstruction via optical flow field rectification | |
KR100943635B1 (ko) | 디지털카메라의 이미지를 이용한 디스패리티 맵 생성 장치 및 방법 | |
US9208549B2 (en) | Method and apparatus for color transfer between images | |
JP4102386B2 (ja) | 3次元情報復元装置 | |
US20090316994A1 (en) | Method and filter for recovery of disparities in a video stream | |
JP2004356747A (ja) | 画像のマッチング方法および装置 | |
CN111882588B (zh) | 图像块配准方法及相关产品 | |
JP2017184136A (ja) | 情報処理装置、情報処理方法、情報処理システム及びプログラム | |
JP5765418B2 (ja) | 立体視画像生成装置、立体視画像生成方法、立体視画像生成プログラム | |
KR100851055B1 (ko) | 에지투영을 이용한 스테레오 매칭방법 | |
Lindner et al. | Depth enhanced and content aware video stabilization | |
CN104125446A (zh) | 一种视频图像2d转3d中优化处理深度图的方法和装置 | |
Liu et al. | A new stereo matching method for RAW image data based on improved SGBM | |
Lee et al. | Blur-metric-based resolution enhancement of computationally reconstructed integral images | |
JP2013254300A (ja) | 画像処理方法 | |
US20210073941A1 (en) | Seamless preview stitching for multiple cameras | |
Nagata et al. | FOE-based regularization for optical flow estimation from an in-vehicle event camera | |
Choi | Content-aware three-dimensional image retargeting for mobile devices |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |