具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种图像处理方法的移动终端的硬件结构框图。如图1所示,移动终端10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的图像处理方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种图像处理方法,图2是根据本发明实施例的图像处理方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,确定第一图像和第二图像之间的第一视差图,其中,第一图像和第二图像构成双目视觉图像,第一视差图中包括第一图像和第二图像中多对对应的像素之间的视差深度,视差深度用于表示多对对应的像素之间视差值的大小;
可选地,第一图像和第二图像包括但不限于是双目摄像设备获取的双目视觉图像。第一视差图是第一图像和第二图像中部分像素之间的视差深度图,如图3所示,图中的每个点标识一个像素深度,颜色越深表示视差值越大,表示物体距离双目摄像设备的距离越近。
步骤S204,连接第一视差图中的视差深度形成网格,以得到第二视差图;
可选地,在本实施例中,连接第一视差图中的视差深度形成网格包括但不限于是对第一视差图进行的剖分,例如,利用delaunay网格将第一视差图做三角剖分,如图4所示,将各个视差深度通过网格的形式连接起来。
步骤S206,对第二视差图中的网格进行拟合处理,以得到与第二视差图对应的热度图。
可选地,在本实施例中,对第二视差图像进行的拟合即是拟合第二视差图中的网格。
可选地,上述步骤的执行主体可以为终端等,但不限于此。
可选地,在本实施例中,上述图像处理方法可以但不限于应用于对图像的深度处理的场景中,例如,在无人驾驶车辆的场景中对周围建筑物的预测的处理场景,城市导航的场景中,确定双目视觉图像的双目深度重建算法的场景中。此外,本实施例适用于城市环境的场景中,由于城市环境内的场景中多是平整路面、建筑立面的特点,可以基于局部的像素点的热度图确定出每一个像素点之间的逆深度,并不需要进行全局的处理。可以有效的节约能耗。上述仅是一种示例,本实施例中对此不做任何限定。
通过上述步骤,由于确定第一图像和第二图像之间的第一视差图,其中,第一图像和第二图像构成双目视觉图像,第一视差图中包括第一图像和第二图像中多对对应的像素之间的视差深度,视差深度用于表示多对对应的像素之间视差值的大小;连接第一视差图中的视差深度形成网格,以得到第二视差图;对第二视差图中的网格进行拟合处理,以得到与第二视差图对应的热度图。因此,可以解决相关技术中对图像处理耗时长、精度低的问题,达到提高图像处理效率的效果。
在一个可选的实施例中,确定第一图像和第二图像之间的第一视差图,包括:
S1,从第一图像和第二图像中提取多对对应的像素,其中,多对对应的像素用于表示第一图像和第二图像中在不同位置上对同一对象获取的像素,多对对应的像素是第一图像和第二图像中的部分对应的像素;
S2,利用多对对应的像素中每对对应的像素的坐标,并确定出每对对应的像素之间的视差值,以得到对应于多对对应的像素的多个视差值;
S3,在第一图像或第二图像中标识出多个视差值对应的多个视差深度,以得到第一视差图。
可选地,在本实施例中,双目摄像设备获取的第一图像和第二图像,从第一图像和第二图像中分别提取出部分的像素的图像坐标。计算在第一图像和第二图像中对应的像素的视差值,将视差值的大小通过不同的颜色深度标识在图中么如图3所示。例如,在城市环境的场景中,两个对应的像素的坐标分别为x0,x1,匹配左右两个图像中的像素,计算视差值disparity。计算公式如下:
Disparity=x0.x-x1.x;
其中,x0.x为像素在第一图像中x坐标,x1.x为像素在第二图像中x坐标。
通过本实施例,通过在第一图像和第二图像中提取部分的像素构建第一视差图,可以减少能耗,同时能够反映出图像整体视差特征,
在一个可选的实施例中,连接所述第一视差图中的视差深度形成网格,以得到第二视差图,包括:
S1,利用三角剖分算法Delaunay将第一视差图中部分像素对应的各个视差深度进行三角剖分连接,以得到连接各个视差深度的网格图;
S2,将网格图确定为第二视差图。
可选地,在本实施例中,对第一视差图进行的剖分即是将第一视差图中的视差深度的连接,如图4所示。
通过本实施例,通过对第一视差图中的各个视差深度进行的三角剖分,形成视差深度的平面图,利用网格所连接的视差深度,可以比较准确的估计出全局的每个像素的逆深度。
在一个可选的实施例中,对第二视差图中的网格进行拟合处理,以得到与第二视差图对应的热度图,包括:
S1,确定第一视差图中各个视差深度对应的各个逆深度值;
S2,利用确定的平滑参数、各个逆深度值对应的变量确定出成本函数;
S3,利用成本函数拟合所述第二视差图中的网格,以得到与第二视差图对应的热度图。
可选地,在本实施例中,可以使用total generalized variation拟合第二视差图中的网格图。具体如下:
构建cost function,其中,NLTGV是平滑项,这一项可以使估计出来的相邻的特征点的深度尽量在同一个平面。后面一项是数据拟合项,使估计出来的逆深度项尽量符合图5中的观测。平滑的公式如下:
其中,υξ是待优化的逆深度变量,υz是逆深度的观测量。
NLTGV的计算公式如下:
其中,
是i点的逆深度,
是j点的逆深度。
是点的像素坐标,
是j点的像素坐标。i和j是mesh的三角形中一条边链接的两个点,如图6所示,<·,·>是内积符号。w为辅助变量,ω=(ω1,ω2)其物理意义为两个点所在平面的法向量。
是i点的法向量,
是j点的法向量。
的物理意义是i,j两点的深度变化的约束。
在本实施例中,整个cost function在优化中不断减小,其物理意义是使得待优化的逆深度既尽量符合观测,相邻点vertex之间的逆深度又能尽量保持在同一平面。这符合城市环境中的多为平面的特点。λξ用来控制,到底是要让尽量符合观测的权重多一点,还是保持vertex在同一个平面多一点。α1,α2同样也为权重系数,控制NLTGV(ξ)中三部分的权重。这些参数都由人为设定。
通过本实施例,通过对第二视差图的平滑处理,可以减少第二视差图中的网格土的锯齿,有利于后续热度图的构建。
在一个可选的实施例中,确定所述第一视差图中各个视差深度对应的各个逆深度值,包括:
S1,确定第一视差图中视差深度所对应的视差值,其中,视差值是第一图像和第二图像中针对同一对象在不同位置获取的图像的像素之间的视差;
S2,利用视差值、摄像设备的基线长度以及摄像设备的焦距计算出视差值的逆深度值,其中,摄像设备是双目摄像设备,用于获取第一图像和第二图像。
可选地,在本实施例中,在对第一视差图进行剖分之前,可以将视差值disparity转化为逆深度inverse depth,公式如下:
其中,ds为disparity,B为双目摄像设备的基线长度,fx为摄像设备的焦距。ξs为逆深度。将视差值转化为逆深度用于后续的平滑处理。
可选地,可以利用热度图确定出第一图像和第二图像之间对应的像素之间的逆深度。
可选地,在本实施例中,热度图如图5所示,在物体比较规则的场景中(例如,城市环境的场景中),将网格图进行拟合处理后形成的热度图可以预测出周围像素的逆深度。
综上,在本实施例,由于只在稀疏的视觉特征点上提取深度,其他像素的深度通过拟合得到。避免了对每一个像素进行匹配带来的时间和计算资源上的消耗。同时,利用城市环境中,场景中多为平面的假设,使用平滑函数来正则化(regularization)深度,并不需要在得到每一个像素的粗略的disparity后,对每一个像素进行精细匹配,从而提高了效率,并可以精细的确定出每个像素的逆深度。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种图像处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图7是根据本发明实施例的图像处理装置的结构框图,如图7所示,该装置包括:
第一确定模块72,用于确定第一图像和第二图像之间的第一视差图,其中,上述第一图像和上述第二图像构成双目视觉图像,上述第一视差图中包括上述第一图像和上述第二图像中多对对应的像素之间的视差深度,上述视差深度用于表示多对对应的像素之间视差值的大小;
第二确定模块74,用于连接第一视差图中的视差深度形成网格,以得到第二视差图;
第三确定模块76,用于对第二视差图中的网格进行拟合处理,以得到与第二视差图对应的热度图。
可选地,上述第一确定模块,包括:第一提取单元,用于从所述第一图像和所述第二图像中提取多对对应的像素,其中,所述多对对应的像素用于表示所述第一图像和所述第二图像中在不同位置上对同一对象获取的像素,所述多对对应的像素是所述第一图像和所述第二图像中的部分对应的像素;第一确定单元,用于利用所述多对对应的像素中每对对应的像素的坐标,并确定出所述每对对应的像素之间的视差值,以得到对应于所述多对对应的像素的多个视差值;第二确定单元,用于在上述第一图像或上述第二图像中标识出上述多个视差值对应的多个视差深度,以得到上述第一视差图。
可选地,上述第二确定模块,包括:第三确定单元,用于利用三角剖分算法Delaunay将所述第一视差图中部分像素对应的各个视差深度进行三角剖分连接,以得到连接所述各个视差深度的网格图;第四确定单元,用于将上述网格图确定为上述第二视差图。
可选地,上述第三确定模块,包括:第一处理单元,用于确定上述第一视差图中各个视差深度对应的各个逆深度值;第二确定子单元,用于利用确定的平滑参数、上述各个逆深度值对应的变量确定出成本函数;第一处理子单元,用于利用所述成本函数拟合所述第二视差图中的网格,以得到与所述第二视差图对应的热度图。
可选地,上述第一确定子单元,包括:确定子模块,用于确定上述第一视差图中视差深度所对应的视差值,其中,上述视差值是上述第一图像和上述第二图像中针对同一对象在不同位置获取的图像的像素之间的视差;计算子模块,用于利用上述视差值、摄像设备的基线长度以及上述摄像设备的焦距计算出上述视差值的逆深度值,其中,上述摄像设备是双目摄像设备,用于获取上述第一图像和上述第二图像。
可选地,上述装置还包括:第四确定模块,用于对所述第二视差图中的网格进行拟合处理,以得到与所述第二视差图对应的热度图之后,利用所述热度图确定出所述第一图像和所述第二图像之间对应的像素之间的逆深度。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,确定第一图像和第二图像之间的第一视差图,其中,第一图像和第二图像构成双目视觉图像,第一视差图中包括第一图像和第二图像中多对对应的像素之间的视差深度,视差深度用于表示多对对应的像素之间视差值的大小;
S2,连接第一视差图中的视差深度形成网格,以得到第二视差图;
S3,对第二视差图中的网格进行拟合处理,以得到与第二视差图对应的热度图。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,确定第一图像和第二图像之间的第一视差图,其中,第一图像和第二图像构成双目视觉图像,第一视差图中包括第一图像和第二图像中多对对应的像素之间的视差深度,视差深度用于表示多对对应的像素之间视差值的大小;
S2,连接第一视差图中的视差深度形成网格,以得到第二视差图;
S3,对第二视差图中的网格进行拟合处理,以得到与第二视差图对应的热度图。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。