CN111598976B - 场景识别方法及装置、终端、存储介质 - Google Patents

场景识别方法及装置、终端、存储介质 Download PDF

Info

Publication number
CN111598976B
CN111598976B CN201910105807.4A CN201910105807A CN111598976B CN 111598976 B CN111598976 B CN 111598976B CN 201910105807 A CN201910105807 A CN 201910105807A CN 111598976 B CN111598976 B CN 111598976B
Authority
CN
China
Prior art keywords
target
scene
object model
target object
vertex
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.)
Active
Application number
CN201910105807.4A
Other languages
English (en)
Other versions
CN111598976A (zh
Inventor
张璠
邓一鑫
顾宝成
魏冬
柯胜强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201910105807.4A priority Critical patent/CN111598976B/zh
Priority to PCT/CN2020/074016 priority patent/WO2020156487A1/zh
Priority to EP20748486.6A priority patent/EP3905204A4/en
Publication of CN111598976A publication Critical patent/CN111598976A/zh
Priority to US17/389,688 priority patent/US11918900B2/en
Application granted granted Critical
Publication of CN111598976B publication Critical patent/CN111598976B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • A63F13/525Changing parameters of virtual cameras
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/77Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/53Querying
    • G06F16/532Query formulation, e.g. graphical querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • G06F16/5854Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using shape and object relationship
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/20Scenes; Scene-specific elements in augmented reality scenes
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/20Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
    • A63F2300/209Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform characterized by low level software layer, relating to hardware management, e.g. Operating System, Application Programming Interface
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6692Methods for processing data by generating or executing the game program for rendering three dimensional images using special effects, generally involving post-processing, e.g. blooming

Abstract

本申请公开了一种场景识别方法及装置、终端、存储介质等,可以应用于游戏场景的识别。所述方法包括:获取一条或多条绘制指令,根据该一条或多条绘制指令中携带的描述参数确定待绘制的目标物体,由于场景和物体之间存在某些特定关系,所以可以根据该目标物体确定对应的目标场景。相较于相关技术中采用的图像识别技术所消耗大量的计算资源,本申请实施例所提供场景识别方法有效节约了系统资源。

Description

场景识别方法及装置、终端、存储介质
技术领域
本申请涉及计算机图形技术领域,特别涉及一种场景识别方法及装置、终端、存储介质。
背景技术
随着科技的发展,终端的处理器的性能越来越强大,可以支持并运行多种大型竞技游戏。终端的生产厂商为了进一步提升用户体验,将终端设置为在运行竞技游戏时,可以识别出竞技游戏的当前图像帧的游戏场景,并针对不同的游戏场景增加不同的特效等。例如,移动终端可以在识别出当前游戏场景之后,针对不同的游戏场景增加声音或者触觉等特效。
相关技术中提供了一种场景识别方法,该方法基于图像识别技术,预先根据游戏场景中的多幅图像帧的游戏画面建立训练集,利用图像识别技术将当前图像帧的游戏画面和训练集中的多幅图像帧的游戏画面进行匹配,以在训练集中获取与当前图像帧的游戏画面匹配的某一图像帧的游戏画面,将该匹配的某一图像帧的游戏画面所对应的游戏场景作为当前图像帧的游戏画面对应的游戏场景。
但是,相关技术所提供的场景识别方法中,图像识别技术的使用过程需要消耗大量的计算资源,导致终端的运算代价较大。
发明内容
本申请提供了一种场景识别方法及装置、终端、存储介质等,可以节约系统的运算资源。
第一方面,本申请示例性实施例提供一种场景识别方法,该方法包括:获取至少一条绘制指令,该绘制指令用于绘制目标物体;根据该至少一条绘制指令的描述参数确定待绘制的目标物体的目标物体模型,该目标物体模型为用于图像绘制的渲染模型,该描述参数指示目标物体模型的顶点信息;根据该目标物体模型确定对应的目标场景。
本申请实施例提供的场景识别方法,根据绘制物体的绘制指令的描述参数就可以确定出目标场景,相较于相关技术中采用的图像识别技术所消耗的大量的计算资源,本申请实施例所提供场景识别方法有效节约了系统资源。
在一些实现方式中,根据该目标物体模型确定对应的目标场景可以是根据目标物体模型直接确定对应的目标场景;在另一些实现方式中,根据该目标物体模型确定对应的目标场景可以是根据该目标物体模型确定对应的物体,然后根据物体确定对应的目标场景。如果计算机中存储了物体模型与场景的对应关系,可以采用前一种,如果计算机中存储了物体(比如某个游戏角色的标识)和场景的对应关系,那么可以采用后一种。或者,根据计算机中存储的其它类型的对应关系,本申请提供的方法可以做相应的改变,均不应视做脱离本申请的范围。
本申请中的“至少一条绘制指令”可以理解为“一条或多条指令”。
在一些实现方式中,一条绘制指令可以绘制一个物体,多条绘制指令也可以绘制一个物体,一条绘制指令还可以绘制多个物体,也即是绘制指令与物体可以是一对一、一对多或者多对一的关系。通常情况下,一条绘制指令用于绘制一个物体。本申请中提出的“物体”可以是人,也可以是动物;可以是静态的物体,也可以是动态的物体;可以存在于背景中,也可以存在于前景中,等等,本申请对此不做限定。
在一些实现方式中,目标物体模型为将顶点信息与已知的一个或多个物体模型的顶点信息匹配所得。已知的一个或多个物体模型的顶点信息可以以顶点信息和物体模型的对应关系的形式存在于计算机系统中。该对应关系可以是人工输入的,也可以是通过机器学习(相当于人工智能)等方式获得的。
在本申请中,由于描述参数中携带的顶点信息不同,所以本申请提供了至少两种确定目标物体模型的实现方式。
在第一种实现方式中,顶点信息包括物体模型的顶点集合,一个顶点集合中包括一个或多个顶点的坐标值,则确定目标物体模型的过程可以包括:从描述参数中获取m个顶点集合,m为正整数;从该m个顶点集合中,确定与已知的一个或多个物体模型的顶点集合匹配的目标顶点集合;将该目标顶点集合所对应的物体模型确定为目标物体模型。
一个顶点集合包含的顶点的数量称之为“顶点个数”。
基于该第一种实现方式,在一些实现方式中,从该m个顶点集合中,确定与已知的一个或多个物体模型的顶点集合匹配的目标顶点集合的过程可以包括:确定该m个顶点集合中,与已知的一个或多个物体模型的顶点集合内容相同且包含的顶点个数相等的顶点集合为目标顶点集合。即“匹配”意味着两个顶点集合中的顶点数量相同,且两个顶点集合内部的顶点的坐标也是相同的。如果顶点集合中的顶点是存在顺序的,那么两个顶点集合中的顶点应该是按照顺序一一对应且坐标值相同的。
基于该第一种实现方式,在一些实现方式中,先根据顶点集合的顶点个数,再根据顶点集合的内容来确定匹配的目标顶点集合。由于不同的物体模型所具有的顶点个数通常是不相同的,因此,先通过顶点数快速筛选,再通过顶点集合的内容精准筛选,不但提高了确定目标物体模型的效率,也保证了确定的目标物体模型的准确性。
在一些实现方式中,从描述参数中获取m个顶点集合的过程,包括:获取描述参数中包含的所有顶点集合,将该所有顶点集合作为该m组顶点集合;或者,筛选描述参数中的部分顶点集合以得到该m组顶点集合。
在第二种实现方式中,顶点信息包括物体模型的顶点个数,那么目标物体模型为已知的一个或多个物体模型中顶点个数与描述参数指示的顶点个数相等的物体模型。
需要说明的是,描述参数是用来“指示”顶点信息的,所以在这种实现方式中描述参数是用来“指示”顶点个数的。因此描述参数可以直接携带每个顶点集合的顶点个数,也可以不携带顶点个数,仅携带顶点集合,因为有了顶点集合,计算机系统就可以计算获得该集合中的顶点个数。
基于该第二中实现方式,在一些实现方式中,当顶点信息包括顶点个数时,该确定目标物体模型的过程可以包括:从所述至少一条绘制指令的描述参数中获取n个顶点个数,n为正整数;分别将该n个顶点个数中的每个顶点个数作为第一顶点个数,在已知的一个或多个物体模型中,确定至少一个备选物体模型,该至少一个备选物体模型中的每个备选物体模型均具有第一顶点个数,已知的一个或多个物体模型中记录了已知的多个物体模型对应的多个顶点个数;当该备选物体模型的个数为1时,将该备选物体模型确定为该第一顶点个数对应的目标物体模型;当该备选物体模型的个数大于1时,在该备选物体模型中选择该第一顶点个数对应的目标物体模型。
仅通过顶点个数筛选确定目标物体模型在一些场景中是能够提高匹配效率的。
在一些实现方式中,该目标物体模型还需要满足如下条件:该目标物体模型与目标虚拟环境相匹配,其中,该目标虚拟环境与至少一条绘制指令所要绘制的目标物体所属的图像帧对应,目标虚拟环境为生成前述至少一条绘制指令的应用程序所创建的虚拟环境,是该应用程序在终端上生成的可交互的二维或三维环境。其中,确定目标物体模型是否与目标虚拟环境相匹配的过程可以包括:确定目标虚拟环境;在备选物体模型中选择与该目标虚拟环境中的物体模型相似度最高的物体模型作为目标物体模型。
由于叠加目标虚拟环境匹配这个因素,保证了根据该目标物体模型的准确性。
在一些实现方式中,获取至少一条绘制指令的过程,包括:通过监听OpenGL接口的方式获取该至少一条绘制指令,其中,OpenGL接口为OpenGL和应用程序之间的接口。
在一些实现方式中,该通过监听OpenGL接口的方式获取该至少一条绘制指令的过程可以包括:执行至少一次监听获取流程,得到所述至少一条绘制指令。
在一些实现方式中,所述监听获取流程包括:监听第一OpenGL接口,所述第一OpenGL接口为OpenGL和指定应用程序之间的接口,所述指定应用程序用于绘制目标虚拟环境中图像帧中的物体;在所述第一OpenGL接口中,监听到用于指示一个图像帧绘制完成的结束指示信息后,通过第二OpenGL接口在OpenGL的缓存中获取绘制完成的所述一个图像帧的绘制指令,所述第二OpenGL接口连接OpenGL。
通过监听第一OpenGL接口中用于指示一个图像帧绘制完成的结束指示信息,可以准确获知获取绘制完成的所述一个图像帧的绘制指令的时间节点,根据该时间节点来获取至少一条绘制指令,提高了该场景识别方法的有效性。
在一些实现方式中,在根据至少一条绘制指令的描述参数确定目标物体模型之前,该方法还包括:确定目标虚拟环境,该目标虚拟环境与至少一条绘制指令所要绘制的目标物体所属的图像帧对应;获取在该目标虚拟环境下,描述参数与物体模型的第一对应关系,该第一对应关系可以包括描述参数与物体模型的对应关系,也可以包括描述参数、物体模型以及物体的对应关系,也可以包括描述参数以及物体的对应关系,当然,由于物体与物体模型对应,因此该第一对应关系也可以包括描述参数与物体模型的对应关系。相应的,根据该至少一条绘制指令的描述参数确定目标物体模型的过程可以包括:查询该第一对应关系,获得与该描述参数对应的目标物体模型。
在一些实现方式中,在确定目标虚拟环境之后,该方法还包括:在多组关系集合中,获取在目标虚拟环境下的场景判断策略,该多组关系集合记录有不同的多个虚拟环境下的场景判断策略,该场景判断策略为基于物体模型判断对应场景的策略,或者,该场景判断策略为基于物体标识判断对应场景的策略。若场景判断策略为基于物体模型判断对应场景的策略,则根据目标物体模型确定对应的目标场景,包括:根据目标物体模型和目标虚拟环境下该目标物体模型的场景判断策略,确定目标场景。若场景为基于物体模型对应的物体标识判断对应场景的策略,则根据目标物体模型确定对应的目标场景,包括:根据目标物体模型对应的目标物体标识和目标虚拟环境下该目标物体标识的场景判断策略,确定目标场景。
根据确定的目标虚拟环境,获取描述参数与物体模型的第一对应关系以及该目标虚拟环境下的场景判断策略,使得获取到的第一对应关系和场景判断策略能够匹配该目标虚拟环境,避免了获取到不匹配的第一对应关系和场景判断策略而占用终端的内存空间的情况。
在一些实现方式中,该目标虚拟环境为游戏环境,目标场景判断的时候基于目标物体模型是否包含枪支和子弹、是否包含多个角色、或是否首次出现某个角色等方式。具体的,场景判断策略包括以下中的一项或多项:当该目标物体模型包括枪支和子弹分别对应的物体模型(或者当目标物体包括枪支和子弹时)时,确定该目标场景为开枪场景;或,当该目标物体模型包括至少三个角色分别对应的物体模型时,确定该目标场景为团战场景;或,当第一图像帧中的目标物体模型包括目标角色对应的物体模型时,且该第一图像帧的上一幅图像帧中的目标物体模型不包括该目标角色对应的物体模型时,确定该目标场景为目标角色出现的场景。这里的“至少三个角色”可以是不同类型的角色,也可以是同类型的角色。
在一些实现方式中,该第一图像帧包括连续的两个图像帧。
在一些实现方式中,获取在目标虚拟环境下,描述参数与物体模型的第一对应关系,包括:查询本地存储设备中存储的所述第一对应关系;或者从与所述目标虚拟环境关联的服务器下载所述第一对应关系。
本申请实施例提供的场景识别方法,通过获取至少一条用于绘制目标物体的绘制指令,再根据该至少一条绘制指令的描述参数确定待绘制的目标物体的目标物体模型,最后根据该目标物体模型确定所对应的目标场景。由于目标场景是根据目标物体模型确定,而该目标物体模型是根据绘制指令的描述参数确定的,相较于相关技术中采用的图像识别技术所消耗的大量的计算资源,本申请实施例所提供场景识别方法有效节约了系统资源。
第二方面,本申请示例性实施例提供一种场景识别装置,该装置包括一个或多个模块,该一个或多个模块用于实现上述第一方面中任一所述的场景识别方法。
本申请实施例提供的场景识别装置,通过获取至少一条用于绘制目标物体的绘制指令,再根据该至少一条绘制指令的描述参数确定待绘制的目标物体的目标物体模型,最后根据该目标物体模型确定所对应的目标场景。由于目标场景是根据目标物体模型确定,而该目标物体模型是根据绘制指令的描述参数确定的,终端无需进行额外的运算,相较于相关技术中采用的图像识别技术所消耗的大量的计算资源,本申请实施例所提供场景识别方法有效节约了系统资源。
第三方面,本申请实施例提供了一种计算机,例如终端设备,包括处理器和存储器;在处理器执行存储器存储的计算机程序以实现第一方面中任一所述的场景识别方法。
第四方面,本申请实施例提供了一种存储介质,该存储介质可以是非易失性的,该存储介质内存储有计算机程序,计算机程序用于实现第一方面中任一所述的场景识别方法。
第五方面,本申请实施例提供了一种包含指令的计算机程序产品(或称计算机程序),当计算机程序产品在计算机上运行时,使得计算机执行第一方面中任一所述的场景识别方法。
本申请提供的场景识别方法及装置、终端、存储介质,通过获取至少一条用于绘制目标物体的绘制指令,再根据该至少一条绘制指令的描述参数确定待绘制的目标物体的目标物体模型,最后根据该目标物体模型确定所对应的目标场景。由于目标场景是根据目标物体模型确定,而该目标物体模型是根据绘制指令的描述参数确定的,相较于相关技术中采用的图像识别技术所消耗的大量的计算资源,终端无需进行很多额外的运算,本申请实施例所提供场景识别方法有效节约了系统资源。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1是本申请实施例提供的场景识别方法所涉及的应用环境的示意图;
图2是本申请实施例提供的一种场景识别方法的流程图;
图3是本申请实施例提供的一种确定目标物体模型的过程的流程图;
图4是本申请实施例提供的一种根据获取的模型标识确定对应的目标场景的示意图;
图5是本申请实施例提供的一种目标场景为开枪场景的示意图;
图6是本申请实施例提供的一种目标场景为团战场景的示意图;
图7是本申请实施例提供的一种目标场景为敌人出现的场景的示意图;
图8是本申请实施例提供的一种场景识别方法的流程图;
图9是本申请实施例提供的一种场景识别装置的结构示意图;
图10是本申请实施例提供的一种第二获取模块的结构示意图;
图11是本申请实施例提供的另一种场景识别装置的结构示意图;
图12是本申请实施例提供的另一种场景识别装置的结构示意图;
图13是本申请实施例所提供的场景识别装置在终端的软件和硬件中的部署形态的示意图;
图14是本申请实施例提供的场景识别装置在移动终端的软件和硬件中的部署形态的示意图;
图15是本申请实施例提供的一种终端的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
随着终端的处理器的性能越来越强大,终端可以支持并运行多种大型竞技游戏。当终端在运行竞技游戏时,可以自动识别出该竞技游戏的当前图像帧的游戏场景,并针对不同的游戏场景增加不同的内容项目。例如,当该终端为移动终端时,该内容项目可以包括特效或者广告等,移动终端在识别出当前游戏场景之后,可以针对不同的游戏场景增加声音或者触觉等特效,或者针对不同的游戏场景投放不同的广告。因此,有效判断出当前图像帧的游戏场景,对于提升用户体验以及提高广告投放商的收益都至关重要。
相关技术中提供了两种场景识别方法,第一种是基于图像识别技术,将当前图像帧的游戏画面和预先建立的训练集中的多幅图像帧的游戏画面进行匹配,当当前图像帧与某一图像帧匹配时,将该某一图像帧的游戏画面所对应的游戏场景作为当前图像帧的游戏画面对应的游戏场景。第二种是通过游戏的软件开发工具包(Software Development Kit,SDK)中开放的部分应用程序接口查询有限个数的游戏场景。
但是,对于第一种场景识别方法,图像识别技术的使用过程需要消耗大量的计算资源,导致终端的运算代价较大,并且,若需要确定多帧游戏画面对应的游戏场景或者确定大型3D游戏中复杂的游戏场景,均会严重影响终端的使用性能,例如,终端出现卡顿或者耗电量过大的情况。对于第二种场景识别方法,由于游戏公司往往只对部分终端生产厂商开放应用程序接口,导致该场景识别方法通用性较低,且所能够查询的游戏场景的数量也有限,导致第二种场景识别方法具有较大的局限性。
为了有助于读者理解,在对本申请实施例进行详细介绍之前,在此先对本申请实施例所涉及的名词进行解释:
OpenGL(Open Graphics Library,开放式图形库),其定义了一套跨编程语言、跨平台的应用程序编程接口(Application Programming Interface,API),其中包含许多对图形进行处理的函数,例如,OpenGL定义的API中包括用于绘制二维图像或三维图像的接口(该接口包括绘制函数,例如绘制函数glDrawElements()),还包括将绘制函数绘制的图像呈现到显示界面上的接口(该接口包括呈现函数,例如函数eglSwapBuffers())等,本申请实施例在此不进行一一举例。其中,OpenGL中的函数可以通过指令调用,例如,通过绘制指令可以调用绘制函数,以绘制二维图像或三维图像。在本申请实施例中,将二维图像或者三维图像均统称为图像帧。需要说明的是,在通过OpenGL进行物体绘制时,一条绘制指令可以绘制一个物体,多条绘制指令也可以绘制一个物体,一条绘制指令还可以绘制多个物体,也即是绘制指令与物体可以是一对一、一对多或者多对一的关系。通常情况下,一条绘制指令用于绘制一个物体。
OpenGL ES(OpenGL for Embedded Systems,嵌入式系统的开放式图形库),是OpenGL中针对手机、掌上电脑(Personal Digital Assistant,PDA)和游戏主机等嵌入式设备而设计的图形库。
虚拟环境,是应用程序利用计算机图形系统和各种接口,在终端上生成的可交互的二维或三维环境。
场景,是虚拟环境中的各个场面,每个场景由一个或多个虚拟物体搭建而成。
示例的,应用程序为游戏应用程序,对应的虚拟环境为游戏环境,该游戏环境中存在多个游戏场景,例如团战场景或枪战场景。
本申请实施例提供了一种场景识别方法,可以解决相关技术中所存在的问题。请参考图1,图1是该场景识别方法所涉及的应用环境的示意图,该场景识别方法由场景识别装置执行,该场景识别装置位于终端中,该场景识别装置可以通过安装于终端中的软件实现,在终端中运行有多种应用程序,每个应用程序的数据依次经过OpenGL接口层、缓存和OpenGL应用态驱动程序,其中,OpenGL接口层用于提供OpenGL中的函数,以供应用程序调用,缓存用于存储应用程序调用OpenGL接口层中函数的指令,OpenGL应用态驱动程序用于将应用程序调用的指令传递至GPU,以供GPU执行该指令,本申请实施例提供的场景识别装置与缓存之间设置有接口,用于通过该缓存中的数据来进行场景识别。
本申请实施例在实际应用中,应用程序可以通过执行绘制指令从OpenGL接口层调用上述OpenGL或者OpenGL ES中的绘制函数,以实现该应用程序中绘制二维图像或三维图像的相关功能,例如该应用程序为游戏应用程序时,该游戏应用程序可以通过执行绘制指令来调用绘制函数以绘制该游戏中用于呈现游戏场景的二维图像或三维图像。
为了便于说明,本申请实施例假设当前开启的应用程序为指定应用程序,请参考图2,该方法包括:
步骤101、场景识别装置获取至少一条绘制指令,该绘制指令用于绘制目标物体。
其中,假设第一图像帧为当前需要绘制的图像帧,也即是该至少一条绘制指令所要绘制的目标物体所属的图像帧,其与当前场景对应,第一图像帧可以包括一个图像帧,或连续的至少两个图像帧,例如,第一图像帧包括连续的两个图像帧。
场景识别装置在每次进行场景识别时,可以获取一条绘制指令,但是,为了保证场景识别结果的准确性,场景识别装置可以在每次进行场景识别时,获取至少两条绘制指令。可选的,场景识别装置可以按照指定顺序获取该至少两条绘制指令,按照该指定顺序排列的该至少两条绘制指令也称为绘制指令流。该指定顺序为应用程序调用绘制指令的顺序。
终端中的指定应用程序通过调用多条绘制指令,可以绘制第一图像帧,每条绘制指令可以绘制该第一图像帧中的一个物体,或者,每条绘制指令可以绘制该第一图像帧中的多个物体,或者多条绘制指令可以绘制该第一图像帧中的一个物体。
本申请实施例在实际实现时,对于每一个图像帧,指定应用程序将该图像帧所对应的多条绘制指令从图形库中读取到内存之后,在当前显示界面上呈现出该图像帧,那么,场景识别装置可以从内存中读取到该图像帧所对应的多条绘制指令,并从中获取至少一条绘制指令用于场景识别。若第一图像帧为连续的至少两个图像帧时,场景识别装置可以从内存中分别读取到该至少两个图像帧中每一个图像帧所对应的多条绘制指令,并从中获取至少一条绘制指令用于场景识别。
其中,场景识别装置通过监听OpenGL接口的方式获取该至少一条绘制指令,该OpenGL接口为OpenGL和应用程序之间的接口。
示例的,该通过监听OpenGL接口的方式获取该至少一条绘制指令的过程可以包括:场景识别装置执行至少一次监听获取流程,得到该至少一条绘制指令。其中,该监听获取流程可以包括:
步骤A1、监听第一OpenGL接口,该第一OpenGL接口为OpenGL和指定应用程序之间的接口,该指定应用程序用于绘制目标虚拟环境中图像帧中的物体。
其中,该目标虚拟环境与至少一条绘制指令所要绘制的目标物体所属的图像帧对应,目标虚拟环境为生成前述至少一条绘制指令的应用程序(即上文所述的指定应用程序)所创建的虚拟环境,是该应用程序在终端上生成的可交互的二维或三维环境,用户可以沉浸在该环境中。
该第一OpenGL接口为上述OpenGL所定义的程序编程接口中的指定接口,可以在该指定接口中添加一函数,该函数可以用于发出结束指示信息,在一个图像帧绘制完成时,通过调用该指定接口来自动触发该函数发出指示该图像帧绘制完成的结束指示信息。
步骤A2、在该第一OpenGL接口中,监听到用于指示一个图像帧绘制完成的结束指示信息后,通过第二OpenGL接口在OpenGL的缓存中获取绘制完成的该一个图像帧的绘制指令,第二OpenGL接口连接OpenGL。
对于每个图像帧的绘制指令,在该图像帧没有被完整绘制之前,用于绘制该图像帧的绘制指令均可以存储于OpenGL的缓存中,该OpenGL的缓存可以对应内存中一块存储区域(也称存储空间),该内存可以由随机存取存储器(Random Access Memory,RAM)实现。该第二OpenGL接口为上述OpenGL所定义的程序编程接口中的指定接口,场景识别装置可以通过第二OpenGL接口在该缓存中获取用于绘制该图像帧的绘制指令。
通常情况下,应用程序可以调用OpenGL中的绘制函数来绘制图像,调用该绘制函数的绘制指令会缓存在内存中,在一定条件下,内存会将这些绘制指令通过CPU发送至显卡内存(简称显存,也称为帧缓存,其用于存储显卡芯片处理过或者即将提取的渲染数据),应用程序在GPU的控制下,根据发送至显卡内存的绘制指令绘制图像帧,并通过调用OpenGL中的显示接口将绘制完成的图像帧显示在显示界面上。
由于指定应用程序调用OpenGL中的显示函数时,该第一图像帧已经绘制完成,因此,本申请实施例可以选择将OpenGL中的显示接口作为前述第一OpenGL接口,在该显示接口中添加调用函数。
示例的,该显示接口可以为eglSwapBuffer接口,在一个图像帧绘制完成时,指定应用程序可以通过调用eglSwapBuffer接口将绘制完成的图像帧呈现在显示界面上,那么,在该eglSwapBuffer接口中增加用于发出结束指示信息的函数。当指定应用程序调用eglSwapBuffer接口时,触发该函数发出结束指示信息。则场景识别装置可以在该eglSwapBuffer接口中,监听到用于指示一个图像帧绘制完成的结束指示信息后,通过第二OpenGL接口在OpenGL的缓存中获取绘制完成的该一个图像帧的绘制指令。
当然,在执行步骤A1之前,场景识别装置需要在场景识别装置的注册列表中注册监听该第一OpenGL接口的被调用的事件;在执行完步骤A2之后,场景识别装置需要在场景识别装置的注册列表中取消注册监听该第一OpenGL接口的被调用的事件。
步骤102、场景识别装置根据该至少一条绘制指令的描述参数确定待绘制的目标物体的目标物体模型。
可选的,如图3所示,步骤102可以包括:
步骤1021、场景识别装置确定该至少一条绘制指令的描述参数。
应用程序在通过绘制指令调用OpenGL中的绘制函数时,绘制指令中会包含该绘制指令对应物体的相关参数,该相关参数包括用于描述物体的描述参数,场景识别装置可以从该至少一条绘制指令中每条绘制指令中提取描述参数,也就是说,场景识别装置可以基于该至少一条绘制指令中每条绘制指令确定出至少一个描述参数。
需要说明的是,用于描述物体的描述参数可以有多种,例如可以通过颜色以及形状等参数来对物体进行描述。而在计算机图形技术领域,物体可以通过物体模型进行表征,因此该描述参数可以是用于描述物体模型的相关参数,该物体模型为对物体所建立的用于图像渲染的渲染模型。其中,物体模型由物体表面的多个顶点(该多个顶点也称为离散点阵或者模型点云等)组成,因此,该描述参数是能够指示物体模型的顶点信息的参数。
通常情况下,不同的物体模型可以具有不同的顶点个数,因此,根据物体模型的顶点个数可以确定出该顶点个数所对应的物体模型;另外,每个顶点均具有不同的属性信息,该属性信息可以包括每个顶点的位置坐标值以及纹理数据等信息,不同的物体模型所具有的多个顶点的属性信息不尽相同,因此,根据物体模型所具有的顶点的属性信息可以确定出该物体类型。顶点信息可以包括物体模型的顶点个数,以及每个顶点的属性信息。
示例的,场景识别装置可以从一条绘制物体模型的绘制指令“glDrawElements(mode=GL_TRIANGLES,count=4608,type=GL_UNDIGNED_SHOT,indices=NULL)”中确定出至少一个描述参数。在该绘制指令中,count所对应的参数值为4608,由于每三个参数值用来表示一个顶点,也就是说,参数值与顶点个数是3:1的关系,那么,参数值为4608所对应的物体模型的顶点个数为4608/3,即1536。因此,场景识别装置可以从该绘制指令中确定一个描述参数,即该物体模型的顶点个数。当然,不同的绘制指令所对应的参数可以不同,因此从该参数中获取描述参数的方法可以不同,本申请实施例在此不一一举例。
步骤1022、场景识别装置根据该描述参数确定待绘制的目标物体的目标物体模型。
其中,该目标物体模型为对目标物体所建立的用于图像绘制的渲染模型。如前所述,一条绘制指令可以对应一个描述参数,也可以对应多个描述参数,每个描述参数可以对应一个目标物体模型,则相应的,场景识别模块根据每条绘制指令的描述参数可以确定一个或多个待绘制的目标物体的目标物体模型。
本申请实施例在实际实现时,物体可以对应有物体标识,该物体标识可以用于在指定应用程序中唯一标识一个物体,例如,物体标识可以包括物体的名称、物体的姿态、物体的角色名称或者道具名称等。物体模型可以对应有模型标识,模型标识可以用于在指定应用程序中唯一标识一个物体模型。物体与物体模型对应,因此,物体标识与物体模型以及模型标识对应。
需要说明的是,对于同一个物体来说,由于该物体可以具有不同的形态以及可以具有不同的绘制角度,因此,同一个物体可以具有多个物体模型。相应的一个物体标识可以对应多个模型标识。当然,通常,一个物体标识也可以对应一个模型标识。
模型标识和物体标识均可以以字符串的形式表示,该字符串包括数字、字母和/或文字,例如物体标识可以为物体的名称或编码。当物体与物体模型存在一一对应关系时,物体标识和模型标识可以为相同的标识,也即是两个标识复用,当然,物体标识和模型标识也可以为不同的标识;当物体与物体模型存在一对多的关系时,物体标识和模型标识也可以为不同的标识,例如模型标识为索引标号,物体标识为物体名称。
可选的,目标物体模型为将顶点信息与已知的一个或多个物体模型的顶点信息匹配所得。该已知的一个或多个物体模型可以与每个物体模型对应的模型标识(例如索引标号等)一起关联存储于终端中,通过该某一个模型标识可以在终端中唯一获取到该模型标识对应的物体模型(例如该模型标识通过指针指向物体模型)。
基于目标物体模型的顶点信息的不同,指示该顶点信息的描述参数也不同,场景识别装置根据该描述参数确定待绘制的目标物体的目标物体模型的方式也不同,本申请实施例提供了两种确定待绘制的目标物体的目标物体模型的实现方式。
在第一种实现方式中,顶点信息包括顶点的属性信息。可选的,该属性信息可以为顶点集合。
每个物体模型均具有一定数量的顶点个数,每个顶点均对应一个通过三维坐标值表示的顶点集合,该顶点集合可以用于表征顶点的属性信息中的位置坐标值,一个顶点集合中包括一个或多个顶点的坐标值。该顶点个数以及具有该顶点个数的顶点所具有的一个顶点集合可以作为描述参数所指示的顶点信息,用于描述一个物体(以下描述中均将物体名称作为物体标识来对物体进行表征)的物体模型。需要说明的是,一个顶点集合可以以一个顶点数组的形式表示,一个顶点数组指的是一个或多个以数组形式表示的顶点,其中数组指的是有序元素序列。
例如,对于一颗树木的物体模型来说,该物体模型所具有的顶点个数为361,该361个顶点所对应的一个顶点数组为{<-0.66891545,-0.29673234,-0.19876061>,<-0.5217651,0.022111386,-0.3163959>,<-0.84291315,-0.103498506,-0.14875318>,......},该一个顶点数组包括361个数组,每个数组代表一个顶点,每个数组包括3个元素,这3个元素表示一个顶点的坐标值,该顶点个数以及该一个顶点数组可以作为该树木的描述参数用于描述该树木的物体模型。
那么,确定待绘制的目标物体的目标物体模型的过程可以包括:
步骤Y1、场景识别装置从描述参数中获取m个顶点集合,m为正整数。
可选的,场景识别装置从该确定的描述参数中获取m组顶点数组的方式可以包括如下两种可选的实现方式:
第一种可选的实现方式中,场景识别装置可以获取描述参数中包含的所有顶点集合,将该所有顶点集合均作为该m个顶点集合。
第二种可选的实现方式中,场景识别装置可以筛选描述参数中的部分顶点集合以得到该m个顶点集合。示例的,m=10。
其中,第一种可选的实现方式可以遍历确定的描述参数中的所有顶点集合,保证了场景识别的准确性。但是,当确定的描述参数的数量较多时,若选取第一种可选的实现方式会导致终端的运算代价较大,因此,为了提高终端的运算效率,可以选取第二种可选的实现方式,即在确定的描述参数中筛选部分描述参数,将该部分描述参数中的顶点集合作为该m个顶点集合,以减少运算代价。
其中,筛选描述参数中的部分顶点集合的过程可以包括筛选描述参数中的部分描述参数,将该部分描述参数对应的顶点集合确定为m个顶点集合,进一步的,筛选描述参数中的部分描述参数的过程可以包括:在确定的描述参数中随机选取部分描述参数;或者,统计确定的描述参数所对应的绘制指令的出现频率,选取出现频率较小的绘制指令所对应的描述参数。由于出现频率较小的绘制指令所绘制的物体具有特殊性,有助于准确地确定出目标场景。
步骤Y2、场景识别装置从该m个顶点集合中,确定与已知的一个或多个物体模型的顶点集合匹配的目标顶点集合。
可选的,场景识别装置可以将该m个顶点集合中,与已知的一个或多个物体模型的顶点集合内容相同且包含的顶点个数相等的顶点集合确定为目标顶点集合,该确定目标顶点集合的过程可以包括:
步骤S1、场景识别装置分别将该m个顶点集合中的每个顶点集合作为第一顶点集合,在已知的一个或多个物体模型的顶点集合中,确定至少一个备选顶点集合,该至少一个备选顶点集合中的每个顶点集合均具有第一顶点个数,该已知的一个或多个物体模型的顶点集合中记录了已知的物体标识对应的多组顶点集合,该第一顶点个数为第一顶点集合所具有的顶点个数。
表1示意性的示出了记录有已知的多个物体模型的顶点集合与其他参数的对应关系,该其他参数包括索引标号、物体模型的顶点个数以及物体标识,在该顶点集合中,物体标识通过物体的名称来表示,模型标识通过索引标号来表示,物体标识与索引标号一一对应,物体模型的顶点个数、物体模型的顶点集合和物体标识之间存在对应关系,通过物体模型的顶点个数和物体模型的顶点集合可以确定出该物体模型的顶点个数和物体模型的顶点集合所描述物体的物体标识。例如,物体标识为“国王”的物体模型所具有的顶点个数为1243,对应的顶点集合为{<-0.65454495,-0.011083424,-0.027084148>,<-0.8466003,0.026489139,-0.14481458>,<-0.84291315,-0.103498506,-0.14875318>…},且该物体标识为“国王”的物体模型的索引标号为25。
表1
需要说明的是,表1只是一个示意性表格,实际实现时,上述表1中的其他参数可以仅包括索引标号、物体模型的顶点个数以及物体标识中的至少两种,或者包括索引标号、物体模型的顶点个数以及物体标识中的任意一种。
进一步的,步骤S1中,场景识别装置分别将该m个顶点集合中的每个顶点集合作为第一顶点集合,在已知的一个或多个物体模型的顶点集合中,确定至少一个备选顶点集合的过程包括:分别将该m个顶点集合中的每个顶点集合作为第一顶点集合,执行集合筛选过程。
其中,该集合筛选过程可以包括:
步骤B1、场景识别装置确定第一顶点集合的第一顶点个数。
场景识别装置在描述参数中选取任意一个顶点集合,确定该顶点集合所具有的第一顶点个数。
当然,场景识别装置也可以直接将绘制指令中提取的顶点个数作为该第一顶点个数,将该第一顶点数对应的顶点集合确定为第一顶点集合。
步骤B2、场景识别装置检测该已知的一个或多个物体模型的顶点集合中是否存在对应顶点个数为第一顶点个数的顶点集合。
步骤B3、当该已知的一个或多个物体模型的顶点集合中存在对应顶点数为第一顶点个数的顶点集合时,场景识别装置将对应顶点个数为第一顶点个数的顶点集合确定为备选顶点集合。
该备选顶点集合中的每一个顶点集合均具有该第一顶点个数。
步骤B4、当该已知的一个或多个物体模型的顶点集合中不存在对应顶点个数为第一顶点个数的顶点集合时,场景识别装置将第一顶点集合的下一个顶点集合更新为第一顶点集合,再次执行集合筛选过程。
本申请实施例在实际实现时,场景识别装置可以将该m个顶点集合建立为一个长度为m的队列,从队列的第一个元素开始,依次执行上述步骤B1至步骤B4的集合筛选的过程,直到遍历该队列中的所有元素。
步骤S2、场景识别装置将第一顶点集合与该至少一个备选顶点集合中的每个顶点集合进行比对,得到与第一顶点集合匹配的目标顶点集合。
示例的,该匹配指的是顶点集合内容相同且包含的顶点个数相等。
由于不同的物体模型可能出现具有相同顶点个数的情况。因此,在步骤S1中确定均具有第一顶点个数的至少一个备选顶点集合之后,还可以对该至少一个备选顶点集合通过比较顶点集合的内容(例如顶点集合中的坐标值),来进行进一步筛选,达到准确确定物体标识的效果。
步骤Y3、场景识别装置将该目标顶点集合所对应的物体模型确定为目标物体模型。
可选的,场景识别装置可以通过查询对应关系等方式确定该目标顶点集合所对应的模型标识,将该模型标识对应的物体模型确定为目标物体模型。该对应关系可以以表格方式存储。
例如,目标顶点集合为{<-0.66891545,-0.29673234,-0.19876061>,<-0.5217651,0.022111386,-0.3163959>,<-0.84291315,-0.103498506,-0.14875318>…},查询表1得到模型标识,也即索引标号为27,则目标物体模型为“树木”的模型。
本申请实施例在实际实现时,顶点个数相同的不同的物体模型,其各自具有的顶点集合其实具有较大的差异,因此,在上述第二种可选的实现方式中,筛选描述参数中的部分顶点集合作为该m个顶点集合即可保证场景识别的准确性,且减少了运算代价,提高了场景识别的效率。
在第二种实现方式中,描述参数指示的目标物体模型的顶点信息包括物体模型的顶点个数,同样,该目标物体模型为用于图像渲染的渲染模型,那么,根据至少一条绘制指令的描述参数确定待绘制的目标物体的目标物体模型,为已知的物体模型中顶点个数与描述参数指示的顶点个数相等的物体模型。
进一步的,场景识别装置确定待绘制的目标物体的目标物体模型的过程可以包括:
步骤Y4、场景识别装置从至少一条绘制指令的描述参数中获取n个顶点个数,n为正整数。
与前述步骤Y1类似,该n个顶点个数可以为场景识别装置确定的描述参数中包含的所有顶点个数,也可以为场景识别装置在确定的描述参数中筛选的部分顶点个数。
而为了减少运算代价,提高终端的运算效率,该n个顶点个数可以为描述参数中的部分顶点个数,示例的,n=10。
步骤Y5、场景识别装置分别将该n个顶点个数中的每个顶点个数作为第一顶点个数,在已知的物体模型中,确定至少一个备选物体模型,至少一个物体模型中的每个物体模型均具有第一顶点个数,该已知的物体模型中记录了已知的一个或多个物体模型对应的顶点个数。
表2示意性的示出了记录有已知的多个物体模型的顶点个数与其他参数的对应关系,该其他参数包括索引标号以及物体标识,在该多个物体模型中,物体标识通过物体的名称来表示,物体模型通过索引标号来表示,物体标识与索引标号一一对应,物体模型的顶点个数和物体标识之间存在对应关系,通过物体模型的顶点个数可以确定出该物体模型的顶点个数所描述物体的物体标识。例如,物体标识为“国王”的物体模型所具有的顶点个数为1243,其索引标号为25。
表2
需要说明的是,表2只是一个示意性表格,实际实现时,上述表2中的该其他参数可以仅包括索引标号或物体标识。
步骤Y6、当备选物体模型的个数为1时,场景识别装置将备选物体模型确定为第一顶点数对应的目标物体模型。
例如,场景识别装置确定的顶点数为1068个,在表2中,只有索引标号26对应的顶点数为1068,则可以确定,备选物体标识的个数为1个,场景识别装置将“士兵”的物体模型确定为第一顶点数对应的目标物体模型。
步骤Y7、当备选物体模型的个数大于1时,场景识别装置在备选物体标识中选择第一顶点个数对应的目标物体模型。
例如,场景识别装置确定的顶点个数为361个,在表2中,物体标识为27和28对应的顶点个数均为361,则可以确定,备选物体模型的个数为2个,场景识别装置要进一步在“树木”和“手枪”的物体模型为中选择目标物体模型。
可选的,场景识别装置在备选物体模型中选择目标物体模型的过程可以包括:
步骤C1、场景识别装置确定第一图像帧所属的目标虚拟环境。
该目标虚拟环境为当前需要绘制的图像帧(即第一图像帧)所属的虚拟环境,是指定应用程序在终端上生成的可交互的二维或三维环境。一个指定应用程序可以对应设置一个目标虚拟环境;不同的目标虚拟环境中可以对应不同的物体。例如,当该指定应用程序为游戏应用程序时,该目标虚拟环境为游戏应用程序中的游戏环境,不同的游戏应用程序可以具有不同种类的游戏环境,例如枪战类的游戏应用程序中通常包括手枪、步枪或者吉普车等物体;例如历史类的游戏应用程序中通常包括各种历史人物;再例如,当该指定应用程序为支付类应用程序时,该目标虚拟环境可以为交易环境,该交易环境中通常包括砝码或者货币等物体。
每个目标虚拟环境均可以对应多个物体模型,本申请实施例在实际实现时,可以在该多个物体模型中挑选能够用于表征该目标虚拟环境的多个物体模型,该多个物体模型可以为该目标虚拟环境中出现的多个物体模型,或者为该目标虚拟环境中所独有的物体模型,以便进行目标物体模型的确定。
其中,该挑选能够用于表征该目标虚拟环境的多个物体模型的过程可以由应用程序的开发商完成,当终端在运行该应用程序时,终端中的场景识别装置可以自动获取该挑选的结果。
步骤C2、场景识别装置在备选物体模型中选择与目标虚拟环境相匹配的物体模型作为目标物体模型。
场景识别装置可以将备选物体模型与该目标虚拟环境下可能出现的多个物体模型进行比对,若某个备选物体模型与某个物体模型一致时,可以将该备选物体模型确定为目标物体模型。
例如,当前的目标虚拟环境为历史类的游戏环境,那么,当备选物体模型为“树木”和“手枪”的物体模型时,“树木”这一物体模型出现在了表征该历史类的游戏环境下可能出现的多个物体模型中,且明显地,“手枪”不可能出现在表征该历史类的游戏环境的多个物体模型中。因此,可以将“树木”确定为顶点数为361的目标物体模型。
或者,也可以将备选物体模型所属的类型与该目标虚拟环境下可能出现的多个物体模型所属的类型进行比对,若某个备选物体模型所属的类型与该目标虚拟环境下的某个类型一致时,可以将该备选物体模型确定为目标物体模型。
可选的,在步骤102之前,场景识别方法还可以包括:
步骤D1、场景识别装置确定目标虚拟环境,目标虚拟环境为第一图像帧所属的虚拟环境,第一图像帧为至少一条绘制指令所要绘制的目标物体所属的图像帧。
步骤D2、场景识别装置获取在目标虚拟环境下,描述参数与物体模型的第一对应关系。
该第一对应关系可以包括描述参数与物体模型的对应关系,也可以包括描述参数、物体模型以及物体的对应关系,也可以包括描述参数以及物体的对应关系,当然,由于物体与物体模型对应,因此该第一对应关系也可以包括描述参数与物体模型的对应关系。本申请实施例以该第一对应关系包括描述参数与物体模型的对应关系为例进行说明。
那么相应地,步骤1022中场景识别装置根据描述参数确定待绘制的目标物体的目标物体模型的过程可以包括:场景识别装置查询第一对应关系,获得与该描述参数对应的目标物体模型。
不同的目标虚拟环境可以对应不同的描述参数与物体模型的第一对应关系,因此,为了提高确定描述参数所描述物体的物体模型的准确性和效率,可以预先获取目标虚拟环境对应的第一对应关系。
可选的,由于不同的应用程序中所包括的物体标识之间存在较大差异,因此,应用程序的开发商可以提供该应用程序所对应的描述参数与物体模型的第一对应关系。
可选的,该第一对应关系可以存储于终端的本地存储设备中,例如该第一对应关系可以存储于终端的闪存(例如,终端为移动终端时,闪存可以为多媒体卡(EmbeddedMulti Media Card,eMMC))中,或者该第一对应关系可以存储于与目标虚拟环境关联的服务器中,例如存储于与目标虚拟环境关联的云端中。
那么,场景识别装置获取在目标虚拟环境下,描述参数与物体模型的第一对应关系的过程可以包括:查询本地存储设备中是否存储有该目标虚拟环境下的第一对应关系,当本地存储设备未存储该目标虚拟环境下的第一对应关系,可以从与目标虚拟环境关联的服务器下载该目标虚拟环境下的第一对应关系,下载后的该目标虚拟环境下的第一对应关系可以存储于本地存储设备中。
该第一对应关系可以以一个数据库文件(例如gamemodel.db)的形式存储,可选的,每个目标虚拟环境可以对应一个数据库文件,本地存储设备中存储的第一对应关系(即数据库文件)可以按照目标虚拟环境的名称(或者应用程序的名称)设置索引项,场景识别装置可以通过目标虚拟环境的名称查询本地存储设备中是否存储有对应的第一对应关系,如此使得当该本地存储设备中存储有多个目标虚拟环境对应的第一对应关系时,通过目标虚拟环境的名称可以快速查询本地存储设备中是否存储有第一对应关系。
本申请实施例在实际实现时,确定目标虚拟环境的名称的过程可以包括:当启动指定应用程序时,该指定应用程序首先需要对其所对应的目标虚拟环境进行初始化,此时该指定应用程序需要调用OpenGL中的初始化接口来运行该指定应用程序对应的目标虚拟环境,该初始化接口中可以设置用于获取当前运行进程的进程名称的函数,再根据预先设置的进程名称与目标虚拟环境的名称的对应关系,确定目标虚拟环境的名称。
示例的,该指定应用程序可以调用egllnitialize接口对目标虚拟环境进行初始化,该egllnitialize接口中设置有用于获取进程的进程名称的回调函数(例如iGraphicsGameScenseInit函数),再根据预先设置的进程名称与目标虚拟环境的名称的对应关系,通过在该对应关系中比对查找当前进程的进程名称,确定出确定目标虚拟环境的名称。可选的,进程的名称与目标虚拟环境的名称的对应关系可以按照xml表格的形式进行存储。
示例的,假设目标虚拟环境为游戏应用程序中的游戏场景,xml表格可以按照如下方式存储:
该xml表格中存储的进程名称为“com.tent.tmgp.sgame”对应的目标虚拟环境的名称为“AAAA”。
可选的,场景识别装置可以在安装有指定应用程序的终端第一次运行该指定应用程序时,再获取该第一对应关系。如此设置不但使得终端中存储的第一对应关系可以自适应自增长,还可以最大限度地节省终端的内存空间。并且,随着指定应用程序的升级发展,终端中或者与目标虚拟环境关联的服务器中可以扩展升级相应的第一对应关系,以便场景识别装置获取并实现新场景的识别。
当然,当该第一对应关系符合删除条件时,可以将该第一对应关系删除。该删除条件可以为指定应用程序被卸载或者用户触发了删除指令等,有效缩减了该第一对应关系在终端内所占用的内存空间。
步骤103、场景识别装置根据该目标物体模型确定对应的目标场景。
在一种可选示例中,场景识别装置根据该目标模型标识(即目标物体模型的模型标识)可以通过查询对应关系等方式确定对应的目标场景。例如,场景识别装置预先存储有模型标识与场景的对应关系,基于目标物体模型标识即可查询得到目标场景。
在另一种可选示例中,场景识别装置确定获取的物体模型所对应的目标场景的过程可以包括:场景识别装置根据目标物体模型和目标虚拟环境下该目标物体模型的场景判断策略,确定该获取的物体模型所对应的目标场景。那么,在上述步骤D1中场景识别装置在确定目标虚拟环境之后,该方法还可以包括:
步骤D3、场景识别装置在多组关系集合中,获取在目标虚拟环境下的场景判断策略,多组关系集合记录有不同的多个虚拟环境下的场景判断策略,每个虚拟环境中可以对应多个场景判断策略,场景判断策略为基于物体模型判断对应场景的策略。
与第一对应关系类似,该多组关系集合可以存储于终端的本地存储设备中,例如存储于终端的闪存(例如,终端为移动终端时,闪存可以为多媒体卡)中,或者该第一对应关系可以存储于与目标虚拟环境关联的服务器中,例如存储于与目标虚拟环境关联的云端中。场景识别装置在多组关系集合中,获取在目标虚拟环境下的场景判断策略的过程可以包括:查询本地存储设备中是否存储有该目标虚拟环境下的场景判断策略,当本地存储设备未存储该目标虚拟环境下的场景判断策略,从与目标虚拟环境关联的服务器下载该目标虚拟环境下的场景判断策略,下载后的该目标虚拟环境下的场景判断策略可以存储于本地存储设备中。并且,随着指定应用程序的升级发展,多组关系集合中可以扩展升级相应的场景判断策略,以便场景识别装置获取并实现新场景的识别。该多组关系集合中的场景判断策略可以根据实际需要进行新增或者修改,该多组关系集合中的场景判断策略可以是指定应用程序中的关键场景等。
当然,当场景判断策略符合删除条件时,将该场景判断策略删除。该删除条件可以为指定应用程序被卸载或者用户触发了删除指令等,有效缩减了该场景判断策略在终端内所占用的内存空间。
图4示出了场景识别装置根据获取的模型标识确定对应的目标场景的示意图。场景识别装置根据上述步骤102所获取的模型标识以及获取到的在获取到该目标虚拟环境下的场景判断策略确定目标场景。获取的模型标识为“模型1”、“模型2”以及“模型3”,获取到的目标虚拟环境下的场景判断策略中包括4个场景判断策略,分别为“场景判断策略1”、“场景判断策略2”、“场景判断策略3”以及“场景判断策略4”,其中,“场景判断策略3”中存储有模型标识为“模型1”、“模型2”以及“模型3”与目标场景的对应关系,因此,基于该“场景判断策略3”可以确定出获取的模型标识所对应的目标场景。
可选的,目标虚拟环境可以为游戏环境,场景判断策略可以包括以下中的一项或多项:当目标物体模型包括枪支和子弹时,确定目标场景为开枪场景;或,当目标物体模型包括至少三个角色时,确定目标场景为团战场景,可选的,该角色可以是英雄角色等;或,当第一图像帧中的目标物体模型不包括目标角色时,且第一图像帧的上一幅图像帧中的目标物体模型包括目标角色时,确定目标场景为目标角色出现的场景,可选的,该目标角色可以是敌人角色。
示例的,请参考图5,其示出了一种目标场景为开枪场景的示意图。根据前述步骤101至步骤102可以确定描述参数所描述物体的模型标识为“枪支”a1和“子弹”a2,基于上述场景判断策略可以确定目标场景为开枪场景。图5中示意性地示出了“枪支”a1的物体模型以及“子弹”a2的物体模型。
示例的,请参考图6,其示出了一种目标场景为团战场景的示意图,根据前述步骤101至步骤103可以获取到确定的描述参数所描述物体的模型标识为英雄a3、英雄a4以及英雄a5,基于上述场景判断策略可以确定目标场景为团战场景。图6中示意性地示出了英雄a3的物体模型、英雄a4的物体模型以及英雄a5的物体模型。针对该目标场景可以增加相应的特效,例如通过游戏SDK接口向队友自动发送集合求助消息。如此使得用户在使用该指定应用程序时无需用户操作,即可自动识别团战场景并及时通知队友集合团战信息,提高了团战获胜概率,以此增强用户体验。
由于终端无需进行额外的运算,使得终端负载较小,可以实时识别大型复杂的场景,例如该场景为游戏环境中的60帧每秒的三维场景。
本申请实施例在实际实现时,可以在终端操作系统的API接口层设置用于查询当前场景识别结果的接口,通过调用该用于查询当前场景识别结果的接口可以执行本申请实施例所提供的场景识别方法以准确获取当前场景。因此,当指定应用程序中设置有用于增强游戏特效的模块时,该模块通过调用该用于查询当前场景识别结果的接口可以为每个场景准确设置特效,有效增强了用户体验;当指定应用程序中设置有用于投放广告的模块时,该模块通过调用该用于查询当前场景识别结果的接口可以为每个场景准确地投放广告。其中,该广告可以是与指定应用程序无关的第三方广告,如此有针对性地投放广告可以有效增加广告投放商的收益;或者该广告可以是与指定应用程序场景有关的内部广告,例如在游戏应用程序中的打斗场景中,投放的广告可以是出售虚拟装备的广告,如此可以增加用户使用该游戏的体验。
值得说明的是,在上述确定目标场景为敌人出现场景的场景判断策略中,第一图像帧为两个图像帧。若游戏环境中“敌人”角色(也即是模型标识所指示的模型为“敌人”时,例如该模型标识为“敌人”)在游戏场景中比较远的位置出现,在具有较小的显示界面的终端上显示出来的“敌人”角色很小,用户的肉眼难以识别,用户难以确定当前的目标场景。
示例的,请参考图7,其示出了一种目标场景为敌人出现的场景的示意图,图7左侧示出了一帧存在敌人角色的图像帧,图7右侧示出了该图像帧中的敌人角色放大之后的图像。从该图7中可以明确看出,当敌人角色在画面中较远的位置时,人肉眼难以察觉。但是若从绘制指令的角度来看,对于相同的物体,不管是从远处看还是从近处看,绘制该物体的绘制指令均形同,因此,通过判断连续的两个图像帧中绘制“敌人”角色的绘制指令,可以确定目标场景为敌人出现的场景。针对该目标场景可以增加相应的特效,例如呈现告警信息,该告警信息可以以语音、振动、光信号或标志图像的方式呈现,例如屏幕四周边缘出现红色闪烁报警,并维持3秒等。当然,该场景判断策略也可以应用于识别场景中远处的微小人物或者微小物体等。该场景判断策略有效适用于屏幕较小的终端,例如移动终端等,有助于提升用户体验。
可选的,本申请实施例在实际实现时,终端中的场景识别装置在应用程序运行的过程中若持续使用该场景识别方法进行场景识别,会消耗终端操作系统的性能并占用终端操作系统的资源,因此,可以为该场景识别方法设置相应的开关,该开关可以对应该场景识别方法的启用状态。则在执行上述步骤101之前,场景识别装置还可以确定当前场景识别方法的启用状态,当该场景识别方法的启用状态为已启用时,再执行上述步骤101至步骤103的场景识别方法。该启用状态可以由用户开启或者由场景识别装置自动开启。
需要说明的是,在上述步骤102中,若采用第一种实现方式获取确定的描述参数所描述物体的物体模型,可以首先通过获取的顶点集合具有的第一顶点数在已知的一个或多个物体模型的顶点集合中进行筛选,得到至少一个备选顶点集合,然后再通过获取的顶点集合与该至少一个备选顶点集合进行逐一比对,得到与获取的顶点集合内容相同的目标顶点集合。由于不同的物体模型的顶点数一般不相同,因此,首先通过顶点数进行筛选可以快速且高效地排除大部分不匹配的顶点集合,再此基础上再通过顶点集合进行筛选便可以准确获取到确定的描述参数所描述物体的物体标识。进一步的,在此基础上执行的步骤103中,确定的目标场景的过程也可以更加高效,确定的目标场景也可以更加准确。
进一步的,由于本申请实施例所提供的场景识别方法可以高效识别出场景而无需消耗的大量的计算资源,因此,终端可以实时使用该场景识别方法进行场景识别。
值得说明的是,由于目标物体对应至少一个目标物体模型,而目标物体标识可以唯一标识目标物体,因此,目标物体的物体标识可以对应至少一个目标物体模型的标识,本申请实施例提供的场景识别方法,在第一种可选实现方式中,场景识别装置根据描述参数确定待绘制的目标物体的目标物体模型后,直接基于该目标物体模型即可确定目标场景;在第二种可选实现方式中,场景识别装置根据描述参数确定待绘制的目标物体的目标物体模型后,基于该目标物体模型先确定目标物体(也即是确定目标物体标识),然后基于目标物体确定目标场景。前述实施例是以第一种可选实现方式为例进行说明的,后续实施例以第二种可选实现方式为例进行简单说明。如图8所示,该场景识别方法包括:
步骤201、场景识别装置获取至少一条绘制指令,该绘制指令用于绘制目标物体。
步骤201的具体过程可以参考上述步骤101,本申请实施例对此不再赘述。
步骤202、场景识别装置根据该至少一条绘制指令的描述参数确定待绘制的目标物体的目标物体模型。
步骤202的具体过程可以参考上述步骤102,本申请实施例对此不再赘述。
步骤203、场景识别装置根据该目标物体模型确定对应的目标物体。
示例的,场景识别装置根据该目标物体模型可以通过查询对应关系等方式确定对应的目标物体,该对应关系可以以表格方式存储。例如,确定的目标物体模型的索引标号为26,查询表1,得到目标物体的物体标识为“士兵”。
步骤204、场景识别装置根据该目标物体确定对应的目标场景。
在一种可选示例中,场景识别装置根据该目标物体标识(即目标物体的物体标识)可以通过查询对应关系等方式确定对应的目标场景。例如,场景识别装置预先存储有物体标识与场景的对应关系,基于目标物体的物体标识即可查询得到目标场景。
在另一种可选示例中,场景识别装置确定获取的目标物体所对应的目标场景的过程可以包括:场景识别装置根据目标物体标识和目标虚拟环境下该目标物体标识的场景判断策略,确定该获取的目标物体所对应的目标场景。那么,在步骤201之前,场景识别装置在多组关系集合中,获取在目标虚拟环境下的场景判断策略,多组关系集合记录有不同的多个虚拟环境下的场景判断策略,每个虚拟环境中可以对应多个场景判断策略,场景判断策略为基于物体标识判断对应场景的策略。该场景判断策略的获取过程可以参考上述步骤D3。如前述第一种实现方式,当场景判断策略符合删除条件时,将该场景判断策略删除。
值得说明的是,当物体与物体模型存在一一对应关系时,物体标识和模型标识可以为相同的标识,则确定目标物体和确定目标物体模型的过程基本一致。
需要说明的是,本申请实施例提供的场景识别方法步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本发明的保护范围之内,因此不再赘述。
综上所述,本申请实施例提供的场景识别方法,通过获取至少一条用于绘制第一图像帧中的物体的绘制指令,再基于该至少一条绘制指令中每条绘制指令,确定用于描述每条绘制指令对应物体的描述参数,最后根据确定的描述参数所描述物体的物体模型确定所对应的目标场景。由于目标场景是根据从绘制指令中确定的描述参数确定的,终端无需进行额外的运算,相较于相关技术中采用的图像识别技术所消耗的大量的计算资源,本申请实施例所提供场景识别方法有效节约了系统资源。
并且,本申请实施例提供的场景识别方法不依赖于终端生产厂商开放应用程序接口,也不依赖于游戏设计的逻辑规律,对于使用OpenGL的操作系统具有平台通用性。
参见图9,本申请实施例提供了一种场景识别装置200,该装置200包括:
第一获取模块201,用于获取至少一条绘制指令,所述绘制指令用于绘制目标物体;
第一确定模块202,用于根据所述至少一条绘制指令的描述参数确定待绘制的所述目标物体的目标物体模型,所述目标物体模型为用于图像绘制的渲染模型,所述描述参数指示所述目标物体模型的顶点信息;
第二确定模块203,用于根据所述目标物体模型确定对应的目标场景。
可选的,目标物体模型为将所述顶点信息与已知的一个或多个物体模型的顶点信息匹配所得。
可选的,所述顶点信息包括顶点集合,一个顶点集合中包括一个或多个顶点的坐标值,则如图10所示,图10示出了本申请实施例提供的一种第一确定模块202的结构示意图,该第一确定模块202,包括:
第一获取子模块2031,用于从所述描述参数中获取m个顶点集合,m为正整数;
第一确定子模块2032,用于从所述m个顶点集合中,确定与已知的一个或多个物体模型的顶点集合匹配的目标顶点集合;
第二确定子模块2033,用于将所述目标顶点集合所对应的物体模型确定为所述目标物体模型。
可选的,该第一确定子模块2032,用于将所述m个顶点集合中,与已知的一个或多个物体模型的顶点集合内容相同且包含的顶点个数相等的顶点集合确定为所述目标顶点集合。
可选的,该第一获取子模块2031,用于:
获取所述描述参数中包含的所有顶点集合;或者,
筛选所述描述参数中的部分顶点集合以得到所述m个顶点集合。
可选的,所述顶点信息包括顶点个数,所述目标物体模型为已知的物体模型中顶点个数与所述描述参数指示的顶点个数相等的物体模型。
可选的,所述顶点信息包括顶点个数,所述目标物体模型为已知的物体模型中顶点个数与所述描述参数指示的顶点个数相等的物体模型。
可选的,该第一获取模块201,用于通过监听OpenGL接口的方式获取所述至少一条绘制指令,其中,所述OpenGL接口为OpenGL和应用程序之间的接口。
可选的,参见图11,本申请实施例提供了一种场景识别装置200,该装置200还包括:
第三确定模块204,用于根据所述至少一条绘制指令的描述参数确定待绘制的所述目标物体的目标物体模型之前,确定目标虚拟环境,所述目标虚拟环境为第一图像帧所属的虚拟环境,所述第一图像帧为所述至少一条绘制指令所要绘制的目标物体所属的图像帧;
第三获取模块205,用于获取在所述目标虚拟环境下,描述参数与物体模型的第一对应关系;
所述第一确定模块202,用于查询所述第一对应关系,获得与所述描述参数对应的所述目标物体模型。
可选的,参见图12,装置200还包括:
第四获取模块206,用于在所述确定目标虚拟环境之后,在多组关系集合中,获取在所述目标虚拟环境下的场景判断策略,所述多组关系集合记录有不同的多个虚拟环境下的场景判断策略,所述场景判断策略为基于物体模型判断对应场景的策略;
所述第二确定模块203,用于:
根据所述目标物体模型和所述目标虚拟环境下所述目标物体模型的场景判断策略,确定所述目标场景。
可选的,所述目标虚拟环境为游戏环境,所述场景判断策略包括以下中的一项或多项:
当所述目标物体模型包括枪支和子弹时,确定所述目标场景为开枪场景;或
当所述目标物体模型包括至少三个角色时,确定所述目标场景为团战场景;或
当所述第一图像帧中的目标物体模型包括目标角色时,且所述第一图像帧的上一幅图像帧中的目标物体模型不包括所述目标角色时,确定所述目标场景为所述目标角色出现的场景。
可选的,第三获取模块205,用于:
查询本地存储设备中存储的所述第一对应关系;或者从与所述目标虚拟环境关联的服务器下载所述第一对应关系。
综上所述,本申请实施例提供的场景识别装置,通过获取至少一条用于绘制目标物体的绘制指令,再根据该至少一条绘制指令的描述参数确定待绘制的目标物体的目标物体模型,最后根据该目标物体模型确定所对应的目标场景。由于目标场景是根据目标物体模型确定,而该目标物体模型是根据绘制指令的描述参数确定的,终端无需进行额外的运算,相较于相关技术中采用的图像识别技术所消耗的大量的计算资源,本申请实施例所提供场景识别方法有效节约了系统资源。
所属领域的技术人员可以清楚地了解到,上述实施例提供的场景识别装置与场景识别方法实施例属于同一构思,上述描述的装置、模块和子模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
并且,以上装置中的各个模块可以通过软件或硬件或软硬件结合的方式来实现。当至少一个模块是硬件的时候,该硬件可以是逻辑集成电路模块,可具体包括晶体管、逻辑门阵列或算法逻辑电路等。至少一个模块是软件的时候,该软件以计算机程序产品形式存在,并被存储于计算机可读存储介质中。该软件可以被一个处理器执行。因此可替换地,场景识别装置,可以由一个处理器执行软件程序来实现,本实施例对此不限定。
请参考图13,图13中终端划分为软件部分和硬件部分,在终端中,软件部分包括:缓存、系统API接口层、场景识别模块、系统数据库,其中,缓存具有查询缓存的绘制指令的接口,也即是缓存对场景识别模块提供查询当前场景对应的图像帧的缓存的绘制指令的接口;系统API接口层包括扩展接口,该扩展接口中包括场景查询接口,其他模块可以通过调用该接口查询到当前指定应用的场景;系统数据库包括模型数据库,该模型数据库中按照不同的应用程序分别单独存储了常见的物体对应的物体模型的描述参数;场景识别模块通过分析获取到的绘制指令,与模型数据库中的模型进行对比匹配并判断识别出当前的场景。该场景识别模块可以实现前述场景识别装置的功能。硬件部分包括内存和EMMC,该EMMC中存在有模型数据库文件。
示例的,以终端为智能手机且该智能手机的操作系统为安卓(Android)系统为例,请参考图14,图14中终端划分为软件部分和硬件部分,在Android智能手机中,软件部分包括:缓存、系统API接口层、场景识别模块、系统数据库,其中,系统API接口层包括Anroid扩展接口,该扩展接口中包括场景查询接口,示例的,智能手机中可以设置4D游戏特效加强模块,该4D游戏特效加强模块可以调用该场景查询接口来查询当前场景,并根据该场景增加震动或者特殊音效等4D特效;缓存、系统数据库以及场景识别模块的结构和功能可以参考前述图13。硬件部分的结构和功能可以参考前述图13。
本申请实施例还提供了一种场景识别装置,包括处理器和存储器;在处理器执行存储器存储的计算机程序时,场景识别装置执行本申请实施例提供的场景识别方法。可选地,该场景识别装置可以部署在电子成像设备中。
本申请示例性实施例还提供了一种终端,该终端可以包括:处理器及用于存储可在处理器上运行的计算机程序的存储器,处理器执行计算机程序时,用于实现本申请上述实施例提供的任一的场景识别方法。例如:处理器被配置为:获取至少一条绘制指令,所述绘制指令为用于绘制第一图像帧中的物体的指令;基于所述至少一条绘制指令中每条绘制指令,确定用于描述所述每条绘制指令对应物体的描述参数;获取确定的描述参数所描述物体的物体标识;确定获取的物体标识所对应的目标场景。
具体地,请参考图15,其示出了本申请示例性实施例涉及的一种终端300的结构示意图,该终端300可以包括:处理器302和信号接口304。
处理器22包括一个或者一个以上处理核心。处理器302通过运行软件程序以及模块,从而执行各种功能应用以及数据处理。处理器302可以包括CPU和GPU,还可以进一步选择性地包括执行运算所需的硬件加速器,如各种逻辑运算电路。
信号接口304可以为多个,该信号接口304用于与其它装置或模块建立连接,例如:可以通过该信号接口304与收发机进行连接。因此,可选地,该装置300还可包括所述收发机(图中未示出)。该收发机具体执行信号收发。当处理器302需要执行信号收发操作的时候可以调用或驱动收发机执行相应收发操作。因此,当装置300进行信号收发的时候,处理器302用于决定或发起收发操作,相当于发起者,而收发机用于具体收发执行,相当于执行者。该收发机也可以是收发电路、射频电路或射频单元,本实施例对此不限定。
可选的,终端300还包括存储器306、总线308等部件。其中,存储器306与信号接口304分别通过总线308与处理器302相连。
存储器306可用于存储软件程序以及模块。具体的,存储器306可存储至少一个功能所需的程序模块3062。该存储器可以为随机存取存储器(Random Access Memory,RAM)或DDR。该程序可以是应用程序或驱动程序。
其中,该程序模块3062可以包括:
第一获取单元30621,具有与第一获取模块201相同或相似的功能。
第一确定单元30622,具有与第一确定模块202相同或相似的功能。
第二确定单元30623,具有与第二确定模块203相同或相似的功能。
本申请实施例还提供了一种存储介质,该存储介质可以为非易失性计算机可读存储介质,存储介质内存储有计算机程序,该计算机程序指示终端执行本申请实施例提供的任一的场景识别方法。该存储介质可以包括:只读存储器(read-only memory,ROM)或随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可存储程序代码的介质。
本申请实施例还提供了一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行本申请实施例提供的场景识别方法。该计算机程序产品可以包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者通过该计算机可读存储介质进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
需要说明的是:上述实施例提供的场景识别装置在进行场景识别时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将终端的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (25)

1.一种场景识别方法,其特征在于,所述方法包括:
获取至少一条绘制指令,所述绘制指令用于绘制目标物体;根据所述至少一条绘制指令的描述参数确定待绘制的所述目标物体的目标物体模型,所述目标物体模型为用于图像绘制的渲染模型,所述描述参数指示所述目标物体模型的顶点信息;
根据所述目标物体模型确定对应的目标场景。
2.根据权利要求1所述的方法,其特征在于,所述目标物体模型为将所述顶点信息与已知的一个或多个物体模型的顶点信息匹配所得。
3.根据权利要求2所述的方法,其特征在于,所述顶点信息包括顶点集合,一个顶点集合中包括一个或多个顶点的坐标值;
所述根据所述至少一条绘制指令的描述参数确定待绘制的所述目标物体的目标物体模型,包括:
从所述描述参数中获取m个顶点集合,m为正整数;
从所述m个顶点集合中,确定与已知的一个或多个物体模型的顶点集合匹配的目标顶点集合;
将所述目标顶点集合所对应的物体模型确定为所述目标物体模型。
4.根据权利要求3所述的方法,其特征在于,所述从所述m个顶点集合中,确定与已知的一个或多个物体模型的顶点集合匹配的目标顶点集合,包括:
将所述m个顶点集合中,与已知的一个或多个物体模型的顶点集合内容相同且包含的顶点个数相等的顶点集合确定为所述目标顶点集合。
5.根据权利要求3所述的方法,其特征在于,所述从所述描述参数中获取m个顶点集合,包括:
获取所述描述参数中包含的所有顶点集合;或者,
筛选所述描述参数中的部分顶点集合以得到所述m个顶点集合。
6.根据权利要求2所述的方法,其特征在于,所述顶点信息包括顶点个数,所述目标物体模型为已知的一个或多个物体模型中顶点个数与所述描述参数指示的顶点个数相等的物体模型。
7.根据权利要求1至6任一所述的方法,其特征在于,所述目标物体模型还满足如下条件:所述目标物体模型与目标虚拟环境相匹配,其中,所述目标虚拟环境为生成所述至少一条绘制指令的应用程序所建立的二维或三维虚拟环境。
8.根据权利要求1至6任一所述的方法,其特征在于,所述获取至少一条绘制指令,包括:通过监听OpenGL接口的方式获取所述至少一条绘制指令,其中,所述OpenGL接口为OpenGL和应用程序之间的接口。
9.根据权利要求1所述的方法,其特征在于,在根据所述至少一条绘制指令的描述参数确定待绘制的所述目标物体的目标物体模型之前,所述方法还包括:
确定目标虚拟环境,所述目标虚拟环境为第一图像帧所属的虚拟环境,所述第一图像帧为所述至少一条绘制指令所要绘制的目标物体所属的图像帧;
获取在所述目标虚拟环境下,描述参数与物体模型的第一对应关系;
所述根据所述至少一条绘制指令的描述参数确定待绘制的所述目标物体的目标物体模型,包括:
查询所述第一对应关系,获得与所述描述参数对应的所述目标物体模型。
10.根据权利要求9所述的方法,其特征在于,在所述确定目标虚拟环境之后,所述方法还包括:
在多组关系集合中,获取在所述目标虚拟环境下的场景判断策略,所述多组关系集合记录有多个虚拟环境下的场景判断策略,所述场景判断策略为基于物体模型判断对应场景的策略;
所述根据所述目标物体模型确定对应的目标场景,包括:
根据所述目标物体模型和所述目标虚拟环境下所述目标物体模型的场景判断策略,确定所述目标场景。
11.根据权利要求10所述的方法,其特征在于,所述目标虚拟环境为游戏环境,所述场景判断策略包括以下中的一项或多项:
当所述目标物体模型包括枪支和子弹分别对应的物体模型时,确定所述目标场景为开枪场景;或
当所述目标物体模型包括至少三个角色分别对应的物体模型时,确定所述目标场景为团战场景;或
当所述第一图像帧中的目标物体模型包括目标角色时,且所述第一图像帧的上一幅图像帧中的目标物体模型不包括所述目标角色时,确定所述目标场景为所述目标角色出现的场景。
12.根据权利要求9所述的方法,其特征在于,所述获取在目标虚拟环境下,描述参数与物体模型的第一对应关系,包括:
查询本地存储设备中存储的所述第一对应关系;或者从与所述目标虚拟环境关联的服务器下载所述第一对应关系。
13.一种场景识别装置,其特征在于,所述装置包括:
第一获取模块,用于获取至少一条绘制指令,所述绘制指令用于绘制目标物体;
第一确定模块,用于根据所述至少一条绘制指令的描述参数确定待绘制的所述目标物体的目标物体模型,所述目标物体模型为用于图像绘制的渲染模型,所述描述参数指示所述目标物体模型的顶点信息;
第二确定模块,用于根据所述目标物体模型确定对应的目标场景。
14.根据权利要求13所述的装置,其特征在于,所述目标物体模型为将所述顶点信息与已知的一个或多个物体模型的顶点信息匹配所得。
15.根据权利要求14所述的装置,其特征在于,所述顶点信息包括顶点集合,一个顶点集合中包括一个或多个顶点的坐标值;
所述第一确定模块,包括:
第一获取子模块,用于从所述描述参数中获取m个顶点集合,m为正整数;
第一确定子模块,用于从所述m个顶点集合中,确定与已知的一个或多个物体模型的顶点集合匹配的目标顶点集合;
第二确定子模块,用于将所述目标顶点集合所对应的物体模型确定为所述目标物体模型。
16.根据权利要求15所述的装置,其特征在于,
所述第一确定子模块,用于:
将所述m个顶点集合中,与已知的一个或多个物体模型的顶点集合内容相同且包含的顶点个数相等的顶点集合确定为所述目标顶点集合。
17.根据权利要求15所述的装置,其特征在于,
所述第一获取子模块,用于:
获取所述描述参数中包含的所有顶点集合;或者,
筛选所述描述参数中的部分顶点集合以得到所述m个顶点集合。
18.根据权利要求14所述的装置,其特征在于,
所述顶点信息包括顶点个数,所述目标物体模型为已知的物体模型中顶点个数与所述描述参数指示的顶点个数相等的物体模型。
19.根据权利要求13至18任一所述的装置,其特征在于,所述目标物体模型还满足如下条件:所述目标物体模型与目标虚拟环境相匹配,其中,所述目标虚拟环境为生成所述至少一条绘制指令的应用程序所建立的二维或三维虚拟环境。
20.根据权利要求13至18任一所述的装置,其特征在于,
所述第一获取模块,用于:通过监听OpenGL接口的方式获取所述至少一条绘制指令,其中,所述OpenGL接口为OpenGL和应用程序之间的接口。
21.根据权利要求13所述的装置,其特征在于,所述装置还包括:
第三确定模块,用于在根据所述至少一条绘制指令的描述参数确定待绘制的所述目标物体的目标物体模型之前,确定目标虚拟环境,所述目标虚拟环境为第一图像帧所属的虚拟环境,所述第一图像帧为所述至少一条绘制指令所要绘制的目标物体所属的图像帧;
第三获取模块,用于获取在所述目标虚拟环境下,描述参数与物体模型的第一对应关系;
所述第一确定模块,用于:
查询所述第一对应关系,获得与所述描述参数对应的所述目标物体模型。
22.根据权利要求21所述的装置,其特征在于,所述装置还包括:
第四获取模块,用于在所述确定目标虚拟环境之后,在多组关系集合中,获取在所述目标虚拟环境下的场景判断策略,所述多组关系集合记录有多个虚拟环境下的场景判断策略,所述场景判断策略为基于物体模型判断对应场景的策略;
所述第二确定模块,用于:
根据所述目标物体模型和所述目标虚拟环境下所述目标物体模型的场景判断策略,确定所述目标场景。
23.根据权利要求21所述的装置,其特征在于,所述第三获取模块,用于:
查询本地存储设备中存储的所述第一对应关系;或者从与所述目标虚拟环境关联的服务器下载所述第一对应关系。
24.一种终端,其特征在于,包括处理器和存储器;
在所述处理器执行所述存储器存储的计算机程序以实现权利要求1至12任一所述的场景识别方法。
25.一种存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序用于实现如权利要求1至12任一所述的场景识别方法。
CN201910105807.4A 2019-02-01 2019-02-01 场景识别方法及装置、终端、存储介质 Active CN111598976B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201910105807.4A CN111598976B (zh) 2019-02-01 2019-02-01 场景识别方法及装置、终端、存储介质
PCT/CN2020/074016 WO2020156487A1 (zh) 2019-02-01 2020-01-23 场景识别方法及装置、终端、存储介质
EP20748486.6A EP3905204A4 (en) 2019-02-01 2020-01-23 METHOD AND APPARATUS FOR SCENE RECOGNITION, TERMINAL AND STORAGE MEDIA
US17/389,688 US11918900B2 (en) 2019-02-01 2021-07-30 Scene recognition method and apparatus, terminal, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910105807.4A CN111598976B (zh) 2019-02-01 2019-02-01 场景识别方法及装置、终端、存储介质

Publications (2)

Publication Number Publication Date
CN111598976A CN111598976A (zh) 2020-08-28
CN111598976B true CN111598976B (zh) 2023-08-22

Family

ID=71840258

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910105807.4A Active CN111598976B (zh) 2019-02-01 2019-02-01 场景识别方法及装置、终端、存储介质

Country Status (4)

Country Link
US (1) US11918900B2 (zh)
EP (1) EP3905204A4 (zh)
CN (1) CN111598976B (zh)
WO (1) WO2020156487A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112657201B (zh) * 2020-12-23 2023-03-07 上海米哈游天命科技有限公司 一种角色臂长确定方法、装置、设备及存储介质
CN112807695A (zh) * 2021-02-24 2021-05-18 网易(杭州)网络有限公司 游戏场景生成方法和装置、可读存储介质、电子设备
CN113262466A (zh) * 2021-05-11 2021-08-17 Oppo广东移动通信有限公司 震动控制方法、装置、移动终端及存储介质

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101246599A (zh) * 2007-01-26 2008-08-20 转换器有限公司 根据2d图像序列进行3d场景重构的方法
CN101770655A (zh) * 2009-12-25 2010-07-07 电子科技大学 一种大规模虚拟动态场景简化方法
CN102157008A (zh) * 2011-04-12 2011-08-17 电子科技大学 一种大规模虚拟人群实时绘制方法
CN104050708A (zh) * 2014-06-09 2014-09-17 无锡梵天信息技术股份有限公司 一种3d游戏引擎lod系统的实现方法
CN105353871A (zh) * 2015-10-29 2016-02-24 上海乐相科技有限公司 一种虚拟现实场景中目标物体的控制方法及装置
CN105488044A (zh) * 2014-09-16 2016-04-13 华为技术有限公司 数据处理的方法和设备
CN106447768A (zh) * 2016-10-13 2017-02-22 国家测绘地理信息局卫星测绘应用中心 一种适用于三维场景中三维模型并行绘制的方法
CN107393000A (zh) * 2017-08-24 2017-11-24 广东欧珀移动通信有限公司 图像处理方法、装置、服务器及计算机可读存储介质
CN107670279A (zh) * 2017-10-26 2018-02-09 天津科技大学 基于WebGL的3D网页游戏的开发方法及系统
CN108176048A (zh) * 2017-11-30 2018-06-19 腾讯科技(深圳)有限公司 图像的处理方法和装置、存储介质、电子装置
CN108421257A (zh) * 2018-03-29 2018-08-21 网易(杭州)网络有限公司 不可见元素的确定方法、装置、存储介质和电子装置
CN108434742A (zh) * 2018-02-02 2018-08-24 网易(杭州)网络有限公司 游戏场景中虚拟资源的处理方法和装置
CN108550190A (zh) * 2018-04-19 2018-09-18 腾讯科技(深圳)有限公司 增强现实数据处理方法、装置、计算机设备和存储介质
CN108648238A (zh) * 2018-04-25 2018-10-12 深圳市商汤科技有限公司 虚拟角色驱动方法及装置、电子设备和存储介质
CN108876925A (zh) * 2017-05-09 2018-11-23 北京京东尚科信息技术有限公司 虚拟现实场景处理方法和装置
CN109285211A (zh) * 2018-10-29 2019-01-29 Oppo广东移动通信有限公司 画面渲染方法、装置、终端及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006202083A (ja) * 2005-01-21 2006-08-03 Seiko Epson Corp 画像データ生成装置、および印刷装置
JP2010540002A (ja) * 2007-08-20 2010-12-24 ダブル・フュージョン・インコーポレイテッド 後で統合されたコードを使用するソフトウエア・エグゼクタブルからの出力の独立に定義された変更
US20110251896A1 (en) * 2010-04-09 2011-10-13 Affine Systems, Inc. Systems and methods for matching an advertisement to a video
US9715761B2 (en) * 2013-07-08 2017-07-25 Vangogh Imaging, Inc. Real-time 3D computer vision processing engine for object recognition, reconstruction, and analysis
US9569885B2 (en) * 2014-01-02 2017-02-14 Nvidia Corporation Technique for pre-computing ambient obscurance
WO2015154004A1 (en) * 2014-04-05 2015-10-08 Sony Computer Entertainment America Llc Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters
US20170278308A1 (en) * 2016-03-23 2017-09-28 Intel Corporation Image modification and enhancement using 3-dimensional object model based recognition
CN107019901B (zh) 2017-03-31 2020-10-20 北京大学深圳研究生院 基于图像识别及自动化控制的棋牌类游戏自动博弈机器人的建立方法
KR20180091794A (ko) * 2018-08-07 2018-08-16 브루비스 멀티 미디어 크리에이티브 컴퍼니 리미티드 투사 맵핑 방법
CN109224442B (zh) * 2018-09-03 2021-06-11 腾讯科技(深圳)有限公司 虚拟场景的数据处理方法、装置及存储介质
CN109544663B (zh) * 2018-11-09 2023-01-06 腾讯科技(深圳)有限公司 应用程序的虚拟场景识别与交互键位匹配方法及装置

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101246599A (zh) * 2007-01-26 2008-08-20 转换器有限公司 根据2d图像序列进行3d场景重构的方法
CN101770655A (zh) * 2009-12-25 2010-07-07 电子科技大学 一种大规模虚拟动态场景简化方法
CN102157008A (zh) * 2011-04-12 2011-08-17 电子科技大学 一种大规模虚拟人群实时绘制方法
CN104050708A (zh) * 2014-06-09 2014-09-17 无锡梵天信息技术股份有限公司 一种3d游戏引擎lod系统的实现方法
CN105488044A (zh) * 2014-09-16 2016-04-13 华为技术有限公司 数据处理的方法和设备
CN105353871A (zh) * 2015-10-29 2016-02-24 上海乐相科技有限公司 一种虚拟现实场景中目标物体的控制方法及装置
CN106447768A (zh) * 2016-10-13 2017-02-22 国家测绘地理信息局卫星测绘应用中心 一种适用于三维场景中三维模型并行绘制的方法
CN108876925A (zh) * 2017-05-09 2018-11-23 北京京东尚科信息技术有限公司 虚拟现实场景处理方法和装置
CN107393000A (zh) * 2017-08-24 2017-11-24 广东欧珀移动通信有限公司 图像处理方法、装置、服务器及计算机可读存储介质
CN107670279A (zh) * 2017-10-26 2018-02-09 天津科技大学 基于WebGL的3D网页游戏的开发方法及系统
CN108176048A (zh) * 2017-11-30 2018-06-19 腾讯科技(深圳)有限公司 图像的处理方法和装置、存储介质、电子装置
CN108434742A (zh) * 2018-02-02 2018-08-24 网易(杭州)网络有限公司 游戏场景中虚拟资源的处理方法和装置
CN108421257A (zh) * 2018-03-29 2018-08-21 网易(杭州)网络有限公司 不可见元素的确定方法、装置、存储介质和电子装置
CN108550190A (zh) * 2018-04-19 2018-09-18 腾讯科技(深圳)有限公司 增强现实数据处理方法、装置、计算机设备和存储介质
CN108648238A (zh) * 2018-04-25 2018-10-12 深圳市商汤科技有限公司 虚拟角色驱动方法及装置、电子设备和存储介质
CN109285211A (zh) * 2018-10-29 2019-01-29 Oppo广东移动通信有限公司 画面渲染方法、装置、终端及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于Gist和PHOG特征的场景分类;刘静等;《计算机工程》;20150415;全文 *

Also Published As

Publication number Publication date
WO2020156487A1 (zh) 2020-08-06
US11918900B2 (en) 2024-03-05
US20210354037A1 (en) 2021-11-18
EP3905204A4 (en) 2022-03-09
CN111598976A (zh) 2020-08-28
EP3905204A1 (en) 2021-11-03

Similar Documents

Publication Publication Date Title
US11918900B2 (en) Scene recognition method and apparatus, terminal, and storage medium
US11517818B2 (en) Processing method, rendering method and device for static component in game scene
KR102228448B1 (ko) 비디오 게임 엔진의 성능 향상을 위한 방법 및 시스템
CN111672109B (zh) 一种游戏地图生成的方法、游戏测试的方法以及相关装置
CN109767447A (zh) 一种模板匹配方法、装置、设备及介质
CN116310745B (zh) 图像处理方法、数据处理方法、相关装置及存储介质
EP3050605B1 (en) A method for event detection in real-time graphic applications
CN110420464B (zh) 虚拟宠物形象参数的确定方法、装置及可读存储介质
JP7222121B2 (ja) ストーリー内のオブジェクトの感情適合性を管理する方法およびシステム
CN108211363B (zh) 一种信息处理方法及装置
CN107569851B (zh) 游戏挂机方法、装置及系统
CN108537149A (zh) 图像处理方法、装置、存储介质及电子设备
CN116095221B (zh) 一种游戏中的帧率调整方法及相关装置
CN113577766B (zh) 对象处理方法及装置
CN108390916B (zh) 一种图片下载的方法及终端
CN116468882B (zh) 图像处理方法、装置、设备、存储介质
CN112947748A (zh) 增强现实ar远程交互方法及其系统
CN111241990A (zh) 图像处理方法及装置、计算机设备、计算机可读存储介质
CN110597566A (zh) 应用处理方法、装置、存储介质及电子设备
CN113181635B (zh) 虚拟道具的装配方法、装置、终端及存储介质
JP2018143475A (ja) プログラム及びシステム
CN107590493B (zh) 基于游戏场景的目标物识别方法及装置
CN113440842B (zh) 内容显示方法、装置、终端和存储介质
CN109634567B (zh) 一种信息创建方法、装置、终端及存储介质
CN116661584A (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
GR01 Patent grant
GR01 Patent grant