CN117710620B - 仿真智能体目标可见性检测方法、系统和存储介质及终端 - Google Patents
仿真智能体目标可见性检测方法、系统和存储介质及终端 Download PDFInfo
- Publication number
- CN117710620B CN117710620B CN202410160270.2A CN202410160270A CN117710620B CN 117710620 B CN117710620 B CN 117710620B CN 202410160270 A CN202410160270 A CN 202410160270A CN 117710620 B CN117710620 B CN 117710620B
- Authority
- CN
- China
- Prior art keywords
- dynamic target
- dynamic
- pixel color
- pixels
- target
- 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
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 89
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000009877 rendering Methods 0.000 claims abstract description 65
- 238000001514 detection method Methods 0.000 claims abstract description 43
- 230000000007 visual effect Effects 0.000 claims description 10
- 238000004040 coloring Methods 0.000 claims description 9
- 230000003068 static effect Effects 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 3
- 239000003795 chemical substances by application Substances 0.000 description 58
- 230000006870 function Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000009825 accumulation Methods 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- 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
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
本发明涉及智能体仿真技术领域,尤其涉及仿真智能体目标可见性检测方法、系统和存储介质及终端,方法包括:初始化虚拟仿真场景,获取仿真智能体和动态目标的初始位姿;为每个动态目标分配一个ID,并对ID进行编码得到与动态目标对应的像素颜色值;基于仿真智能体的位置对多个渲染视角进行渲染,将渲染视角的渲染结果存储至对应的纹理中;统计不同的像素颜色值的个数;分别对不同的像素颜色值进行解码;根据像素颜色值的个数确定动态目标的可见像素数量,并基于动态目标的可见像素数量判断该动态目标对于仿真智能体是否可见;更新虚拟仿真场景,重复执行上述步骤,直至检测完成为止。本发明能够有效提高目标可见性检测的精度和效率。
Description
技术领域
本发明涉及智能体仿真技术领域,尤其涉及仿真智能体目标可见性检测方法、系统和存储介质及终端。
背景技术
随着虚拟现实、增强现实和元宇宙场景中智能体仿真技术的发展,需要高效且准确的方法来测试和验证仿真智能体的感知系统。仿真智能体是由人工智能AI控制的非玩家角色,如虚拟人、虚拟车、虚拟飞行物等。目标可见性检测是仿真智能体感知系统的关键组成部分,涉及确定仿真智能体能否在复杂的元宇宙动态环境中正确识别其他所关注目标。
传统的仿真智能体目标可见性检测是通过可视域视椎体与智能体周边环境的所关注目标的包围盒或者三角形网格求交来实现的,存在检测精度低或者检测时间成本高的问题。
发明内容
为了解决上述技术问题,本发明提供了仿真智能体目标可见性检测方法、系统和存储介质及终端。
本发明采用以下技术方案:仿真智能体目标可见性检测方法,所述方法包括:
步骤一、初始化虚拟仿真场景,所述虚拟仿真场景由静态背景、仿真智能体及所述仿真智能体关注的动态目标组成,获取所述仿真智能体和所述动态目标的初始位姿;
步骤二、为每个所述动态目标分配一个ID,并对ID进行编码得到与所述动态目标对应的像素颜色值;
步骤三、基于所述仿真智能体的位置对多个渲染视角进行渲染,将所述渲染视角的渲染结果存储至对应的纹理中,根据所述动态目标对应的所述像素颜色值对所述纹理上与所述动态目标对应的像素进行着色;
步骤四、采用GPU遍历全部所述纹理的所有像素,统计不同的所述像素颜色值的个数,创建GPU缓存,将不同的所述像素颜色值及其对应的个数信息存储至所述GPU缓存内;
步骤五、将所述GPU缓存回读至CPU中,分别对不同的所述像素颜色值进行解码,得到多个与所述动态目标对应的ID;
步骤六、根据所述像素颜色值的个数确定所述动态目标的可见像素数量,并基于所述动态目标的可见像素数量判断该所述动态目标对于所述仿真智能体是否可见;
步骤七、更新所述虚拟仿真场景,获取所述仿真智能体和所述动态目标的更新位姿,重复执行步骤二至步骤六,直至检测完成为止。
本发明一实施例的仿真智能体目标可见性检测方法,通过初始化仿真场景,为每个所述动态目标分配一个ID,并对ID进行编码,再基于仿真智能体位置,渲染多个视角,将渲染结果存储在纹理中,在GPU中统计每种不同的像素颜色值的个数,存储到很小的GPU缓存中,将GPU缓存高速回读到CPU中,统计每个动态目标的像素个数,判断其可见性,后续的每一次目标可见性检测更新虚拟仿真场景的所有状态,使得检测具有连续性;使用渲染检测智能体目标的可见性,将检测精度提高到像素级别,且能准确地处理动态目标的相互遮挡问题;采用GPU并行统计每个动态目标的像素数量,显著提升像素统计的效率,同时节省了纹理回读的时间。
进一步的,每个所述动态目标分配的ID是唯一的,并且每个ID进行编码得到的所述像素颜色值也是唯一的。
进一步的,所述仿真智能体具有多个可视范围,每个所述可视范围均为扇形区域,所述扇形区域的起点在所述仿真智能体的边缘外侧,定义所述扇形区域的有效半径,令超出所述扇形区域的所述有效半径的所述动态目标不可见。
进一步的,每个所述渲染视角均为视域四棱锥,其中,全部所述渲染视角组成的视域覆盖全部所述可视范围。
进一步的,所述纹理上的像素分为空像素和具有颜色值的彩像素,每个所述彩像素均对应一个所述动态目标,所述空像素不对应任何一个所述动态目标。
进一步的,所述采用GPU遍历全部所述纹理的所有像素,统计不同的所述像素颜色值的个数,创建GPU缓存,将不同的所述像素颜色值及其对应的个数信息存储至所述GPU缓存内的步骤具体包括:
将全部所述纹理与预设的计算着色器的输入进行绑定,使所述计算着色器读取全部所述纹理的数据;
基于GPU创建一个用于存储统计结果的GPU缓存;
采用所述计算着色器遍历全部所述纹理的所有像素,并将统计过程分发到不同的GPU线程中分布式并行执行;
根据所述纹理上的每个像素对应的颜色值在所述GPU缓存中的相应位置累加计数,其中,累加计数过程采用原子操作。
进一步的,所述基于所述动态目标的可见像素数量判断该所述动态目标对于所述仿真智能体是否可见的步骤具体包括:
若所述动态目标的可见像素数量大于预设的阈值T,则该所述动态目标对于所述仿真智能体可见;
若所述动态目标的可见像素数量小于等于阈值T,则该所述动态目标对于所述仿真智能体不可见。
本发明还提出仿真智能体目标可见性检测系统,所述系统包括:
初始化模块,用于初始化虚拟仿真场景,所述虚拟仿真场景由静态背景、仿真智能体及所述仿真智能体关注的动态目标组成,获取所述仿真智能体和所述动态目标的初始位姿;
编码模块,用于为每个所述动态目标分配一个ID,并对ID进行编码得到与所述动态目标对应的像素颜色值;
渲染模块,用于基于所述仿真智能体的位置对多个渲染视角进行渲染,将所述渲染视角的渲染结果存储至对应的纹理中,根据所述动态目标对应的所述像素颜色值对所述纹理上与所述动态目标对应的像素进行着色;
统计模块,用于采用GPU遍历全部所述纹理的所有像素,统计不同的所述像素颜色值的个数,创建GPU缓存,将不同的所述像素颜色值及其对应的个数信息存储至所述GPU缓存内;
解码模块,用于将所述GPU缓存回读至CPU中,分别对不同的所述像素颜色值进行解码,得到多个与所述动态目标对应的ID;
检测模块,用于根据所述像素颜色值的个数确定所述动态目标的可见像素数量,并基于所述动态目标的可见像素数量判断该所述动态目标对于所述仿真智能体是否可见;
更新模块,用于更新所述虚拟仿真场景,获取所述仿真智能体和所述动态目标的更新位姿,重复执行为每个所述动态目标分配一个ID,并对ID进行编码得到与所述动态目标对应的像素颜色值;基于所述仿真智能体的位置对多个渲染视角进行渲染,将所述渲染视角的渲染结果存储至对应的纹理中,根据所述动态目标对应的所述像素颜色值对所述纹理上与所述动态目标对应的像素进行着色;采用GPU遍历全部所述纹理的所有像素,统计不同的所述像素颜色值的个数,创建GPU缓存,将不同的所述像素颜色值及其对应的个数信息存储至所述GPU缓存内;将所述GPU缓存回读至CPU中,分别对不同的所述像素颜色值进行解码,得到多个与所述动态目标对应的ID;根据所述像素颜色值的个数确定所述动态目标的可见像素数量,并基于所述动态目标的可见像素数量判断该所述动态目标对于所述仿真智能体是否可见;直至检测完成为止。
本发明一实施例的仿真智能体目标可见性检测系统,通过初始化仿真场景,为每个所述动态目标分配一个ID,并对ID进行编码,再基于仿真智能体位置,渲染多个视角,将渲染结果存储在纹理中,在GPU中统计每种不同的像素颜色值的个数,存储到很小的GPU缓存中,将GPU缓存高速回读到CPU中,统计每个动态目标的像素个数,判断其可见性,后续的每一次目标可见性检测更新虚拟仿真场景的所有状态,使得检测具有连续性;使用渲染检测智能体目标的可见性,将检测精度提高到像素级别,且能准确地处理动态目标的相互遮挡问题;采用GPU并行统计每个动态目标的像素数量,显著提升像素统计的效率,同时节省了纹理回读的时间。
一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的方法。
一种终端,所述终端包括:处理器,存储器;所述处理器、所述存储器进行相互的通信;
所述存储器用于存储指令;
所述处理器用于执行所述存储器中的所述指令,执行如上所述的方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的仿真智能体目标可见性检测方法的流程图;
图2为本发明的仿真智能体目标可见性检测方法中步骤S4的流程图;
图3为本发明实施例一的渲染结果纹理示意图;
图4为本发明的仿真智能体目标可见性检测系统的结构框图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明的实施例,而不能理解为对本发明的限制。
在本发明实施例的描述中,需要理解的是,术语“长度”、“宽度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明实施例和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明实施例的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本发明实施例中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明实施例中的具体含义。
实施例一
参照图1至图3,本发明第一实施例,仿真智能体目标可见性检测方法,所述方法包括:
S1:初始化虚拟仿真场景,虚拟仿真场景由静态背景、仿真智能体及仿真智能体关注的动态目标组成,获取仿真智能体和动态目标的初始位姿。
本实施例中,虚拟仿真场景为某园区的数字孪生场景,由建筑、道路、植被、智能体和各类所关注目标组成;除去静态的背景元素,动态的物体只包含仿真智能体和所关注的动态目标,其中仿真智能体以人工智能AI控制的车辆为例,所关注的动态目标包括非机动车、机动车、行人等。
仿真程序的图像渲染接口采用开源开放的图形渲染库Vulkan。Vulkan 是一个由Khronos Group 管理的低开销、跨平台的 3D 图形和计算 API(应用程序编程接口);它于2016年首次发布,旨在提供比旧版OpenGL更高效、更直接的控制GPU的能力,并与DirectX12和Metal等现代图形API相竞争。Vulkan具有低开销、直接的硬件访问、跨平台兼容性强、显式控制内存管理和同步等特点。
S2:为每个动态目标分配一个ID,并对ID进行编码得到与动态目标对应的像素颜色值;进一步的,每个动态目标分配的ID是唯一的,并且每个ID进行编码得到的像素颜色值也是唯一的。
本实施例中,具体的编码方向如下:
R=ID&0xFF;
G=(ID>>8)&0xFF;
B=(ID>>16)&0xFF;
其中,R/G/B分别为编码得到的像素颜色值的R/G/B三个通道数值。
S3:基于仿真智能体的位置对多个渲染视角进行渲染,将渲染视角的渲染结果存储至对应的纹理中,根据动态目标对应的像素颜色值对纹理上与动态目标对应的像素进行着色。
进一步的,仿真智能体具有多个可视范围,每个可视范围均为扇形区域,扇形区域的起点在仿真智能体的边缘外侧,定义扇形区域的有效半径,令超出扇形区域的有效半径的动态目标不可见;本实施例中,扇形区域的起点为车辆边缘外侧附近,定义扇形区域的有效半径为30米。
进一步的,每个渲染视角均为视域四棱锥,其中,全部渲染视角组成的视域覆盖全部可视范围;进一步的,纹理上的像素分为空像素和具有颜色值的彩像素,每个彩像素均对应一个动态目标,空像素不对应任何一个动态目标。
如图3所示,渲染视角中有四个所关注目标,分别为两个行人和两辆机动车;每个动态目标的ID都不同,编码得到的在纹理中的颜色值也不同;其中白色方框框选的机动车在渲染视角下被前方的机动车遮挡(这里画出是为了示意),因此在后续的像素数量统计得到的结果为0,无法通过仿真智能体的目标可见性检测,即对仿真智能体来说不可见。
S4:采用GPU遍历全部纹理的所有像素,统计不同的像素颜色值的个数,创建GPU缓存,将不同的像素颜色值及其对应的个数信息存储至GPU缓存内;
进一步的,步骤具体包括:
S4.1:将全部纹理与预设的计算着色器的输入进行绑定,使计算着色器读取全部纹理的数据;即将纹理绑定到uniform image2D的着色器输入,使得计算着色器能够读取到渲染纹理资源。
S4.2:基于GPU创建一个用于存储统计结果的GPU缓存;本实施例中,设置这个缓存的大小为1024个字节,该缓存大小足以存储所有可能的颜色值和它们的计数。
S4.3:采用计算着色器遍历全部纹理的所有像素,并将统计过程分发到不同的GPU线程中分布式并行执行;由于遍历逻辑运行在计算着色器上,所以可以被分发到不同的GPU线程中分布式并行执行,充分利用GPU的并行处理能力。
S4.4:根据纹理上的每个像素对应的颜色值在GPU缓存中的相应位置累加计数,其中,累加计数过程采用原子操作;考虑到并行执行的性质,需要确保累加计数过程是原子操作,本实施例中使用atomicAdd原子累加函数,避免多个线程同时写入同一位置导致的冲突。
本实施例中,使用Vulkan 1.2版本的计算着色器(Compute Shader)统计纹理中每种不同像素颜色值的个数并存储到GPU缓存中;每种不同的像素颜色值的个数统计过程是在GPU中并行处理的;用来存储统计结果的GPU缓存对于上述GPU并行处理过程是数据安全的。
S5:将GPU缓存回读至CPU中,分别对不同的像素颜色值进行解码,得到多个与动态目标对应的ID;本实施例中,创建一个Vulkan命令缓存,并记录一个传输命令(如vkCmdCopyBuffer),将数据从GPU缓存复制到CPU可访问的缓存,将其提交给一个Vulkan命令队列并执行这个命令缓存。等待数据传输同步操作完成,通过调用vkMapMemory和vkUnmapMemory将CPU可访问的缓存映射到CPU地址空间,完成数据读取。
本实施例中,由于ID都是一个int整型,更适合作为一个key,而直接用像素颜色值作为动态目标的标志则存在不便,所以需要对像素颜色值进行解码得到对应的ID,再根据ID与动态目标进行对应。
S6:根据像素颜色值的个数确定动态目标的可见像素数量,并基于动态目标的可见像素数量判断该动态目标对于仿真智能体是否可见;一种像素颜色值对应唯一的一个动态目标,因此,同一像素颜色值的个数即为与其对应的动态目标的可见像素数量。
进一步的,基于动态目标的可见像素数量判断该动态目标对于仿真智能体是否可见的步骤具体包括:
若动态目标的可见像素数量大于预设的阈值T,则该动态目标对于仿真智能体可见;若动态目标的可见像素数量小于等于阈值T,则该动态目标对于仿真智能体不可见;本实施例中,阈值T取值为16。
S7:更新虚拟仿真场景,获取仿真智能体和动态目标的更新位姿,重复执行S2至S6,直至检测完成为止。
本发明一实施例的仿真智能体目标可见性检测方法,通过初始化仿真场景,为每个动态目标分配一个ID,并对ID进行编码,再基于仿真智能体位置,渲染多个视角,将渲染结果存储在纹理中,在GPU中统计每种不同的像素颜色值的个数,存储到很小的GPU缓存中,将GPU缓存高速回读到CPU中,统计每个动态目标的像素个数,判断其可见性,后续的每一次目标可见性检测更新虚拟仿真场景的所有状态,使得检测具有连续性;使用渲染检测智能体目标的可见性,将检测精度提高到像素级别,且能准确地处理动态目标的相互遮挡问题;采用GPU并行统计每个动态目标的像素数量,显著提升像素统计的效率,同时节省了纹理回读的时间。
实施例二
参照图4,本发明还提出仿真智能体目标可见性检测系统,系统包括:
初始化模块,用于初始化虚拟仿真场景,虚拟仿真场景由静态背景、仿真智能体及仿真智能体关注的动态目标组成,获取仿真智能体和动态目标的初始位姿;
编码模块,用于为每个动态目标分配一个ID,并对ID进行编码得到与动态目标对应的像素颜色值;
渲染模块,用于基于仿真智能体的位置对多个渲染视角进行渲染,将渲染视角的渲染结果存储至对应的纹理中,根据动态目标对应的像素颜色值对纹理上与动态目标对应的像素进行着色;
统计模块,用于采用GPU遍历全部纹理的所有像素,统计不同的像素颜色值的个数,创建GPU缓存,将不同的像素颜色值及其对应的个数信息存储至GPU缓存内;
解码模块,用于将GPU缓存回读至CPU中,分别对不同的像素颜色值进行解码,得到多个与动态目标对应的ID;
检测模块,用于根据像素颜色值的个数确定动态目标的可见像素数量,并基于动态目标的可见像素数量判断该动态目标对于仿真智能体是否可见;
更新模块,用于更新虚拟仿真场景,获取仿真智能体和动态目标的更新位姿,重复执行为每个动态目标分配一个ID,并对ID进行编码得到与动态目标对应的像素颜色值;基于仿真智能体的位置对多个渲染视角进行渲染,将渲染视角的渲染结果存储至对应的纹理中,根据动态目标对应的像素颜色值对纹理上与动态目标对应的像素进行着色;采用GPU遍历全部纹理的所有像素,统计不同的像素颜色值的个数,创建GPU缓存,将不同的像素颜色值及其对应的个数信息存储至GPU缓存内;将GPU缓存回读至CPU中,分别对不同的像素颜色值进行解码,得到多个与动态目标对应的ID;根据像素颜色值的个数确定动态目标的可见像素数量,并基于动态目标的可见像素数量判断该动态目标对于仿真智能体是否可见;直至检测完成为止。
本实施例中,虚拟仿真场景为某园区的数字孪生场景,由建筑、道路、植被、智能体和各类所关注目标组成;除去静态的背景元素,动态的物体只包含仿真智能体和所关注的动态目标,其中仿真智能体以人工智能AI控制的车辆为例,所关注的动态目标包括非机动车、机动车、行人等。
仿真程序的图像渲染接口采用开源开放的图形渲染库Vulkan。Vulkan 是一个由Khronos Group 管理的低开销、跨平台的 3D 图形和计算 API(应用程序编程接口);它于2016年首次发布,旨在提供比旧版OpenGL更高效、更直接的控制GPU的能力,并与DirectX12和Metal等现代图形API相竞争。Vulkan具有低开销、直接的硬件访问、跨平台兼容性强、显式控制内存管理和同步等特点。
进一步的,每个动态目标分配的ID是唯一的,并且每个ID进行编码得到的像素颜色值也是唯一的;本实施例中,具体的编码方向如下:
R=ID&0xFF;
G=(ID>>8)&0xFF;
B=(ID>>16)&0xFF;
其中,R/G/B分别为编码得到的像素颜色值的R/G/B三个通道数值。
进一步的,仿真智能体具有多个可视范围,每个可视范围均为扇形区域,扇形区域的起点在仿真智能体的边缘外侧,定义扇形区域的有效半径,令超出扇形区域的有效半径的动态目标不可见;本实施例中,扇形区域的起点为车辆边缘外侧附近,定义扇形区域的有效半径为30米。
进一步的,每个渲染视角均为视域四棱锥,其中,全部渲染视角组成的视域覆盖全部可视范围;进一步的,纹理上的像素分为空像素和具有颜色值的彩像素,每个彩像素均对应一个动态目标,空像素不对应任何一个动态目标。
进一步的,统计模块具体用于:
将全部纹理与预设的计算着色器的输入进行绑定,使计算着色器读取全部纹理的数据;即将纹理绑定到uniform image2D的着色器输入,使得计算着色器能够读取到渲染纹理资源;
基于GPU创建一个用于存储统计结果的GPU缓存;本实施例中,设置这个缓存的大小为1024个字节,该缓存大小足以存储所有可能的颜色值和它们的计数;
采用计算着色器遍历全部纹理的所有像素,并将统计过程分发到不同的GPU线程中分布式并行执行;由于遍历逻辑运行在计算着色器上,所以可以被分发到不同的GPU线程中分布式并行执行,充分利用GPU的并行处理能力;
根据纹理上的每个像素对应的颜色值在GPU缓存中的相应位置累加计数,其中,累加计数过程采用原子操作;考虑到并行执行的性质,需要确保累加计数过程是原子操作,本实施例中使用atomicAdd原子累加函数,避免多个线程同时写入同一位置导致的冲突。
本实施例中,使用Vulkan 1.2版本的计算着色器(Compute Shader)统计纹理中每种不同像素颜色值的个数并存储到GPU缓存中;每种不同的像素颜色值的个数统计过程是在GPU中并行处理的;用来存储统计结果的GPU缓存对于上述GPU并行处理过程是数据安全的。
本实施例中,创建一个Vulkan命令缓存,并记录一个传输命令(如vkCmdCopyBuffer),将数据从GPU缓存复制到CPU可访问的缓存,将其提交给一个Vulkan命令队列并执行这个命令缓存。等待数据传输同步操作完成,通过调用vkMapMemory和vkUnmapMemory将CPU可访问的缓存映射到CPU地址空间,完成数据读取。
本实施例中,由于ID都是一个int整型,更适合作为一个key,而直接用像素颜色值作为动态目标的标志则存在不便,所以需要对像素颜色值进行解码得到对应的ID,再根据ID与动态目标进行对应。
进一步的,基于动态目标的可见像素数量判断该动态目标对于仿真智能体是否可见的步骤具体包括:
若动态目标的可见像素数量大于预设的阈值T,则该动态目标对于仿真智能体可见;若动态目标的可见像素数量小于等于阈值T,则该动态目标对于仿真智能体不可见;本实施例中,阈值T取值为16。
本发明一实施例的仿真智能体目标可见性检测系统,通过初始化仿真场景,为每个动态目标分配一个ID,并对ID进行编码,再基于仿真智能体位置,渲染多个视角,将渲染结果存储在纹理中,在GPU中统计每种不同的像素颜色值的个数,存储到很小的GPU缓存中,将GPU缓存高速回读到CPU中,统计每个动态目标的像素个数,判断其可见性,后续的每一次目标可见性检测更新虚拟仿真场景的所有状态,使得检测具有连续性;使用渲染检测智能体目标的可见性,将检测精度提高到像素级别,且能准确地处理动态目标的相互遮挡问题;采用GPU并行统计每个动态目标的像素数量,显著提升像素统计的效率,同时节省了纹理回读的时间。
实施例三
本发明第三实施例,基于同一发明构思,本发明提出的一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述实施例的仿真智能体目标可见性检测方法的步骤。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何包含存储、通讯、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
其中,存储器可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器可包括硬盘驱动器(Hard Disk Drive,简称为HDD)、软盘驱动器、固态驱动器(SolidState Drive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(Universal SerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器可在数据处理装置的内部或外部。在特定实施例中,存储器是非易失性(Non-Volatile)存储器。在特定实施例中,存储器包括只读存储器(Read-Only Memory,简称为ROM)和随机存取存储器(Random AccessMemory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(Programmable Read-Only Memory,简称为PROM)、可擦除PROM(Erasable ProgrammableRead-Only Memory,简称为EPROM)、电可擦除PROM(Electrically Erasable ProgrammableRead-Only Memory,简称为EEPROM)、电可改写ROM(Electrically Alterable Read-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(Static Random-Access Memory,简称为SRAM)或动态随机存取存储器(Dynamic Random Access Memory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器(Fast Page Mode Dynamic Random Access Memory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(Extended Date Out Dynamic RandomAccess Memory,简称为EDODRAM)、同步动态随机存取内存(Synchronous Dynamic Random-Access Memory,简称SDRAM)等。
实施例四
本发明第四实施例,基于同一发明构思,本发明提出的一种终端,终端包括:处理器,存储器;所述处理器、所述存储器进行相互的通信;存储器用于存储指令;处理器用于执行存储器中的指令,执行上述实施例的仿真智能体目标可见性检测方法。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
在不出现冲突的前提下,本领域技术人员可以将上述附加技术特征自由组合以及叠加使用。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.仿真智能体目标可见性检测方法,其特征在于,所述方法包括:
步骤一、初始化虚拟仿真场景,所述虚拟仿真场景由静态背景、仿真智能体及所述仿真智能体关注的动态目标组成,获取所述仿真智能体和所述动态目标的初始位姿;
步骤二、为每个所述动态目标分配一个ID,并对ID进行编码得到与所述动态目标对应的像素颜色值;其中,具体的编码方向如下:
R=ID&0xFF;
G=(ID>>8)&0xFF;
B=(ID>>16)&0xFF;
其中,R/G/B分别为编码得到的像素颜色值的R/G/B三个通道数值;
步骤三、基于所述仿真智能体的位置对多个渲染视角进行渲染,将所述渲染视角的渲染结果存储至对应的纹理中,根据所述动态目标对应的所述像素颜色值对所述纹理上与所述动态目标对应的像素进行着色;
步骤四、采用GPU遍历全部所述纹理的所有像素,统计不同的所述像素颜色值的个数,创建GPU缓存,将不同的所述像素颜色值及其对应的个数信息存储至所述GPU缓存内;
步骤五、将所述GPU缓存回读至CPU中,分别对不同的所述像素颜色值进行解码,得到多个与所述动态目标对应的ID;
步骤六、根据所述像素颜色值的个数确定所述动态目标的可见像素数量,并基于所述动态目标的可见像素数量判断该所述动态目标对于所述仿真智能体是否可见;其中,一种像素颜色值对应唯一的一个动态目标,同一像素颜色值的个数即为与其对应的动态目标的可见像素数量;
步骤七、更新所述虚拟仿真场景,获取所述仿真智能体和所述动态目标的更新位姿,重复执行步骤二至步骤六,直至检测完成为止;
所述纹理上的像素分为空像素和具有颜色值的彩像素,每个所述彩像素均对应一个所述动态目标,所述空像素不对应任何一个所述动态目标。
2.根据权利要求1所述的仿真智能体目标可见性检测方法,其特征在于,每个所述动态目标分配的ID是唯一的,并且每个ID进行编码得到的所述像素颜色值也是唯一的。
3.根据权利要求1所述的仿真智能体目标可见性检测方法,其特征在于,所述仿真智能体具有多个可视范围,每个所述可视范围均为扇形区域,所述扇形区域的起点在所述仿真智能体的边缘外侧,定义所述扇形区域的有效半径,令超出所述扇形区域的所述有效半径的所述动态目标不可见。
4.根据权利要求3所述的仿真智能体目标可见性检测方法,其特征在于,每个所述渲染视角均为视域四棱锥,其中,全部所述渲染视角组成的视域覆盖全部所述可视范围。
5.根据权利要求1所述的仿真智能体目标可见性检测方法,其特征在于,所述采用GPU遍历全部所述纹理的所有像素,统计不同的所述像素颜色值的个数,创建GPU缓存,将不同的所述像素颜色值及其对应的个数信息存储至所述GPU缓存内的步骤具体包括:
将全部所述纹理与预设的计算着色器的输入进行绑定,使所述计算着色器读取全部所述纹理的数据;
基于GPU创建一个用于存储统计结果的GPU缓存;
采用所述计算着色器遍历全部所述纹理的所有像素,并将统计过程分发到不同的GPU线程中分布式并行执行;
根据所述纹理上的每个像素对应的颜色值在所述GPU缓存中的相应位置累加计数,其中,累加计数过程采用原子操作。
6.根据权利要求1所述的仿真智能体目标可见性检测方法,其特征在于,所述基于所述动态目标的可见像素数量判断该所述动态目标对于所述仿真智能体是否可见的步骤具体包括:
若所述动态目标的可见像素数量大于预设的阈值T,则该所述动态目标对于所述仿真智能体可见;
若所述动态目标的可见像素数量小于等于阈值T,则该所述动态目标对于所述仿真智能体不可见。
7.仿真智能体目标可见性检测系统,其特征在于,所述系统包括:
初始化模块,用于初始化虚拟仿真场景,所述虚拟仿真场景由静态背景、仿真智能体及所述仿真智能体关注的动态目标组成,获取所述仿真智能体和所述动态目标的初始位姿;
编码模块,用于为每个所述动态目标分配一个ID,并对ID进行编码得到与所述动态目标对应的像素颜色值;其中,具体的编码方向如下:
R=ID&0xFF;
G=(ID>>8)&0xFF;
B=(ID>>16)&0xFF;
其中,R/G/B分别为编码得到的像素颜色值的R/G/B三个通道数值;
渲染模块,用于基于所述仿真智能体的位置对多个渲染视角进行渲染,将所述渲染视角的渲染结果存储至对应的纹理中,根据所述动态目标对应的所述像素颜色值对所述纹理上与所述动态目标对应的像素进行着色;
统计模块,用于采用GPU遍历全部所述纹理的所有像素,统计不同的所述像素颜色值的个数,创建GPU缓存,将不同的所述像素颜色值及其对应的个数信息存储至所述GPU缓存内;
解码模块,用于将所述GPU缓存回读至CPU中,分别对不同的所述像素颜色值进行解码,得到多个与所述动态目标对应的ID;
检测模块,用于根据所述像素颜色值的个数确定所述动态目标的可见像素数量,并基于所述动态目标的可见像素数量判断该所述动态目标对于所述仿真智能体是否可见;其中,一种像素颜色值对应唯一的一个动态目标,同一像素颜色值的个数即为与其对应的动态目标的可见像素数量;
更新模块,用于更新所述虚拟仿真场景,获取所述仿真智能体和所述动态目标的更新位姿,重复执行为每个所述动态目标分配一个ID,并对ID进行编码得到与所述动态目标对应的像素颜色值;基于所述仿真智能体的位置对多个渲染视角进行渲染,将所述渲染视角的渲染结果存储至对应的纹理中,根据所述动态目标对应的所述像素颜色值对所述纹理上与所述动态目标对应的像素进行着色;采用GPU遍历全部所述纹理的所有像素,统计不同的所述像素颜色值的个数,创建GPU缓存,将不同的所述像素颜色值及其对应的个数信息存储至所述GPU缓存内;将所述GPU缓存回读至CPU中,分别对不同的所述像素颜色值进行解码,得到多个与所述动态目标对应的ID;根据所述像素颜色值的个数确定所述动态目标的可见像素数量,并基于所述动态目标的可见像素数量判断该所述动态目标对于所述仿真智能体是否可见;直至检测完成为止;
所述纹理上的像素分为空像素和具有颜色值的彩像素,每个所述彩像素均对应一个所述动态目标,所述空像素不对应任何一个所述动态目标。
8.一种可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6任意一项所述的方法。
9.一种终端,其特征在于,所述终端包括:处理器,存储器;所述处理器、所述存储器进行相互的通信;
所述存储器用于存储指令;
所述处理器用于执行所述存储器中的所述指令,执行权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410160270.2A CN117710620B (zh) | 2024-02-05 | 2024-02-05 | 仿真智能体目标可见性检测方法、系统和存储介质及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410160270.2A CN117710620B (zh) | 2024-02-05 | 2024-02-05 | 仿真智能体目标可见性检测方法、系统和存储介质及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117710620A CN117710620A (zh) | 2024-03-15 |
CN117710620B true CN117710620B (zh) | 2024-05-07 |
Family
ID=90161034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410160270.2A Active CN117710620B (zh) | 2024-02-05 | 2024-02-05 | 仿真智能体目标可见性检测方法、系统和存储介质及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117710620B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0795417A (ja) * | 1993-09-27 | 1995-04-07 | Toshiba Corp | 画像データ符号および復号化装置 |
JP2000329782A (ja) * | 1999-05-18 | 2000-11-30 | Mitsuba Corp | 回転翼の流れの可視化装置 |
CN110570493A (zh) * | 2019-09-16 | 2019-12-13 | 网易(杭州)网络有限公司 | 字体贴图处理方法及装置、存储介质、电子设备 |
CN114600153A (zh) * | 2020-01-30 | 2022-06-07 | 联合技术旧金山公司 | 用于多角度屏幕覆盖分析的设备 |
CN114663542A (zh) * | 2022-03-25 | 2022-06-24 | 北京建筑大学 | 地下综合管廊的bim模型数据优化方法 |
CN115880436A (zh) * | 2022-12-26 | 2023-03-31 | 杭州新迪数字工程系统有限公司 | 一种cad模型可见性确定方法、系统及电子设备 |
CN116824070A (zh) * | 2023-08-31 | 2023-09-29 | 江西求是高等研究院 | 一种基于深度图像的实时三维重建方法及系统 |
CN116992673A (zh) * | 2023-08-04 | 2023-11-03 | 西安交通大学 | 一种采用分层附着分层渲染的车漆喷涂在线仿真方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9639309B1 (en) * | 2015-10-14 | 2017-05-02 | Kyocera Document Solutions Inc. | Image conversion methods |
US20220083786A1 (en) * | 2019-01-17 | 2022-03-17 | Jungo Connectivity Ltd. | Method and system for monitoring a person using infrared and visible light |
-
2024
- 2024-02-05 CN CN202410160270.2A patent/CN117710620B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0795417A (ja) * | 1993-09-27 | 1995-04-07 | Toshiba Corp | 画像データ符号および復号化装置 |
JP2000329782A (ja) * | 1999-05-18 | 2000-11-30 | Mitsuba Corp | 回転翼の流れの可視化装置 |
CN110570493A (zh) * | 2019-09-16 | 2019-12-13 | 网易(杭州)网络有限公司 | 字体贴图处理方法及装置、存储介质、电子设备 |
CN114600153A (zh) * | 2020-01-30 | 2022-06-07 | 联合技术旧金山公司 | 用于多角度屏幕覆盖分析的设备 |
CN114663542A (zh) * | 2022-03-25 | 2022-06-24 | 北京建筑大学 | 地下综合管廊的bim模型数据优化方法 |
CN115880436A (zh) * | 2022-12-26 | 2023-03-31 | 杭州新迪数字工程系统有限公司 | 一种cad模型可见性确定方法、系统及电子设备 |
CN116992673A (zh) * | 2023-08-04 | 2023-11-03 | 西安交通大学 | 一种采用分层附着分层渲染的车漆喷涂在线仿真方法 |
CN116824070A (zh) * | 2023-08-31 | 2023-09-29 | 江西求是高等研究院 | 一种基于深度图像的实时三维重建方法及系统 |
Non-Patent Citations (4)
Title |
---|
Performance of machine learning algorithms foe detecting pine wilt disease infection using visible color imagery by urv remote sensing;Ayako H.Oide ET Al;《Remote Sensing Applications :Society and Environment》;20221130;第28卷;全文 * |
一种复杂产品虚拟装配动态模型可见性计算方法;周韶泽;兆文忠;马思群;张军;;大连交通大学学报;20110415(02);第13页右栏 * |
多视纹理映射中无需设定偏差的快速可见性检测;黄翔翔;等;《测绘学报》;20200115;第49卷(第1期);全文 * |
虚拟群体与动态视频场景的在线实时融合;张艺江等;《计算机辅助设计与图形学报》;20110115;第23卷(第1期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117710620A (zh) | 2024-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11954759B2 (en) | Tile-based graphics | |
JP5271416B2 (ja) | 光線固有のクリッピングを使用したレイトレーシング | |
US8154547B2 (en) | Method and system for early Z test in title-based three-dimensional rendering | |
US9183664B2 (en) | Tiled forward shading with improved depth filtering | |
KR100703709B1 (ko) | 그래픽스 처리장치와 처리방법, 및 그 기록 매체 | |
JP5579741B2 (ja) | タイルベースの3dコンピュータグラフィックシステムにおける表示リスト制御ストリームのグループ化 | |
US9349154B2 (en) | Bindless texture and image API | |
US10748332B2 (en) | Hybrid frustum traced shadows systems and methods | |
US10699467B2 (en) | Computer-graphics based on hierarchical ray casting | |
WO2005116930A1 (en) | Tile based graphics rendering | |
US11521342B2 (en) | Residency map descriptors | |
CN113822788B (zh) | 光线追踪硬件中对资源的早期释放 | |
KR20130141445A (ko) | 안티-앨리어싱된 샘플들의 분할 저장 | |
US8553041B1 (en) | System and method for structuring an A-buffer to support multi-sample anti-aliasing | |
TWI417808B (zh) | 可重建幾何陰影圖的方法 | |
CN115439590A (zh) | 图形处理 | |
CN117710620B (zh) | 仿真智能体目标可见性检测方法、系统和存储介质及终端 | |
US20220392146A1 (en) | Graphics processing | |
CN116188552B (zh) | 基于区域的深度测试方法、装置、设备及存储介质 | |
Brandstetter III | Multi-resolution deformation in out-of-core terrain rendering | |
EP3929877A1 (en) | Hierarchical acceleration structures for use in ray tracing systems | |
EP2801954A1 (en) | Method and device for visualizing contact(s) between objects of a virtual scene | |
CN117224936A (zh) | 游戏中的障碍物检测方法、装置、电子设备及存储介质 | |
CN118537205A (zh) | 渲染目标视图实现方法和图形处理器的一级缓存 | |
CN118015173A (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 |