庄园组件的推荐方法、装置及服务器与流程
本发明涉及图像处理技术领域,尤其是涉及一种庄园组件的推荐方法、装置及服务器。
背景技术:
庄园建造是一种常见的mmorpg(multiplayeronlinerole-playinggame,大型多人角色扮演)游戏玩法,随着技术升级可以为玩家提供更高的庄园搭建自由度,以便于玩家在庄园系统中尽情发挥从而搭建出有创意的庄园场景,然而庄园建造对多数玩家来说是具有一定难度的,为此现有技术中提出可以在玩家搭建庄园的过程中为玩家提供合理的庄园搭建提示(诸如,庄园的组件摆放位置提示),以降低庄园建造的难度。目前,相关技术中提出一种基于planit算法的组件位置推荐方法,该方法首先需要粗略生成庄园场景抽象的场景关系图,然后在该场景关系图的基础上预测庄园场景中庄园组件的组件属性信息(诸如位置、尺寸、角度等)。
技术实现要素:
但是发明人经研究发现,该场景关系图只能较好地应用于功能性先验十分强的庄园场景,却无法应用于无功能关系的庄园场景中,从而导致无法为这类庄园场景提供有效的庄园搭建提示。
有鉴于此,本发明的目的在于提供一种庄园组件的推荐方法、装置及服务器,可以在玩家搭建庄园的过程中为玩家推荐更为合理的组件位置。
第一方面,本发明实施例提供了一种庄园组件的推荐方法,包括:获取目标庄园场景的场景信息;其中,所述目标庄园场景内放置有当前庄园组件;基于所述场景信息分别获取所述目标庄园场景对应的场景渲染图和场景关系图;其中,所述场景渲染图用于描述所述目标庄园场景的视觉状态,所述场景关系图用于描述各个所述当前庄园组件的空间关系;通过双流网络模型基于所述场景渲染图和所述场景关系图,确定所述目标庄园场景中的组件推荐位置;其中,所述双流网络模型包括特征提取网络和图生成网络。
在一种实施方式中,所述基于所述场景信息分别获取所述目标庄园场景对应的场景渲染图和场景关系图的步骤,包括:基于所述场景信息对所述目标庄园场景进行俯视交叉渲染,得到所述目标庄园场景对应的场景渲染图;以及,基于所述场景信息提取所述目标庄园场景中各个当前庄园组件之间的空间关系,得到所述目标庄园场景对应的场景渲染图;其中,所述场景信息包括所述目标庄园场景的区域描述信息和所述当前庄园组件的组件描述信息。
在一种实施方式中,所述基于所述场景信息提取所述目标庄园场景中各个当前庄园组件之间的空间关系的步骤,包括:基于预设中心点与各个所述当前庄园组件之间的相对位置,确定各个所述当前庄园组件对应的空间标签,以通过所述空间标签表征各个所述当前庄园组件之间的空间关系;中,所述空间标签包括距离标签、方向标签和对齐标签中的一种或多种。
在一种实施方式中,所述通过双流网络模型基于所述场景渲染图和所述场景关系图,确定所述目标庄园场景中的组件推荐位置的步骤,包括:通过所述特征提取网络对所述场景渲染图进行特征提取,得到所述场景渲染图的特征信息;通过所述图生成网络基于所述场景关系图和所述特征信息,确定所述目标庄园场景中的组件推荐位置。
在一种实施方式中,所述特征提取网络包括依次连接的多个可视特征提取单元和一个平均池化单元,每个可视特征提取单元均包括残差子单元和特征下采样子单元;所述通过特征提取网络对所述场景渲染图进行特征提取,得到所述场景渲染图的特征信息的步骤,包括:对于每个可视特征提取单元,通过该可视特征提取单元对所述场景渲染图进行特征提取,得到该可视特征提取单元输出的组件局部特征;通过所述平均池化单元,对位于末端的可视特征提取单元内的残差子单元的输出特征进行池化处理,得到场景全局特征;其中,所述场景渲染图的特征信息包括各个所述可视特征提取单元输出的组件局部特征和所述场景全局特征。
在一种实施方式中,所述通过该可视特征提取单元对所述场景渲染图进行特征提取,得到该可视特征提取单元输出的组件局部特征的步骤,包括:将所述场景渲染图输入至该可视特征提取单元内的残差子单元,得到该可视特征提取单元内的残差子单元的输出特征;利用所述当前庄园组件对应的边缘框对该可视特征提取单元内的残差子单元的输出特征进行切割,得到所述当前庄园组件对应的特征;通过该可视特征提取单元内的特征下采样子单元对所述当前庄园组件对应的特征进行压缩,得到该可视特征提取单元输出的组件局部特征。
在一种实施方式中,所述通过所述图生成网络基于所述场景关系图和所述特征信息,确定所述目标庄园场景中的组件推荐位置的步骤,包括:通过图生成网络基于所述场景关系图和所述特征信息,得到所述目标庄园场景对应的边分布模型;其中,所述边分布模型用于描述所述当前庄园组件之间的摆放规则;基于所述边分布模型生成位置热度图,并根据所述位置热度图所表征的各个热度概率确定所述目标庄园场景中的组件推荐位置。
在一种实施方式中,所述图生成网络包括邻接矩阵编码单元、消息传递单元和边预测单元,所述消息传递单元包括多个基于注意力机制的消息传递子单元,所述消息传递子单元与可视特征提取单元内的特征下采样网络一一对应;所述通过图生成网络基于所述场景关系图和所述特征信息,得到所述目标庄园场景对应的边分布模型的步骤,包括:通过所述邻接矩阵编码单元对所述场景关系图进行编码处理,得到编码后的邻接矩阵特征;对于每个消息传递子单元,通过该消息传递子单元对指定特征图进行迭代,得到该消息传递子单元输出的图节点特征;通过所述边预测单元,基于位于末端的消息传递子单元输出的图节点特征,生成所述目标庄园场景对应的边分布模型;其中,所述消息传递单元内位于首端的消息传递子单元对应的指定特征图为编码后的邻接矩阵特征和与首端消息传递子单元对应的特征下采样网络输出的组件局部特征;其余消息传递子单元对应的指定特征图为前一消息传递子单元输出的图节点特征和与该消息传递子单元对应的特征下采样网络输出的组件局部特征。
在一种实施方式中,所述通过所述边预测单元,基于位于末端的消息传递子单元输出的图节点特征,生成所述目标庄园场景对应的边分布模型的步骤,包括:将位于末端的消息传递子单元输出的图节点特征与场景全局特征进行按位相乘,得到按位相乘结果;通过所述边预测单元,基于所述按位相乘结果生成所述目标庄园场景对应的边分布模型。
在一种实施方式中,所述摆放规则包括四边对称规则、三角对称规则、链式摆放规则中的一种或多种。
在一种实施方式中,所述位置热度图中所表征的各个所述热度概率的总和为1。
在一种实施方式中,所述距离标签包括近距离标签和/或远距离标签;所述方向标签包括前方标签、后方标签、左方标签和右方标签中的一种或多种;所述对齐标签包括左对齐标签、垂直对齐标签、右对齐标签、底边对齐标签、水平对齐标签、顶边对齐标签中的一种或多种。
第二方面,本发明实施例还提供一种庄园组件的推荐装置,包括:信息获取模块,用于获取目标庄园场景的场景信息;其中,所述目标庄园场景内放置有当前庄园组件;图获取模块,用于基于所述场景信息分别获取所述目标庄园场景对应的场景渲染图和场景关系图;其中,所述场景渲染图用于描述所述目标庄园场景的视觉状态,所述场景关系图用于描述各个所述当前庄园组件的空间关系;推荐位置确定模块,用于通过双流网络模型基于所述场景渲染图和所述场景关系图,确定所述目标庄园场景中的组件推荐位置;其中,所述双流网络模型包括特征提取网络和图生成网络。
第三方面,本发明实施例还提供一种服务器,包括处理器和存储器;所述存储器上存储有计算机程序,所述计算机程序在被所述处理器运行时执行如第一方面提供的任一项所述的方法。
第四方面,本发明实施例还提供一种计算机存储介质,用于储存为第一方面提供的任一项所述方法所用的计算机软件指令。
本发明实施例提供的一种庄园组件的推荐方法、装置及服务器,首先获取目标庄园场景的场景信息,该目标庄园场景内放置有当前庄园组件,然后基于所述场景信息分别获取所述目标庄园场景对应的场景渲染图(用于描述所述目标庄园场景的视觉状态)和场景关系图(用于描述各个所述当前庄园组件的空间关系),再通过双流网络模型(包括特征提取网络和图生成网络)基于所述场景渲染图和所述场景关系图,确定所述目标庄园场景中的组件推荐位置。上述方法基于场景信息分别获取用于描述视觉状态的场景渲染图和用于描述空间关系的场景关系图,并利用双流网络模型基于场景渲染图和场景关系图对目标庄园场景中各个当前庄园组件的摆放规则进行学习,从而可以得到更为合理的组件推荐位置,进而可以更好的辅助玩家搭建庄园。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于planit算法的组件位置推荐方法的流程图;
图2为本发明实施例提供的一种场景关系图的生成过程示意图;
图3为本发明实施例提供的一种庄园组件的推荐方法的流程示意图;
图4为本发明实施例提供的另一种庄园组件的推荐方法的流程示意图;
图5为本发明实施例提供的另一种庄园组件的推荐方法的流程示意图;
图6为本发明实施例提供的一种边模型的示意图;
图7-1a为本发明实施例提供的一种当前场景的示意图;
图7-1b为本发明实施例提供的一种位置热度图的示意图;
图7-2a为本发明实施例提供的一种当前场景的示意图;
图7-2b为本发明实施例提供的一种位置热度图的示意图;
图7-3a为本发明实施例提供的一种当前场景的示意图;
图7-3b为本发明实施例提供的一种位置热度图的示意图;
图7-4a为本发明实施例提供的一种当前场景的示意图;
图7-4b为本发明实施例提供的一种位置热度图的示意图;
图8为本发明实施例提供的一种庄园组件的推荐装置的结构示意图;
图9为本发明实施例提供的一种服务器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,现有技术中提出的一种基于planit算法的组件位置推荐方法,对于可观察的庄园场景的场景数据集,首先提取庄园场景的空间关系图,然后基于图生成算法生成新的场景关系图,由于新的场景关系图可能是不准确的,因此,planit算法提出一个“组件安装”器,基于新的场景关系图逐步生成庄园场景中组件的组件属性信息(包括位置、方向、尺寸和模型id(identitydocument,唯一编码)等),具体的,参见图1所示的基于planit算法的组件位置推荐方法的流程图,该方法主要包括:
(1)从庄园场景的可视场景数据集中抽取每个庄园场景中庄园组件之间的关系图,得到可视关系图数据集。planit算法将每个庄园场景中的庄园组件各自编码为一个节点,并且编码各个节点对应的类别信息。为了获取节点之间的关系,planit算法定义了一个离散的空间位置关系模型,用于描述两两节点之间的空间关系,如此,可以有效的获取可视场景数据集中的可视关系图数据集。
(2)在可视关系图数据集上训练图生成模型,通过图生成模型生成场景关系图。其中,场景关系图中可通过边表示各个节点之间的相对位置关系。参见如图2所示一种场景关系图的生成过程示意图,(2.1)首先更新可视关系图数据集的全局特征hg。具体的,初始化节点xu得到一个初始的节点特征hu=finit(xu,...);对于每个节点,基于边的连通属性将当前节点xu的邻域节点xv的特征hv聚合到当前节点的特征hu,更新当前节点的特征h'u=gru(∑v∈n(u)f(hv-hu));最后基于更新后的当前节点特征更新可视关系图数据集的全局特征hg。(2.2)预测是否要添加新的节点,如果确定添加新的节点则预测节点的类别,否则停止添加新的节点。(2.3)planit算法通过其他网络辅助预测新的节点的节点属性(如位置、尺寸、角度等)。(2.4)预测是否需要添加新的边,可以通过预测当前场景中新加的节点与已有的边之间的关系判断是否需要添加新的边,若需要添加新的边则将利用planit算法预测新的边的属性(方向和距离等)。重复上述(2.1)至(2.4),直至确定不在加入新的节点,得到场景关系图。
(3)逐步细化上述场景关系图中的组件属性信息。例如,通过类似自动编解码器的算法预测节点的位置,通过不同的vae-gan(variationalautoencoder-generativeadversarialnetwork)算法预测节点的尺寸、角度等。在确定组件属性信息后即可获知组件在当前场景中的摆放位置和摆放角度等。
但是由于上述方法生成的场景关系图对真实场景的描述能力非常弱,且经实验验证该场景关系图仅可以应用在具有较强功能关系的庄园场景中,而无法应用于无功能关系的庄园场景中,导致无法为这类庄园场景提供有效的庄园搭建提示。为改善这一问题,本发明实施提供了庄园组件的推荐方法、装置及服务器,可以在玩家搭建庄园的过程中为玩家推荐更为合理的组件位置。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种庄园组件的推荐方法进行详细介绍,参见图3所示的一种庄园组件的推荐方法的流程示意图,该方法主要包括以下步骤s302至步骤s306:
步骤s302,获取目标庄园场景的场景信息。
其中,目标庄园场景内放置有当前庄园组件,目标庄园场景可以理解玩家正在搭建的虚拟场景,该虚拟场景可以划分为多个区域,例如,允许摆放区域或禁止摆放区域(诸如水域)等,在允许摆放区域内可以放置有当前庄园组件,当前庄园组件可以理解为搭建目标庄园场景所需的房屋、家具或植被等。场景信息包括目标庄园场景的区域描述信息和当前庄园组件的组件描述信息,区域描述信息主要用于描述该区域是否允许摆放庄园组件,可以包括区域标识,例如,当区域标识为“0”时确定该区域为允许摆放区域,当区域标识为“1”时确定该区域为禁止摆放区域,组件描述信息主要用于描述当前庄园组件的相关信息,诸如当前庄园组建的三维数据文件、当前坐标位置或旋转角度等。
步骤s304,基于场景信息分别获取目标庄园场景对应的场景渲染图和场景关系图。
其中,场景渲染图用于描述目标庄园场景的视觉状态,该视觉状态可以包括当前庄园组件的深度信息或水域的详细信息(诸如水域面积)等,场景关系图用于描述各个当前庄园组件的空间关系,各个当前庄园组件的空间关系也即各个当前状元组件之间的相对位置关系。在一种实施方式中,基于场景信息对目标庄园场景进行渲染即可得到场景渲染信息,基于场景信息抽取各个离散的当前庄园组件之间的相对位置关系即可得到场景关系图。
步骤s306,通过双流网络模型基于场景渲染图和场景关系图,确定目标庄园场景中的组件推荐位置。
其中,组件推荐位置用于表征新庄园组件在目标庄园场景中推荐的摆放位置。双流网络模型包括特征提取网络和图生成网络,特征提取网络用于对场景渲染图进行特征提取,得到场景渲染图的特征信息,图生成网络用于基于场景渲染图的特征信息和场景关系图学习目标庄园场景内各个当前庄园组件之间的摆放规则,从而基于学习到的摆放规则从目标庄园场景中确定组件推荐位置。
本发明实施例提供的上述庄园组件的推荐方法,基于场景信息分别获取用于描述视觉状态的场景渲染图和用于描述空间关系的场景关系图,并利用双流网络模型基于场景渲染图和场景关系图对目标庄园场景中各个当前庄园组件的摆放规则进行学习,从而可以得到更为合理的组件推荐位置,进而可以更好的辅助玩家搭建庄园。
为便于对上述步骤s304进行理解,本发明实施例提供了一种基于场景信息分别获取目标庄园场景对应的场景渲染图和场景关系图的实施方式,参见如下(一)至(二):
(一)基于场景信息对目标庄园场景进行俯视交叉渲染,得到目标庄园场景对应的场景渲染图。在一种实施方式中,可以利用渲染器对目标庄园场景进行俯视交叉渲染,可选的,渲染器的输入为场景信息中的组件描述信息,包括每个当前庄园组件的三维信息、当前坐标位置和旋转角度,其中,当前坐标位置可用当前庄园组件的右下角坐标表示,然后由渲染器将目标庄园场景中离散的当前庄园组件渲染成一张规则表达的俯视图,由于该俯视图可以有效地表示当前场景的视觉状态,对于目标庄园场景中不规则的禁止摆放区域能够有效合理的表示,因此可将该俯视图作为场景渲染图。
(二)基于场景信息提取目标庄园场景中各个当前庄园组件之间的空间关系,得到目标庄园场景对应的场景渲染图。在一种实施方式中,可以利用关系图提取器基于场景信息抽取目标庄园场景中离散的当前庄园组件之间的空间关系,为量化目标庄园场景中当前庄园组件之间的空间关系,本发明实施例可以定义边模型,边模型中包括anchor组件,将该anchor组件所在位置作为预设中心点,并基于预设中心点确定各个当前庄园组件之间的空间关系。在一种具体的实施方式中,可以基于预设中心点与各个当前庄园组件之间的相对位置,确定各个当前庄园组件对应的空间标签,以通过空间标签表征各个当前庄园组件之间的空间关系。其中,空间标签包括距离标签、方向标签和对齐标签中的一种或多种。
可选的,距离标签包括近距离标签和/或远距离标签,距离标签用于表征当前庄园组件与anchor组件之间的距离远近,其中,近距离标签可以包括next_to标签、adjacent,标签和proximal标签中的一种或多种,远距离标签可以包括distant标签。本发明实施例提供了一种确定当前庄园组件的距离标签的实施方式,可以预先确定各个距离标签的标签阈值,通过将当前庄园组件与anchor组件之间的距离和标签阈值进行比对,即可得知当前庄园组件对应的距离标签。例如,若当前庄园组件与anchor组件之间的距离为0,则设置当前庄园组件的距离标签为next_to标签;若当前庄园组件与anchor组件之间的距离小于边模型中定义的adjacent阈值,则设置当前庄园组件的距离标签为adjacent标签;否当前庄园组件与anchor组件之间的距离小于proximal阈值,则设置当前庄园组件的距离标签为proximal标签;其它情况则设置当前庄园组件的距离标签为distant标签。
可选的,方向标签包括前方标签、后方标签、左方标签和右方标签中的一种或多种,方向标签可以定义为当前庄园组件所在anchor组件的相对方向,也即,当前庄园组件在anchor组件前方时确定该当前庄园组件的方向标签为前方标签,同理,当前庄园组件在anchor组件后方时确定该当前庄园组件的方向标签为后方标签,当前庄园组件在anchor组件左方时确定该当前庄园组件的方向标签为左方标签,当前庄园组件在anchor组件右方时确定该当前庄园组件的方向标签为右方标签。
可选的,对齐标签包括左对齐标签、垂直对齐标签、右对齐标签、底边对齐标签、水平对齐标签、顶边对齐标签中的一种或多种。对齐标签用于表征当前庄园组件与anchor组件之间的对齐关系,在一种实施方式中,可以通过六维向量表征对齐标签,示例性的,六维向量可以如下所示:[左对齐,垂直对齐,右对齐,底边对齐,水平对齐,顶边对齐],如果当前庄园组件与anchor组件之间的左对齐,则六维向量中“左对齐”标志为“1”,否则将“左对齐”标志为“0”,同理,六维向量中其余标签也采用这种标志方式,从而得到可以用于表征当前庄园组件与anchor组件之间的对齐关系的对齐标签。
在一种实施方式中,本发明实施例提供了一种通过双流网络模型基于场景渲染图和场景关系图,确定目标庄园场景中的组件推荐位置的实施方式,参见如下步骤1至步骤2:
步骤1,通过特征提取网络对场景渲染图进行特征提取,得到场景渲染图的特征信息。其中,场景渲染图的特征信息包括各个可视特征提取单元输出的组件局部特征和场景全局特征,组件局部特征也即目标庄园场景中各个当前庄园组件分别对应的局部特征,场景全局特征也即目标庄园场景对应的全局特征。另外本发明实施例提供了一种特征提取网络,特征提取网络包括依次连接的多个可视特征提取单元和一个平均池化单元,每个可视特征提取单元均包括残差子单元和特征下采样子单元,特征下采样子单元可以包括多个卷积层,特征提取网络的输入是场景渲染图和每个当前庄园组件的二维边缘框,可视特征提取单元的输出包括各个当前庄园组件对应的组件局部特征和整个目标庄园场景对应的场景全局特征。
在此特征提取网络的基础上,可以按照如下步骤1.1至步骤1.2所示的方法执行通过特征提取网络对场景渲染图进行特征提取,得到场景渲染图的特征信息的步骤:
步骤1.1,对于每个可视特征提取单元,通过该可视特征提取单元对场景渲染图进行特征提取,得到该可视特征提取单元输出的组件局部特征。在一种实施方式中,可参照如下步骤1.1.1至步骤1.13获取该可视特征提取单元输出的组件局部特征:
步骤1.1.1,将场景渲染图输入至该可视特征提取单元内的残差子单元,得到该可视特征提取单元内的残差子单元的输出特征。
步骤1.1.2,利用当前庄园组件对应的边缘框对该可视特征提取单元内的残差子单元的输出特征进行切割,得到当前庄园组件对应的特征。其中,当前庄园组件对应的边缘框表征了当前庄园组件在场景渲染图中所在的位置。在实际应用中,残差子单元的输出特征可以包括目标庄园场景对应的特征,为分别获取到各个当前庄园组件的特征,需要基于边缘框对该可视特征提取单元内的残差子单元的输出特征进行切割。
步骤1.1.3,通过该可视特征提取单元内的特征下采样子单元对当前庄园组件对应的特征进行压缩,得到该可视特征提取单元输出的组件局部特征。在一种实施方式中,不同可视特征提取单元内的特征下采样子单元所包含的卷积层数可能不同,从而实现对输入的当前庄园组件对应的特征进行不同程度的压缩。
步骤1.2,通过平均池化单元,对位于末端的可视特征提取单元内的残差子单元的输出特征进行池化处理,得到场景全局特征。
步骤2,通过图生成网络基于场景关系图和特征信息,确定目标庄园场景中的组件推荐位置。在一种实施方式中,可参照如下步骤2.1至步骤2.2确定目标庄园场景中的组件推荐位置:
步骤2.1,通过图生成网络基于场景关系图和特征信息,得到目标庄园场景对应的边分布模型。其中,边分布模型用于描述当前庄园组件之间的摆放规则,摆放规则包括四边对称规则、三角对称规则、链式摆放规则中的一种或多种。为便于理解,本发明实施例提供了一种图生成网络,图生成网络包括邻接矩阵编码单元、消息传递单元和边预测单元,消息传递单元包括多个基于注意力机制的消息传递子单元,消息传递子单元与可视特征提取单元内的特征下采样网络一一对应。邻接矩阵编码单元的输入为场景关系图的邻接矩阵,输出是编码后的邻接矩阵特征;消息传递单元的输入是编码后的邻接矩阵特征、组件局部特征和场景全局特征,输出是图节点特征;边预测单元的输入是图节点特征,输出是边分布模型。
在上述图生成网络的基础上,本发明实施例提供了一种通过图生成网络基于场景关系图和特征信息,得到目标庄园场景对应的边分布模型的实施方式,参见如下步骤2.1.1至步骤2.1.3:
步骤2.1.1,通过邻接矩阵编码单元对场景关系图进行编码处理,得到编码后的邻接矩阵特征。本发明实施例利用邻接矩阵编码单元对场景关系图进行编码处理的目的是压缩特征编码,以从场景关系图中获取到紧凑的邻接矩阵特征。
步骤2.1.2,对于每个消息传递子单元,通过该消息传递子单元对指定特征图进行迭代,得到该消息传递子单元输出的图节点特征。其中,消息传递单元内位于首端的消息传递子单元对应的指定特征图为编码后的邻接矩阵特征和与首端消息传递子单元对应的特征下采样网络输出的组件局部特征;其余消息传递子单元对应的指定特征图为前一消息传递子单元输出的图节点特征和与该消息传递子单元对应的特征下采样网络输出的组件局部特征。在一种实施方式中,消息传递子单元加入了自注意力机制,从而可以在传递消息的过程中区分不同消息对不同组件局部特征的重要程度。
步骤2.1.3,通过边预测单元,基于位于末端的消息传递子单元输出的图节点特征,生成目标庄园场景对应的边分布模型。为便于理解,本发明实施例还提供了一种利用边预测单元生成目标庄园场景对应的边分布模型的实施方式,首先可以将位于末端的消息传递子单元输出的图节点特征与场景全局特征进行按位相乘,得到按位相乘结果,然后通过边预测单元基于按位相乘结果生成目标庄园场景对应的边分布模型。
步骤2.2,基于边分布模型生成位置热度图,并根据位置热度图所表征的各个热度概率确定目标庄园场景中的组件推荐位置。位置热度图中所表征的各个热度概率的总和为1。在实际应用中,可通过不同颜色表征不同的热度概率,位置热度图中的热度核心所在的位置为推荐程度最高的位置,且热度概率在向周围扩散时将逐渐降低。
为便于对上述实施例提供的庄园组件的推荐方法进行理解,本发明实施例提供了如图4所示的另一种庄园组件的推荐方法的流程示意图,首先输入目标庄园场景的场景信息,分别通过渲染器基于场景信息对目标庄园场景进行处理得到场景渲染图,以及通过关系图提取器基于场景信息对目标庄园场景进行处理得到场景关系图,然后将场景渲染图和场景关系图输入到双流网络模型中,以通过双流网络模型学习目标庄园场景中当前庄园组件的边分布,然后通过位置地图生成单元将边分布转换为位置热度图,该位置热度图即可用于描述新庄园组件的组件推荐位置。
在一种具体的实施方式中,请继续参照图4中提供的一种双流网络模型,双流网络模型包括可视特征提取器(也即,上述特征提取网络)和图生成网络,其中,可视特征提取器包括多个残差网络(也即,上述残差子单元),每个残差网络的输出端均连接有一个特征下采样子单元,图生成网络包括邻接矩阵编码单元、消息传递单元和边预测单元,消息传递单元又包括与各个特征下采样子单元一一对应的消息传递子单元,以可视特征提取器包括4个残差网络为例,则特征下采样子单元和消息传递子单元的数量均为4个,如图4所示,第一个残差网络的输出端分别与第一个特征下采样单元的输入端和第二个残差网络的输入端相连,第一个特征下采样子单元的输出端与第一个消息传递子单元的输入端相连,第一个消息传递子单元的输入端还与邻接矩阵编码单元的输出端相连,第一个消息传递子单元的输出端还与第二个消息传递子的输入端相连。
在上述图4的基础上,本发明实施例提供了另一种庄园组件的推荐方法,参见图5所示的另一种庄园组件的推荐方法的流程示意图,该方法主要包括以下步骤s502至步骤s512:
步骤s502,加载当前场景(也即,前述目标庄园场景)。其中,当前场景包含场景组件集合以及禁止摆放区域标识。场景组件集合描述的是当前场景中的组件信息,组件信息可以包括每个当前庄园组件的三维数据文件、右下角坐标和旋转角度中的一种或多种,例如,可以以“.obj”格式保存当前庄园组件的三维数据文件;可以预先定义庄园坐标系,并采用二维坐标的形式记录当前庄园组件的右下角坐标;旋转角度的取值空间可以为{0,90,180,270}。禁止摆放区域标识可以包括水域等区域的标识,在一种可选的实施方式中,禁止摆放区域标识可以表示为一个0-1向量,向量长度为庄园面积,0表示非水域(允许放置),1表示水域(禁止放置)。
步骤s504,对当前场景进行渲染,得到场景俯视图(也即,上述场景渲染图)。在一种实施方式中,可以利用渲染器对当前场景进行俯视正交渲染,将渲染得到的俯视图作为场景俯视图,该场景俯视图可以有效地表示当前场景的视觉状态,且能够有效合理地表示当前场景中不规则的禁止摆放区域。渲染器的目的是将一个离散的场景组件集合渲染成一张规则表达的俯视图,渲染器的输入即为上述场景组件集合,每个场景组件集合描述了每个当前场景组件的三维数据信息和空间位置信息,三维数据信息可以以“.obj”格式保存,空间位置信息可以包括当前庄园组件的右下角坐标和旋转角度等。场景俯视图用于对当前场景进行二维视觉描述,可以用于描述当前场景中所包含的当前状元组件的深度视觉信息和水域详细描述信息等,可选的,场景渲染图的尺寸应与当前场景的尺寸相同,诸如,场景俯视图的尺寸可以为256*256。
步骤s506,对当前场景的组件关系进行抽取,得到场景关系图。其中,场景关系图是通过关系图提取器对当前场景抽取获得,目的是通过图数据结构描述离散的当前庄园组件之间的空间关系。在一种实施方式中,可以利用关系图提取器抽取当前场景中的组件关系得到场景关系图,关系图提取器的目的是抽取当前场景中离散组件之间的空间关系,供后续图生成算法流程学习。可选的,当前场景中的每个当前庄园组件分别表示为一个节点,节点属性包含当前庄园组件的类别标签信息以及当前庄园组件的边框位置信息,边表示相连的两个当前庄园组件之间的空间关系,为量化当前庄园组件之间的空间关系,本发明实施例定义了一个边模型,并通过该边模型离散化描述当前庄园组件之间的空间关系。为便于理解,参见图6所示的一种边模型的示意图,anchor组件即为上述预设中心点,其它方框表示场景中的其它节点(包括节点1、节点2、节点3、节点4、节点5和节点6),图6中的箭头用于表征当前庄园组件与anchor组件之间的边,边表示当前庄园组件与anchor组件之间的空间关系,边属性向量描述边的基本属性特征,以节点1为例,frontproximal是当前边的方向和距离,[0,1,2]表示当前边的两个节点(也即,节点1与预设中心点)的对齐关系。
另外,上述边属性向量用于表征边的距离标签、方向标签和对齐标签,该对齐标签用于表征边连通的两个当前庄园组件之间对齐关系。(1)针对距离标签,在具体实现时,从anchor组件出发,该边模型量化了四个方向[front,right,back,left],每个方向上定义4类距离标签,分别是[next_to,adjacent,proximal,distant]。对于当前场景中的任意一个其它节点,若该节点在某个方向上的组件边线段到anchor组件的可视投影线段超过anchor组件当前边的15%,则添加一条从anchor组件到该当前庄园组件的边。若两个节点之间的距离为0,则设置距离标签为next_to;若两个节点之间的距离小于边模型中定义的adjacent阈值,则距离标签设置为adjacent;若两个节点之间的距离小于proximal阈值,则距离标签定义为proximal;其它情况则设置距离标签为distant。(2)针对方向标签,边的方向标签定义为当前节点所在的anchor节点的相对方向。(3)针对对齐标签,在一种实施方式中,可以定义6种对齐关系,分别是[左对齐,垂直对齐,右对齐,底边对齐,水平对齐,顶边对齐],在场景关系图中,边对齐表示为一个6维向量,当相应对齐出现时,对应位置标志为1,否则为0。可选的,整个边模型定义在笛卡尔坐标系上,通过边模型提取两两节点之间的空间关系,就能获取整个当前场景的场景关系图。
步骤s508,对场景俯视图进行可视特征提取,得到场景全局特征和组件局部特征。在一种实施方式中,可利用可视特征提取器对场景俯视图进行可视特征提取,可视特征提取器是以深度残差网络为基础搭建的深度卷积神经网络,在每个残差子单元之后分支出一个特征下采样子单元,该特征下采样子单元可以由几个卷积层组合而成。可视特征提取器的输入为场景俯视图以及每个当前庄园组件的二维边缘框,可视特征提取器的输出是当前场景中每个当前庄园组件在不同卷积层提取的组件局部特征以及整个当前场景的场景全局特征。在本发明实施例中,每个当前庄园组件在每个残差子单元之后,基于当前庄园组件的二维边缘框切割出每个当前庄园组件对应的特征,同时不同层的特征经过不同的下采样神经子单元进行压缩,得到较低维的局部视觉特征(也即,上述组件局部特征)。另外,使位于末端的残差子单元输出的特征经过最后一个平均池化,即可得到当前场景的全局视觉特征(也即,上述场景全局特征)。
步骤s510,基于场景关系图、场景全局特征和组件局部特征计算边分布模型。在一种实施方式中,可利用图生成网络基于场景关系图、场景全局特征和组件局部特征计算新的庄园组件的消息,从而基于学到的消息获取边分布模型。图生成网络的目的是学习节点之间的边的分布。其中,节点之间的边表明两个节点之间的相对空间关系,因此,如果能够有效的模拟边的分布,也就能够学习到当前庄园组件之间相对空间关系的分布。如此,对于新加入的庄园组件,可以较好地预测出新加入的庄园组件与当前庄园组件之间的相对空间关系,进而推断出新加入的庄园组件在当前组件中的组件推荐位置。
另外,继续参见图4,图生成网络包含三个不同单元,分别是邻接矩阵编码单元、基于注意力机制的消息传递单元和边预测单元。整个图生成网络的输入包括:场景关系图的邻接矩阵、节点属性特征、边属性特征以及可视特征提取器提取的当前场景的可视特征(包括局部视觉特征和全局视觉特征),输出是场景关系图中的边分布模型。邻接矩阵编码单元的输入是场景关系图的邻接矩阵,输出是编码后的邻接矩阵特征
其中,fα是学习α参数的网络,wα是fα的网络参数,fθ是学习θ参数的网络,wθ是fθ的网络参数,
可选的,本发明实施例通过监督训练的方法来减小损失函数的损失,从而迭代优化算法模型参数。
步骤s512,基于边分布模型逆向推算位置热度图,以通位置热度图表征当前场景中的组件推荐位置。其中,边预测模型的目的是将学习到的边的分布转化为新节点的位置热度图。在本发明实施例中,通过定义的边模型,将学习到的边分布模型转为位置热度图。位置热度图描述的是预测的新的庄园组件的组件推荐位置。位置热度图的核心表示位置概率最高,随着热度向周围扩散时概率逐渐降低。位置热度图大小与场景渲染图大小一致,为256*256。另外,位置热度图上的热度概率总和为1。
为便于对位置热度图进行理解,本发明实施例提供了一些位置热度图。参见图7-1a所示的一种当前场景的示意图,参见图7-1b所示的一种位置热度图的示意图,参见图7-2a所示的另一种当前场景的示意图,参见图7-2b所示的另一种位置热度图的示意图,参见图7-3a所示的另一种当前场景的示意图,参见图7-3b所示的另一种位置热度图的示意图,参见图7-4a所示的另一种当前场景的示意图,参见图7-4b所示的另一种位置热度图的示意图。其中,图7-1a与7-1b为一组对应当前场景与位置热度图,图7-2a与7-2b为一组对应当前场景与位置热度图,图7-3a与7-3b为一组对应当前场景与位置热度图,图7-4a与7-4b为一组对应当前场景与位置热度图,图中方格所覆盖区域用于表征当前庄园组件在当前场景中的位置,示例性,本发明实施例通过左斜线覆盖区域和右斜线覆盖区域用于表征两个不同的热度概率,在实际应用中,位置热度图中所表征的热度概率为多个。本发明实施例提供的状元组件的推荐方法,在当前场景的基础上推荐新组件的组件推荐位置,并且新的位置能够很好的反应出当前场景中当前状元组件之间的空间关系,如四边对称规则、三角对称规则、链式摆放规则等;同时还能合理避开禁止摆放位置,本发明实施例提供的上述方法可以有效解决新庄园组件的位置推荐问题。
综上所述,本发明实施例提供的上述庄园组件的推荐方法,包含一个数据预处理过程和一个双流网络模型。数据预处理过程的输入是当前场景,通常是一些组件的位置朝向等参数信息,输出包含一个场景渲染图和一个场景关系图。双流网络包含一个卷积网络,用来学习场景渲染图的特征,同时获取每个当前庄园组件的组件局部特征和整个场景渲染图的场景全局特征;另一个网络是图生成网络,通过学习当前场景中场景关系图的边分布,来预测新的庄园组件与当前庄园组件之间的边,根据预测到的边的分布情况,最终可以获取新庄园组件的组件推荐位置。
本发明实施例通过上述方法,可以自动预测当前场景中新庄园组建的组件推荐位置。其中,通过上述数据预处理过程可以将无序存放的组件描述信息转化为规则的场景渲染图,同时还能编码相关几何信息转为场景关系图;然后基于提出的双流网络可以有效的学习场景中的当前庄园组件之间的关系,另一方面,通过对场景渲染图的编码,双流网络在学习场景关系图的过程中也能有效的避免将新的庄园组件指向禁止摆放位置,通过对学习到的边的分布可视化,可以有效的获取用于表征新的状元组件的组件推荐位置的位置热度图。
对于前述实施例提供的庄园组件的推荐方法,本发明实施例提供了一种庄园组件的推荐装置,参见图8所示的一种庄园组件的推荐装置的结构示意图,该装置主要包括以下部分:
信息获取模块802,用于获取目标庄园场景的场景信息;其中,目标庄园场景内放置有当前庄园组件。
图获取模块804,用于基于场景信息分别获取目标庄园场景对应的场景渲染图和场景关系图;其中,场景渲染图用于描述目标庄园场景的视觉状态,场景关系图用于描述各个当前庄园组件的空间关系。
推荐位置确定模块806,用于通过双流网络模型基于场景渲染图和场景关系图,确定目标庄园场景中的组件推荐位置;其中,双流网络模型包括特征提取网络和图生成网络。
本发明实施例提供的上述庄园组件的推荐装置,基于场景信息分别获取用于描述视觉状态的场景渲染图和用于描述空间关系的场景关系图,并利用双流网络模型基于场景渲染图和场景关系图对目标庄园场景中各个当前庄园组件的摆放规则进行学习,从而可以得到更为合理的组件推荐位置,进而可以更好的辅助玩家搭建庄园。
在一种实施方式中,上述图获取模块804还用于:基于场景信息对目标庄园场景进行俯视交叉渲染,得到目标庄园场景对应的场景渲染图;以及,基于场景信息提取目标庄园场景中各个当前庄园组件之间的空间关系,得到目标庄园场景对应的场景渲染图;其中,场景信息包括目标庄园场景的区域描述信息和当前庄园组件的组件描述信息。
在一种实施方式中,上述图获取模块804还用于:基于预设中心点与各个当前庄园组件之间的相对位置,确定各个当前庄园组件对应的空间标签,以通过空间标签表征各个当前庄园组件之间的空间关系;中,空间标签包括距离标签、方向标签和对齐标签中的一种或多种。
在一种实施方式中,上述推荐位置确定模块806还用于:通过特征提取网络对场景渲染图进行特征提取,得到场景渲染图的特征信息;通过图生成网络基于场景关系图和特征信息,确定目标庄园场景中的组件推荐位置。
在一种实施方式中,特征提取网络包括依次连接的多个可视特征提取单元和一个平均池化单元,每个可视特征提取单元均包括残差子单元和特征下采样子单元;上述推荐位置确定模块806还用于:对于每个可视特征提取单元,通过该可视特征提取单元对场景渲染图进行特征提取,得到该可视特征提取单元输出的组件局部特征;通过平均池化单元,对位于末端的可视特征提取单元内的残差子单元的输出特征进行池化处理,得到场景全局特征;其中,场景渲染图的特征信息包括各个可视特征提取单元输出的组件局部特征和场景全局特征。
在一种实施方式中,上述推荐位置确定模块806还用于:将场景渲染图输入至该可视特征提取单元内的残差子单元,得到该可视特征提取单元内的残差子单元的输出特征;利用当前庄园组件对应的边缘框对该可视特征提取单元内的残差子单元的输出特征进行切割,得到当前庄园组件对应的特征;通过该可视特征提取单元内的特征下采样子单元对当前庄园组件对应的特征进行压缩,得到该可视特征提取单元输出的组件局部特征。
在一种实施方式中,上述推荐位置确定模块806还用于:通过图生成网络基于场景关系图和特征信息,得到目标庄园场景对应的边分布模型;其中,边分布模型用于描述当前庄园组件之间的摆放规则;基于边分布模型生成位置热度图,并根据位置热度图所表征的各个热度概率确定目标庄园场景中的组件推荐位置。
在一种实施方式中,图生成网络包括邻接矩阵编码单元、消息传递单元和边预测单元,消息传递单元包括多个基于注意力机制的消息传递子单元,消息传递子单元与可视特征提取单元内的特征下采样网络一一对应;上述推荐位置确定模块806还用于:通过邻接矩阵编码单元对场景关系图进行编码处理,得到编码后的邻接矩阵特征;对于每个消息传递子单元,通过该消息传递子单元对指定特征图进行迭代,得到该消息传递子单元输出的图节点特征;通过边预测单元,基于位于末端的消息传递子单元输出的图节点特征,生成目标庄园场景对应的边分布模型;其中,消息传递单元内位于首端的消息传递子单元对应的指定特征图为编码后的邻接矩阵特征和与首端消息传递子单元对应的特征下采样网络输出的组件局部特征;其余消息传递子单元对应的指定特征图为前一消息传递子单元输出的图节点特征和与该消息传递子单元对应的特征下采样网络输出的组件局部特征。
在一种实施方式中,上述推荐位置确定模块806还用于:将位于末端的消息传递子单元输出的图节点特征与场景全局特征进行按位相乘,得到按位相乘结果;通过边预测单元,基于按位相乘结果生成目标庄园场景对应的边分布模型。
在一种实施方式中,摆放规则包括四边对称规则、三角对称规则、链式摆放规则中的一种或多种。
在一种实施方式中,位置热度图中所表征的各个热度概率的总和为1。
在一种实施方式中,距离标签包括近距离标签和/或远距离标签;方向标签包括前方标签、后方标签、左方标签和右方标签中的一种或多种;对齐标签包括左对齐标签、垂直对齐标签、右对齐标签、底边对齐标签、水平对齐标签、顶边对齐标签中的一种或多种。
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
本发明实施例提供了一种服务器,具体的,该服务器包括处理器和存储装置;存储装置上存储有计算机程序,计算机程序在被所述处理器运行时执行如上所述实施方式的任一项所述的方法。
图9为本发明实施例提供的一种服务器的结构示意图,该服务器100包括:处理器90,存储器91,总线92和通信接口93,所述处理器90、通信接口93和存储器91通过总线92连接;处理器90用于执行存储器91中存储的可执行模块,例如计算机程序。
其中,存储器91可能包含高速随机存取存储器(ram,randomaccessmemory),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个通信接口93(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线92可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器91用于存储程序,所述处理器90在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器90中,或者由处理器90实现。
处理器90可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器90中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器90可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现成可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器91,处理器90读取存储器91中的信息,结合其硬件完成上述方法的步骤。
本发明实施例所提供的可读存储介质的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见前述方法实施例,在此不再赘述。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除