CN114170290A - 图像的处理方法及相关设备 - Google Patents
图像的处理方法及相关设备 Download PDFInfo
- Publication number
- CN114170290A CN114170290A CN202010950951.0A CN202010950951A CN114170290A CN 114170290 A CN114170290 A CN 114170290A CN 202010950951 A CN202010950951 A CN 202010950951A CN 114170290 A CN114170290 A CN 114170290A
- Authority
- CN
- China
- Prior art keywords
- current image
- map
- depth map
- feature
- depth
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
- G06T7/593—Depth or shape recovery from multiple images from stereo images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
- G06T2207/10021—Stereoscopic video; Stereoscopic image sequence
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
本申请涉及AR领域,具体涉及一种图像的处理方法及装置,方法包括:获取当前图像和虚拟物体图像,并根据所述当前图像获取所述当前图像的第一深度图和第二深度图,其中,所述第二深度图是从服务器获取的;根据所述当前图像、所述第一深度图和所述第二深度图进行深度估计,以得到所述当前图像的目标深度图;根据所述当前图像的目标深度图叠加显示所述虚拟物体图像和所述当前图像。通过基于当前图像、第一深度图和第二深度图进行深度估计,得到高精度的目标深度图,从而解决后续虚实遮挡效果会存在帧间闪烁、不稳定的问题。
Description
技术领域
本申请涉及增强现实(augmentation reality,AR)领域,尤其涉及一种图像的处理方法及相关设备。
背景技术
AR是利用计算机生成的虚拟信息来对真实世界的补充,使虚拟信息与真实世界看起来共存于同一空间中。目前大多数AR应用只是将虚拟物体简单地叠加在真实场景的前方,没有正确处理虚拟物体与真实世界的遮挡关系,容易造成用户感官上的空间位置错乱,不能超越现实的感官体验。无虚实遮挡的效果如图1a所示。在AR应用中,需要处理虚拟物体与真实场景之间的真实关系,即虚实遮挡。有虚实遮挡的效果如图1b所示。正确的遮挡关系能让用户在AR应用中产生合乎自然的正确的空间感知;错误的遮挡关系会降低AR应用的真实感。
当融合图像中存在错误的虚实遮挡关系时,观察者就很难正确地判断虚实物体之间的相对位置关系,难以得到逼真的虚实融合效果,错误的遮挡关系容易导致观察者在感官方向上的迷失和空间位置上的错乱,虚实融合结果不真实。因此,为了强化虚拟物体在现实场景中的真实感,得到逼真的虚实融合效果,解决AR中的遮挡问题具有重要的意义。AR中的虚实遮挡处理侧重于使虚拟物体可以正确地被真实场景中位于其前方的物体所遮挡,它一般利用深度提取或场景建模等手段,以获得虚实融合场景中真实物体和虚拟物体之间的遮挡关系,提取实景图像中前景物体的遮挡边缘,最终生成具有正确遮挡关系的虚实融合图像。
苹果发布最新的IPad Pro 2020,使用RGB图片和直接飞行时间(direct time offlight,dToF)摄像头采集的深度图作为输入,实现全场景的虚实遮挡。基于dToF摄像头采集的深度图、人像分割和单目深度估计来做虚实遮挡,但是单目深度估计存在尺度歧异、不一致问题,从而导致最终的虚实遮挡效果会存在帧间闪烁、不稳定和遮挡边缘不锐利的现象。
发明内容
本申请实施例提供了一种图像的处理方法及相关设备,在本申请中采用云端局部地图更新算法能够解决离线地图和当前使用场景发生变化导致直接使用离线地图点参与深度图估计引入错误的问题,同时解决单目深度估计的尺度歧异、帧间不稳定问题,进而解决虚实遮挡闪烁、帧间遮挡现象不一致的问题;通过对当前图像的目标深度图进行边缘优化得到优化后的深度图,再将多帧深度图进行融合,得到人像边缘更加锐利的深度图,有利于提升虚实遮挡效果。
第一方面,本申请实施例提供一种图像的处理方法,包括:
获取当前图像和虚拟物体图像,并根据当前图像获取当前图像的第一深度图和第二深度图,其中,第二深度图是从服务器中获取的;根据当前图像、当前图像的第一深度图和第二深度图进行特征提取,并根据特征提取的结果得到当前图像的目标深度图。
通过对当前图像、第一深度图和第二深度图进行深度估计,得到高精度的目标深度图。
在一个可行的实施例中,本实施的方法还包括:
根据当前图像的目标深度图叠加显示虚拟物体图像和当前图像。
通过引入高精度的目标深度图,解决了虚实遮挡效果会存在帧间闪烁、不稳定的问题。
在一个可行的实施例中,根据当前图像获取当前图像的第一深度图,包括:
对当前图像进行特征提取,以得到当前图像的第一2D特征点;将当前图像的第一2D特征点与预先存储的2D特征点进行匹配,得到当前图像中的第二2D特征点;根据当前图像中的第二2D特征点和预先存储的2D特征点与3D点的对应关系,获取当前图像中的第二2D特征点对应的3D点;其中,当前图像的第一深度图包括当前图像中的第二2D特征点对应的3D点。
其中,特征点指的是图像灰度值发生剧烈变化的点或者在图像边缘上曲率较大的点(即两个边缘的交点)。
上述预选存储的2D特征点与3D点的对应关系,表示对于预选存储的每个2D特征点,均有与之对应的3D点。
对于本申请中所说的2D特征点相匹配具体是指相匹配的两个2D特征点的相似度高于预设相似度。
通过将当前图像的2D特征点与预先存储的2D特征点进行匹配,根据匹配结果得到第一深度图,进而可基于第一深度图进行深度估计,以得到高精度的目标深度图。
在一个可行的实施例中,根据当前图像获取当前图像的第一深度图,包括:
对当前图像进行特征提取,以得到当前图像的第一2D特征点;根据从服务器获取的局部地图的2D特征点对当前图像的第一2D特征点进行匹配,得到局部地图中的第三2D特征点;根据局部地图中的第二2D特征点和局部地图的中的2D特征点与3D点的对应关系,获取局部地图中的第三2D特征点对应的3D点;其中,当前图像的第一深度图包括局部地图中的第三2D特征点对应的3D点。
通过将当前图像和局部地图进行2D特征点匹配,根据匹配结果得到第一深度图,进而可基于第一深度图进行深度估计,以得到高精度的目标深度图。
在一个可行的实施例中,根据局部地图的2D特征点对当前图像的第一2D特征点进行匹配,得到局部地图中的第三2D特征点,包括:
根据第一位姿从局部地图中获取目标地图,目标地图在局部地图中的位置与第一位姿中的角度信息所指示的位置是相关联的;第一位姿为将终端设备根据当前图像获取的位姿转化为在世界坐标系下的位姿,将目标地图中的2D特征点与当前图像的第一2D特征点进行匹配,以得到目标地图的第三2D特征点,局部地图的第三2D特征点包括目标地图的第三2D特征点。
其中,世界坐标系是系统的绝对坐标系,在没有建立用户坐标系之前画面上所有点的坐标都是以该坐标系的原点来确定各自的位置的。
通过第一位姿从局部地图中确定目标地图,缩小了匹配范围,提高了确定第一深度图的效率。
在一个可行的实施例中,根据当前图像、第一深度图和第二深度图进行特征提取,并根据特征提取的结果得到当前图像的目标深度图,包括:
对当前图像进行多尺度特征提取,得到T张第一特征图,并对第三深度图进行特征提取,得到T张第二特征图;T张第一特征图中每张第一特征图的分辨率各不相同,T张第二特征图中每张第二特征图的分辨率各不相同;T为大于1的整数;将T张第一特征图和T张第二特征图中,分辨率相同的第一特征图和第二特征图进行叠加,得到T张第三特征图;对T张第三特征图进行上采样和融合处理,以得到当前图像的目标深度图;其中,第三深度图为上述第一深度图,或者第三深度图为上述第一深度图是对第一深度图和第二深度图进行拼接得到的。
多尺度特征提取具体是指采用多个不同的卷积核对图像进行卷积的操作。
本申请中的“叠加”具体是指将进行叠加的图像在像素级别进行处理,比如叠加的两张图像包括尺寸为H*W,叠加得到的图像的尺寸为H*2W,或者2H*W;再比如叠加的三张图像包括尺寸为H*W,叠加得到的图像的尺寸为H*3W,或者3H*W。
通过基于第一深度图和第二深度图进行深度估计,以得到高精度的目标深度图,从而解决后续虚实遮挡效果会存在帧间闪烁、不稳定的问题。
在一个可行的实施例中,根据当前图像、第一深度图和第二深度图进行特征提取,并根据特征提取的结果得到当前图像的目标深度图,包括:
对当前图像进行多尺度特征提取,得到T张第一特征图,并对第三深度图进行多尺度特征提取,得到T张第二特征图;对参考深度图进行多尺度特征提取,得到T张第四特征图,T张第一特征图中每张第一特征图的分辨率各不相同,T张第二特征图中每张第二特征图的分辨率各不相同,T张第四特征图中每张第四特征图的分辨率各不相同;参考深度图是根据飞行时间(time of flight,TOF)摄像头采集的深度图获取的,T为大于1的整数;将T张第一特征图、T张第二特征图和T张第四特征图中,分辨率相同的第一特征图、第二特征图和第四特征图进行叠加,得到T张第五特征图;对T张第五特征图进行上采样和融合处理,以得到当前图像的目标深度图;其中,第三深度图是对第一深度图和第二深度图进行拼接得到的,或者第三深度图为上述第一深度图。
在深度估计时引入TOF摄像头采集的深度图,进一步提高了当前图像的目标深度图的精度,从而解决后续虚实遮挡效果会存在帧间闪烁、不稳定的问题。
在一个可行的实施例中,参考深度图是根据TOF摄像头采集的图像获取的,具体包括:
根据当前图像的位姿将TOF摄像头采集的深度图投影到三维空间中,得到对应的第四深度图;根据参考图像的位姿将第四深度图反投影到参考图像上,得到参考深度图;参考图像为在采集时间上与当前图像相邻的图像;其中,TOF摄像头采集的深度图的分辨率低于预设分辨率,且TOF摄像头采集该深度图时的帧率低于预设帧率。
为了降低终端设备的功耗,降低TOF摄像头采集的深度图的帧率和该深度图的分辨率。
在一个可行的实施例中,上述上采样和融合处理,包括:
S1:对特征图P’j进行上采样,得到特征图P”j,该特征图P”j的分辨率与处理对象中的第j+1张特征图Pj+1的分辨率相同,特征图Pj+1的宽为处理对象中分辨率最小的特征图的宽的j+1倍,j为大于0且小于T的整数;T为处理对象中特征图的数量;
S2:将特征图P”j与特征图Pj+1进行融合,得到第三特征图P’j+1,
S3:令j=j+1,并重复执行S1-S3,直至j=T-1;
其中,当j=1时,第三特征图P’j为处理对象中分辨率最小的特征图,当j=T-1时,第三特征图P’j+1为上采样和融合处理的结果。
在一个可行的实施例中,根据当前图像、第一深度图和第二深度图进行特征提取,并根据特征提取的结果得到当前图像的目标深度图,包括:
将当前图像及第三深度图输入到当前图像的深度估计模型中进行特征提取,并根据特征提取的结果得到当前图像的目标深度图,其中,深度估计模型是基于卷积神经网络实现的。
在一个可行的实施例中,本申请的方法还包括:
向服务器发送深度估计模型获取请求,该深度估计模型获取请求携带有当前图像和所述终端设备的位置;接收服务器发送的相应于深度估计模型获取请求的响应消息,该响应消息携带有当前图像的深度估计模型,当前图像的深度估计模型为服务器根据当前图像和终端设备在世界坐标系下的位置获取的。
可选地,世界坐标系可以为通用横墨卡托格网系统(universal transversemercator grid system,UTM)坐标系或GPS坐标系等。
通过从服务器中获取深度估计模型,使得终端设备不用自己训练得到深度估计模型,降低了终端设备的功耗,同时提高了虚实遮挡的实时性。
在一个可行的实施例中,本申请的方法还包括:
对初始卷积神经网络模型进行训练,以得到深度估计模型;
其中,对初始卷积神经网络进行训练,以得到深度估计模型,包括:
将多张图像样本及其对应的多张深度图样本输入到初始卷积神经网络中进行处理,以得到多张预测深度图;根据多张预测深度图及与多张图像样本对应的真实深度图和损失函数计算得到损失值;根述损失值调整初始卷积神经网络中的参数,以得到当前图像的深度估计模型;其中,损失函数是基于预测深度图和真实深度图之间的误差、预测深度图的梯度和真实深度图的梯度之间的误差及预测深度图的法向量和真实深度图的法向量之间的误差确定的。
在此需要指出的是,上述只是一次训练过程;在实际应用中,会按照上述方式多次迭代,直至计算得到的损失值收敛;将损失值收敛时的卷积神经网络模型确定为当前图像的深度估计模型。
在一个可行的实施例中,根据当前图像的目标深度图叠加显示虚拟物体图像和当前图像,包括:
对当前图像的目标深度图进行边缘优化,以得到优化后的深度图;根据优化后的深度图叠加显示虚拟物体图像和当前图像。
通过对当前图像的目标深度图进行边缘优化,得到人像边缘锐利的深度图,有利于提升虚实遮挡效果。
在一个可行的实施例中,根据当前图像的目标深度图叠加显示虚拟物体图像和当前图像,包括:
对优化后的深度图进行分割,得到当前图像的前景深度图和背景深度图,背景深度图为优化后的深度图中含有背景区域的深度图,前景深度图为优化后的深度图中含有前景区域的深度图,优化后的深度图是对当前图像的目标深度图进行边缘优化得到的;根据L张背景深度图分别对应的L个位姿对该L张背景深度图进行融合,以得到融合后的三维场景;L张背景深度图包括预先存储的图像的背景深度图和当前图像的背景深度图,L个位姿包括预先存储的图像和当前图像的位姿;L为大于1的整数;根据当前图像的位姿对融合后的三维场景进行反投影,以得到融合后的背景深度图;将融合后的背景深度图和当前图像的前景深度图进行拼接,得到更新后的深度图;根据更新后的深度图叠加显示虚拟物体图像和当前图像。
在此需要指出的是,前景区域至的是感兴趣物体所在的区域,比如人、汽车、动植物等显著物体;背景区域为图像中除了前景区域之外的区域。
通过对当前图像的目标深度图进行边缘优化得到优化后的深度图,再将多帧深度图进行融合,得到边缘更加锐利的深度图,有利于进一步提升虚实遮挡效果。
第二方面,本申请实施例提供另一种图像的处理方法,包括:
接收终端设备发送的深度估计模型获取请求,该深度估计模型获取请求携带有终端设备采集的当前图像和终端设备的位置;根据当前图像的位置从服务器中存储的多个深度估计模型中获取当前图像的深度估计模型;向终端设备发送响应于深度估计模型获取请求的响应消息,响应消息携带有当前图像的深度估计模型。
为了提高深度估计的精度,在服务器中,会针对每一位置都会单独训练得到一个深度估计模型;在进行深度估计时,基于当前图像和终端设备的位置从服务器中获取当前图像的深度估计模型。
在一个可行的实施例中,根据当前图像的位置从服务器中存储的多个深度估计模型中获取当前图像的深度估计模型,包括:
根据终端设备的位置获取多帧第一图像,该多帧第一图像为基础地图中以终端设备的位置为中心的预设范围内的图像,从多帧第一图像中获取目标图像,目标图像为多帧第一图像中与当前图像的相似度最高的图像;将目标图像对应的深度估计模型确定为当前图像的深度估计模型。
具体地,根据终端设备的位置获取多帧第一图像,该多帧第一图像为基础地图中以终端设备的位置为中心的预设范围内的图像,从多帧第一图像中获取目标图像,目标图像为多帧第一图像中与当前图像的相似度最高的图像;根据目标图像的位姿得到当前图像的位姿;根据当前图像的位姿中的位置从服务器中确定出该位置对应的深度估计模型,该深度估计模型即为当前图像的深度估计模型。
在一个可行的实施例中,本申请的方法还包括:
对于多帧第一图像,分别训练得到多帧第一图像中每帧第一图像的深度估计模块,
其中,对于多帧第一图像中的每一帧第一图像,按照以下步骤进行训练,得到每一第一图像的深度估计模型:
将多张图像样本及其对应的多张深度图样本输入到初始卷积神经网络中进行处理,以得到多张预测深度图;根据多张预测深度图及与多张图像样本对应的真实深度图和损失函数计算得到损失值;根据损失值调整初始卷积神经网络中的参数,以得到每一帧第一图像的深度估计模型;其中,损失函数是基于预测深度图和真实深度图之间的误差、预测深度图的梯度和真实深度图的梯度之间的误差、以及,预测深度图的法向量和真实深度图的法向量之间的误差确定的。
在此需要指出的是,上述只是一次训练过程;在实际应用中,会按照上述方式多次迭代,直至计算得到的损失值收敛;将损失值收敛时的卷积神经网络模型确定为当前图像的深度估计模型。
在一个可行的实施例中,本实施例的方法还包括:
根据当前图像和预先存储的图像获取当前图像的初始深度图,;根据当前图像和局部地图对应的3D点得到第五深度图;根据当前图像的位姿对初始深度图和第五深度图进行优化,以得到第二深度图。
可选地,预先存储的图像为终端设备上传的,且预先存储的图像的时间戳位于当前图像的时间戳之前。
在一个可行的实施例中,根据当前图像和预先存储的图像获取当前图像的初始深度图,包括:
将当前图像的第一2D特征点与预先存储的图像的2D特征点进行匹配,以得到当前图像的第六2D特征点;将当前图像的第六2D特征点中的噪声点剔除,以得到当前图像的第七2D特征点;对当前图像的第七2D特征点中的每个2D特征点进行三角化计算,得到当前图像的第七2D特征点在空间中的初始3D点;当前图像的初始深度图包括当前图像的第七2D特征点在空间中的初始3D点。
在一个可行的实施例中,根据当前图像和局部地图对应的3D点得到第五深度图,包括
从多帧基础地图中,获取M张地图,该M张地图中每张地图与当前图像相似度大于第一预设阈值;M为大于0的整数;将M张地图的2D特征点与当前图像的第一2D特征点进行匹配,得到多个特征点匹配对;多个特征点匹配对中的每个特征点匹配对包括第四2D特征点和第五2D特征点,第四2D特征点与第五2D特征点为相互匹配的特征点,第四2D特征点为当前图像的第一2D特征点,第五2D特征点为M张地图中的2D特征点;根据M张地图中每个第五2D特征点与3D点的对应关系,获取多个特征点匹配对中每个第四2D特征点对应的3D点;根据局部地图对应的3D点和所述多个特征点匹配对中第四2D特征点对应的3D点,获取第五深度图,该第五深度图包括局部地图对应的3D点中,与多个特征点匹配对中第四2D特征点对应的3D点相匹配的3D点。
通过上面的方式可以使得服务器中的离线地图不断被终端设备上传的图像更新,使得离线地图和用户使用时周围环境保持一致,从而提供高精度的3D点云信息。通过这种方式得到的云端局部地图能够保持与用户使用的环境一致,且用户上传的图像越多,更新就越彻底,具有越用越准的特点,从而解决后续虚实遮挡效果会存在帧间闪烁、不稳定的问题。
第三方面,本申请实施例提供一种终端设备,包括:
获取单元,用于获取当前图像,并根据当前图像获取当前图像的第一深度图和第二深度图,其中,第二深度图是从服务器中获取的;
估计单元,用于根据当前图像、当前图像的第一深度图和第二深度图进行特征提取,并根据特征提取的结果得到当前图像的目标深度图。
在一个可行的实施例中,获取单元,还用于虚拟物体图像;
终端设备还包括:
叠加显示单元,用于根据当前图像的目标深度图叠加显示虚拟物体图像和当前图像。
在一个可行的实施例中,在根据当前图像获取当前图像的第一深度图的方面,获取单元具体用于:
对当前图像进行特征提取,以得到当前图像的第一2D特征点;将当前图像的第一2D特征点与预先存储的2D特征点进行匹配,得到当前图像中的第二2D特征点;根据当前图像中的第二2D特征点和预先存储的2D特征点与3D点的对应关系,获取当前图像中的第二2D特征点对应的3D点;其中,当前图像的第一深度图包括当前图像中的第二2D特征点对应的3D点。
在一个可行的实施例中,在根据当前图像获取当前图像的第一深度图的方面,获取单元具体用于:
对当前图像进行特征提取,以得到当前图像的第一2D特征点;根据从服务器获取的局部地图的2D特征点对当前图像的第一2D特征点进行匹配,得到局部地图中的第三2D特征点;根据局部地图中的第二2D特征点和局部地图的中的2D特征点与3D点的对应关系,获取局部地图中的第三2D特征点对应的3D点;其中,当前图像的第一深度图包括局部地图中的第三2D特征点对应的3D点。
在一个可行的实施例中,在根据局部地图的2D特征点对当前图像的第一2D特征点进行匹配,得到局部地图中的第三2D特征点的方面,获取单元具体用于:
根据第一位姿从局部地图中获取目标地图,目标地图在局部地图中的位置与第一位姿中的角度信息所指示的位置是相关联的;第一位姿为将终端设备根据当前图像获取的位姿转化为在世界坐标系下的位姿,将目标地图中的2D特征点与当前图像的第一2D特征点进行匹配,以得到目标地图的第三2D特征点,局部地图的第三2D特征点包括目标地图的第三2D特征点。
在一个可行的实施例中,估计单元具体用于:
对当前图像进行多尺度特征提取,得到T张第一特征图,并对第三深度图进行特征提取,得到T张第二特征图;T张第一特征图中每张第一特征图的分辨率各不相同,T张第二特征图中每张第二特征图的分辨率各不相同;T为大于1的整数;将T张第一特征图和T张第二特征图中,分辨率相同的第一特征图和第二特征图进行叠加,得到T张第三特征图;对T张第三特征图进行上采样和融合处理,以得到当前图像的目标深度图;其中,第三深度图为上述第一深度图或者是对第一深度图和第二深度图进行拼接得到的。
在一个可行的实施例中,估计单元具体用于:
对当前图像进行多尺度特征提取,得到T张第一特征图,并对第三深度图进行多尺度特征提取,得到T张第二特征图;对参考深度图进行多尺度特征提取,得到T张第四特征图,T张第一特征图中每张第一特征图的分辨率各不相同,T张第二特征图中每张第二特征图的分辨率各不相同,T张第四特征图中每张第四特征图的分辨率各不相同;参考深度图是根据TOF摄像头采集的深度图获取的,T为大于1的整数;将T张第一特征图、T张第二特征图和T张第四特征图中,分辨率相同的第一特征图、第二特征图和第四特征图进行叠加,得到T张第五特征图;对T张第五特征图进行上采样和融合处理,以得到当前图像的目标深度图;其中,第三深度图是对第一深度图和第二深度图进行拼接得到的,或者第三深度图为上述第一深度图。
在一个可行的实施例中,参考深度图是根据TOF摄像头采集的图像获取的,具体包括:
根据当前图像的位姿将TOF摄像头采集的深度图投影到三维空间中,得到第四深度图;根据参考图像的位姿将第四深度图反投影到参考图像上,得到参考深度图;参考图像为在采集时间上与当前图像相邻的图像;其中,TOF摄像头采集的深度图的分辨率低于预设分辨率,且TOF摄像头采集该深度图时的帧率低于预设帧率。
在一个可行的实施例中,上述上采样和融合处理,包括:
S1:对特征图P’j进行上采样,得到特征图P”j,该特征图P”j的分辨率与处理对象中的第j+1张特征图Pj+1的分辨率相同,特征图Pj+1的宽为处理对象中分辨率最小的特征图的宽的j+1倍,j为大于0且小于T的整数;T为处理对象中特征图的数量;
S2:将特征图P”j与特征图Pj+1进行融合,得到第三特征图P’j+1,
S3:令j=j+1,并重复执行S1-S3,直至j=T-1;
其中,当j=1时,第三特征图P’j为处理对象中分辨率最小的特征图,当j=T-1时,第三特征图P’j+1为上采样和融合处理的结果。
在一个可行的实施例中,估计单元具体用于:
将当前图像及第三深度图输入到当前图像的深度估计模型中进行特征提取,并根据特征提取的结果得到当前图像的目标深度图,其中,深度估计模型是基于卷积神经网络实现的。
在一个可行的实施例中,终端设备还包括:
发送单元,用于向服务器发送深度估计模型获取请求,该深度估计模型获取请求携带有当前图像和所述终端设备的位置;
接收单元,用于接收服务器发送的相应于深度估计模型获取请求的响应消息,该响应消息携带有当前图像的深度估计模型,当前图像的深度估计模型为服务器根据当前图像和终端设备在世界坐标系下的位置获取的。
在一个可行的实施例中,终端设备还包括:
训练单元,用于对初始卷积神经网络模型进行训练,以得到深度估计模型;其中,训练单元具体用于:
将多张图像样本及其对应的多张深度图样本输入到初始卷积神经网络中进行处理,以得到多张预测深度图;根据多张预测深度图及与多张图像样本对应的真实深度图和损失函数计算得到损失值;根述损失值调整初始卷积神经网络中的参数,以得到当前图像的深度估计模型;其中,损失函数是基于预测深度图和真实深度图之间的误差、预测深度图的梯度和真实深度图的梯度之间的误差及预测深度图的法向量和真实深度图的法向量之间的误差确定的。
在一个可行的实施例中,叠加显示单元具体用于:
对当前图像的目标深度图进行边缘优化,以得到优化后的深度图;根据优化后的深度图叠加显示虚拟物体图像和当前图像。
在一个可行的实施例中,叠加显示单元具体用于:
对优化后的深度图进行分割,得到当前图像的前景深度图和背景深度图,背景深度图为优化后的深度图中含有背景区域的深度图,前景深度图为优化后的深度图中含有前景区域的深度图,优化后的深度图是对当前图像的目标深度图进行边缘优化得到的;根据L张背景深度图分别对应的L个位姿对该L张背景深度图进行融合,以得到融合后的三维场景;L张背景深度图包括预先存储的图像的背景深度图和当前图像的背景深度图,L个位姿包括预先存储的图像和当前图像的位姿;L为大于1的整数;根据当前图像的位姿对融合后的三维场景进行反投影,以得到融合后的背景深度图;将融合后的背景深度图和当前图像的前景深度图进行拼接,得到更新后的深度图;根据更新后的深度图叠加显示虚拟物体图像和当前图像。
第四方面,本申请实施例提供一种服务器,包括:
接收单元,用于接收终端设备发送的深度估计模型获取请求,该深度估计模型获取请求携带有终端设备采集的当前图像和终端设备的位置;
获取单元,用于根据当前图像的位置从服务器中存储的多个深度估计模型中获取当前图像的深度估计模型;
发送单元,用于向终端设备发送响应于深度估计模型获取请求的响应消息,响应消息携带有当前图像的深度估计模型。
在一个可行的实施例中,获取单元具体用于:
根据终端设备的位置获取多帧第一图像,该多帧第一图像为基础地图中以终端设备的位置为中心的预设范围内的图像,从多帧第一图像中获取目标图像,目标图像为多帧第一图像中与当前图像的相似度最高的图像;将目标图像对应的深度估计模型确定为当前图像的深度估计模型。
在一个可行的实施例中,服务器还包括:
训练单元,用于对于多帧第一图像,分别训练得到多帧第一图像中每帧第一图像的深度估计模块,
其中,对于多帧第一图像中的每一帧第一图像,按照以下步骤进行训练,得到每一第一图像的深度估计模型:
将多张图像样本及其对应的多张深度图样本输入到初始卷积神经网络中进行处理,以得到多张预测深度图;根据多张预测深度图及与多张图像样本对应的真实深度图和损失函数计算得到损失值;根据损失值调整初始卷积神经网络中的参数,以得到每一帧第一图像的深度估计模型;
其中,损失函数是基于预测深度图和真实深度图之间的误差、预测深度图的梯度和真实深度图的梯度之间的误差、以及,预测深度图的法向量和真实深度图的法向量之间的误差确定的。
在一个可行的实施例中,获取单元,还用于根据当前图像和预先存储的图像获取当前图像的初始深度图;根据当前图像和局部地图对应的3D点得到第五深度图;
服务器还包括:
优化单元,用于根据当前图像的位姿对初始深度图和第五深度图进行优化,以得到第二深度图。
在一个可行的实施例中,在根据当前图像和预先存储的图像获取当前图像的初始深度图的方面,获取单元具体用于:
将当前图像的第一2D特征点与预先存储的图像的2D特征点进行匹配,以得到当前图像的第六2D特征点;将当前图像的第六2D特征点中的噪声点剔除,以得到当前图像的第七2D特征点;对当前图像的第七2D特征点中的每个2D特征点进行三角化计算,得到当前图像的第七2D特征点在空间中的初始3D点;当前图像的初始深度图包括当前图像的第七2D特征点在空间中的初始3D点。
在一个可行的实施例中,在根据当前图像和局部地图对应的3D点得到第五深度图的方面,获取单元具体用于:
从多帧基础地图中,获取M张地图,该M张地图中每张地图与当前图像相似度大于第一预设阈值;M为大于0的整数;将M张地图的2D特征点与当前图像的第一2D特征点进行匹配,得到多个特征点匹配对;多个特征点匹配对中的每个特征点匹配对包括第四2D特征点和第五2D特征点,第四2D特征点与第五2D特征点为相互匹配的特征点,第四2D特征点为当前图像的第一2D特征点,第五2D特征点为M张地图中的2D特征点;根据M张地图中每个第五2D特征点与3D点的对应关系,获取多个特征点匹配对中每个第四2D特征点对应的3D点;根据局部地图对应的3D点和所述多个特征点匹配对中第四2D特征点对应的3D点,获取第五深度图,该第五深度图包括局部地图对应的3D点中,与多个特征点匹配对中第四2D特征点对应的3D点相匹配的3D点。
第五方面,本申请实施例提供一种终端设备,包括存储器,一个或多个处理器;其中,一个或多个程序被存储在存储器中;一个或多个处理器在执行一个或多个程序时,使得终端设备实现如第一方面所述方法的部分或全部。
第六方面,本申请实施例提供一种服务器,包括存储器,一个或多个处理器;其中,一个或多个程序被存储在存储器中;一个或多个处理器在执行一个或多个程序时,使得服务器实现如第二方面所述方法的部分或全部。
第七方面,本申请实施例提供一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如第一方面或第二方面所述方法的部分或全部。
第八方面,本申请实施例提供一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如第一方面或第二方面所述方法的部分或全部。
应理解,上述任意一种可能的实现方式,在不违背自然规律的前提下,可以自由组合,本申请中不予以赘述。
应当理解的是,本申请中对技术特征、技术方案、有益效果或类似语言的描述并不是暗示在任意的单个实施例中可以实现所有的特点和优点。相反,可以理解的是对于特征或有益效果的描述意味着在至少一个实施例中包括特定的技术特征、技术方案或有益效果。因此,本说明书中对于技术特征、技术方案或有益效果的描述并不一定是指相同的实施例。进而,还可以任何适当的方式组合本实施例中所描述的技术特征、技术方案和有益效果。本领域技术人员将会理解,无需特定实施例的一个或多个特定的技术特征、技术方案或有益效果即可实现实施例。在其他实施例中,还可在没有体现所有实施例的特定实施例中识别出额外的技术特征和有益效果。
附图说明
图1a为无虚实遮挡的效果示意图;
图1b为有虚实遮挡的效果示意图;
图1c为本申请实施例提供了一种系统架构示意图;
图1d为一种CNN的结构示意图;
图1e为本申请实施例提供的一种芯片硬件结构示意图;
图1f为本申请实施例提供了另一种系统架构示意图;
图2为本申请实施例提供的应用场景示意图;
图3为本申请实施例提供的一种图像的处理方法的流程示意图;
图4为基础地图、局部地图和处理后的局部地图的关系示意图;
图5为本申请实施例提供的另一种图像的处理方法的流程示意图;
图6为采用本申请实施例的虚实遮挡的效果示意图;
图7为本申请实施例提供的一种终端设备的结构示意图;
图8为本申请实施例提供的另一种终端设备的结构示意图;
图9为本申请实施例提供的一种系统结构示意图;
图10为本申请实施例提供的另一种系统结构示意图;
图11为本申请实施例提供的另一种终端设备的结构示意图;
图12为本申请实施例提供的一种服务器的结构示意图;
图13为本申请实施例提供的另一种终端设备的结构示意图;
图14为本申请实施例提供的另一种服务器的结构示意图。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行清除、详尽地描述。
以下,术语“第一”、“第二”等类似词汇在一些情形下仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
由于本申请实施例涉及大量神经网络的应用,为了便于理解,下面先对本申请实施例涉及的相关术语及神经网络等相关概念进行介绍。
(1)神经网络
神经网络可以是由神经单元组成的,神经单元可以是指以xs和截距1为输入的运算单元,该运算单元的输出可以为:
其中,s=1、2、……n,n为大于1的自然数,Ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于对神经网络中获取到的特征进行非线性变换,将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入。激活函数可以是sigmoid函数。神经网络是将许多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
(2)深度神经网络
深度神经网络(deep neural network,DNN),可以理解为具有很多层隐含层的神经网络,这里的“很多”并没有特别的度量标准,常说的多层神经网络和深度神经网络其本质上是同一个东西。从DNN按不同层的位置划分,DNN内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。虽然DNN看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:其中是输入向量,是输出向量,是偏移向量,W是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量经过如此简单的操作得到输出向量由于DNN层数多,则系数W和偏移向量的数量也就是很多了。那么,具体的参数在DNN是如何定义的呢?首先我们来看看系数W的定义。以一个三层的DNN为例,如:第二层的第4个神经元到第三层的第2个神经元的线性系数定义为上标3代表系数W所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。总结下,第L-1层的第k个神经元到第L层的第j个神经元的系数定义为注意,输入层是没有W参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。
(3)卷积神经网络
卷积神经网络(convolutional neuron network,CNN)是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器,该特征抽取器可以看作是滤波器。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取特征的方式与位置无关。卷积核可以以随机大小的矩阵的形式化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
(4)损失函数
在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断地调整,直到深度神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。
下面介绍本申请实施例提供的系统架构。
参见附图1c,本申请实施例提供了一种系统架构。如系统架构所示,数据采集设备160用于采集训练数据。示例性地,本申请实施例中训练数据可以包括:图像样本、深度图样本和真实深度图;在采集到训练数据之后,数据采集设备160将这些训练数据存入数据库130,训练设备120基于数据库130中维护的训练数据训练得到深度估计模型101。
下面对训练设备120基于训练数据得到深度估计模型101进行描述。示例性地,训练设备120对图像样本和深度图样本进行处理,根据输出的预测深度图与真实深度图、及损失函数计算损失值,直到计算得到的损失值收敛,从而完成深度估计模型101的训练。
该深度估计模型101能够用于实现本申请实施例提供的图像的处理方法,即,将当前图像,第一深度图和第二深度图通过相关预处理后输入该深度估计模型101,即当前图像的目标深度图。本申请实施例中的深度估计模型101具体可以为神经网络。需要说明的是,在实际的应用中,数据库130中维护的训练数据不一定都来自于数据采集设备160的采集,也有可能是从其他设备接收得到的。另外需要说明的是,训练设备120也不一定完全基于数据库130维护的训练数据进行深度估计模型101的训练,也有可能从云端或其他地方获取训练数据进行模型训练,上述描述不应该作为对本申请实施例的限定。
根据训练设备120训练得到的深度估计模型101可以应用于不同的系统或设备中,如应用于图1c所示的执行设备110,所述执行设备110可以是终端,如手机终端,平板电脑,笔记本电脑,AR虚拟现实(virtual reality,VR),车载终端等,还可以是服务器或者云端等。在附图1c中,执行设备110配置有(input/output,I/O)接口112,用于与外部设备进行数据交互,用户可以通过客户设备140向I/O接口112输入数据,所述输入数据在本申请实施例中可以包括:当前图像,或者当前图像和第一深度图。
在执行设备110对输入数据进行预处理,或者在执行设备110的计算模块111执行计算等相关的处理过程中,执行设备110可以调用数据存储系统150中的数据、代码等以用于相应的处理,也可以将相应处理得到的数据、指令等存入数据存储系统150中。
最后,I/O接口112将处理结果,如上述得到的当前图像的目标深度图返回给客户设备140,从而提供给用户。
值得说明的是,训练设备120可以针对不同的目标或称不同的任务,基于不同的训练数据生成相应的深度估计模型101,该相应的深度估计模型101即可以用于实现上述目标或完成上述任务,从而为用户提供所需的结果。
在附图1c中所示情况下,用户可以手动给定输入数据,该手动给定可以通过I/O接口112提供的界面进行操作。另一种情况下,客户设备140可以自动地向I/O接口112发送输入数据,如果要求客户设备140自动发送输入数据需要获得用户的授权,则用户可以在客户设备140中设置相应权限。用户可以在客户设备140查看执行设备110输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备140也可以作为数据采集端,采集如图所示输入I/O接口112的输入数据及输出I/O接口112的输出结果作为新的样本数据,并存入数据库130。当然,也可以不经过客户设备140进行采集,而是由I/O接口112直接将如图所示输入I/O接口112的输入数据及输出I/O接口112的输出结果,作为新的样本数据存入数据库130。
值得注意的是,附图1c仅是本申请实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在附图1c中,数据存储系统150相对执行设备110是外部存储器,在其它情况下,也可以将数据存储系统150置于执行设备110中。
如图1c所示,根据训练设备120训练得到深度估计模型101,该深度估计模型101在本申请实施例中可以是本申请中的神经网络,具体的,本申请中的神经网络可以包括CNN或深度卷积神经网络(deep convolutional neural networks,DCNN)等等。
由于CNN是一种常见的神经网络,下面结合图1d重点对CNN的结构进行详细的介绍。如前文的基础概念介绍所述,卷积神经网络是一种带有卷积结构的深度神经网络,是一种深度学习(deep learning)架构,深度学习架构是指通过机器学习的算法,在不同的抽象层级上进行多个层次的学习。作为一种深度学习架构,CNN是一种前馈(feed-forward)人工神经网络,该前馈人工神经网络中的各个神经元可以对输入其中的图像作出响应。
如图1d所示,卷积神经网络(CNN)可以包括输入层11,卷积层/池化层12(其中池化层为可选的),以及神经网络层13和输出层14。
卷积层/池化层12:
卷积层:
如图1d所示卷积层/池化层12可以包括如示例121-126层,举例来说:在一种实现中,121层为卷积层,122层为池化层,123层为卷积层,124层为池化层,125为卷积层,126为池化层;在另一种实现方式中,121、122为卷积层,123为池化层,124、125为卷积层,126为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。
下面将以卷积层121为例,介绍一层卷积层的内部工作原理。
卷积层121可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素……这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关,需要注意的是,权重矩阵的纵深维度(depth dimension)和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用多个尺寸(行×列)相同的权重矩阵,即多个同型矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度,这里的维度可以理解为由上面所述的“多个”来决定。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化等。该多个权重矩阵尺寸(行×列)相同,经过该多个尺寸相同的权重矩阵提取后的特征图的尺寸也相同,再将提取到的多个尺寸相同的特征图合并形成卷积运算的输出。
这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以用来从输入图像中提取信息,从而使得卷积神经网络10进行正确的预测。
当卷积神经网络10有多个卷积层的时候,初始的卷积层(例如121)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络10深度的加深,越往后的卷积层(例如126)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于待解决的问题。
池化层:
由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,在如图1d中12所示例的121-126各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在图像处理过程中,池化层的唯一目的就是减少图像的空间大小。池化层可以包括平均池化算子和/或最大池化算子,以用于对输入图像进行采样得到较小尺寸的图像。平均池化算子可以在特定范围内对图像中的像素值进行计算产生平均值作为平均池化的结果。最大池化算子可以在特定范围内取该范围内值最大的像素作为最大池化的结果。另外,就像卷积层中用权重矩阵的大小应该与图像尺寸相关一样,池化层中的运算符也应该与图像的大小相关。通过池化层处理后输出的图像尺寸可以小于输入池化层的图像的尺寸,池化层输出的图像中每个像素点表示输入池化层的图像的对应子区域的平均值或最大值。
神经网络层13:
在经过卷积层/池化层12的处理后,卷积神经网络10还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层12只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或其他相关信息),卷积神经网络10需要利用神经网络层13来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层13中可以包括多层隐含层(如图1d所示的131、132至13n),该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括图像识别,图像分类,图像超分辨率重建等等……
在神经网络层13中的多层隐含层之后,也就是整个卷积神经网络10的最后层为输出层14,该输出层14具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络10的前向传播(如图1d由11至14方向的传播为前向传播)完成,反向传播(如图1d由14至11方向的传播为反向传播)就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络10的损失,及卷积神经网络10通过输出层输出的结果和理想结果之间的误差。
需要说明的是,如图1d所示的卷积神经网络10仅作为一种卷积神经网络的示例,在具体的应用中,卷积神经网络还可以以其他网络模型的形式存在,例如,仅包括图1d中所示的网络结构的一部分,比如,本申请实施例中所采用的卷积神经网络可以仅包括输入层11、卷积层/池化层12和输出层14。
下面介绍本申请实施例提供的一种芯片硬件结构。
图1f为本申请实施例提供的一种芯片硬件结构,该芯片包括神经网络处理器30。该芯片可以被设置在如图1c所示的执行设备110中,用以完成计算模块111的计算工作。该芯片也可以被设置在如图1c所示的训练设备120中,用以完成训练设备120的训练工作并输出深度图估计模型101。如图1d所示的卷积神经网络中各层的算法均可在如图1f所示的芯片中得以实现。本申请实施例中的图像融合方法以及图像融合模型的训练方法均可在如图1f所示的芯片中得以实现。
神经网络处理器30可以是神经网络处理器(neural-network processing unit,NPU),张量处理器(tensor processing unit,TPU),或者图形处理器(graphicsprocessing unit,GPU)等一切适合用于大规模异或运算处理的处理器。以NPU为例:神经网络处理器NPU30作为协处理器挂载到主中央处理器(central processing unit,CPU)(hostCPU)上,由主CPU分配任务。NPU的核心部分为运算电路303,控制器304控制运算电路303提取存储器(权重存储器或输入存储器)中的数据并进行运算。其中,TPU是谷歌(google)为机器学习全定制的人工智能加速器专用集成电路。
在一些实现中,运算电路303内部包括多个处理单元(process engine,PE)。在一些实现中,运算电路303是二维脉动阵列。运算电路303还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路303是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路303从权重存储器302中取矩阵B的权重数据,并缓存在运算电路303中的每一个PE上。运算电路303从输入存储器301中取矩阵A的输入数据,根据矩阵A的输入数据与矩阵B的权重数据进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)308中。
向量计算单元307可以对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。例如,向量计算单元307可以用于神经网络中非卷积/非FC层的网络计算,如池化(pooling),批归一化(batch normalization),局部响应归一化(local response normalization)等。
在一些实现中,向量计算单元能307将经处理的输出的向量存储到统一缓存器306。例如,向量计算单元307可以将非线性函数应用到运算电路303的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元307生成归一化的值、合并值,或二者均有。在一些实现中,向量计算单元307将经处理的向量存储到统一存储器306。在一些实现中,经向量计算单元307处理过的向量能够用作运算电路303的激活输入,例如用于神经网络中后续层中的使用,如图1d所示,若当前处理层是隐含层1(131),则经向量计算单元307处理过的向量还可以被用到隐含层2(132)中的计算。
统一存储器306用于存放输入数据以及输出数据。
权重数据直接通过存储单元访问控制器(direct memory access controller,DMAC)305,被存入到权重存储器302中。输入数据也通过DMAC被存入到统一存储器306中。
总线接口单元(bus interface unit,BIU)310,用于DMAC和取指存储器(instruction fetch buffer)309的交互;总线接口单元310还用于取指存储器309从外部存储器获取指令;总线接口单元301还用于存储单元访问控制器305从外部存储器获取输入矩阵A或者权重矩阵B的原数据。
DMAC 305主要用于将外部存储器DDR中的输入数据存入到统一存储器306中,或将权重数据存入到权重存储器302中,或将输入数据存入到输入存储器301中。
与控制器304连接的取指存储器309,用于存储控制器304使用的指令;
控制器304,用于调用取指存储器309中缓存的指令,实现控制该运算加速器的工作过程。
一般地,统一存储器306,输入存储器301,权重存储器302以及取指存储器309均为片上(On-Chip)存储器,外部存储器为该NPU外部的存储器,该外部存储器可以为双倍数据率同步动态随机存储器(double data rate synchronous dynamic random accessmemory,DDR SDRAM)、高带宽存储器(high bandwidth memory,HBM)或其他可读可写的存储器。
其中,图1d所示的卷积神经网络中各层的运算可以由运算电路303或向量计算单元307执行。示例性地,本申请实施例中的深度估计模型的训练方法以及确定目标深度图的相关方法均可以由运算电路303或向量计算单元307执行。
如图1e所示,本申请实施例提供了另一种系统架构。该系统架构包括本地设备401、本地设备402以及图1c中所示的执行设备110和数据存储系统150,其中,本地设备401和本地设备402通过通信网络与执行设备110连接。
执行设备110可以由一个或多个服务器实现。可选的,执行设备110可以与其它计算设备配合使用,例如:数据存储器、路由器、负载均衡器等设备。执行设备110可以布置在一个物理站点上,或者分布在多个物理站点上。执行设备110可以使用数据存储系统150中的数据,或者调用数据存储系统150中的程序代码来实现本申请实施例的时间序列预测模型的训练方法。
具体地,在一种实现方式中,执行设备110可以执行以下过程:
将多张图像样本对应的多张深度图样本输入到初始卷积神经网络中进行处理,以得到多张第一预测深度图;根据多张第一预测深度图、多张图像样本对应的真实深度图及损失函数计算得到第一损失值;根据第一损失值调整初始卷积神经网络中的参数;得到第一卷积神经网络;再将多张图像样本对应的多张深度图样本输入到第一卷积神经网络中进行处理,以得到多张第二预测深度图;根据多张第二预测深度图、多张图像样本对应的真实深度图及损失函数得到第二损失值;判断第二损失值是否收敛;若收敛,则将第一卷积神经网络确定为当前图像的深度估计模型;若不收敛,则根据第二损失值调整第一卷积神经网络中的参数,得到第二卷积神经网络,并重复执行上述过程,直至得到的损失值收敛,并将损失值收敛时的卷积神经网络确定为当前图像的深度估计模型。
通过上述过程执行设备110能够获得一个深度估计模型,该深度估计模型可以用于得到当前图像的目标深度图。
用户可以操作各自的用户设备(例如本地设备401和本地设备402)与执行设备110进行交互。每个本地设备可以表示任何计算设备,例如个人计算机、计算机工作站、智能手机、平板电脑、智能摄像头、智能汽车或其他类型蜂窝电话、媒体消费设备、可穿戴设备、机顶盒、游戏机等。
每个用户的本地设备可以通过任何通信机制/通信标准的通信网络与执行设备410进行交互,通信网络可以是广域网、局域网、点对点连接等方式,或它们的任意组合。
在一种实现方式中,本地设备401、本地设备402从执行设备110获取到深度估计模型,将深度估计模型部署在本地设备401、本地设备402上,利用该深度估计模型进行深度估计。
在另一种实现中,执行设备110上可以直接部署深度估计模型,执行设备410通过从本地设备401和本地设备402获取当前图像和第一深度图,并采用深度估计模型对当前图像和第一深度图进行深度估计,得到当前图像的目标深度图。
上述执行设备110也可以为云端设备,此时,执行设备110可以部署在云端;或者,上述执行设备110也可以为终端设备,此时,执行设备110可以部署在用户终端侧,本申请实施例对此并不限定。
下面对本申请的应用场景进行说明。如图2所示,该应用场景包括终端设备100和服务器200。
其中,终端设备100可以为智能手机、平板电脑、AR眼镜或者其他智能设备。
服务器200可以为台式服务器、机架式服务器、机柜式服务器、刀片式服务器或者其他类型的服务器。
终端设备100获取当前图像和虚拟物体图像,并根据当前图像获取当前图像的第一深度图和第二深度图,其中,如图2所示,第二深度图是终端设备100从服务器200获取的;根据当前图像、第一深度图和第二深度图进行深度估计,以得到当前图像的目标深度图;根据当前图像的目标深度图叠加显示虚拟物体图像和当前图像,从而实现虚拟遮挡。
下面详细介绍上述终端设备100和服务器200如何实现虚实遮挡。
参见图3,图3为本申请实施例提供的一种图像的处理方法的流程示意图。如图3所示,该方法包括:
S301、获取当前图像和虚拟物体图像,并根据当前图像获取当前图像的第一深度图。
可选地,当前图像可以为RGB图像、灰度图像或者其他形式的图像。
其中,当前图像是从终端设备的相机实时获取的,或者从终端设备中存储的图像中获取的,或者从其他设备中获取的,在此不做具体限定。
可选地,虚拟物体图像可以为终端设备中的渲染器将虚拟物体的三维模型进行投影得到的;或者从其他设备中获取的。
可选地,根据当前图像获取当前图像的第一深度图,包括:
对当前图像进行特征提取,以得到当前图像的第一2D特征点;将当前图像的第一2D特征点与预先存储的2D特征点进行匹配,得到当前图像中的第二2D特征点;根据当前图像中的第二2D特征点,和预先存储的2D特征点与3D点的对应关系,获取当前图像中的第二2D特征点对应的3D点;其中,当前图像的第一深度图包括当前图像中的第二2D特征点对应的3D点。
特征点指的是图像灰度值发生剧烈变化的点或者在图像边缘上曲率较大的点(即两个边缘的交点)。
上述预先存储的2D特征点与3D点的对应关系,表示对于预选存储的每个2D特征点,均有与之对应的3D点。
对于本申请中所说的2D特征点相匹配具体是指相匹配的两个2D特征点的相似度高于预设相似度。
在此需要指出的是,在得到当前图像中的第二2D特征点对应的3D点后,将该3D点投影到二维平面上,得到上述第一深度图,该第一深度图包括当前图像中的第二2D特征点对应的3D点信息。
其中上述局部地图为服务器根据终端设备的位姿从基础地图中获取的。
其中,预先存储的2D特征点可以为至少一张历史图像中的2D特征点。至少一张历史图像包为上述终端设备时间戳与当前图像的时间戳差值较小的一张或者多张图像,或者时间戳位于当前图像的时间戳之前的一张或多张图像。进一步地,多张图像可以为连续帧图像或者非连续帧图像。
可选地,根据当前图像获取当前图像的第一深度图,包括:
对当前图像进行特征提取,以得到当前图像的第一2D特征点;根据局部地图的2D特征点对当前图像的第一2D特征点进行匹配,得到局部地图中的第三2D特征点;局部地图是服务器根据当前图像得到的,并从服务器中获取的;根据局部地图中的第三2D特征点,和局部地图的中的2D特征点与3D点的对应关系,获取局部地图中的第三2D特征点对应的3D点;其中,当前图像的第一深度图包括局部地图中的第三2D特征点对应的3D点。
在得到局部地图中的第三2D特征点对应的3D点后,将该3D点投影到二维平面上,得到上述第一深度图,该第一深度图包括局部地图中的第三2D特征点对应的3D点信息。
在一个可选地实施例中,终端设备向服务器发送局部地图获取请求,该局部地图为基础地图中包括终端设备所在位置点周围物体的信息,局部地图获取请求携带有当前图像,其中,基础地图为包括物体的3D点云信息、2D特征点及其特征描述子的地图。服务器接收到局部地图获取请求后,根据视觉定位系统(visual positioning system,VPS)计算得到当前图像在全局地图中的位置和角度信息,该位置和角度信息合称为位姿信息,该位姿信息是基于世界坐标系下的位姿;根据位姿信息从基础地图中获取局部地图,局部地图为基础地图中以该位置为中心,周围一定范围内(比如以半径为50米)的区域;基础地图中包括物体的2D特征点及其对应的特征描述子,和3D点云信息,因此局部地图中也包括物体的2D特征点及其对应的特征描述子和3D点云信息。服务器向终端设备发送用于响应局部地图获取请求的响应消息,该响应消息中携带有上述局部地图。
终端设备对当前图像进行特征提取,得到当前图像的第一2D特征点及其对应的特征描述子;根据局部地图中的2D特征点对当前图像的第一2D特征点进行匹配,得到局部地图中第三2D特征点,并根据局部地图中2D特征点与3D点的对应关系,获取局部地图中第三2D特征点所对应的3D点,当前图像的第一深度图包括局部地图中第三2D特征点所对应的3D点。
在一个可选的实施例中,根据局部地图的2D特征点对当前图像的第一2D特征点进行匹配,得到局部地图中的第三2D特征点,包括:
根据第一位姿从局部地图中获取目标地图,目标地图在局部地图中的位置与第一位姿中的角度信息所指示的位置是相关联的;第一位姿为将终端设备根据当前图像获取的位姿转化为在世界坐标系下的位姿,将目标地图中的2D特征点与当前图像的第一2D特征点进行匹配,以得到目标地图的第三2D特征点,局部地图的第三2D特征点包括目标地图的第三2D特征点。
其中,世界坐标系是系统的绝对坐标系,在没有建立用户坐标系之前画面上所有点的坐标都是以该坐标系的原点来确定各自的位置的。
在一个可选地实施例中,为了提高上述匹配效率,终端设备利用即时定位与地图构建(simultaneous localization and mapping,SLAM)系统计算在预设坐标系下当前图像的位姿,预设坐标系为以终端设备当前所在位置为原点的坐标系,将当前图像的位姿和服务器基于VPS获取的位姿进行对齐变换,以得到终端设备在世界坐标系下的位姿,该位姿为上述第一位姿;根据终端设备在世界坐标系下的位姿对局部地图进行处理,以得到目标地图,目标地图在局部地图中的位置与终端设备在世界坐标系下的位姿中的角度信息所指示的位置是一致的。
如图4所示,方形区域为基础地图,圆形区域为局部地图,圆形区域的中心点为终端设备在世界坐标系下的位姿中的坐标点;角度范围为[-45°,45°]扇形区域为处理后的局部地图,其中,角度范围为[-45°,45°]为终端设备在世界坐标系下的位姿中的角度信息。
然后将当前图像的第一2D特征点和目标地图中的2D特征点进行匹配,得到目标地图的第三2D特征点,并根据目标地图中2D特征点与3D点云信息的对应关系,获取目标地图中第三2D特征点所对应的3D点云,当前图像的第一深度图包括目标地图中第三2D特征点所对应的3D点云。
在此需要说明的是,由于服务器中的基础地图是离线采集的,因此服务器中的基础地图存在与当前实际环境中不一样的地方,比如商场中的大型广告牌在离线采集时是存在的,一段时间后,当用户采集当前图像时该广告牌已被拆除,这就导致服务器下发的地图存在和当前环境不一致的3D点云信息。此外,服务器接收到的图像可以是进行隐私处理后的图像,也会导致服务器下发的地图存在和当前环境不一致的3D点云信息。
基于上述原因,服务器对下发的局部地图进行更新处理,以得到第二深度图。
具体地,服务器对当前图像进行特征提取,以得到当前图像的2D特征点;对当前图像进行特征提取的方式包括但不限于尺度不变特征变换(scale invariant featuretransform,SIFT)方法、定向FAST和旋转BRIEF(Oriented FAST and Rotated BRIEF,ORB)方法、加速稳健特征(speeded up robust features,SURF)方法、超级积分(spuer point)方法;其中FAST全称为加速分割检测特征(Features from Accelerated Segment Test),BRIEF的全称为二进制鲁棒独立元素特征(Binary Robust Independent ElementaryFeatures)。服务器将当前图像中的第一2D特征点与预先存储的2D特征点进行匹配,得到当前图像中的第六2D特征点。可选地,预先存储的2D特征点为N张历史图像中的2D特征点,上述N张历史图像为终端设备获取的,且时间戳位于当前图像的时间戳之前的图像中,时间戳与当前图像的时间戳距离较近的N张图像,N为大于0的整数。然后服务器将当前图像的第六2D特征点中的噪点剔除,具体是通过单应性矩阵、基础矩阵和本质矩阵计算当前图像中每个第六2D特征点的验证值;若第六2D特征点的验证值低于第二预设阈值,则确定该第六2D特征点为噪点,从而将该第六2D特征点删除,得到当前图像的第七2D特征点。
服务器对当前图像的第七2D特征点进行三角化计算,以得到当前图像中第七2D特征点在空间中的初始位置,进而得到当前图像中的第七2D特征点对应的初始深度图。
服务器根据图像检索方式从多帧基础地图中获取M张图像,该M张地图中每张地图与当前图像相似度大于第一预设阈值,M为大于0的整数,图像检索方法包括但不限于词袋树方法或者基于深度学习的NetVlad方法;将当前图像中的第一2D特征点与M张图像中的2D特征点进行匹配,得到多个匹配特征点对,该多个匹配特征点对中的每个匹配特征点对包括第四2D特征点和第五2D特征点,第四2D特征点和第五2D特征点为相互匹配的特征点,第四2D特征点为当前图像中的第一2D特征点,第五2D特征点为M张图像中的特征点;由于M张图像中的每个2D特征点都对应一个3D点,因此M张图像中第五2D特征点与3D点的对应关系及多个匹配特征点对确定当前图像的第四2D特征点对应的3D点;将上述局部地图对应的3D点获取第五深度图,该第五深度图包括局部地图对应的3D点中,与多个特征点匹配对中第四2D特征点对应的3D点相匹配的3D点。
将上述初始深度图和第五深度图,结合当前图像和预先存储的图像中的每张图像的初始位姿信息,使用光束平差法(bundle adjustment,BA),调整优化点云的位置信息,并计算优化后点云中每个3D的重投影误差,将重投影误差超过误差阈值的3D点删除;并重复上述BA优化和点云删除步骤多次,最后得到优化后的高精度深度图,该优化后的高精度深度图为上述第二深度图,从而实现服务器中基础地图的更新。
通过上述方式,可以使得服务器中存储的基础地图不断被终端设备上传的图像更新,进而使得基础地图与终端设备采集的图像内容保持一致,从而在进行深度估计时提供高精度的3D点云信息。并且通过上述方式使得基础地图中的内容与终端设备采集的图像中的内容保持一致,在终端设备上传的图像越多时,对地图的更新就越彻底,从而使得在深度估计的结果就越精确。
S302、根据当前图像及当前图像的第一深度图确定当前图像的目标深度图。
在一个可选的实施例中,根据当前图像和当前图像的第一深度图确定当前图像的目标深度图,包括:
对当前图像进行多尺度特征提取,得到T张第一特征图,并对第三深度图进行多尺度特征提取,得到T张第二特征图;其中,T张第一特征图中每张第一特征图的分辨率各不相同,T张第二特征图中每张第二特征图的分辨率各不相同,T为大于1的整数;将T张第一特征图和T张第二特征图中,分辨率相同的第一特征图和第二特征图进行叠加,得到T张第三特征图;对T张第三特征图进行上采样和融合处理,得到当前图像的目标深度图,其中,第三深度图为上述第一深度图,或者第三深度图是对第一深度图和第二深度图进行拼接得到的。
其中,对于T张第一特征图中的任一第一特征图,在T张第二特征图中有分辨率唯一与该第一特征图的分辨率相同的第二特征图。
多尺度特征提取具体是指采用多个不同的卷积核对图像进行卷积的操作。
本申请中的“叠加”具体是指将进行叠加的图像在像素级别进行处理,比如叠加的两张图像包括尺寸为H*W,叠加得到的图像的尺寸为H*2W,或者2H*W;再比如叠加的三张图像包括尺寸为H*W,叠加得到的图像的尺寸为H*3W,或者3H*W。
在一个可选的实施例中,根据当前图像和当前图像的第一深度图确定当前图像的目标深度图,包括:
对当前图像进行多尺度特征提取,得到T张第一特征图,该T张第一特征图中每张第一特征图的分辨率各不相同;对第三深度图进行多尺度特征提取,得得T张第二特征图,该T张第二特征图中每张第二特征图的分辨率各不相同;对参考深度图进行多尺度特征处理,得到T张第四特征图,该T张第四特征图中每张第四特征图的分辨率各不相同;其中,参考深度图是根据TOF摄像头采集的深度图获取的,T为大于1的整数;将T张第一特征图、T张第二特征图和T张第四特征图中,分辨率相同的第一特征图、第二特征图和第四特征图进行叠加,以得到T张第五特征图;
对T张第五特征图进行上采样和融合处理,以得到当前图像的目标深度图,其中,第三深度图为上述第一深度图或者,第三深度图为上述第一深度图是对第一深度图和第二深度图进行拼接得到的。
可选地,上述参考深度图为上述TOF摄像头采集的深度图。
可选地,根据当前图像的位姿将TOF摄像头采集的得到的深度图投影到三维空间中,得到第四深度图;根据参考图像的位姿将第四深度图反投影到参考图像上,得到参考深度图;其中,参考图像为在采集时间上与当前图像相邻的图像,TOF摄像头采集的深度图的分辨率低于预设分辨率,且TOF采集该深度图的帧率低于预设帧率。
可选地,上述预设帧率可以为1fps,2fps,5fps或者其他帧率,预设分辨率可以为240*180、120*90、60*45、20*15、或者其他分辨率。
可选地,TOF按照1fps的帧率采集得到深度图,该深度图的分辨率为20*15。
可选地,上述第三深度图为上述当前图像的第一深度图,或者第三深度图是对上述当前图像的第一深度图和上述第二深度图进行拼接得到的。
具体地,上述上采样和融合处理,具体包括:
S1:对特征图P’j进行上采样,得到特征图P”j,该特征图P”j的分辨率与处理对象中的第j+1张特征图Pj+1的分辨率相同,特征图Pj+1的宽为处理对象中分辨率最小的特征图的宽的j+1倍,j为大于0且小于T的整数;T为处理对象中特征图的数量;
S2:将特征图P”j与特征图Pj+1进行融合,得到第三特征图P’j+1,
S3:令j=j+1,并重复执行S1-S3,直至j=T-1;
其中,当j=1时,第三特征图P’j为处理对象中分辨率最小的特征图,当j=T-1时,第三特征图P’j+1为上采样和融合处理的结果。
其中,上述处理对象包括上述T张第三特征图或者T张第五特征图。
比如有5张第三特征图,分别为特征图P1,特征图P2,特征图P3,特征图P4和特征图P5,且分辨率依次增大;对特征图P1进行上采样,得到与特征图P2的分辨率相同的特征图P”1,将特征图P”1与特征图P2进行融合,得到特征图P’2;对特征图P’2进行上采样,得到与特征图P3的分辨率相同的特征图P”2,将特征图P”2与特征图P3进行融合,得到特征图P’3;对特征图P’3进行上采样,得到与特征图P4的分辨率相同的特征图P”3,将特征图P”3与特征图P4进行融合,得到特征图P’4;对特征图P’4进行上采样,得到与特征图P5的分辨率相同的特征图P”4,将特征图P”4与特征图P5进行融合,得到当前图像的目标深度图。
可选地,上述上采样为反卷积上采样。
在一个可选的实施例中,根据当前图像和当前图像的第一深度图确定当前图像的目标深度图,包括:
方式一:将当前图像和当前图像的第一深度图输入到深度估计模型中进行特征提取,并根据特征提取的结果得到当前图像的目标深度图,或者,
方式二:将当前图像的第一深度图和第二深度图进行拼接,得到第三深度图,再将当前图像和当前图像的第三深度图输入到深度估计模型中进行特征提取,并根据特征提取的结果得到当前图像的目标深度图,或者,
方式三:将当前图像的第一深度图和第二深度图进行拼接,得到第三深度图,再将当前图像、当前图像的第三深度图和上述参考深度图输入到深度估计模型中进行特征提取,并根据特征提取的结果得到当前图像的目标深度图。
在此需要说明的是,采用深度估计模型得到的当前图像的目标深度图的具体实现过程可参见上述“根据当前图像和当前图像的第一深度图确定当前图像的目标深度图”的相关描述,在此不再叙述。
在一个可选的实施例中,在采用深度估计模型得到的当前图像的目标深度图之前,向服务器发送深度估计模型获取请求,该深度估计模型获取请求携带有当前图像和终端设备的位置,接收服务器发送响应深度估计模型获取请求的响应消息,该响应消息携带有当前图像的深度估计模型,当前图像的深度估计模型为服务器根据当期图像和终端设备的位置获取的。
其中,终端设备的位置为终端设备在采集当前图像时所处的位置,该位置为在世界坐标系下的坐标。
通过从服务器中获取深度估计模型,使得终端设备不用自己训练得到深度估计模型,降低了终端设备的功耗,同时提高了虚实遮挡的实时性。
在一个可选的实施例中,在采用深度估计模型得到当前图像的目标深度图之前,本实施的方法还包括:
对初始卷积神经网络模型进行训练,以得到当前图像的深度估计模型。
具体地,对初始卷积神经网络进行训练,以得到当前图像的深度估计模型,包括:
将多张图像样本对应的多张深度图样本输入到初始卷积神经网络中进行处理,以得到多张第一预测深度图;根据多张第一预测深度图、多张图像样本对应的真实深度图及损失函数计算得到第一损失值;根据第一损失值调整初始卷积神经网络中的参数;得到第一卷积神经网络;
再将多张图像样本对应的多张深度图样本输入到第一卷积神经网络中进行处理,以得到多张第二预测深度图;根据多张第二预测深度图、多张图像样本对应的真实深度图及损失函数得到第二损失值;判断第二损失值是否收敛;若收敛,则将第一卷积神经网络确定为当前图像的深度估计模型;若不收敛,则根据第二损失值调整第一卷积神经网络中的参数,得到第二卷积神经网络,并重复执行上述过程,直至得到的损失值收敛,并将损失值收敛时的卷积神经网络确定为当前图像的深度估计模型。
上述损失函数为:
其中表示尺度为i的深度估计模型输出的深度图di与对应真值深度图gi的误差,表示尺度为i的深度估计模型输出深度图梯度dgi与对应真值深度图梯度ggi的误差,表示尺度为i的深度估计模型输出深度图法向量dni与对应真值深度图法向量gni的误差。
可选地,深度估计模型可以采用DiverseDepth、SARPN或CSPN等网络结构。
其中,上述深度估计模型中的特征提取功能可以由VGGNet、ResNet、ResNeXt、DenseNet等网络结构实现。
VGGNet:全部使用3*3的卷积核和2*2的池化核,通过不断加深网络结构来提升性能。对于VGG-16,其输入是大小为224*224的RGB图像,预处理时计算出三个通道的平均值,在每个像素上减去平均值(处理后迭代更少,更快收敛)。图像经过一系列卷积层处理,在卷积层中使用了非常小的3*3卷积核,选择采用3*3的卷积核是因为3*3是最小的能够捕捉像素8邻域信息的尺寸。卷积层步长(stride)设置为1个像素,3*3卷积层的填充(padding)设置为1个像素。池化层采用max pooling,共有5层,在一部分卷积层后,max-pooling的窗口是2*2,步长设置为2。卷积层之后是三个全连接层(fully-connected layers,FC)。前两个全连接层均有4096个通道,第三个全连接层有1000个通道,用来分类。所有网络的全连接层配置相同。全连接层后是Softmax,用来分类。所有隐藏层(每个conv层中间)都使用ReLU作为激活函数。
ResNet:是一种残差网络,可以把它理解为一个子网络,这个子网络经过堆叠可以构成一个很深的网络。残差网络的特点是容易优化,并且能够通过增加相当的深度来提高准确率。其内部的残差块使用了跳跃连接,缓解了在深度神经网络中增加深度带来的梯度消失问题。
ResNeXt是在ResNet的思想上,提出可以在不增加参数复杂度的前提下提高准确率,同时还减少了超参数的数量的结构,即在借鉴Inception扩展网络宽度的思想,以多个分支学习不同特征,用一种平行堆叠相同拓扑结构的blocks代替原来ResNet的三层卷积的block,在不明显增加参数量级的情况下提升了模型的准确率,同时由于拓扑结构相同,超参数也减少了,便于模型移植,成为流行的识别任务框架。
DenseNet(稠密连接网络):传统的卷积网络中每一层只使用前一层的输出特征作为它的输入,DenseNet中每一层使用前面所有层的特征作为输入,它自己的特征作为所有后续层的输入。DenseNet有以下几个优点:减轻了梯度弥散带来的问题、增强了特征的传播、鼓励特征重用、大大减少了参数量。
通过采用多尺度特征融合的策略,加入时序一致、尺度一致约束,采用多数据集联合训练提升模型不同场景下的泛化性。
S303、根据当前图像的目标深度图叠加显示虚拟物体图像和当前图像。
在一个可行的实施例中,根据当前图像的目标深度图叠加显示虚拟物体图像和当前图像,包括:
对当前图像的目标深度图进行边缘优化,以得到当前图像的优化后的深度图;
根据优化后的深度图叠加显示虚拟物体图像和当前图像。
其中,根据优化后的深度图叠加显示虚拟物体图像和当前图像,包括:
根据优化后的深度图判断当前图像的每个像素对应的深度值和虚拟物体的深度值的关系,若虚拟物体图像中任一像素点A对应的深度值大于当前图像中与虚拟物体图像中任一像素点A位置相同的像素点B对应的深度值,则显示当前图像的颜色;反之则显示虚拟物体图像的颜色;按照该方法遍历所有像素点后,在终端设备上显示出遮挡效果。
在一个可行的实施例中,根据当前图像的目标深度图叠加显示虚拟物体图像和当前图像,包括:
对当前图像的目标深度图进行分割,得到当前图像的前景深度图和背景深度图,背景深度图为当前图像的目标深度图中含有背景区域的深度图,前景深度图为当前图像的目标深度图中包含前景区域的深度图;根据L张背景深度图分别对应的L个位姿对该L张背景深度图进行融合,以得到融合后的三维场景;L张背景深度图包括预先存储的图像的背景深度图和当前图像的背景深度图,L个位姿包括预先存储的图像和当前图像的位姿;L为大于1的整数;
根据当前图像的背景深度图对融合后的三维场景进行反投影,以得到融合后的背景深度图;将融合后的背景深度图和当前图像的前景深度图进行拼接,得到更新后的深度图;根据更新后的深度图叠加显示虚拟物体图像和当前图像。
在此需要指出的是,前景区域至的是感兴趣物体所在的区域,比如人、汽车、动植物等显著物体;背景区域为图像中除了前景区域之外的区域。
具体地,在感兴趣物体为人时,对当前图像的目标深度图进行分割,具体是根据人像mask对当前图像的目标深度图进行人像分割,得到当前图像的前景深度图和背景深度图。
在一个可行的实施例中,根据当前图像的目标深度图叠加显示虚拟物体图像和当前图像,包括:
对优化后的深度图进行分割,得到当前图像的前景深度图和背景深度图,背景深度图为优化后的深度图中含有背景区域的深度图,前景深度图为优化后的深度图中含有前景区域的深度图,优化后的深度图是对当前图像的目标深度图进行边缘优化得到的;根据L张背景深度图分别对应的L个位姿对该L张背景深度图进行融合,以得到融合后的三维场景;L张背景深度图包括预先存储的图像的背景深度图和当前图像的背景深度图,L个位姿包括预先存储的图像和当前图像的位姿;L为大于1的整数;根据当前图像的位姿对融合后的三维场景进行反投影,以得到融合后的背景深度图;将融合后的背景深度图和当前图像的前景深度图进行拼接,得到更新后的深度图;根据更新后的深度图叠加显示虚拟物体图像和当前图像。
在此需要指出的是,前景区域至的是感兴趣物体所在的区域,比如人、汽车、动植物等显著物体;背景区域为图像中除了前景区域之外的区域。
具体地,对当前图像的优化后的深度图进行人像分割,具体是根据人像mask对当前图像的目标深度图进行人像分割,得到当前图像的第三深度图和第四深度图。
可选地,上述位姿可以是根据对应的图像获取的,或者是SLAM位姿,可以是通过深度学习方法得到的位姿,还可以是通过其他方法得到的位姿。
可选地,上述进行融合所采用的具体融合方式可以为截断符号距离函数(truncated signed distance function,TSDF)融合方式,还可以为surfel融合方式。
在一个可选的实施例中,对当前图像的目标深度图进行边缘优化,以得到优化后的深度图。包括:
提取当前图像的边缘结构信息,并提取当前图像的目标深度图的边缘结构信息;计算当前图像的目标深度图的边缘结构信息与当前图像的边缘结构信息之间的差值,再基于该差值修改当前图像的目标深度图的边缘位置,以得到优化后的深度图的边缘;根据优化后的深度图的边缘,从而得到与当前图像的边缘对应的、锐利的深度图,该深度图为上述优化后的深度图。
根据更新后的深度图叠加显示虚拟物体图像和当前图像,具体包括:
根据更新后的深度图判断当前图像的每个像素对应的深度值和虚拟物体图像的深度值的关系,若虚拟物体中任一像素点A对应的深度值大于当前图像中与虚拟物体中任一像素点A位置相同的像素点B对应的深度值,则显示当前图像的颜色;反之则显示虚拟物体的颜色;按照该方法遍历所有像素点后,在终端设备上显示出遮挡效果。
可以看出,在本申请的实施例中,通过对当前图像和当前图像的第一深度图及第二深度图进行深度估计,得到精度较高的目标深度图,从而解决后续虚实遮挡效果会存在帧间闪烁、不稳定的问题;在深度估计时引入TOF摄像头采集的深度图,进一步提高了当前图像的目标深度图的精度,从而解决后续虚实遮挡效果会存在帧间闪烁、不稳定的问题;通过对当前图像的目标深度图进行边缘优化得到优化后的深度图,再将多帧深度图进行融合,得到人像边缘更加锐利的深度图,有利于进一步提升虚实遮挡效果。
参见图5,图5为本申请实施例提供的另一种图像的处理方法的流程示意图。如图5所示,该方法包括:
S501、接收终端设备发送的深度估计模型请求消息,该请求消息携带有终端设备采集的当前图像和终端设备采集当前图像时的位置。
其中,上述位置是在世界坐标系下的坐标,该世界坐标系可以为UTM坐标系、GPS坐标系,或者其他世界坐标系等。
S502、根据当前图像及其终端设备的位置从服务器中存储的多个深度估计模型中获取当前图像的深度估计模型。
在一个可行的实施例中,根据当前图像和终端设备的位置从服务器中存储的多个深度估计模型中获取当前图像的深估计模型,包括:
根据终端设备的位置获取多帧第一图像,多帧第一图像为基础地图中以终端设备的位置为中心的预设范围内的图像;从多帧第一图像中获取目标图像,该目标图像为多帧第一图像中与当前图像相似度最高的图像;将目标图像对应的深度估计模型确定为当前图像的深度估计模型。
具体地,为了提高深度估计的精度,在服务器中,会针对每一位置都会单独训练得到一个深度估计模型;在接收到终端设备的深度估计模型获取请求后,服务器根据终端设备的位置获取多帧第一图像,该多帧第一图像为基础地图中以终端设备的位置为中心的预设范围内的图像,从多帧第一图像中获取目标图像,目标图像为多帧第一图像中与当前图像的相似度最高的图像;根据目标图像的位姿得到当前图像的位姿;根据当前图像的位姿中的位置从服务器中确定出该位置对应的深度估计模型,该深度估计模型即为当前图像的深度估计模型。
在一个可行的实施例中,本实施例的方法还包括:
对于多帧第一图像,分别训练得到多帧第一图像中每帧第一图像的深度估计模块,
其中,对于多帧第一图像中的每一帧第一图像,按照以下步骤进行训练,得到每一第一图像的深度估计模型:
将多张图像样本及其对应的多张深度图样本输入到初始卷积神经网络中进行处理,以得到多张预测深度图;根据多张预测深度图及与多张图像样本对应的真实深度图和损失函数计算得到损失值;根据损失值调整初始卷积神经网络中的参数,以得到每一帧第一图像的深度估计模型;
其中,损失函数是基于预测深度图和真实深度图之间的误差、预测深度图的梯度和真实深度图的梯度之间的误差、以及,预测深度图的法向量和真实深度图的法向量之间的误差确定的。
在此需要指出的是,上述只是一次训练过程;在实际应用中,会按照上述方式多次迭代,直至计算得到的损失值收敛;将损失值收敛时的卷积神经网络模型确定为当前图像的深度估计模型。上述具体训练过程可参见S302中的相关描述,在此不再叙述。
S503、向终端设备发送响应于深度估计模型请求消息的响应消息,该响应消息携带有当前图像的深度估计模型。
在一个可选的实施例中,接收终端设备发送的局部地图获取请求,局部地图获取请求携带有当前图像;根据当前图像的位姿从服务器中存储的基础地图中获取局部地图;向服务器发送用于响应局部地图获取请求的响应消息,该响应消息携带有局部地图。
具体地,服务器接收到局部地图请求消息后,根据VPS计算得到当前图像在全局地图中的位置和角度信息,该位置和角度信息合称为位姿信息,该位姿信息是基于世界坐标系下的位姿;根据位姿信息从基础地图中获取局部地图,局部地图为基础地图中以该位置为中心,周围一定范围内(比如半径为50米)的区域;基础地图中包括物体的2D特征点及其对应的特征描述子,和3D点云信息,因此局部地图中也包括物体的2D特征点及其对应的特征描述子和3D点云信息。
在一个可选的实施例中,本申请的方法还包括:
根据当前图像和预先存储的图像获取当前图像的初始深度图,根据当前图像和局部地图对应的3D点得到第五深度图;根据当前图像的位姿对初始深度图和第五深度图进行优化,以得到第二深度图。
可选地,预先存储的图像为终端设备上传的,且预先存储的图像的时间戳位于当前图像的时间戳之前。
具体地,将当前图像的第一2D特征点与预先存储的图像的2D特征点进行匹配,以得到当前图像的第六2D特征点;将当前图像的第六2D特征点中的噪声点剔除,以得到当前图像的第七2D特征点;对当前图像的第七2D特征点中的每个2D特征点进行三角化计算,得到当前图像的第七2D特征点在空间中的初始3D点;当前图像的初始深度图包括当前图像的第七2D特征点在空间中的初始3D点。
在一个可行的实施例中,根据当前图像和局部地图对应的3D点得到第五深度图,包括
从多帧基础地图中,获取M张地图,该M张地图中每张地图与当前图像相似度大于第一预设阈值;M为大于0的整数;将M张地图的2D特征点与当前图像的第一2D特征点进行匹配,得到多个特征点匹配对;多个特征点匹配对中的每个特征点匹配对包括第四2D特征点和第五2D特征点,第四2D特征点与第五2D特征点为相互匹配的特征点,第四2D特征点为当前图像的第一2D特征点,第五2D特征点为M张地图中的2D特征点;根据M张地图中每个第五2D特征点与3D点的对应关系,获取多个特征点匹配对中每个第四2D特征点对应的3D点;根据局部地图对应的3D点和所述多个特征点匹配对中第四2D特征点对应的3D点,获取第五深度图,该第五深度图包括局部地图对应的3D点中,与多个特征点匹配对中第四2D特征点对应的3D点相匹配的3D点。
由于服务器中的基础地图是离线采集的,因此服务器中的基础地图存在与当前实际环境中不一样的地方,比如商场中的大型广告牌在离线采集时是存在的,一段时间后,当用户采集当前图像时该广告牌已被拆除,这就导致服务器下发的地图存在和当前环境不一致的3D点云信息。此外,服务器接收到的图像可以是进行隐私处理后的图像,也会导致服务器下发的地图存在和当前环境不一致的3D点云信息。
基于上述原因,服务器对下发的局部地图进行更新处理,以得到第二深度图。
具体地,服务器对当前图像进行特征提取,以得到当前图像的第一2D特征点;对当前图像进行特征提取的方式包括但不限于SIFT方法、ORB方法、SURF方法、超级积分(spuerpoint)方法。服务器将当前图像中的2D特征点与预先存储的图像的2D特征点进行匹配,得到当前图像中的第六2D特征点。可选地,上述预先存储的图像为终端设备获取的,且时间戳位于当前图像的时间戳之前的图像中,时间戳与当前图像的时间戳距离较近的至少一张图像。然后服务器将当前图像的第六2D特征点中的噪点剔除,具体是通过单应性矩阵、基础矩阵和本质矩阵计算当前图像中每个第六2D特征点的验证值;若第六2D特征点的验证值低于第二预设阈值,则确定该第六2D特征点为噪点,从而将该第六2D特征点删除,得到当前图像的第七2D特征点。
服务器对当前图像的第七2D特征点进行三角化计算,以得到当前图像中第七2D特征点在空间中的初始位置,进而得到当前图像中的第七2D特征点对应的初始深度图。
服务器使用图像检索方式从多帧基础地图中获取M张图像,该M张地图中每张地图与当前图像相似度大于第一预设阈值,图像检索方法包括但不限于词袋树方法或者基于深度学习的NetVlad方法;将当前图像中的第一2D特征点与M张图像中的2D特征点进行匹配,得到多个匹配特征点对,该多个匹配特征点对中的每个匹配特征点对包括第四2D特征点和第五2D特征点,第四2D特征点和第五2D特征点为相互匹配的特征点,第四2D特征点为当前图像中的2D特征点,第五2D特征点为M张图像中的特征点;由于M张图像中的每个2D特征点都对应一个3D点,因此M张图像中第五2D特征点与3D点的对应关系及多个匹配特征点对确定当前图像的第四2D特征点对应的3D点;根据局部地图对应的3D点和所述多个特征点匹配对中第四2D特征点对应的3D点,获取第五深度图,该第五深度图包括局部地图对应的3D点中,与多个特征点匹配对中第四2D特征点对应的3D点相匹配的3D点。
将上述初始深度图和第五深度图,结合当前图像和历史图像中的每张图像的初始位姿信息,使用BA,调整优化深度图中3D点的位置信息,并计算优化后点云中每个3D点的重投影误差,将重投影误差超过误差阈值的3D点删除;并重复上述BA优化和点云删除步骤多次,最后得到优化后的高精度深度图,该优化后的高精度深度图为上述第二深度图,从而实现服务器中基础地图的更新。
通过上述方式,可以使得服务器中存储的基础地图不断被终端设备上传的图像更新,进而使得基础地图与终端设备采集的图像内容保持一致,从而在进行深度估计时提供高精度的3D点云信息。并且通过上述方式使得基础地图中的内容与终端设备采集的图像中的内容保持一致,在终端设备上传的图像越多时,对地图的更新就越彻底,从而使得在深度估计的结果就越精确。
可以看出,在本申请中采用云端局部地图更新算法能够解决离线地图和当前使用场景发生变化导致直接使用离线地图点参与深度图估计引入错误的问题,同时解决单目深度估计的尺度歧异、帧间不稳定问题,进而解决虚实遮挡闪烁、帧间遮挡现象不一致的问题。
在一个具体地示例中,步骤S10、获取终端设备采集的彩色图像和惯性测量单元(inertial measurement unit,IMU)测量的信息;根据彩色图像和IMU测量的信息进行SLAM系统初始化;在SLAM系统初始化成功后,终端设备根据该SLAM系统实时计算终端设备在自己的局部坐标系下的位姿;终端设备在获取当前图像后,对当前图像进行人脸检测,并对当前图像中的人脸区域进行隐私处理,比如将人像区域的颜色填充为黑色;再将隐私处理后的当前图像传输至服务器;服务器调用VPS算法对当前图像进行定位,若定位成功,则得到当前图像在服务器存储的基础地图中的位姿;服务器根据当前图像在基础图像中的位姿从基础图像中获取局部地图,该局部地图为在基础地图中以当前图像的位置为中心,半径为150m的区域;并将局部地图的3D点云、2D特征点和特征描述子传输至终端设备;并设置当前有效上传图像计数器为1,进入步骤S20;若定位失败,设置当前有效上传图像计数器为0,并返回失败消息,重新进入步骤S10;
步骤S20:
步骤S20.1:若当前有效上传图像计数器为0,则直接进入步骤S20.2;反之,服务器对当前图像进行特征提取,以得到当前图像的第一2D特征点;对当前图像进行特征提取的方式包括但不限于SIFT方法、ORB方法、SURF方法、超级积分(spuer point)方法。服务器将当前图像中的第一2D特征点与预先存储的图像的2D特征点进行匹配,得到当前图像中的第六2D特征点。可选地,预先存储的图像为终端设备获取的,且时间戳位于当前图像的时间戳之前的图像中,时间戳与当前图像的时间戳距离较近的至少一张图像。然后服务器将当前图像的第六2D特征点中的噪点剔除,具体是通过单应性矩阵、基础矩阵和本质矩阵计算当前图像中每个第六2D特征点的验证值;若第六2D特征点的验证值低于第二预设阈值,则确定该第六2D特征点为噪点,从而将该第六2D特征点删除,得到当前图像的第七2D特征点。服务器对当前图像的第七2D特征点进行三角化计算,以得到当前图像中第四2D特征点在空间中的初始位置,进而得到当前图像中的第七2D特征点对应的初始深度图。
步骤S20.2:服务器根据NetVlad算法从步骤S10得到的局部地图获取最接近的10张图像。根据局部地图的2D特征点类别对终端设备上传的当前图像提取特征;本示例中局部地图的2D特征点包括但限于SIFT特征点、SURF特征点、ORB特征点、superpoint特征点、D2Net特征点、ASLFeat特征点、R2D2特征点等。通过暴力匹配方法,将当前图像中的第一2D特征点与上述10张图像中的2D特征点,得到2D-2D特征点匹配关系;由于在局部地图中的2D特征点都有与之一一对应的3D点,进而可根据得到的2D-2D特征点匹配关系从局部图像的3D点中筛选出与当前图像的第一2D特征点匹配关系的3D点;
步骤S20.3:将上述初始深度图和由上述局部图像的3D点中与当前图像的2D特征点匹配关系的3D点得到的深度图,结合当前图像和历史图像中的每张图像的初始位姿信息,使用BA,调整优化3D点的位置信息,并计算优化后的3D点的重投影误差,将重投影误差超过误差阈值的3D点删除;并重复上述BA优化和删除步骤多次,最后得到优化后的高精度深度图,从而实现服务器中基础地图的更新;
步骤S20.3:将当前有效上传图像计数器置为1。
步骤S30、根据当前图像、上述优化有的高精度深度图和由局部地图中,与当前图像中2D特征点相匹配的2D特征点对应的3D点得到的深度图,进行深度估计,得到当前图像的目标深度图。具体实现过程可参见S302的相关描述,在此不再叙述。
步骤S40、将当前图像,通过人像分割网络,得到人像分割结果图。人像分割网络包括特征提取网络和softmax分类器,特征提取网络的结构可以是FCN、ParseNet、DeepLabv1、DeepLab v2、DeepLab v3、RefineNet、SegNet、PSPNet、ENet、ICNet、BiSeNet等网络结构。特征提取网络用来提取当前图像的特征,然后对当前图像的特征进行双线性上采样得到与输入大小一致的特征图,最后通过softmax分类器得到每个像素的标签,从而得到人像分割结果图,也称作人像mask。例如,输入当前图像到BiSeNet得到特征图,再通过Softmax分类器对此特征图的每个像素进行分类,其中,人像区域的像素分为255,非人像区域的像素分为0。
在此需要指出的是,本申请对当前图像的分割不限于人像分割,还可以是物体分割,比如汽车、飞机、小猫等物体分割,分割方式可参见人像分割,在此不再叙述。
步骤S50、终端设备根据人像mask对当前图像的目标深度图进行人像分割,得到当前图像的前景深度图和背景深度图,当前图像的背景深度图为当前图像的目标深度图中含有背景区域的深度图,当前图像的前景深度图为当前图像的目标深度图中包含前景区域的深度图;根据L张背景深度图分别对应的L个位姿对该L张背景深度图进行截断有符号距离函数(truncated signed distance function,TSDF)融合,以得到融合后的三维场景;L张背景深度图包括预先存储的图像的背景深度图和当前图像的背景深度图,L个位姿包括预先存储的图像和当前图像的位姿;L为大于1的整数;根据当前图像的位姿对融合后的三维场景进行反投影,以得到融合后的背景深度图;将融合后的背景深度图和当前图像的前景深度图进行拼接,得到更新后的深度图
步骤S60、将步骤50获得的深度图和当前图像一起送入渲染器,在渲染器里面,判断当前图像的每一像素的深度值和虚拟物体的深度图的关系,如果虚拟物体的深度值大于深度图则显示当前图像的颜色,反之则显示虚拟物体的颜色,逐一遍历完每一个像素点后,在终端设备上显示出遮挡效果。
如图6所示,通过准确的估计树丛的深度图,虚拟熊猫可以透过真实的树丛缝隙被看到,熊猫也可以被墙壁等建筑物遮挡,当然算法还支持人和虚拟物体的遮挡,从最后一个图中可以看到算法能准确的估计出整个场景的深度图,使得虚拟熊猫能够在人的手臂之间,整体的沉浸感强,具有优异的用户体验。
参见图7,图7为本申请实施例提供的一种终端设备的结构示意图。如图7所示,该终端设备100包括:
2D-3D匹配模块102,用于将当前图像的第一2D特征点与预先存储的2D特征点进行匹配,得到当前图像的第二2D特征点,根据当前图像中的第二2D特征点,和预先存储的2D特征点与3D点的关系,获取当前图像中的第二2D特征点对应的3D点;该第二2D特征点对应的3D点构成第一深度图;
深度估计模块104,用于当前图像进行特征提取,得到T张第一特征图,该T张第一特征图中每张第一特征图的分辨率各不相同;对第一深度图进行特征提取,得到T张第二特征图,该T张第二特征图中每张第二特征图的分辨率各不相同;将T张第一特征图和T张第二特征图中,分辨率相同的第一特征图和第二特征图进行叠加,得到T张第三特征图;对T张第三特征图进行上采样和融合处理,以得到当前图像的目标深度图。
在此需要说明的是,对T张第三特征图进行上采样和融合处理,以得到当前图像的目标深度图的具体过程可参见步骤S302的相关描述,在此不再叙述。
人像分割模块108,用于将当前图像,通过人像分割网络,得到人像分割结果图。人像分割网络包括特征提取网络和softmax分类器。特征提取网络用来提取当前图像的特征,然后对当前图像的特征进行双线性上采样得到与输入大小一致的特征图,最后通过softmax分类器得到每个像素的标签,从而得到人像分割结果图,也称作人像mask。例如,输入当前图像到BiSeNet得到特征图,再通过Softmax分类器对此特征图的每个像素进行分类,其中,人像区域的像素分为255,非人像区域的像素分为0。
深度图边缘优化模块105,用于对当前图像及其目标深度图分别进行边缘结构提取,得到当前图像的边缘结构信息和目标深度图的边缘结构信息;以当前图像的边缘结构信息作为参考,计算目标深度图的边缘结构到当前图像的边缘结构的差值,然后通过这个差值修改目标深度图的边缘位置,从而优化深度图的边缘,得到优化后的深度图,该深度图为与当前图像的边缘对应的、锐利的深度图;
虚实遮挡应用模块107,用于根据人像mask对优化后的深度图进行人像分割,得到包含人像区域的深度图和非人像区域的深度图;再根据包含人像区域的深度图和包含非人像区域的深度图中的深度值与虚拟物体的深度值的关系叠加显示当前图像和虚拟物体图像;若虚拟物体中任一像素点A对应的深度值大于当前图像中与虚拟物体中任一像素点A位置相同的像素点B对应的深度值,则显示当前图像的颜色;反之则显示虚拟物体图像的颜色;按照该方法遍历所有像素点后,在终端设备上显示出遮挡效果。由于对优化后的深度图进行人像分割,在当前图像中包括人像时,在终端设备上可以显示出人与虚拟物体之间的遮挡效果。
参见图8,图8为本申请实施例提供的另一种终端设备的结构示意图。如图8所示,该终端设备100包括:
2D-3D匹配模块102,用于将当前图像的第一2D特征点与预先存储的2D特征点进行匹配,得到当前图像的第二2D特征点;根据当前图像中的第二2D特征点,和预先存储的2D特征点与3D点的关系,获取当前图像中的第二2D特征点对应的3D点;该第二2D特征点对应的3D点构成第一深度图;
深度估计模块104,用于当前图像进行特征提取,得到T张第一特征图,该T张第一特征图中每张第一特征图的分辨率各不相同;对第一深度图进行特征提取,得到T张第二特征图,该T张第二特征图中每张第二特征图的分辨率各不相同;将T张第一特征图和T张第二特征图中,分辨率相同的第一特征图和第二特征图进行叠加,得到T张第三特征图;对T张第三特征图进行上采样和融合处理,以得到当前图像的目标深度图。
在此需要说明的是,对T张第三特征图进行上采样和融合处理,以得到当前图像的目标深度图的具体过程可参见步骤S302的相关描述,在此不再叙述。
人像分割模块108,用于将当前图像,通过人像分割网络,得到人像分割结果图。人像分割网络包括特征提取网络和softmax分类器。特征提取网络用来提取当前图像的特征,然后对当前图像的特征进行双线性上采样得到与输入大小一致的特征图,最后通过softmax分类器得到每个像素的标签,从而得到人像分割结果图,也称作人像mask。例如,输入当前图像到BiSeNet得到特征图,再通过Softmax分类器对此特征图的每个像素进行分类,其中,人像区域的像素分为255,非人像区域的像素分为0。
深度图边缘优化模块105,用于对当前图像及其目标深度图分别进行边缘结构提取,得到当前图像的边缘结构信息和目标深度图的边缘结构信息;以当前图像的边缘结构信息作为参考,计算目标深度图的边缘结构到当前图像的边缘结构的差值,然后通过这个差值修改目标深度图的边缘位置,从而优化深度图的边缘,得到优化后的深度图,该深度图为与当前图像的边缘对应的、锐利的深度图;
多视图融合模块106,用于根据人像mask对优化后的深度图进行人像分割,得到前景深度图和背景深度图,背景深度图为优化后的深度图中含有非人区域的深度图,前景深度图为优化后的深度图中含有人像区域的深度图;根据L张背景深度图分别对应的L个位姿对L张背景深度图进行融合,以得到融合后的三维场景;L张背景深度图包括预先存储的图像的背景深度图和当前图像的背景深度图,所述L个位姿包括预先存储的图像和当前图像的位姿;L为大于1的整数;根据当前图像的位姿对融合后的三维场景进行反投影,以得到融合后的背景深度图;将融合后的背景深度图和当前图像的前景深度图进行拼接,得到更新后的深度图;
虚实遮挡应用模块107,用于根据更新后的深度图判断当前图像的每个像素对应的深度值和虚拟物体的深度值的关系,若虚拟物体中任一像素点A对应的深度值大于当前图像中与虚拟物体中任一像素点A位置相同的像素点B对应的深度值,则显示当前图像的颜色;反之则显示虚拟物体的颜色;按照该方法遍历所有像素点后,在终端设备上显示出遮挡效果。
参见图9,图9为本申请实施例提供的一种系统结构示意图。如图9所示,该系统包括终端设备100和服务器200,其中,该终端设备100包括:2D-3D匹配模块102、深度估计模块104、深度图边缘优化模块105、人像分割模块108和虚实遮挡应用模块107;服务器200包括VPS定位与地图下发模块101和局部地图更新模块103;
VPS定位与地图下发模块101,用于在接收到当前图像后,根据VPS计算得到当前图像在全局地图中的位置和角度信息,该位置和角度信息合称为位姿信息,该位姿信息是基于世界坐标系下的位姿;根据位姿信息从基础地图中获取局部地图,比如局部地图为基础地图中以上述位姿信息中的位置为中心,周围一定范围内(比如以半径为50米)的区域;基础地图中包括物体的2D特征点及其对应的特征描述子,和3D点云信息,因此局部地图中也包括物体的2D特征点及其对应的特征描述子和3D点云信息;
2D-3D匹配模块102,用于对当前图像进行特征提取,以得到当前图像的第一2D特征点;根据局部地图的2D特征点对当前图像的第一2D特征点进行匹配,得到局部地图中的第三2D特征点;局部地图是服务器根据当前图像获取的;根据局部地图中的第二2D特征点和局部地图的中的2D特征点与3D点的对应关系,获取局部地图中的第三2D特征点对应的3D点;其中,当前图像的第一深度图包括局部地图中的第三2D特征点对应的3D点;
深度估计模块104,用于对当前图像进行特征提取,得到T张第一特征图,该T张第一特征图中每张第一特征图的分辨率各不相同;对第一深度图进行特征提取,得到T张第二特征图,该T张第二特征图中每张第二特征图的分辨率各不相同;将T张第一特征图和T张第二特征图中,分辨率相同的第一特征图和第二特征图进行叠加,得到T张第三特征图;对T张第三特征图进行上采样和融合处理,以得到当前图像的目标深度图;
在一个可选的实施例中,局部地图更新模块103,用于将当前图像的第一2D特征点与预先存储的图像的2D特征点进行匹配,以得到当前图像的第六2D特征点;将当前图像的第六2D特征点中的噪声点剔除,以得到当前图像的第七2D特征点;对当前图像的第七2D特征点中的每个2D特征点进行三角化计算,得到当前图像的第七2D特征点在空间中的初始3D点;当前图像的初始深度图包括当前图像的第七2D特征点在空间中的初始3D点云;从多帧基础地图中,获取M张地图,该M张地图中每张地图与当前图像相似度大于第一预设阈值;将M张地图的2D特征点与当前图像的第一2D特征点进行匹配,得到多个特征点匹配对;多个特征点匹配对中的每个特征点匹配对包括第四2D特征点和第五2D特征点,第四2D特征点与第五2D特征点为相互匹配的特征点,第四2D特征点为当前图像的第一2D特征点,第五2D特征点为M张地图中的2D特征点;根据M张地图中第五2D特征点与3D点的对应关系,获取多个特征点匹配对中每个第四2D特征点对应的3D点;根据局部地图对应的3D点和所述多个特征点匹配对中第四2D特征点对应的3D点,获取第五深度图,该第五深度图包括局部地图对应的3D点中,与多个特征点匹配对中第四2D特征点对应的3D点相匹配的3D点;将上述初始深度图和第三深度图,将上述初始深度图和第五深度图,结合当前图像和预先存储的图像中的每张图像的初始位姿信息,使用BA,调整优化深度图中3D点的位置信息,并计算优化后点云中每个3D点的重投影误差,将重投影误差超过误差阈值的3D点删除;并重复上述BA优化和点云删除步骤多次,最后得到优化后的高精度深度图,该优化后的高精度深度图为上述第二深度图,从而实现服务器中基础地图的更新;
深度估计模块104,用于对当前图像进行特征提取,得到T张第一特征图,该T张第一特征图中每张第一特征图的分辨率各不相同;对第三深度图进行特征提取,得到T张第二特征图,该T张第二特征图中每张第二特征图的分辨率各不相同,第三深度图是对第一深度图和第二深度图进行拼接得到的;将T张第一特征图和T张第二特征图中,分辨率相同的第一特征图和第二特征图进行叠加,得到T张第三特征图;对T张第三特征图进行上采样和融合处理,以得到当前图像的目标深度图;
在此需要说明的是,对T张第三特征图进行上采样和融合处理,以得到当前图像的目标深度图的具体过程可参见步骤S302的相关描述,在此不再叙述。
人像分割模块108,用于将当前图像,通过人像分割网络,得到人像分割结果图。人像分割网络包括特征提取网络和softmax分类器。特征提取网络用来提取当前图像的特征,然后对当前图像的特征进行双线性上采样得到与输入大小一致的特征图,最后通过softmax分类器得到每个像素的标签,从而得到人像分割结果图,也称作人像mask。例如,输入当前图像到BiSeNet得到特征图,再通过Softmax分类器对此特征图的每个像素进行分类,其中,人像区域的像素分为255,非人像区域的像素分为0。
深度图边缘优化模块105,用于对当前图像及其目标深度图分别进行边缘结构提取,得到当前图像的边缘结构信息和目标深度图的边缘结构信息;以当前图像的边缘结构信息作为参考,计算目标深度图的边缘结构到当前图像的边缘结构的差值,然后通过这个差值修改目标深度图的边缘位置,从而优化深度图的边缘,得到优化后的深度图,该深度图为与当前图像的边缘对应的、锐利的深度图;
虚实遮挡应用模块107,用于根据人像mask对优化后的深度图进行人像分割,得到包含人像区域的深度图和非人像区域的深度图;再根据包含人像区域的深度图和包含非人像区域的深度图中的深度值与虚拟物体的深度值的关系叠加显示当前图像和虚拟物体图像;若虚拟物体图像中任一像素点A对应的深度值大于当前图像中与虚拟物体图像中任一像素点A位置相同的像素点B对应的深度值,则显示当前图像的颜色;反之则显示虚拟物体图像的颜色;按照该方法遍历所有像素点后,在终端设备上显示出遮挡效果。由于对优化后的深度图进行人像分割,在当前图像中包括人像时,在终端设备上可以显示出人与虚拟物体之间的遮挡效果。
参见图10,图10为本申请实施例提供的另一种系统结构示意图。如图10所示,该系统包括终端设备100和服务器200,其中,该终端设备100包括:2D-3D匹配模块102、深度估计模块104、深度图边缘优化模块105、人像分割模块108和虚实遮挡应用模块107;服务器200包括VPS定位与地图下发模块101和局部地图更新模块103;
VPS定位与地图下发模块101,用于在接收到当前图像后,根据VPS计算得到当前图像在全局地图中的位置和角度信息,该位置和角度信息合称为位姿信息,该位姿信息是基于世界坐标系下的位姿;根据位姿信息从基础地图中获取局部地图,比如局部地图为基础地图中以上述位姿信息中的位置为中心,周围一定范围内(比如以半径为50米)的区域;基础地图中包括物体的2D特征点及其对应的特征描述子,和3D点云信息,因此局部地图中也包括物体的2D特征点及其对应的特征描述子和3D点云信息;
2D-3D匹配模块102,用于对当前图像进行特征提取,以得到当前图像的第一2D特征点;根据局部地图的2D特征点对当前图像的第一2D特征点进行匹配,得到局部地图中的第三2D特征点;局部地图是服务器根据当前图像获取的;根据局部地图中的第二2D特征点和局部地图的中的2D特征点与3D点的对应关系,获取局部地图中的第三2D特征点对应的3D点;其中,当前图像的第一深度图包括局部地图中的第三2D特征点对应的3D点;
深度估计模块104,用于对当前图像进行特征提取,得到T张第一特征图,该T张第一特征图中每张第一特征图的分辨率各不相同;对第一深度图进行特征提取,得到T张第二特征图,该T张第二特征图中每张第二特征图的分辨率各不相同;将T张第一特征图和T张第二特征图中,分辨率相同的第一特征图和第二特征图进行叠加,得到T张第三特征图;对T张第三特征图进行上采样和融合处理,以得到当前图像的目标深度图;
在一个可选的实施例中,局部地图更新模块103,用于将当前图像的第一2D特征点与预先存储的图像的2D特征点进行匹配,以得到当前图像的第六2D特征点;将当前图像的第六2D特征点中的噪声点剔除,以得到当前图像的第七2D特征点;对当前图像的第七2D特征点中的每个2D特征点进行三角化计算,得到当前图像的第七2D特征点在空间中的初始3D点;当前图像的初始深度图包括当前图像的第七2D特征点在空间中的初始3D点云;从多帧基础地图中,获取M张地图,该M张地图中每张地图与当前图像相似度大于第一预设阈值;将M张地图的2D特征点与当前图像的第一2D特征点进行匹配,得到多个特征点匹配对;多个特征点匹配对中的每个特征点匹配对包括第四2D特征点和第五2D特征点,第四2D特征点与第六2D特征点为相互匹配的特征点,第四2D特征点为当前图像的第一2D特征点,第五2D特征点为M张地图中的2D特征点;根据M张地图中第五2D特征点与3D点的对应关系,获取多个特征点匹配对中每个第四2D特征点对应的3D点;根据局部地图对应的3D点和所述多个特征点匹配对中第四2D特征点对应的3D点,获取第五深度图,该第五深度图包括局部地图对应的3D点中,与多个特征点匹配对中第四2D特征点对应的3D点相匹配的3D点;将上述初始深度图和第三深度图,将上述初始深度图和第五深度图,结合当前图像和预先存储的图像中的每张图像的初始位姿信息,使用BA,调整优化深度图中3D点的位置信息,并计算优化后点云中每个3D点的重投影误差,将重投影误差超过误差阈值的3D点删除;并重复上述BA优化和点云删除步骤多次,最后得到优化后的高精度深度图,该优化后的高精度深度图为上述第二深度图,从而实现服务器中基础地图的更新;
深度估计模块104,用于对当前图像进行特征提取,得到T张第一特征图,该T张第一特征图中每张第一特征图的分辨率各不相同;对第三深度图进行特征提取,得到T张第二特征图,该T张第二特征图中每张第二特征图的分辨率各不相同,第三深度图是对第一深度图和第二深度图进行拼接得到的;将T张第一特征图和T张第二特征图中,分辨率相同的第一特征图和第二特征图进行叠加,得到T张第三特征图;对T张第三特征图进行上采样和融合处理,以得到当前图像的目标深度图;
在此需要说明的是,对T张第三特征图进行上采样和融合处理,以得到当前图像的目标深度图的具体过程可参见步骤S302的相关描述,在此不再叙述。
人像分割模块108,用于将当前图像,通过人像分割网络,得到人像分割结果图。人像分割网络包括特征提取网络和softmax分类器。特征提取网络用来提取当前图像的特征,然后对当前图像的特征进行双线性上采样得到与输入大小一致的特征图,最后通过softmax分类器得到每个像素的标签,从而得到人像分割结果图,也称作人像mask。例如,输入当前图像到BiSeNet得到特征图,再通过Softmax分类器对此特征图的每个像素进行分类,其中,人像区域的像素分为255,非人像区域的像素分为0。
深度图边缘优化模块105,用于对当前图像及其目标深度图分别进行边缘结构提取,得到当前图像的边缘结构信息和目标深度图的边缘结构信息;以当前图像的边缘结构信息作为参考,计算目标深度图的边缘结构到当前图像的边缘结构的差值,然后通过这个差值修改目标深度图的边缘位置,从而优化深度图的边缘,得到优化后的深度图,该深度图为与当前图像的边缘对应的、锐利的深度图;
多视图融合模块106,用于根据人像mask对优化后的深度图进行人像分割,得到前景深度图和背景深度图,背景深度图为优化后的深度图中含有非人区域的深度图,前景深度图为优化后的深度图中含有人像区域的深度图;根据L张背景深度图分别对应的L个位姿对L张背景深度图进行融合,以得到融合后的三维场景;L张背景深度图包括预先存储的图像的背景深度图和当前图像的背景深度图,所述L个位姿包括预先存储的图像和当前图像的位姿;L为大于1的整数;根据当前图像的位姿对融合后的三维场景进行反投影,以得到融合后的背景深度图;将融合后的背景深度图和当前图像的前景深度图进行拼接,得到更新后的深度图;
虚实遮挡应用模块107,用于根据更新后的深度图判断当前图像的每个像素对应的深度值和虚拟物体的深度值的关系,若虚拟物体中任一像素点A对应的深度值大于当前图像中与虚拟物体中任一像素点A位置相同的像素点B对应的深度值,则显示当前图像的颜色;反之则显示虚拟物体的颜色;按照该方法遍历所有像素点后,在终端设备上显示出遮挡效果。
在此需要说明的是,为了提高当前图像的目标深度图的精度,对于图7-图10中的深度估计模块104,引入TOF摄像头采集的深度图;此时深度估计模块104用于对当前图像进行特征提取,得到T张第一特征图,并对第三深度图进行特征提取,得到T张第二特征图;对参考深度图进行特征提取,得到T张第四特征图,T张第一特征图中每张第一特征图的分辨率各不相同,T张第二特征图中每张第二特征图的分辨率各不相同,T张第四特征图中每张第四特征图的分辨率各不相同;参考深度图是根据飞行时间TOF摄像头采集的深度图获取的,T为大于1的整数;将T张第一特征图、T张第二特征图和T张第四特征图中,分辨率相同的第一特征图、第二特征图和第四特征图进行叠加,得到T张第五特征图;对T张第五特征图进行上采样和融合处理,以得到当前图像的目标深度图;
其中,第三深度图可以为上述第一深度图,或者为对上述第一深度图和第二深度图进行拼接得到的。
可选地,参考深度图为TOF摄像头采集的深度图。
为了降低终端设备的功耗,上述TOF摄像头按照低于预设帧率的帧率采集深度图,且该深度图的分辨率低于预设分辨率;终端设备100根据当前图像的位姿对TOF摄像头采集的深度图投影到三维空间中的,得到对第四深度图;根据参考图像的位姿将该第四深度图投影到参考图像上,得到参考深度图,参考图像为在采集时间上与当前图像相邻的图像。
可选地,TOF摄像头可以为终端设备100的摄像头,也可以为其他终端设备的摄像头;其他终端设备的TOF摄像头采集的深度图后,其他终端设备将TOF摄像头采集的深度图发送至终端设备100。采用这种方式可以在终端设备100不包括TOF摄像头的前提下,也可以引入TOF采集的深度图,从而提高当前图像的目标深度图的精度。
参见图11,图11为本申请实施例提供终端设备的结构示意图。如图11所示,该终端设备1100包括:
获取单元1101,用于获取当前图像和虚拟物体图像,并根据当前图像获取当前图像的第一深度图和第二深度图,其中,第二深度图是从服务器中获取的;
估计单元1102,用于根据当前图像、当前图像的第一深度图和第二深度图进行特征提取,并根据特征提取的结果得到当前图像的目标深度图。
在一个可行的实施例中,获取单元1101,还用于虚拟物体图像;
终端设备1100还包括:
叠加显示单元1103,用于根据当前图像的目标深度图叠加显示虚拟物体图像和当前图像。
在一个可行的实施例中,在根据当前图像获取当前图像的第一深度图的方面,获取单元1101具体用于:
对当前图像进行特征提取,以得到当前图像的第一2D特征点;将当前图像的第一2D特征点与预先存储的2D特征点进行匹配,得到当前图像中的第二2D特征点;根据当前图像中的第二2D特征点和预先存储的2D特征点与3D点的对应关系,获取当前图像中的第二2D特征点对应的3D点;其中,当前图像的第一深度图包括当前图像中的第二2D特征点对应的3D点。
在一个可行的实施例中,在根据当前图像获取当前图像的第一深度图的方面,获取单元1101具体用于:
对当前图像进行特征提取,以得到当前图像的第一2D特征点;根据局部地图的2D特征点对当前图像的第一2D特征点进行匹配,得到局部地图中的第三2D特征点;局部地图是服务器根据当前图像获取的;根据局部地图中的第二2D特征点和局部地图的中的2D特征点与3D点的对应关系,获取局部地图中的第三2D特征点对应的3D点;其中,当前图像的第一深度图包括局部地图中的第三2D特征点对应的3D点。
在一个可行的实施例中,在根据局部地图的2D特征点对当前图像的第一2D特征点进行匹配,得到局部地图中的第三2D特征点的方面,获取单元1101具体用于:
根据第一位姿从局部地图中获取目标地图,目标地图在局部地图中的位置与第一位姿中的角度信息所指示的位置是相关联的;第一位姿为将终端设备根据当前图像获取的位姿转化为在世界坐标系下的位姿,将目标地图中的2D特征点与当前图像的第一2D特征点进行匹配,以得到目标地图的第三2D特征点,局部地图的第三2D特征点包括目标地图的第三2D特征点。
在一个可行的实施例中,估计单元1102具体用于:
对当前图像进行多尺度特征提取,得到T张第一特征图,并对第三深度图进行特征提取,得到T张第二特征图;T张第一特征图中每张第一特征图的分辨率各不相同,T张第二特征图中每张第二特征图的分辨率各不相同;T为大于1的整数;将T张第一特征图和T张第二特征图中,分辨率相同的第一特征图和第二特征图进行叠加,得到T张第三特征图;对T张第三特征图进行上采样和融合处理,以得到当前图像的目标深度图;其中,第三深度图为上述第一深度图或者是对第一深度图和第二深度图进行拼接得到的。
在一个可行的实施例中,估计单元1102具体用于:
对当前图像进行多尺度特征提取,得到T张第一特征图,并对第三深度图进行多尺度特征提取,得到T张第二特征图;对参考深度图进行多尺度特征提取,得到T张第四特征图,T张第一特征图中每张第一特征图的分辨率各不相同,T张第二特征图中每张第二特征图的分辨率各不相同,T张第四特征图中每张第四特征图的分辨率各不相同;参考深度图是根据TOF摄像头采集的深度图获取的,T为大于1的整数;将T张第一特征图、T张第二特征图和T张第四特征图中,分辨率相同的第一特征图、第二特征图和第四特征图进行叠加,得到T张第五特征图;对T张第五特征图进行上采样和融合处理,以得到当前图像的目标深度图;其中,第三深度图是对第一深度图和第二深度图进行拼接得到的,或者第三深度图为上述第一深度图。
在一个可行的实施例中,参考深度图是根据TOF摄像头采集的图像获取的,具体包括:
根据当前图像的位姿将TOF摄像头采集的深度图投影到三维空间中,得到第四深度图;根据参考图像的位姿将第四深度图反投影到参考图像上,得到参考深度图;参考图像为在采集时间上与当前图像相邻的图像;其中,TOF摄像头采集的深度图的分辨率低于预设分辨率,且TOF摄像头采集该深度图时的帧率低于预设帧率。
在一个可行的实施例中,上述上采样和融合处理,包括:
S1:对特征图P’j进行上采样,得到特征图P”j,该特征图P”j的分辨率与处理对象中的第j+1张特征图Pj+1的分辨率相同,特征图Pj+1的宽为处理对象中分辨率最小的特征图的宽的j+1倍,j为大于0且小于T的整数;T为处理对象中特征图的数量;
S2:将特征图P”j与特征图Pj+1进行融合,得到第三特征图P’j+1,
S3:令j=j+1,并重复执行S1-S3,直至j=T-1;
其中,当j=1时,第三特征图P’j为处理对象中分辨率最小的特征图,当j=T-1时,第三特征图P’j+1为上采样和融合处理的结果。
在一个可行的实施例中,估计单元1102具体用于:
将当前图像及第三深度图输入到当前图像的深度估计模型中进行特征提取,并根据特征提取结果得到当前图像的目标深度图,其中,深度估计模型是基于卷积神经网络实现的。
在一个可行的实施例中,终端设备1100还包括:
发送单元1104,用于向服务器发送深度估计模型获取请求,该深度估计模型获取请求携带有当前图像和所述终端设备的位置;
接收单元1105,用于接收服务器发送的相应于深度估计模型获取请求的响应消息,该响应消息携带有当前图像的深度估计模型,当前图像的深度估计模型为服务器根据当前图像和终端设备在世界坐标系下的位置获取的。
在一个可行的实施例中,终端设备1100还包括:
训练单元1106,用于对初始卷积神经网络模型进行训练,以得到深度估计模型;
其中,训练单元1106具体用于:
将多张图像样本及其对应的多张深度图样本输入到初始卷积神经网络中进行处理,以得到多张预测深度图;根据多张预测深度图及与多张图像样本对应的真实深度图和损失函数计算得到损失值;根述损失值调整初始卷积神经网络中的参数,以得到当前图像的深度估计模型;其中,损失函数是基于预测深度图和真实深度图之间的误差、预测深度图的梯度和真实深度图的梯度之间的误差及预测深度图的法向量和真实深度图的法向量之间的误差确定的。
在一个可行的实施例中,叠加显示单元1103具体用于:
对当前图像的目标深度图进行边缘优化,以得到优化后的深度图;根据优化后的深度图叠加显示虚拟物体图像和当前图像。
在一个可行的实施例中,叠加显示单元1103具体用于:
对优化后的深度图进行分割,得到当前图像的前景深度图和背景深度图,背景深度图为优化后的深度图中含有背景区域的深度图,前景深度图为优化后的深度图中含有前景区域的深度图,优化后的深度图是对当前图像的目标深度图进行边缘优化得到的;根据L张背景深度图分别对应的L个位姿对该L张背景深度图进行融合,以得到融合后的三维场景;L张背景深度图包括预先存储的图像的背景深度图和当前图像的背景深度图,L个位姿包括预先存储的图像和当前图像的位姿;L为大于1的整数;根据当前图像的位姿对融合后的三维场景进行反投影,以得到融合后的背景深度图;将融合后的背景深度图和当前图像的前景深度图进行拼接,得到更新后的深度图;根据更新后的深度图叠加显示虚拟物体图像和当前图像。
需要说明的是,上述各单元(获取单元1101、估计单元1102、叠加显示单元1103、发送单元1104、接收单元1105和训练单元1106)用于执行上述方法的相关步骤。比如获取单元1101、估计单元1102、发送单元1104和接收单元1105用于执行步骤S301和S302的相关内容,叠加显示单元1103用于执行步骤S303的相关内容。
在本实施例中,终端设备1100是以单元的形式来呈现。这里的“单元”可以指特定应用集成电路(application-specific integrated circuit,ASIC),执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。此外,以上获取单元1101、估计单元1102、叠加显示单元1103和训练单元1106可通过图13所示的终端设备的处理器1301来实现。
参见图12,图12为本申请实施例提供的服务器的结构示意图。如图12所示,该服务器1200包括:
接收单元1201,用于接收终端设备发送的深度估计模型获取请求,该深度估计模型获取请求携带有终端设备采集的当前图像和终端设备的位置;
获取单元1202,用于根据当前图像的位置从服务器中存储的多个深度估计模型中获取当前图像的深度估计模型;
发送单元1203,用于向终端设备发送响应于深度估计模型获取请求的响应消息,响应消息携带有当前图像的深度估计模型。
在一个可行的实施例中,获取单元1202具体用于:
根据终端设备的位置获取多帧第一图像,该多帧第一图像为基础地图中以终端设备的位置为中心的预设范围内的图像,从多帧第一图像中获取目标图像,目标图像为多帧第一图像中与当前图像的相似度最高的图像;将目标图像对应的深度估计模型确定为当前图像的深度估计模型。
在一个可行的实施例中,服务器1200还包括:
训练单元1204,用于对于多帧第一图像,分别训练得到多帧第一图像中每帧第一图像的深度估计模块,
其中,对于多帧第一图像中的每一帧第一图像,按照以下步骤进行训练,得到每一第一图像的深度估计模型:
将多张图像样本及其对应的多张深度图样本输入到初始卷积神经网络中进行处理,以得到多张预测深度图;根据多张预测深度图及与多张图像样本对应的真实深度图和损失函数计算得到损失值;根据损失值调整初始卷积神经网络中的参数,以得到每一帧第一图像的深度估计模型;
其中,损失函数是基于预测深度图和真实深度图之间的误差、预测深度图的梯度和真实深度图的梯度之间的误差、以及,预测深度图的法向量和真实深度图的法向量之间的误差确定的。
在一个可行的实施例中,获取单元1202,还用于根据当前图像和预先存储的图像获取当前图像的初始深度图;根据当前图像和局部地图对应的3D点得到第五深度图;
服务器1200还包括:
优化单元1205,用于根据当前图像的位姿对初始深度图和第五深度图进行优化,以得到第二深度图。
在一个可行的实施例中,在根据当前图像和预先存储的图像获取当前图像的初始深度图的方面,获取单元1202具体用于:
将当前图像的第一2D特征点与预先存储的图像的2D特征点进行匹配,以得到当前图像的第六2D特征点;将当前图像的第六2D特征点中的噪声点剔除,以得到当前图像的第七2D特征点;对当前图像的第七2D特征点中的每个2D特征点进行三角化计算,得到当前图像的第七2D特征点在空间中的初始3D点;当前图像的初始深度图包括当前图像的第七2D特征点在空间中的初始3D点。
在一个可行的实施例中,在根据当前图像和局部地图对应的3D点得到第五深度图的方面,获取单元1202具体用于:
从多帧基础地图中,获取M张地图,该M张地图中每张地图与当前图像相似度大于第一预设阈值;M为大于0的整数;将M张地图的2D特征点与当前图像的第一2D特征点进行匹配,得到多个特征点匹配对;多个特征点匹配对中的每个特征点匹配对包括第四2D特征点和第五2D特征点,第四2D特征点与第五2D特征点为相互匹配的特征点,第四2D特征点为当前图像的第一2D特征点,第五2D特征点为M张地图中的2D特征点;根据M张地图中每个第五2D特征点与3D点的对应关系,获取多个特征点匹配对中每个第四2D特征点对应的3D点;根据局部地图对应的3D点和所述多个特征点匹配对中第四2D特征点对应的3D点,获取第五深度图,该第五深度图包括局部地图对应的3D点中,与多个特征点匹配对中第四2D特征点对应的3D点相匹配的3D点。
需要说明的是,上述各单元(发送单元1301、获取单元1302、接收单元1303、训练单元1304和优化单元1305)用于执行上述方法的相关步骤。比如发送单元1301用于执行步骤S501的相关内容,获取单元1302、训练单元1304和优化单元1305用于执行步骤S502的相关内容、接收单元1303用于执行步骤S503的相关内容。
在本实施例中,服务器1300是以单元的形式来呈现。这里的“单元”可以指特定应用集成电路(application-specific integrated circuit,ASIC),执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。此外,以上获取单元1302、训练单元1304和优化单元1305可通过图14所示的服务器的处理器1401来实现。
如图13所示终端设备1300可以图13中的结构来实现,该终端设备1300包括至少一个处理器1301,至少一个存储器1302以及至少一个通信接口1303和至少一个显示器1304。所述处理器1301、所述存储器1302、所述显示器1304和所述通信接口1303通过所述通信总线连接并完成相互间的通信。
处理器1301可以是通用中央处理器(CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制以上方案程序执行的集成电路。
通信接口1303,用于与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(Wireless Local Area Networks,WLAN)等。
存储器1302可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,所述存储器1302用于存储执行以上方案的应用程序代码,并由处理器1301来控制执行。所述处理器1301用于执行所述存储器1302中存储的应用程序代码。
存储器1302存储的代码可执行以上提供的一种图像的处理方法,比如:获取当前图像和虚拟物体图像,并根据当前图像获取当前图像的第一深度图和第二深度图,其中,第二深度图是从服务器中获取的;根据当前图像、当前图像的第一深度图和第二深度图进行特征提取,并根据特征提取的结果得到当前图像的目标深度图;根据当前图像的目标深度图叠加显示虚拟物体图像和当前图像。
如图14所示服务器1400可以图14中的结构来实现,该服务器1400包括至少一个处理器1401,至少一个存储器1402以及至少一个通信接口1403。所述处理器1401、所述存储器1402、所述显示器1404和所述通信接口1403通过所述通信总线连接并完成相互间的通信。
处理器1401可以是通用中央处理器(CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制以上方案程序执行的集成电路。
通信接口1403,用于与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(Wireless Local Area Networks,WLAN)等。
存储器1402可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,所述存储器1402用于存储执行以上方案的应用程序代码,并由处理器1401来控制执行。所述处理器1401用于执行所述存储器1402中存储的应用程序代码。
存储器1402存储的代码可执行以上提供的一种图像的处理方法,比如:接收终端设备发送的深度估计模型获取请求,该深度估计模型获取请求携带有终端设备采集的当前图像和终端设备的位置;根据当前图像的位置从服务器中存储的多个深度估计模型中获取当前图像的深度估计模型;向终端设备发送响应于深度估计模型获取请求的响应消息,响应消息携带有当前图像的深度估计模型。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的任何一种图像的处理方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (40)
1.一种图像的处理方法,其特征在于,所述方法包括:
获取当前图像,并根据所述当前图像得到第一深度图和第二深度图,其中,所述第二深度图是从服务器获取的;
根据所述当前图像、所述第一深度图和所述第二深度图进行特征提取,并根据特征提取的结果得到所述当前图像的目标深度图。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取虚拟物体图像;
根据所述当前图像的目标深度图叠加显示所述虚拟物体图像和所述当前图像。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述当前图像获取所述第一深度图,包括:
对所述当前图像进行特征提取,以得到所述当前图像的第一2D特征点;
将所述当前图像的第一2D特征点与预先存储的2D特征点进行匹配,得到当前图像中的第二2D特征点;
根据所述当前图像中的第二2D特征点,和所述预先存储的2D特征点与3D点的对应关系,获取所述当前图像中的第二2D特征点对应的3D点;
其中,所述第一深度图包括所述当前图像中的第二2D特征点对应的3D点。
4.根据权利要求1或2所述的方法,其特征在于,所述根据所述当前图像获取所述当前图像的第一深度图,包括:
对所述当前图像进行特征提取,以得到所述当前图像的第一2D特征点;
根据从所述服务器获取的局部地图的2D特征点对所述当前图像的第一2D特征点进行匹配,得到所述局部地图中的第三2D特征点;
根据所述局部地图中的第三2D特征点和所述局部地图的中的2D特征点与3D点的对应关系,获取所述局部地图中的第三2D特征点对应的3D点;
其中,所述当前图像的第一深度图包括所述局部地图中的第三2D特征点对应的3D点。
5.根据权利要求4所述的方法,其特征在于,所述根据局部地图的2D特征点对所述当前图像的第一2D特征点进行匹配,得到局部地图中的第三2D特征点,包括:
根据所述第一位姿从所述局部地图中获取目标地图,所述目标地图在所述局部地图中的位置与所述第一位姿中的角度信息所指示的位置是相关联的;所述第一位姿为将终端设备根据所述当前图像获取的位姿转化为在世界坐标系下的位姿,
将所述目标地图中的2D特征点与所述当前图像的第一2D特征点进行匹配,以得到所述目标地图的第三2D特征点,所述局部地图的第三2D特征点包括所述目标地图的第三2D特征点。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述根据所述当前图像、所述第一深度图和所述第二深度图特征提取,并根据特征提取的结果得到所述当前图像的目标深度图,包括:
对所述当前图像进行多尺度特征提取,得到T张第一特征图,并对第三深度图进行多尺度特征提取,得到T张第二特征图;所述T张第一特征图中每张第一特征图的分辨率各不相同,所述T张第二特征图中每张第二特征图的分辨率各不相同;所述T为大于1的整数;
将所述T张第一特征图和T张第二特征图中,分辨率相同的第一特征图和第二特征图进行叠加,得到T张第三特征图;
对所述T张第三特征图进行上采样和融合处理,以得到所述当前图像的目标深度图;其中,所述第三深度图是对所述第一深度图和所述第二深度图进行拼接得到的。
7.根据权利要求1-5任一项所述的方法,其特征在于,所述根据所述当前图像、所述第一深度图和所述第二深度图特征提取,并根据特征提取的结果得到所述当前图像的目标深度图,包括:
对所述当前图像进行多尺度特征提取,得到T张第一特征图,并对第三深度图进行多尺度特征提取,得到T张第二特征图;对参考深度图进行多尺度特征提取,得到T张第四特征图,所述T张第一特征图中每张第一特征图的分辨率各不相同,所述T张第二特征图中每张第二特征图的分辨率各不相同,所述T张第四特征图中每张第四特征图的分辨率各不相同;所述参考深度图是根据飞行时间TOF摄像头采集的深度图获取的,所述T为大于1的整数;
将所述T张第一特征图、T张第二特征图和T张第四特征图中,分辨率相同的第一特征图、第二特征图和第四特征图进行叠加,得到T张第五特征图;
对所述T张第五特征图进行上采样和融合处理,以得到所述当前图像的目标深度图;其中,所述第三深度图是对所述第一深度图和所述第二深度图进行拼接得到的。
8.根据权利要求7所述的方法,其特征在于,所述参考深度图是根据飞行时间TOF摄像头采集的图像获取的,具体包括:
根据当前图像的位姿将所述TOF摄像头采集的深度图投影到三维空间中,得到第四深度图;
根据参考图像的位姿将所述第四深度图反投影到所述参考图像上,得到所述参考深度图;所述参考图像为在采集时间上与当前图像相邻的图像;
其中,所述TOF摄像头采集的深度图的分辨率低于预设分辨率,且TOF摄像头采集该深度图时的帧率低于预设帧率。
9.根据权利要求6-8任一项所述的方法,其特征在于,所述上采样和融合处理,包括:
对特征图P’j进行上采样,得到特征图P”j,该特征图P”j的分辨率与所述处理对象中的第j+1张特征图Pj+1的分辨率相同;所述第j+1张特征图的宽为所述处理对象中分辨率最小的特征图的宽的j+1倍,所述j大于或者等于1且小于或者等于T-1;
将特征图P”j与所述特征图Pj+1进行融合,得到特征图P’j+1,
令j=j+1,并重复执行上述步骤,直至j=T-1;所述T为所述处理对象中特征图的数量;
其中,当j=1时,特征图P’j为所述处理对象中分辨率最小的特征图,当j=T-1时,特征图P’j+1为所述上采样和融合处理的结果。
10.根据权利要求6-9任一项所述的方法,其特征在于,所述根据所述当前图像、所述第一深度图和所述第二深度图特征提取,并根据特征提取的结果得到所述当前图像的目标深度图,包括:
将所述当前图像及所述第三深度图输入到所述当前图像的深度估计模型中进行特征提取,特征提取,并根据特征提取的结果得到所述当前图像的目标深度图;
其中,所述深度估计模型是基于卷积神经网络实现的。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
向所述服务器发送深度估计模型获取请求,所述深度估计模型获取请求携带有所述当前图像和所述终端设备的位置;
接收所述服务器发送的响应于所述深度估计模型获取请求的响应消息,所述响应消息携带有所述当前图像的深度估计模型,所述当前图像的深度估计模型为所述服务器根据所述当前图像和所述终端设备在世界坐标系下的位置获取的。
12.根据权利要求10所述的方法,其特征在于,所述方法还包括:
对初始卷积神经网络模型进行训练,以得到所述深度估计模型;
其中,所述对初始卷积神经网络进行训练,以得到所述深度估计模型,包括:
将多张图像样本及其对应的多张深度图样本输入到所述初始卷积神经网络中进行处理,以得到多张预测深度图;
根据多张预测深度图及与多张图像样本对应的真实深度图和损失函数计算得到损失值;
根据所述损失值调整所述初始卷积神经网络中的参数,以得到所述当前图像的深度估计模型;
其中,所述损失函数是基于预测深度图和真实深度图之间的误差、所述预测深度图的梯度和所述真实深度图的梯度之间的误差及所述预测深度图的法向量和所述真实深度图的法向量之间的误差确定的。
13.根据权利要求2-12任一项所述的方法,其特征在于,所述根据所述当前图像的目标深度图叠加显示虚拟物体和所述当前图像,包括:
对优化后的深度图进行分割,得到所述当前图像的前景深度图和背景深度图,所述背景深度图为所述优化后的深度图中含有背景区域的深度图,所述前景深度图为所述优化后的深度图中含有前景区域的深度图;所述优化后的深度图为对所述当前图像的目标深度图进行边缘优化得到的;
根据L张背景深度图分别对应的L个位姿对所述L张背景深度图进行融合,以得到融合后的三维场景;所述L张背景深度图包括预先存储的图像的背景深度图和当前图像的背景深度图,所述L个位姿包括所述预先存储的图像和当前图像的位姿;L为大于1的整数;
根据所述当前图像的位姿对融合后的三维场景进行反投影,以得到融合后的背景深度图;
将所述融合后的背景深度图和所述当前图像的前景深度图进行拼接,得到更新后的深度图;
根据所述更新后的深度图叠加显示所述虚拟物体和所述当前图像。
14.一种图像的处理方法,其特征在于,包括:
接收终端设备发送的深度估计模型请求消息,所述请求消息携带有所述终端设备采集的当前图像和所述终端设备的位置;
根据所述当前图像和所述终端设备的位置从服务器中存储的多个深度估计模型中获取当前图像的深度估计模型;
向所述终端设备发送响应于所述深度估计模型请求消息的响应消息,所述响应消息携带有所述当前图像的深度估计模型。
15.根据权利要求14所述的方法,其特征在于,所述根据所述当前图像和所述终端设备的位置从服务器中存储的多个深度估计模型中获取当前图像的深度估计模型,包括:
根据所述终端设备的位置获取多帧第一图像,所述多帧第一图像为基础地图中以所述终端设备的位置为中心的预设范围内的图像;
从所述多帧第一图像中获取目标图像,所述目标图像为所述多帧第一图像与所述当前图像相似度最高的图像;
将所述目标图像对应的深度估计模型确定为所述当前图像的深度估计模型。
16.根据权利要求15所述的方法,其特征在于,所述方法还包括:
对于所述多帧第一图像,分别训练得到多帧第一图像中每帧第一图像的深度估计模块,
其中,对于所述多帧第一图像中的每一帧第一图像,按照以下步骤进行训练,得到所述每一第一图像的深度估计模型:
将多张图像样本及其对应的多张深度图图样本输入到初始卷积神经网络中进行处理,以得到多张预测深度图;
根据多张预测深度图及与多张图像样本对应的真实深度图和损失函数计算得到损失值;
根据所述损失值调整所述初始卷积神经网络中的参数,以得到所述每一帧第一图像的深度估计模型;
其中,所述损失函数是基于预测深度图和真实深度图之间的误差、所述预测深度图的梯度和所述真实深度图的梯度之间的误差、以及,所述预测深度图的法向量和所述真实深度图的法向量之间的误差确定的。
17.根据权利要求14-16任一项所述的方法,其特征在于,所述方法还包括:
根据所述当前图像和预先存储的图像获取当前图像的初始深度图;
根据所述当前图像和所述局部地图对应的3D点得到第五深度图;
根据所述当前图像的位姿对所述初始深度图和所述第五深度图进行优化,以得到第二深度图。
18.根据权利要求17所述的方法,其特征在于,所述根据所述当前图像和所述局部地图对应的3D点得到第三深度图,包括
从多帧基础地图中,获取M张地图,所述M张地图中每张地图与所述当前图像相似度大于第一预设阈值;所述M为大于0的整数;
将所述M张地图的2D特征点与所述当前图像的第一2D特征点进行匹配,得到多个特征点匹配对;所述多个特征点匹配对中的每个特征点匹配对包括第四2D特征点和第五2D特征点,所述第四2D特征点与所述第五2D特征点为相互匹配的特征点,所述第四2D特征点为所述当前图像的第一2D特征点,所述第五2D特征点为所述M张地图中的2D特征点;
根据所述M张地图中每个第五2D特征点与3D点的对应关系,获取所述多个特征点匹配对中每个第四2D特征点对应的3D点;
根据所述局部地图对应的3D点和所述多个特征点匹配对中第四2D特征点对应的3D点,获取所述第五深度图,所述第五深度图包括所述局部地图对应的3D点中,与所述多个特征点匹配对中第四2D特征点对应的3D点相匹配的3D点。
19.一种终端设备,其特征在于,包括:
获取单元,用于获取当前图像和虚拟物体图像,并根据所述当前图像获取所述当前图像的第一深度图和第二深度图,所述第二深度图是从服务器获取的;
估计单元,用于根据所述当前图像、所述第一深度图和第二深度图进行特征提取,并根据特征提取结果得到所述当前图像的目标深度图。
20.根据权利要求19所述的终端设备,其特征在于,
所述获取单元,还用于获取虚拟物体图像;
所述终端设备还包括
叠加显示单元,用于根据所述当前图像的目标深度图叠加显示所述虚拟物体图像和所述当前图像。
21.根据权利要求19或20所述的终端设备,其特征在于,在所述根据所述当前图像获取所述当前图像的第一深度图的方面,所述获取单元具体用于:
对所述当前图像进行特征提取,以得到所述当前图像的第一2D特征点;
将所述当前图像的第一2D特征点与预先存储的2D特征点进行匹配,得到当前图像中的第二2D特征点,
根据所述当前图像中的第一2D特征点和所述预先存储的2D特征点与3D点的对应关系,获取所述当前图像中的第二2D特征点对应的3D点;
其中,所述当前图像的第一深度图包括所述当前图像中的第二2D特征点对应的3D点。
22.根据权利要求19所述的终端设备,其特征在于,在所述根据所述当前图像获取所述当前图像的第一深度图的方面,所述获取单元具体用于:
对所述当前图像进行特征提取,以得到所述当前图像的第一2D特征点;
根据从所述服务器获取的局部地图的2D特征点对所述当前图像的第一2D特征点进行匹配,得到所述局部地图中的第三2D特征点;
根据所述局部地图中的第三2D特征点和所述局部地图的中的2D特征点与3D点的对应关系,获取所述局部地图中的第三2D特征点对应的3D点;
其中,所述当前图像的第一深度图包括所述局部地图中的第三2D特征点对应的3D点。
23.根据权利要求22所述的终端设备,其特征在于,在所述根据局部地图的2D特征点对所述当前图像的第一2D特征点进行匹配,得到局部地图中的第三2D特征点的方面,所述获取单元具体用于:
根据所述第一位姿从所述局部地图中获取目标地图,所述目标地图在所述局部地图中的位置与所述第一位姿中的角度信息所指示的位置是相关联的;所述第一位姿为将终端设备根据所述当前图像获取的位姿转化为在世界坐标系下的位姿,
将所述目标地图中的2D特征点与所述当前图像的第一2D特征点进行匹配,以得到所述目标地图的第三2D特征点,所述局部地图的第三2D特征点包括所述目标地图的第三2D特征点。
24.根据权利要求19-23任一项所述的终端设备,其特征在于,估计单元具体用于:
对所述当前图像进行多尺度特征提取,得到T张第一特征图,并对第三深度图进行多尺度特征提取,得到T张第二特征图;所述T张第一特征图中每张第一特征图的分辨率各不相同,所述T张第二特征图中每张第二特征图的分辨率各不相同;所述T为大于1的整数;
将所述T张第一特征图和T张第二特征图中,分辨率相同的第一特征图和第二特征图进行叠加,得到T张第三特征图;
对所述T张第三特征图进行上采样和融合处理,以得到所述当前图像的目标深度图;其中,所述第三深度图是对所述第一深度图和所述第二深度图进行拼接的。
25.根据权利要求19-23任一项所述的终端设备,其特征在于,所述估计单元具体用于:
对所述当前图像进行多尺度特征提取,得到T张第一特征图,并对第三深度图进行多尺度特征提取,得到T张第二特征图;对参考深度图进行特征提取,得到T张第四特征图,所述T张第一特征图中每张第一特征图的分辨率各不相同,所述T张第二特征图中每张第二特征图的分辨率各不相同,所述T张第四特征图中每张第四特征图的分辨率各不相同;所述参考深度图是根据飞行时间TOF摄像头采集的深度图获取的,所述T为大于1的整数;
将所述T张第一特征图、T张第二特征图和T张第四特征图中,分辨率相同的第一特征图、第二特征图和第四特征图进行叠加,得到T张第五特征图;
对所述T张第三特征图进行上采样和融合处理,以得到所述当前图像的目标深度图;其中,所述第三深度图是对所述第一深度图和所述第二深度图进行拼接得到的。
26.根据权利要求25所述的终端设备,其特征在于,所述参考深度图是根据飞行时间TOF摄像头采集的图像获取的,具体包括:
根据当前图像的位姿将所述TOF摄像头采集的深度图投影到三维空间中,得到第四深度图;
根据参考图像的位姿将所述第四深度图反投影到所述参考图像上,得到所述参考深度图;参考图像为在采集时间上与当前图像相邻的图像;
其中,所述TOF摄像头采集的深度图的分辨率低于预设分辨率,且TOF摄像头采集该深度图时的帧率低于预设帧率。
27.根据权利要求24-26任一项所述的终端设备,其特征在于,所述上采样和融合处理,包括:
对特征图P’j进行上采样,得到特征图P”j,该特征图P”j的分辨率与所述处理对象中的第j+1张特征图Pj+1的分辨率相同;所述第j+1张特征图的宽为所述处理对象中分辨率最小的特征图的宽的j+1倍,所述j为大于或者等于1且小于或者等于T-1;
将特征图P”j与所述特征图Pj+1进行融合,得到特征图P’j+1,
令j=j+1,并重复执行上述步骤,直至j=T-1;所述T为所述处理对象中特征图的数量;
其中,当j=1时,特征图P’j为所述处理对象中分辨率最小的特征图,当j=T-1时,特征图P’j+1为所述上采样和融合处理的结果。
28.根据权利要求24-27任一项所述的终端设备,其特征在于,所述估计单元具体用于:
将所述当前图像及所述第三深度图输入到所述当前图像的深度估计模型中进行特征提取,并根据特征提取的结果得到所述当前图像的目标深度图;
其中,所述深度估计模型是基于卷积神经网络实现的。
29.根据权利要求28所述的终端设备,其特征在于,所述终端设备还包括:
发送单元,用于向所述服务器发送深度估计模型获取请求,所述深度估计模型获取请求携带有所述当前图像和所述终端设备的位置;
接收单元,用于接收所述服务器发送的相应于所述深度估计模型获取请求的响应消息,所述响应消息携带有所述当前图像的深度估计模型,所述当前图像的深度估计模型为所述服务器根据所述当前图像和所述终端设备在世界坐标系下的位置获取的。
30.根据权利要求28所述的终端设备,其特征在于,所述终端设备还包括:
训练单元,用于对初始卷积神经网络模型进行训练,以得到所述深度估计模型;
其中,所述训练模块具体用于:
将多张图像样本及其对应的多张深度图样本输入到初始卷积神经网络中进行处理,以得到多张预测深度图;
根据多张预测深度图及与多张图像样本对应的真实深度图和损失函数计算得到损失值;
根据所述损失值调整所述初始卷积神经网络中的参数,以得到所述当前图像的深度估计模型;
其中,所述损失函数是基于预测深度图和真实深度图之间的误差、所述预测深度图的梯度和所述真实深度图的梯度之间的误差及所述预测深度图的法向量和所述真实深度图的法向量之间的误差确定的。
31.根据权利要求19-29任一项所述的终端设备,其特征在于,所述叠加显示单元具体用于:
对优化后的深度图进行分割,得到所述当前图像的前景深度图和背景深度图,所述背景深度图为所述当前图像的优化后的深度图中含有背景区域的深度图,所述前景深度图为所述当前图像的优化后的深度图中含有前景区域的深度图;所述优化后的深度图为对所述当前图像的目标深度图进行边缘优化得到的;
根据L个深度图分别对应的L个位姿对所述L张背景深度图进行融合,以得到融合后的三维场景;所述L张背景深度图包括预先存储的图像的背景深度图和当前图像的背景深度图,所述L个位姿包括所述预先存储的图像和当前图像的位姿;L为大于1的整数;
根据所述当前图像的位姿对融合后的三维场景进行反投影,以得到融合后的背景深度图;
将所述融合后的背景深度图和所述当前图像的前景深度图进行拼接,得到更新后的深度图;
根据所述更新后的深度图叠加显示所述虚拟物体和所述当前图像。
32.一种服务器,其特征在于,包括:
接收单元,用于接收终端设备发送的深度估计模型请求消息,所述请求消息携带有所述终端设备采集的当前图像和所述终端设备的位置;
获取单元,用于根据所述当前图像和所述终端设备的位置从服务器中存储的多个深度估计模型中获取当前图像的深度估计模型;
发送单元,用于向所述终端设备发送响应于所述深度估计模型请求消息的响应消息,所述响应消息携带有所述当前图像的深度估计模型。
33.根据权利要求30所述的服务器,其特征在于,所述获取单元具体用于:
根据所述终端设备的位置获取多帧第一图像,所述多帧第一图像为基础地图中以所述终端设备的位置为中心的预设范围内的图像;
从所述多帧第一图像中获取目标图像,所述目标图像为所述多帧第一图像与所述当前图像相似度最高的图像;
将所述目标图像对应的深度估计模型确定为所述当前图像的深度估计模型。
34.根据权利要求33所述的服务器,其特征在于,所述服务器还包括:
训练单元,用于对于所述多帧第一图像,分别训练得到多帧第一图像中每帧第一图像的深度估计模块,
其中,对于所述多帧第一图像中的每一帧第一图像,按照以下步骤进行训练,得到所述每一第一图像的深度估计模型:
将多张图像样本及其对应的多张深度图样本输入到初始卷积神经网络中进行处理,以得到多张预测深度图;
根据多张预测深度图及与多张图像样本对应的真实深度图和损失函数计算得到损失值;
根据所述损失值调整所述初始卷积神经网络中的参数,以得到所述每一帧第一图像的深度估计模型;
其中,所述损失函数是基于预测深度图和真实深度图之间的误差、所述预测深度图的梯度和所述真实深度图的梯度之间的误差、以及,所述预测深度图的法向量和所述真实深度图的法向量之间的误差确定的。
35.根据权利要求32-34任一项所述的服务器,其特征在于,
所述获取单元,还用于根据所述当前图像和预先存储的图像获取当前图像的初始深度图,根据所述当前图像和所述局部地图对应的3D得到第五深度图;
所述服务器还包括:
优化单元,用于根据所述当前图像的位姿对所述初始深度图和所述第五深度图进行优化,以得到第二深度图。
36.根据权利要求35所述的服务器,其特征在于,在所述根据所述当前图像和所述局部地图对应的3D点得到第三深度图的方面,所述获取单元具体用于:
从多帧基础地图中,获取M张地图,所述M张地图中每张地图与所述当前图像相似度大于第一预设阈值;所述M为大于0的整数;
将所述M张地图的2D特征点与所述当前图像的第一2D特征点进行匹配,得到多个特征点匹配对;所述多个特征点匹配对中的每个特征点匹配对包括第四2D特征点和第五2D特征点,所述第四2D特征点与所述第五2D特征点为相互匹配的特征点,所述第四2D特征点为所述当前图像的第一2D特征点,所述第五2D特征点为所述M张地图中的2D特征点;
根据所述M张地图中每个第五2D特征点与3D点的对应关系,获取所述多个特征点匹配对中每个第四2D特征点对应的3D点;
根据所述局部地图对应的3D点和所述多个特征点匹配对中第四2D特征点对应的3D点,获取所述第五深度图,所述第五深度图包括所述局部地图对应的3D点中,与所述多个特征点匹配对中第四2D特征点对应的3D点相匹配的3D点。
37.一种终端设备,包括存储器,一个或多个处理器;其中,所述存储器存储有一个或多个程序;其特征在于,所述一个或多个处理器在执行所述一个或多个程序时,使得所述终端设备实现如权利要求1至13任一项所述的方法。
38.一种服务器,包括存储器,一个或多个处理器;其中,所述存储器存储有一个或多个程序;其特征在于,所述一个或多个处理器在执行所述一个或多个程序时,使得所述电子设备实现如权利要求14至18任一项所述的方法。
39.一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1至18任一项所述的方法。
40.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如权利要求1至18任一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010950951.0A CN114170290A (zh) | 2020-09-10 | 2020-09-10 | 图像的处理方法及相关设备 |
CN202180062229.6A CN116097307A (zh) | 2020-09-10 | 2021-08-19 | 图像的处理方法及相关设备 |
PCT/CN2021/113635 WO2022052782A1 (zh) | 2020-09-10 | 2021-08-19 | 图像的处理方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010950951.0A CN114170290A (zh) | 2020-09-10 | 2020-09-10 | 图像的处理方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114170290A true CN114170290A (zh) | 2022-03-11 |
Family
ID=80475882
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010950951.0A Pending CN114170290A (zh) | 2020-09-10 | 2020-09-10 | 图像的处理方法及相关设备 |
CN202180062229.6A Pending CN116097307A (zh) | 2020-09-10 | 2021-08-19 | 图像的处理方法及相关设备 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180062229.6A Pending CN116097307A (zh) | 2020-09-10 | 2021-08-19 | 图像的处理方法及相关设备 |
Country Status (2)
Country | Link |
---|---|
CN (2) | CN114170290A (zh) |
WO (1) | WO2022052782A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115578432A (zh) * | 2022-09-30 | 2023-01-06 | 北京百度网讯科技有限公司 | 图像处理方法、装置、电子设备及存储介质 |
CN115620181A (zh) * | 2022-12-05 | 2023-01-17 | 海豚乐智科技(成都)有限责任公司 | 基于墨卡托坐标切片的航拍图像实时拼接方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7565886B2 (ja) * | 2021-07-27 | 2024-10-11 | 本田技研工業株式会社 | 情報処理方法及びプログラム |
CN115436488B (zh) * | 2022-08-31 | 2023-12-15 | 南京智慧基础设施技术研究院有限公司 | 一种基于视觉与声纹融合的自引导自调适移动检测系统及方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107483845B (zh) * | 2017-07-31 | 2019-09-06 | Oppo广东移动通信有限公司 | 拍照方法及其装置 |
CN107590484A (zh) * | 2017-09-29 | 2018-01-16 | 百度在线网络技术(北京)有限公司 | 用于呈现信息的方法和装置 |
EP3794555B1 (en) * | 2018-05-17 | 2024-03-13 | Niantic, Inc. | Self-supervised training of a depth estimation system |
CN110895822B (zh) * | 2018-09-13 | 2023-09-01 | 虹软科技股份有限公司 | 深度数据处理系统的操作方法 |
CN110599533B (zh) * | 2019-09-20 | 2023-06-27 | 湖南大学 | 适用于嵌入式平台的快速单目深度估计方法 |
CN110889890B (zh) * | 2019-11-29 | 2023-07-28 | 深圳市商汤科技有限公司 | 图像处理方法及装置、处理器、电子设备及存储介质 |
CN111612831A (zh) * | 2020-05-22 | 2020-09-01 | 创新奇智(北京)科技有限公司 | 一种深度估计方法、装置、电子设备及存储介质 |
-
2020
- 2020-09-10 CN CN202010950951.0A patent/CN114170290A/zh active Pending
-
2021
- 2021-08-19 WO PCT/CN2021/113635 patent/WO2022052782A1/zh active Application Filing
- 2021-08-19 CN CN202180062229.6A patent/CN116097307A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115578432A (zh) * | 2022-09-30 | 2023-01-06 | 北京百度网讯科技有限公司 | 图像处理方法、装置、电子设备及存储介质 |
CN115620181A (zh) * | 2022-12-05 | 2023-01-17 | 海豚乐智科技(成都)有限责任公司 | 基于墨卡托坐标切片的航拍图像实时拼接方法 |
CN115620181B (zh) * | 2022-12-05 | 2023-03-31 | 海豚乐智科技(成都)有限责任公司 | 基于墨卡托坐标切片的航拍图像实时拼接方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2022052782A1 (zh) | 2022-03-17 |
CN116097307A (zh) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11232286B2 (en) | Method and apparatus for generating face rotation image | |
US20210350168A1 (en) | Image segmentation method and image processing apparatus | |
WO2022165809A1 (zh) | 一种训练深度学习模型的方法和装置 | |
CN108898676B (zh) | 一种虚实物体之间碰撞及遮挡检测方法及系统 | |
CN109683699B (zh) | 基于深度学习实现增强现实的方法、装置及移动终端 | |
CN112446380A (zh) | 图像处理方法和装置 | |
CN114170290A (zh) | 图像的处理方法及相关设备 | |
CN106934827A (zh) | 三维场景的重建方法和装置 | |
CN108121931A (zh) | 二维码数据处理方法、装置及移动终端 | |
CN112446835B (zh) | 图像恢复方法、图像恢复网络训练方法、装置和存储介质 | |
WO2022165722A1 (zh) | 单目深度估计方法、装置及设备 | |
WO2022100419A1 (zh) | 一种图像处理方法及相关设备 | |
CN113673545A (zh) | 光流估计方法、相关装置、设备及计算机可读存储介质 | |
CN114677479A (zh) | 一种基于深度学习的自然景观多视图三维重建方法 | |
CN116977200A (zh) | 视频去噪模型的处理方法、装置、计算机设备和存储介质 | |
CN112541972B (zh) | 一种视点图像处理方法及相关设备 | |
CN113284055A (zh) | 一种图像处理的方法以及装置 | |
CN104463962A (zh) | 基于gps信息视频的三维场景重建方法 | |
CN113886510A (zh) | 一种终端交互方法、装置、设备及存储介质 | |
CN114494395A (zh) | 基于平面先验的深度图生成方法、装置、设备及存储介质 | |
CN112115786B (zh) | 基于注意力U-net的单目视觉里程计方法 | |
CN117333627B (zh) | 一种自动驾驶场景的重建与补全方法、系统及存储介质 | |
CN116091871B (zh) | 一种针对目标检测模型的物理对抗样本生成方法及装置 | |
CN113034675B (zh) | 一种场景模型构建方法、智能终端及计算机可读存储介质 | |
CN116883770A (zh) | 深度估计模型的训练方法、装置、电子设备及存储介质 |
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 |