本发明涉及图像处理技术领域,尤指一种去除tof相机杂散光方法及装置、电子设备和存储介质。
背景技术:
tof(time-of-flight)相机采用激光主动成像的方式,其核心为tof芯片,其上的每个像元可记录对应视场角的激光回波信息,可以减少外界背景光的干扰,但仍会受到内部光学元件的多次反射等机制的影响,从而引入杂散光。
现有的研究及工程实践中,大部分通过光学系统、光机系统方面的处理方法,如遮光罩、表面镀膜等方法,可以从原理上实现杂散光的抑制,但受限于设计、工艺,此方法难以完全去除杂散光,因此,可通过后端的图像算法,如图像退化、稀疏约束、矩匹配等方法,从输出结果上进一步实现杂散光的抑制。
但是,目前通过图像算法等方式进行杂散光抑制的研究及工程实践,多为基于被动受光的成像系统,鲜有基于激光主动照明的成像系统的研究或工程实践。
技术实现要素:
本发明实施例的目的是提供一种去除杂散光方法及装置、电子设备和存储介质,借以通过图像处理对tof相机产生的杂散光进行有效的抑制。
为解决上述问题,第一方面,本发明实施例提供了一种去除tof相机杂散光的方法,所述方法包括:
将所述tof相机采集得到的灰度图,计算得到置信度图;
将所述置信度图与退化核进行卷积计算,得到退化置信度图;
将所述退化置信度图减去所述置信度图,得到置信度偏置图;
判断所述置信度图的置信度是否大于所述置信度偏置图的置信度偏置与本底噪声的和,根据判断结果进行深度解算。
优选地,所述将所述tof相机采集得到的灰度图,计算得到置信度图包括:
设若干灰度图的像素分别计为i1(x,y)、i2(x,y)、…、in(x,y),其中,(x,y)表示像素坐标,x取值为1、2、…、img_width,y取值为1、2、…、img_height,其中,所述置信度图与灰度图的分辨率相同,即img_width×img_height,并将置信度图计为i_confidence,像素位置为(x,y)的置信度图的像素为i_confidence(x,y),所述置信度图的计算公式为:
i_confidence(x,y)=i_max+i_mid–2×i_min,其中,i_max、i_mid、i_min分别表示i1(x,y)、i2(x,y)、…、in(x,y)的最大值、中间值、最小值。
优选地,所述将所述置信度图与退化核进行卷积计算,得到退化置信度图。
具体包括:
计算所述退化核,所述退化核计为i_decay_core;
将置信度图i_confidence与退化核i_decay_core进行same卷积,得到same卷积的结果作为退化置信度图,其分辨率为img_width×img_height,计为i_confidence_decay。
优选地,所述计算所述退化核,所述退化核计为i_decay_core具体包括:
所述退化核由指定的三个gaussian函数生成,所述gaussian函数公式为:
其中,σ为方差;
三个gaussian函数的宽均一致,且为奇数,计为decay_core_width;
三个gaussain函数的高均一致,且为奇数,计为decay_core_height;
三个gaussian函数的方差不全一致,分别计为σ1、σ2、σ3;
三个gaussian函数的权重不全一致,分别计为weight1、weight2、weight3。
令(x,y)均为相对于中心的位置,即((decay_core_width+1)/2,(decay_core_height+1)/2)为坐标原点,计算三个gaussain函数各个点的值,计为g1(x,y)、g2(x,y)、g3(x,y);
将三个gaussian函数按各自的权重相加,并归一化得到退化核,计为i_decay_core=(weight1×g1(x,y)+weight2×g2(x,y)+weight3×g3(x,y))/(weight1+weight2+weight3)。
将置信度图i_confidence与退化核i_decay_core进行same卷积,得到same卷积的结果作为退化置信度图,其分辨率为img_width×image_height。
优选地,所述根据判断结果进行深度解算。具体包括:
若所述置信度图的置信度大于所述置信度偏置图的置信度偏置与本底噪声的和,则进行深度解算,解算结果为输出深度;
若所述置信度图的置信度不大于所述置信度偏置图的置信度偏置与本底噪声的和,则不进行深度结算,将深度置为零。
第二方面,本发明实施例还提供了一种去除tof相机杂散光的装置,所述装置包括:
置信度图计算模块,用于将所述tof相机采集得到的灰度图,计算得到置信度图;
退化置信度图计算模块,用于将所述置信度图与退化核进行卷积计算,得到退化置信度图;
置信度偏置图计算模块,用于将所述退化置信度图减去所述置信度图,得到置信度偏置图;
深度解算模块,用于判断所述置信度图的置信度是否大于所述置信度偏置图的置信度偏置与本底噪声的和,并根据判断结果进行深度解算。
优选地,所述退化置信度图计算模块计算所述退化核,将所述退化核计为i_decay_core;将置信度图i_confidence与退化核i_decay_core进行same卷积,得到same卷积的结果作为退化置信度图,其分辨率为img_width×img_height,计为i_confidence_decay,所述退化核由指定的三个gaussian函数生成,所述gaussian函数公式为:
其中,σ为方差;
三个gaussian函数的宽均一致,且为奇数,计为decay_core_width;
三个gaussain函数的高均一致,且为奇数,计为decay_core_height;
三个gaussian函数的方差不全一致,分别计为σ1、σ2、σ3;
三个gaussian函数的权重不全一致,分别计为weight1、weight2、weight3。
令x,y均为相对于中心的位置,即((decay_core_width+1)/2,(decay_core_height+1)/2)为坐标原点,计算三个gaussain函数各个点的值,计为g1(x,y)、g2(x,y)、g3(x,y);
将三个gaussian函数按各自的权重相加,并归一化得到退化核,计为i_decay_core=(weight1×g1(x,y)+weight2×g2(x,y)+weight3×g3(x,y))/(weight1+weight2+weight3)。
第三方面,本发明实施例还提供了一种电子设备,所述电子设备包括:
一个或更多个处理器;
一个或更多个存储器;
一个或更多个模块,其被存在存储器中且能够由所述一个或更多个处理器中的至少一个处理器以执行如第一方面所述去除杂散光的方法的步骤。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述去除tof相机杂散光的方法的步骤。
本发明实施例提供的去除tof相机杂散光的方法、装置、电子设备和计算机存储介质,对置信度图进行抑制杂散光处理代替对原始灰度图进行抑制杂散光处理,则从原理上将杂散光的影响同化为本底噪声的影响,便于实现与后续深度计算的衔接。同时,本发明实施例深度解算的执行条件是置信度足够大,从而杜绝将属于杂散光的像素进行深度解算得到假的深度值的可能,并将属于杂散光的这些像素的深度值置为零,跳过深度解算环节,从而提高了输出深度的精度。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对异步系统的实现方法、电子设备和存储介质的上述特性、技术特征、优点及其实现方式予以进一步说明。
图1是本发明实施例中一种去除杂散光的方法的流程图;
图2是本发明实施例中一种去除杂散光的装置的结构图;
图3是本发明实施例一种文本中人物关系提取的电子设备的结构示意图。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
如图1所示,本发明实施例提供了一种去除tof相机杂散光的方法,该方法包括如下步骤:
s100.将所述tof相机采集得到的灰度图,计算得到置信度图;
在本发明的一个实施例中,将tof相机的若干初始灰度图,计算得到置信度图,假设选取三张灰度图,它们的像素分别计为i1(x,y)、i2(x,y)、i3(x,y),其中,(x,y)表示像素坐标,x取值为1、2、…、img_width,y取值为1、2、…、img_height,其中,置信度图与灰度图的分辨率相同,即img_width×img_height。
将置信度图计为i_confidence,像素位置为(x,y)的置信度图的像素为i_confidence(x,y),其计算公式为:
i_confidence(x,y)=i_max+i_mid–2×i_min,其中,i_max、i_mid、i_min分别表示i1(x,y)、i2(x,y)、i3(x,y)的最大值、中间值、最小值。
s200.将所述置信度图与退化核进行卷积计算,得到退化置信度图;
在本发明的另一个实施例中,所述退化核为指定的三个gaussian函数生成,其公式为:
其中,σ为方差。
三个gaussian函数的宽均一致,且为奇数,计为decay_core_width;
三个gaussain函数的高均一致,且为奇数,计为decay_core_height;
三个gaussian函数的方差不全一致,分别计为σ1、σ2、σ3;
三个gaussian函数的权重不全一致,分别计为weight1、weight2、weight3。
令x,y均为相对于中心的位置,即((decay_core_width+1)/2,(decay_core_height+1)/2)为坐标原点,可计算三个gaussain函数各个点的值,计为g1(x,y)、g2(x,y)、g3(x,y);
将三个gaussian函数按各自的权重相加,并归一化,即(weight1×g1(x,y)+weight2×g2(x,y)+weight3×g3(x,y))/(weight1+weight2+weight3),得到退化核,计为i_decay_core;
i_confidence与i_decay_core进行same卷积,得到same卷积的结果作为退化置信度图,所述退化置信度图的分辨率为img_width×img_height,计为i_confidence_decay。
s300.将所述退化置信度图减去置信度图,得到置信度偏置图;
将置信度偏置图计为i_confidence_offset,则i_confidence_offset=i_confidence_decay–i_confidence。
s400.判断所述置信度图的置信度是否大于置信度偏置图的置信度偏置与本底噪声的和,根据判断结果进行深度解算;
在本发明的一个实施例中,所述根据判断结果进行深度解算具体包括:
若所述置信度图的置信度大于置信度偏置图的置信度偏置与本底噪声的和,则进行深度解算,解算结果为输出深度;
若所述置信度图的置信度不大于置信度偏置图的置信度偏置与本底噪声的和,则不进行深度结算,将深度置为零。
即指定本底噪声,计为base_noise,对于每个坐标为(x,y)的像素,其中x取值为1、2、…、img_width,y取值为1、2、…、img_height,若i_confidence(x,y)>i_confidence_offset(x,y)+base_noise,则此坐标位置点可以进行深度解算,获得深度;反之,不进行深度解算,深度为零。
如图2所示,本发明实施例还提供了一种去除tof相机杂散光的装置,所述装置包括:
置信度图计算模块100,用于将所述tof相机采集得到的灰度图,计算得到置信度图;
退化置信度图计算模块200,用于将所述置信度图与退化核进行卷积计算,得到退化置信度图;
置信度偏置图计算模块300,用于将所述退化置信度图减去置信度图,得到置信度偏置图;
深度解算模块400,用于判断所述置信度图的置信度是否大于置信度偏置图的置信度偏置与本底噪声的和,并根据判断结果进行深度解算。
优选地,置信度图计算模块100将所述tof相机采集得到的灰度图,计算得到置信度图包括:
设若干灰度图的像素分别计为i1(x,y)、i2(x,y)、…、in(x,y),其中,(x,y)表示像素坐标,x取值为1、2、…、img_width,y取值为1、2、…、img_height,其中,所述置信度图与灰度图的分辨率相同,即img_width×img_height,并将置信度图计为i_confidence,像素位置为(x,y)的置信度图的像素为i_confidence(x,y),所述置信度图的计算公式为:
i_confidence(x,y)=i_max+i_mid–2×i_min,其中,i_max、i_mid、i_min分别表示i1(x,y)、i2(x,y)、…、in(x,y)的最大值、中间值、最小值。
退化置信度图计算模块200计算所述退化核,将所述退化核计为i_decay_core;将置信度图i_confidence与退化核i_decay_core进行same卷积,得到same卷积的结果作为退化置信度图,其分辨率为img_width×img_height,计为i_confidence_decay,所述退化核由指定的三个gaussian函数生成,所述gaussian函数公式为:
其中,σ为方差;
三个gaussian函数的宽均一致,且为奇数,计为decay_core_width;
三个gaussain函数的高均一致,且为奇数,计为decay_core_height;
三个gaussian函数的方差不全一致,分别计为σ1、σ2、σ3;
三个gaussian函数的权重不全一致,分别计为weight1、weight2、weight3。
令x,y均为相对于中心的位置,即((decay_core_width+1)/2,(decay_core_height+1)/2)为坐标原点,计算三个gaussain函数各个点的值,计为g1(x,y)、g2(x,y)、g3(x,y);
将三个gaussian函数按各自的权重相加,并归一化得到退化核,计为i_decay_core=(weight1×g1(x,y)+weight2×g2(x,y)+weight3×g3(x,y))/(weight1+weight2+weight3)。
图3为本发明实施例提供的电子设备的实体结构示意图,所述电子设备架设于第三方设备中,例如移动终端、便携式计算机、ipad等,如图3所示,该服务器可以包括:一个或多个处理器(processor)610、通信接口(communicationsinterface)620、一个或多个存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行如下方法:将所述tof相机采集得到的灰度图,计算得到置信度图;将所述置信度图与退化核进行卷积计算,得到退化置信度图;将所述退化置信度图减去置信度图,得到置信度偏置图;
判断所述置信度图的置信度是否大于置信度偏置图的置信度偏置与本底噪声的和,根据判断结果进行深度解算。
通信总线640是连接所描述的元素的电路并且在这些元素之间实现传输。例如,处理器610通过通信总线640从其它元素接收到命令,解密接收到的命令,根据解密的命令执行计算或数据处理。存储器630可以包括程序模块,例如内核(kernel),中间件(middleware),应用程序程序编程接口(applicationprogramminginterface,api)和应用程序。该程序模块可以是有软件、固件或硬件、或其中的至少两种组成。通信接口620将该电子设备与其它网络设备、客户端、移动设备、网络进行连接。例如,通信接口620可以通过有线或无线连接到网络以连接到外部其它的网络设备或用户设备。无线通信可以包括以下至少一种:无线保真(wifi),蓝牙(bt),近距离无线通信技术(nfc),全球卫星定位系统(gps)和蜂窝通信等等。有线通信可以包括以下至少一种:通用串行总线(usb),高清晰度多媒体接口(hdmi),异步传输标准接口(rs-232)等等。网络可以是电信网络和通信网络。通信网络可以为计算机网络、因特网、物联网、电话网络。电子设备可以通过通信接口620连接网络,电子设备和其它网络设备通信所用的协议可以被应用程序、应用程序程序编程接口(api)、中间件、内核和通信接口620至少一个支持。
进一步地,本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:将所述tof相机采集得到的灰度图,计算得到置信度图;将所述置信度图与退化核进行卷积计算,得到退化置信度图;将所述退化置信度图减去置信度图,得到置信度偏置图;判断所述置信度图的置信度是否大于置信度偏置图的置信度偏置与本底噪声的和,根据判断结果进行深度解算。
进一步地,本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:将所述tof相机采集得到的灰度图,计算得到置信度图;将所述置信度图与退化核进行卷积计算,得到退化置信度图;将所述退化置信度图减去置信度图,得到置信度偏置图;判断所述置信度图的置信度是否大于置信度偏置图的置信度偏置与本底噪声的和,根据判断结果进行深度解算。
本领域普通技术人员可以理解:此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制,上述实施例均可根据需要自由组合;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。