具体实施方式
下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
申请概述
目前,能够采集深度信息的设备,造价昂贵,在大规模的工业实用中,经济性很差。在室内外场景三维重建领域中,需要深度数据形成点云从而建模,并且同时根据点云的距离信息,把传感器得到的不同位置的点云拼接起来。但是三维重建的深度数据获取,通常需要结构光、基于时间飞行(Time Of Flight)原理的激光等等高成本专用深度传感器。
基于此,目前可以采用机器学习方法训练模型,从而实现利用全景图生成带深度信息的全景图,抛弃现有方案中对于深度信息的强依赖,大大降低了图像信息的获取成本。训练模型时,需要准备了一个足够大的数据库,其中的每一条数据是一个数据对(全景图,对应的深度图),然后用数据库训练模型。但是,数据库中的全景图通常是由设置在固定高度的相机拍摄的,样本多样性不够,模型的泛化能力不足。
示例性***
图1示出了可以应用本公开的实施例的图像转换方法和装置、深度图预测模型生成方法和装置、深度图预测方法和装置的示例性***架构100。
如图1所示,***架构100可以包括终端设备101,网络102和服务器103。网络102用于在终端设备101和服务器103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101通过网络102与服务器103交互,以接收或发送消息等。终端设备101上可以安装有各种通讯客户端应用,例如图像处理应用、三维设计应用等。
终端设备101可以是各种电子设备,包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。
服务器103可以是提供各种服务的服务器,例如对终端设备101上传的全景图、深度图等信息进行处理的后台信息处理服务器。后台信息处理服务器可以对接收到的全景图和深度图进程处理,得到处理结果(例如转换后的全景图和深度图、训练的深度图预测模型等)。
需要说明的是,本公开的实施例所提供的深度图预测模型的生成方法、深度图预测模型生成方法、深度图预测方法可以由服务器103执行,也可以由终端设备101执行,相应地,深度图预测模型的生成装置、深度图预测模型生成装置、深度图预测装置设置于服务器103中,也可以设置于终端设备101中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。在全景图、深度图不需要从远程获取的情况下,上述***架构可以不包括网络,只包括服务器或终端设备。
示例性方法
图2是本公开一示例性实施例提供的图像转换方法的流程示意图。本实施例可应用在电子设备(如图1所示的终端设备101或服务器103)上,如图2所示,该方法包括如下步骤:
步骤201,获取在预设高度拍摄得到的第一全景图和对应的第一深度图。
在本实施例中,电子设备可以从远程或从本地获取在预设高度拍摄得到的第一全景图和对应的第一深度图。其中,第一全景图可以是由设置在上述预设高度(例如1.3米)的全景图拍摄相机(例如手机的相机)拍摄得到的,第一深度图可以是在相同位置上由深度相机(例如双目立体相机、激光雷达等)拍摄得到的。第一全景图和第一深度图中的像素点一一对应,深度图中的每个像素点具有对应的深度值(即被拍摄点与相机的距离)。
通常,第一全景图为球形投影(Equirectangular Projection)图像,因此,全景图中的每个点具有第一经度值和第一纬度值。其中,全景图的上下边不要求视角齐备,其垂直视角(即维度范围)可以低至一半、甚至更低。通常全景图的长宽比可以设置为2:1,若全景图由于垂直视角不足180°,则可以对全景图进行补充像素(例如补充RGB值为0的像素)。
步骤202,对于第一全景图中的每条经度线,从经度线上确定目标数量个点;基于第一深度图,确定目标数量个点中的每个点对应的第一深度值;基于每个点对应的第一深度值、第一纬度值和目标高度,确定每个点对应的针对目标高度的转换后深度值和转换后纬度值。
在本实施例中,对于第一全景图中的每条经度线,电子设备可以执行如下步骤:
步骤2021,从经度线上确定目标数量个点。
其中,经度线的密度可以任意设置。例如,全景图的经度范围为[0°,360°],经度线的间隔可以设置为1°,所以有360条经度线。经度线的间隔可以设置为0.5°,所以有720条经度线。需要说明的是,这里的经度线并非全景图上实际显示的线条,而是为了处理图像划分的虚拟线条。
目标数量可以是预先设置的,也可以是根据预设规则确定的。并且目标数量个点的分布方式可以是均匀分布,也可以是其他分布方式。
在一些可选的实现方式中,步骤2021可以如下执行:
基于第一全景图的纬度值范围,以及预设的表征相邻两个点之间的纬度间隔值,确定目标数量个点。例如,全景图的纬度范围为[0°,180°],点间隔为1°,则目标数量为180。如果间隔为0.5°,则目标数量为360。本实现方式可以在每条经度线上,均匀分布目标数量个点,有助于提高转换后得到的全景图和深度图的准确性。
步骤2022,基于第一深度图,确定目标数量个点中的每个点对应的第一深度值。
由于第一深度图中的像素与第一全景图的像素是一一对应的,因此,可以确定目标数量个点中的每个点对应的第一深度值。
步骤2023,基于每个点对应的第一深度值、第一纬度值和目标高度,确定每个点对应的针对目标高度的转换后深度值和转换后纬度值。
其中,目标高度是待预测的全景图的拍摄高度。例如第一全景图的拍摄高度为1.3米,目标高度可以是1.5米,即预测1.5米高度的全景图和深度图。
具体地,如图3所示,假设C1是原拍摄高度(即预设高度,C1到地面距离是h1),C2是转换后的拍摄高度(即目标高度,C2到底面距离是h2),A是空间中的某一点,其对应于在C1位置拍摄的全景图上的坐标是(u1,v1),其中,u1是经度(0~360°),v1是纬度(0~180°),其深度即A到C1的距离是d1。假设现在需要计算A在C2位置拍摄的全景图上的坐标(u2,v2)和A到C2的距离d2。
首先,很显然,不管是在C1拍摄、还是在C2拍摄,经度位置没有变化,所以u2=u1。
其次,根据三角形余弦定理,d22=d12+(h1-h2)2-2×d1×(h1-h2)×cos(π-v1)得到d2。
最后,关于v2,
所以上述两种情况,都有
即sin(v2)=d1×sin(v1)/d2。
还需判定v2是钝角还是锐角,才能根据余弦值计算角度。而这个判定,取决于A的高度,A的高度
因此:如果h<h2,则v2是钝角;如果h=h2,则v2是直角;如果h>h2,则v2是锐角,根据这个判定和sin(v2),就可以计算得到v2。
通过上述列举的方法,对于第一全景图上的一个点,可以计算得到该点在第二全景图上对应的点的经度值、纬度值和深度值。
步骤203,基于每个点的颜色值和对应的转换后深度值、转换后纬度值,生成针对目标高度预测的第二全景图和第二深度图。
在本实施例中,电子设备可以基于每个点的颜色值和对应的转换后深度值、转换后纬度值,生成针对目标高度预测的第二全景图和第二深度图。作为示例,步骤202可以是针对第一全景图中的每个像素点进行计算,得到每个像素点对应的经度值、转换后纬度值和转换后深度值,在第二全景图和第二深度图中,根据经度值、转换后纬度值确定的点的坐标,将第一全景图中相应的点的颜色值(例如RGB值)赋值给第二全景图中的点,将第一深度图中的相应的点的深度值赋值给第二深度图中的点。
在一些可选的实现方式中,步骤203可以如下执行:
步骤2031,对于待生成的第二全景图中的每条经度线,利用经度线对应的转换后纬度值序列,以及转换后纬度值序列中的每个转换后纬度值对应的颜色值,对经度线上的每个像素点的颜色值进行插值。
具体地,作为示例,第一全景图中的目标数量个点转换后得到的转换后纬度值序列为(0.5,1.2,1.8,……,179.5),这些点的颜色值赋值给第二全景图中相应的位置后,在第二全景图中的每条经度线上的各个点间,利用现有的各种差值方法(例如最近邻插值法、双线性插值法等)进行差值,得到其余像素点的颜色值。
步骤2032,基于插值后得到的每个像素点的颜色值,生成第二全景图。
经过步骤2031,第二全景图中的每个像素点的颜色值可以确定出,因而可以生成第二全景图。
步骤2033,对于待生成的第二深度图中的每条经度线,利用经度线对应的转换后深度值序列,以及转换后深度值序列中的每个转换后深度值对应的深度值,对经度线上的每个像素点的深度值进行插值。
具体地,作为示例,第一全景图图中的目标数量个点转换后得到的转换后深度值序列为(10000,9999,9998,……,6000),这些点的颜色值赋值给第二深度图中相应的位置后,在第二深度图中的每条经度线上的各个点间,利用现有的各种差值方法(例如最近邻插值法、双线性插值法等)进行差值,得到其余像素点的深度值。
步骤2034,基于插值后得到的每个像素点的深度值,生成第二深度图。
本实现方式,通过差值的方法为第二全景图中的各个点赋颜色值,以及为第二深度图中的各个点赋深度值,从而可以生成高质量的全景图和深度图。
本公开的上述实施例提供的方法,通过根据拍摄第一全景图的高度、第一全景图中的点的深度、经度值和纬度值,对第一全景图的像素点和对应的深度进行转换,得到第二全景图和第二深度图,从而实现了将一定高度拍摄的全景图转换为预测的在另一高度拍摄的全景图和深度图,进而可以有助于生成各种高度的全景图和深度图,无需在实际场景中的各种高度拍摄即可获得多种高度下的全景图和深度图,提高了获得全景图的效率,降低获得全景图的成本,有助于提高利用生成的全景图和深度图训练的模型的泛化能力。
图4是本公开一示例性实施例提供的深度图预测模型生成方法的流程示意图。本实施例可应用在电子设备(如图1所示的终端设备101或服务器103)上,如图4所示,该方法包括如下步骤:
步骤401,获取初始图像对集合。
在本实施例中,电子设备可以从本地或从远程获取初始图像对集合。其中,初始图像对集合中的图像对包括在对应的高度拍摄得到的第一全景图和对应的第一深度图。需要说明的是,每个图像对对应的高度可以相同(例如都是1.3米),也可以不同。其中,全景图的上下边不要求视角齐备,其垂直视角(即维度范围)可以低至一半、甚至更低。通常全景图的长宽比可以设置为2:1,若全景图由于垂直视角不足180°,则可以对全景图进行补充像素(例如补充RGB值为0的像素)。
步骤402,对于初始图像对集合中的每个图像对,确定图像对对应的目标高度,并将图像对包括的第一全景图和第一深度图转换为目标高度对应的第二全景图和第二深度图。
在本实施例中,对于初始图像对集合中的每个图像对,电子设备可以确定图像对对应的目标高度,并利用上述图2对应实施例描述的方法,将图像对包括的第一全景图和第一深度图转换为目标高度对应的第二全景图和第二深度图。
其中,电子设备可以按照各种方式确定图像对对应的目标高度。例如,目标高度可以是人工设置的高度。
在一些可选的实现方式中,对于初始图像对集合中的每个图像对,电子设备可以按照如下步骤确定图像对对应的目标高度:
在预设的高度范围(例如0.8米-1.8米)内,随机选择高度作为目标高度。该高度范围可以覆盖相机通常设置的高度,因而通过本实现方式,可以有助于生成各种高度对应的图像对,利用这些图像对进行模型训练,可以提高模型的泛化能力。
步骤403,将初始图像对集合和生成的第二全景图和第二深度图合并为训练样本图像对集合。
在本实施例中,电子设备可以将初始图像对集合和生成的第二全景图和第二深度图合并为训练样本图像对集合。即,训练样本图像对集合中的图像对,既可以包括第一全景图和第一深度图,也可以包括生成的第二全景图和第二深度图。
步骤404,将训练样本图像对集合中的训练样本图像对包括的全景图作为输入,将输入的全景图对应的深度图作为期望输出,训练得到深度图预测模型。
在本实施例中,电子设备可以利用机器学习方法,将训练样本图像对集合中的训练样本图像对包括的全景图作为输入,将输入的全景图对应的深度图作为期望输出,训练得到深度图预测模型。
具体地,模型的训练过程是一个最优解求解过程,其中,最优解通过数据标注的方式给出,模型向最优解拟合的过程主要是通过误差最小化的办法迭代进行。对于一张输入的全景图,设定一个损失函数,该函数可以计算模型的实际输出与期望输出之间的差值,并通过反向传播算法将该差值传导到神经网络中的每一个神经元之间的连接上,传导到每一个连接上的差值信号代表该连接对于整体误差的贡献率。然后利用梯度下降算法对原有权重进行更新修改即可。
电子设备可以利用机器学习方法,将步骤403得到的训练样本图像对集合中的训练样本图像对包括的全景图作为输入,将与输入的全景图对应的深度图作为期望输出,对初始模型(例如可以包括卷积神经网络,循环神经网络等)进行训练,针对每次训练输入的全景图,可以得到实际输出。其中,实际输出是初始模型实际输出的数据,用于表征各个像素点对应的深度。然后,电子设备可以采用梯度下降法和反向传播法,基于实际输出和期望输出,调整初始模型的参数,将每次调整参数后得到的模型作为下次训练的初始模型,并在满足预设的训练结束条件的情况下,结束训练,从而训练得到语音识别模型。
需要说明的是,这里预设的训练结束条件可以包括但不限于以下至少一项:训练时间超过预设时长;训练次数超过预设次数;利用预设的损失函数(例如交叉熵损失函数)计算所得的损失值小于预设损失值阈值。
上述初始模型可以包括各种结构的神经网络,例如使用DenseNet169作为骨架网络的卷积神经网络。
上述图4对应实施例提供的方法,通过将初始图像对集合中的每个初始图像对,按照上述图2对应实施例描述的方法进行转换,得到目标高度的全景图和深度图,并利用初始图像对和转换后的图像对进行模型训练,从而可以提高生成各种高度下的训练样本图像对的效率,并利用各种高度下的图像对进行模型训练,可以提高模型的泛化能力。
图5是本公开一示例性实施例提供的深度图预测方法的流程示意图。本实施例可应用在电子设备(如图1所示的终端设备101或服务器103)上,如图5所示,该方法包括如下步骤:
步骤501,获取全景图,并将全景图输入预先训练的深度图预测模型,得到全景图中的每个像素点对应的深度值和置信度。
在本实施例中,电子设备可以从本地或从远程获取全景图。通常,全景图为球形投影(Equirectangular Projection)图像,因此,全景图中的每个点具有经度值和纬度值。其中,全景图的上下边不要求视角齐备,其垂直视角(即维度范围)可以低至一半、甚至更低。通常全景图的长宽比可以设置为2:1,若全景图由于垂直视角不足180°,则可以对全景图进行补充像素(例如补充RGB值为0的像素)。
然后,电子设备将全景图输入预先训练的深度图预测模型,得到全景图中的每个像素点对应的深度值和置信度。其中,深度图预测模型预先基于上述图4对应实施例描述的方法训练得到。置信度用于表征对应的像素点的深度值是否正确的概率。
步骤502,基于置信度,对每个像素点对应的深度值进行修正,得到带有深度信息的全景图。
在本实施例中,电子设备可以基于置信度,对每个像素点对应的深度值进行修正,得到带有深度信息的全景图。其中,带有深度信息的全景图可以是将全景图与利用深度图预测模型生成的深度图建立像素间的对应关系后的全景图;也可以是在全景图的各个通道(例如RGB三个通道)的基础上,增加表征深度的通道,从而得到带有深度信息的全景图(例如RGBD四个通道,D为深度通道)。
经过计算出来的D信息,可以用于协助进行高精度的三维模型对齐和拼接等操作;同时该D信息可以转化为单点的点云,以对室内外的场景整体进行后续三维重建工作,如三角面片化(meshing),纹理贴图(texture mapping)等。
电子设备可以按照各种方法对深度值进行修正。作为示例,可以设置置信度阈值,对于某个点,如果确定该点的置信度大于等于阈值,保留该点的深度值,否则将该点的深度值设置为距离该点最近,且大于等于阈值的点的深度值。
在一些可选的实现方式中,电子设备可以按照如下步骤对像素点的深度值进行修正:
对于全景图中的每个像素点,确定像素点对应的深度值是否大于或等于预设阈值;如果是,表示深度值可信,保持像素点对应的深度值不变;如果否,表示深度值不可信,将像素点对应的深度值修改为预设深度值(例如0)。本实现方式通过对置信度的判断,确定深度值是否可信,从而可以得到高准确性的深度信息。
上述图5对应实施例提供的方法,通过使用泛化能力较强的深度图预测模型,可以利用任意高度拍摄的全景图,得到较高准确性的深度信息,有助于提高后续的三维模型对齐、拼接等操作的准确性。
图6是本公开一示例性实施例提供的深度图预测模型生成方法的流程示意图。本实施例可应用在电子设备(如图1所示的终端设备101或服务器103)上,如图6所示,该方法包括如下步骤:
步骤601,获取初始图像对集合。
在本实施例中,电子设备可以获取初始图像对集合。其中,初始图像对集合中的图像对包括在对应的高度拍摄得到的第一全景图和对应的第一深度图。需要说明的是,每个图像对对应的高度可以相同(例如都是1.3米),也可以不同。其中,全景图的上下边不要求视角齐备,其垂直视角(即维度范围)可以低至一半、甚至更低。通常全景图的长宽比可以设置为2:1,若全景图由于垂直视角不足180°,则可以对全景图进行补充像素(例如补充RGB值为0的像素)。
步骤602,对于初始图像对集合中的每个图像对,将图像对包括的第一全景图和第一深度图转换为预设的目标高度集合中的每个目标高度对应的第二全景图和第二深度图。
在本实施例中,对于初始图像对集合中的每个图像对,电子设备可以利用上述图2对应实施例描述的方法,将图像对包括的第一全景图和第一深度图转换为预设的目标高度集合中的每个目标高度对应的第二全景图和第二深度图。
作为示例,目标高度集合可以包括如下高度:h0=1.1,h1=1.3,h2=1.5,h3=1.7。经过图像转换,对于一个初始图像对,可以得到四个图像对,分别对应于h0、h1、h2、h3。
步骤603,基于初始图像对集合和生成的第二全景图和第二深度图,生成多个训练样本图像对集合。
在本实施例中,电子设备可以基于初始图像对集合和生成的第二全景图和第二深度图,生成多个训练样本图像对集合。其中,每个训练样本图像对集合对应于一个高度。继续上述示例,可以生成四个训练样本图像对集合,分别对应于h0、h1、h2、h3。每个训练样本图像对集合中的图像对,既可以包括第一全景图和第一深度图,也可以包括生成的第二全景图和第二深度图。
步骤604,对于多个训练样本图像对集合中的每个训练样本图像对集合,将训练样本图像对集合中的训练样本图像对包括的全景图作为输入,将输入的全景图对应的深度图作为期望输出,训练得到用于预测相应高度的深度图的深度图预测模型。
在本实施例中,对于多个训练样本图像对集合中的每个训练样本图像对集合,电子设备可以利用机器学习方法,将训练样本图像对集合中的训练样本图像对包括的全景图作为输入,将输入的全景图对应的深度图作为期望输出,训练得到用于预测相应高度的深度图的深度图预测模型。继续上述示例,利用四个训练样本图像对集合可以得到四个深度图预测模型,分别对应于h0、h1、h2、h3。
应当理解,本实施例中训练模型的方法可以与上述图4对应实施例中的模型训练方法相同,这里不再赘述。
上述图6对应实施例提供的方法,通过生成多个训练样本图像对集合,每个训练样本图像对集合对应于一个拍摄高度,训练每个高度对应的深度图预测模型,提高了模型训练的效率和针对性,通过训练多个模型提高模型的泛化能力,从而可以有针对性地选择与特定高度拍摄的全景图相应的模型进行深度图预测,提高深度预测的准确性。
图7是本公开一示例性实施例提供的另一个深度图预测方法的流程示意图。本实施例可应用在电子设备(如图1所示的终端设备101或服务器103)上,如图7所示,该方法包括如下步骤:
步骤701,获取在预设高度拍摄得到的全景图。
在本实施例中,电子设备可以从本地或从远程获取预设高度拍摄得到的全景图。通常,全景图为球形投影(Equirectangular Projection)图像,因此,全景图中的每个点具有经度值和纬度值。其中,全景图的上下边不要求视角齐备,其垂直视角(即维度范围)可以低至一半、甚至更低。通常全景图的长宽比可以设置为2:1,若全景图由于垂直视角不足180°,则可以对全景图进行补充像素(例如补充RGB值为0的像素)。
步骤702,从预先训练的深度图预测模型集合中,选择与预设高度对应的深度图预测模型。
在本实施例中,电子设备可以从预先训练的深度图预测模型集合中,选择与预设高度对应的深度图预测模型。其中,深度图预测模型集合预先基于上述图6对应实施例描述的方法训练得到。
具体地,电子设备可以从各个深度图预测模型中,选择与上述预设高度最接近的高度对应的深度图预测模型。
步骤703,将全景图输入所选择的深度图预测模型,得到全景图中的每个像素点对应的深度值和置信度。
在本实施例中,电子设备可以将全景图输入所选择的深度图预测模型,得到全景图中的每个像素点对应的深度值和置信度。其中,置信度用于表征对应的像素点的深度值是否正确的概率。
步骤704,基于置信度,对每个像素点对应的深度值进行修正,得到带有深度信息的全景图。
在本实施例中,步骤704与上述步骤502基本相同,这里不再赘述。
在一些可选的实现方式中,电子设备可以按照如下步骤对像素点的深度值进行修正:
对于全景图中的每个像素点,确定像素点对应的深度值是否大于或等于预设阈值;如果是,表示深度值可信,保持像素点对应的深度值不变;如果否,表示深度值不可信,将像素点对应的深度值修改为预设深度值(例如0)。本实现方式通过对置信度的判断,确定深度值是否可信,从而可以得到高准确性的深度信息。
上述图7对应实施例提供的方法,通过从多个深度图预测模型中,选择与待转换的全景图的高度相应的模型,可以利用各个模型具有针对性的特点,提高得到深度信息的准确性,有助于提高后续的三维模型对齐、拼接等操作的准确性。
示例性装置
图8是本公开一示例性实施例提供的图像转换装置的结构示意图。本实施例可应用在电子设备上,如图8所示,图像转换装置包括:第一获取模块801,用于获取在预设高度拍摄得到的第一全景图和对应的第一深度图,其中,第一全景图中的每个点具有对应的第一经度值和第一纬度值;第一转换模块802,用于对于第一全景图中的每条经度线,从经度线上确定目标数量个点;基于第一深度图,确定目标数量个点中的每个点对应的第一深度值;基于每个点对应的第一深度值、第一纬度值和目标高度,确定每个点对应的针对目标高度的转换后深度值和转换后纬度值;第一生成模块803,用于基于每个点的颜色值和对应的转换后深度值、转换后纬度值,生成针对目标高度预测的第二全景图和第二深度图。
在本实施例中,第一获取模块801可以从远程或从本地获取在预设高度拍摄得到的第一全景图和对应的第一深度图。其中,第一全景图可以是由设置在上述预设高度(例如1.3米)的全景图拍摄相机(例如手机的相机)拍摄得到的,第一深度图可以是在相同位置上由深度相机(例如双目立体相机、激光雷达等)拍摄得到的。第一全景图和第一深度图中的像素点一一对应,深度图中的每个像素点具有对应的深度值(即被拍摄点与相机的距离)。
通常,第一全景图为球形投影(Equirectangular Projection)图像,因此,全景图中的每个点具有第一经度值和第一纬度值。其中,全景图的上下边不要求视角齐备,其垂直视角(即维度范围)可以低至一半、甚至更低。通常全景图的长宽比可以设置为2:1,若全景图由于垂直视角不足180°,则可以对全景图进行补充像素(例如补充RGB值为0的像素)。
在本实施例中,对于第一全景图中的每条经度线,第一转换模块802可以执行如下步骤:
步骤8021,从经度线上确定目标数量个点。
其中,经度线的密度可以任意设置。例如,全景图的经度范围为[0°,360°],经度线的间隔可以设置为1°,所以有360条经度线。经度线的间隔可以设置为0.5°,所以有720条经度线。需要说明的是,这里的经度线并非全景图上实际显示的线条,而是为了处理图像划分的虚拟线条。
目标数量可以是预先设置的,也可以是根据预设规则确定的。并且目标数量个点的分布方式可以是均匀分布,也可以是其他分布方式。
步骤8022,基于第一深度图,确定目标数量个点中的每个点对应的第一深度值。
步骤8023,基于每个点对应的第一深度值、第一纬度值和目标高度,确定每个点对应的针对目标高度的转换后深度值和转换后纬度值。
其中,目标高度是待预测的全景图的拍摄高度。
在本实施例中,第一生成模块803可以基于每个点的颜色值和对应的转换后深度值、转换后纬度值,生成针对目标高度预测的第二全景图和第二深度图。作为示例,第一生成模块803可以是针对第一全景图中的每个像素点进行计算,得到每个像素点对应的经度值、转换后纬度值和转换后深度值,在第二全景图和第二深度图中,根据经度值、转换后纬度值确定的点的坐标,将第一全景图中相应的点的颜色值(例如RGB值)赋值给第二全景图中的点,将第一深度图中的相应的点的深度值赋值给第二深度图中的点。
在一些可选的实现方式中,第一生成模块803可以包括:第一插值单元8031(图中未示出),用于对于待生成的第二全景图中的每条经度线,利用经度线对应的转换后纬度值序列,以及转换后纬度值序列中的每个转换后纬度值对应的颜色值,对经度线上的每个像素点的颜色值进行插值;第一生成单元8032(图中未示出),用于基于插值后得到的每个像素点的颜色值,生成第二全景图;第二插值单元8033(图中未示出),用于对于待生成的第二深度图中的每条经度线,利用经度线对应的转换后深度值序列,以及转换后深度值序列中的每个转换后深度值对应的深度值,对经度线上的每个像素点的深度值进行插值;第二生成单元8034(图中未示出),用于基于插值后得到的每个像素点的深度值,生成第二深度图。
在一些可选的实现方式中,第一转换模块802可以进一步用于:基于第一全景图的纬度值范围,以及预设的表征相邻两个点之间的纬度间隔值,确定目标数量个点。
本公开上述实施例提供的图像转换装置,通过根据拍摄第一全景图的高度、第一全景图中的点的深度、经度值和纬度值,对第一全景图的像素点和对应的深度进行转换,得到第二全景图和第二深度图,从而实现了将一定高度拍摄的全景图转换为预测的在另一高度拍摄的全景图和深度图,进而可以有助于生成各种高度的全景图和深度图,无需在实际场景中的各种高度拍摄即可获得多种高度下的全景图和深度图,提高了获得全景图的效率,降低获得全景图的成本,有助于提高利用生成的全景图和深度图训练的模型的泛化能力。
图9是本公开一示例性实施例提供的深度图预测模型生成装置的结构示意图。本实施例可应用在电子设备上,如图9所示,深度图预测模型生成装置包括:第二获取模块901,用于获取初始图像对集合,其中,初始图像对集合中的图像对包括在对应的高度拍摄得到的第一全景图和对应的第一深度图;第二转换模块902,用于对于初始图像对集合中的每个图像对,确定图像对对应的目标高度,并利用上述图像转换方法,将图像对包括的第一全景图和第一深度图转换为目标高度对应的第二全景图和第二深度图;合并模块903,用于将初始图像对集合和生成的第二全景图和第二深度图合并为训练样本图像对集合;第一训练模块904,用于将训练样本图像对集合中的训练样本图像对包括的全景图作为输入,将输入的全景图对应的深度图作为期望输出,训练得到深度图预测模型。
在本实施例中,第二获取模块901可以从本地或从远程获取初始图像对集合。其中,初始图像对集合中的图像对包括在对应的高度拍摄得到的第一全景图和对应的第一深度图。需要说明的是,每个图像对对应的高度可以相同(例如都是1.3米),也可以不同。
在本实施例中,对于初始图像对集合中的每个图像对,第二转换模块902可以确定图像对对应的目标高度,并利用上述图2对应实施例描述的方法,将图像对包括的第一全景图和第一深度图转换为目标高度对应的第二全景图和第二深度图。
其中,第二获取模块901可以按照各种方式确定图像对对应的目标高度。例如,目标高度可以是人工设置的高度。
在本实施例中,合并模块903可以将初始图像对集合和生成的第二全景图和第二深度图合并为训练样本图像对集合。即,训练样本图像对集合中的图像对,既可以包括第一全景图和第一深度图,也可以包括生成的第二全景图和第二深度图。
在本实施例中,第一训练模块904可以利用机器学习方法,将训练样本图像对集合中的训练样本图像对包括的全景图作为输入,将输入的全景图对应的深度图作为期望输出,训练得到深度图预测模型。
在一些可选的实现方式中,第二转换模块902可以进一步用于:在预设的高度范围内,随机选择高度作为目标高度。
本公开上述实施例提供的深度图预测模型生成装置,通过将初始图像对集合中的每个初始图像对,按照上述图2对应实施例描述的方法进行转换,得到目标高度的全景图和深度图,并利用初始图像对和转换后的图像对进行模型训练,从而可以提高生成各种高度下的训练样本图像对的效率,并利用各种高度下的图像对进行模型训练,可以提高模型的泛化能力。
图10是本公开一示例性实施例提供的深度图预测装置的结构示意图。本实施例可应用在电子设备上,如图10所示,深度图预测装置包括:第三获取模块1001,用于获取全景图,并将全景图输入预先训练的深度图预测模型,得到全景图中的每个像素点对应的深度值和置信度,其中,深度图预测模型预先基于上述第一种深度图预测模型生成方法训练得到;第一修正模块1002,用于基于置信度,对每个像素点对应的深度值进行修正,得到带有深度信息的全景图。
在本实施例中,第三获取模块1001可以从本地或从远程获取全景图。然后,第三获取模块1001将全景图输入预先训练的深度图预测模型,得到全景图中的每个像素点对应的深度值和置信度。其中,深度图预测模型预先基于上述图4对应实施例描述的方法训练得到。置信度用于表征对应的像素点的深度值是否正确的概率。
在本实施例中,第一修正模块1002可以基于置信度,对每个像素点对应的深度值进行修正,得到带有深度信息的全景图。其中,带有深度信息的全景图可以是将全景图与利用深度图预测模型生成的深度图建立像素间的对应关系后的全景图;也可以是在全景图的各个通道(例如RGB三个通道)的基础上,增加表征深度的通道,从而得到带有深度信息的全景图(例如RGBD四个通道,D为深度通道)。
在一些可选的实现方式中,第一修正模块1002可以进一步用于:对于全景图中的每个像素点,确定像素点对应的深度值是否大于或等于预设阈值;如果是,保持像素点对应的深度值不变;如果否,将像素点对应的深度值修改为预设深度值。
本公开上述实施例提供的深度图预测装置,通过使用泛化能力较强的深度图预测模型,可以利用任意高度拍摄的全景图,得到较高准确性的深度信息,有助于提高后续的三维模型对齐、拼接等操作的准确性。
图11是本公开一示例性实施例提供的深度图预测模型生成装置的结构示意图。本实施例可应用在电子设备上,如图11所示,深度图预测模型生成装置包括:第四获取模块1101,用于获取初始图像对集合,其中,初始图像对集合中的图像对包括在对应的高度拍摄得到的第一全景图和对应的第一深度图;第三转换模块1102,用于对于初始图像对集合中的每个图像对,利用上述图像转换方法,将图像对包括的第一全景图和第一深度图转换为预设的目标高度集合中的每个目标高度对应的第二全景图和第二深度图;第二生成模块1103,用于基于初始图像对集合和生成的第二全景图和第二深度图,生成多个训练样本图像对集合,其中,每个训练样本图像对集合对应于一个高度;第二训练模块1104,用于对于多个训练样本图像对集合中的每个训练样本图像对集合,将训练样本图像对集合中的训练样本图像对包括的全景图作为输入,将输入的全景图对应的深度图作为期望输出,训练得到用于预测相应高度的深度图的深度图预测模型。
在本实施例中,第四获取模块1101可以获取初始图像对集合。其中,初始图像对集合中的图像对包括在对应的高度拍摄得到的第一全景图和对应的第一深度图。需要说明的是,每个图像对对应的高度可以相同(例如都是1.3米),也可以不同。
在本实施例中,对于初始图像对集合中的每个图像对,第三转换模块1102可以利用上述图2对应实施例描述的方法,将图像对中的第一全景图和第一深度图转换为预设的目标高度集合中的目标高度对应的第二全景图和第二深度图。
在本实施例中,第二生成模块1103可以基于初始图像对集合和生成的第二全景图和第二深度图,生成多个训练样本图像对集合。其中,每个训练样本图像对集合对应于一个高度。
在本实施例中,对于多个训练样本图像对集合中的每个训练样本图像对集合,第二训练模块1104可以利用机器学习方法,将训练样本图像对集合中的训练样本图像对包括的全景图作为输入,将输入的全景图对应的深度图作为期望输出,训练得到用于预测相应高度的深度图的深度图预测模型。应当理解,本实施例中训练模型的方法与上述图4对应实施例中的模型训练方法相同,这里不再赘述。
本公开上述实施例提供的深度图预测模型生成装置,通过生成多个训练样本图像对集合,每个训练样本图像对集合对应于一个拍摄高度,训练每个高度对应的深度图预测模型,提高了模型训练的效率和针对性,通过训练多个模型提高模型的泛化能力,从而可以有针对性地选择与特定高度拍摄的全景图相应的模型进行深度图预测,提高深度预测的准确性。
图12是本公开一示例性实施例提供的深度图预测装置的结构示意图。本实施例可应用在电子设备上,如图12所示,深度图预测装置包括:第五获取模块1201,用于获取在预设高度拍摄得到的全景图;选择模块1202,用于从预先训练的深度图预测模型集合中,选择与预设高度对应的深度图预测模型,其中,深度图预测模型集合预先基于上述第二种深度图预测模型生成方法训练得到;第三生成模块1203,用于将全景图输入所选择的深度图预测模型,得到全景图中的每个像素点对应的深度值和置信度;第二修正模块1204,用于基于置信度,对每个像素点对应的深度值进行修正,得到带有深度信息的全景图。
在本实施例中,第五获取模块1201可以从本地或从远程获取预设高度拍摄得到的全景图。
在本实施例中,选择模块1202可以从预先训练的深度图预测模型集合中,选择与预设高度对应的深度图预测模型。其中,深度图预测模型集合预先基于上述图6对应实施例描述的方法训练得到。具体地,选择模块1202可以从各个深度图预测模型中,选择与上述预设高度最接近的高度对应的深度图预测模型。
在本实施例中,第三生成模块1203可以将全景图输入所选择的深度图预测模型,得到全景图中的每个像素点对应的深度值和置信度。其中,置信度用于表征对应的像素点的深度值是否正确的概率。
在本实施例中,第二修正模块1204与上述第一修正模块1002的功能相同,这里不再赘述。
在一些可选的实现方式中,第二修正模块1204可以进一步用于:对于全景图中的每个像素点,确定像素点对应的深度值是否大于或等于预设阈值;如果是,保持像素点对应的深度值不变;如果否,将像素点对应的深度值修改为预设深度值。
本公开上述实施例提供的深度图预测装置,通过从多个深度图预测模型中,选择与待转换的全景图的高度相应的模型,可以利用各个模型具有针对性的特点,提高得到深度信息的准确性,有助于提高后续的三维模型对齐、拼接等操作的准确性。
示例性电子设备
下面,参考图13来描述根据本公开实施例的电子设备。该电子设备可以是如图1所示的终端设备101和服务器103中的任一个或两者、或与它们独立的单机设备,该单机设备可以与终端设备101和服务器103进行通信,以从它们接收所采集到的输入信号。
图13图示了根据本公开实施例的电子设备的框图。
如图13所示,电子设备1300包括一个或多个处理器1301和存储器1302。
处理器1301可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备1300中的其他组件以执行期望的功能。
存储器1302可以包括一个或多个计算机程序产品,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器1301可以运行程序指令,以实现上文的本公开的各个实施例的方法以及/或者其他期望的功能。在计算机可读存储介质中还可以存储诸如全景图、深度图等各种内容。
在一个示例中,电子设备1300还可以包括:输入装置1303和输出装置1304,这些组件通过总线***和/或其他形式的连接机构(未示出)互连。
例如,在该电子设备是终端设备101或服务器103时,该输入装置1303可以是相机、鼠标、键盘等设备,用于输入图像。在该电子设备是单机设备时,该输入装置1303可以是通信网络连接器,用于从终端设备101和服务器103接收所输入的图像。
该输出装置1304可以向外部输出各种信息,包括转换后的全景图、深度图。该输出设备1304可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图13中仅示出了该电子设备1300中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备1300还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于***实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本公开中涉及的器件、装置、设备、***的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、***。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。