图像遮挡计算方法、装置、计算设备及存储介质与流程

文档序号:16926327发布日期:2019-02-22 19:53阅读:191来源:国知局
图像遮挡计算方法、装置、计算设备及存储介质与流程

本申请涉及图像处理技术领域,特别涉及一种图像遮挡计算方法、装置、计算设备及存储介质。



背景技术:

现有技术中,在大规模三维场景中有大量的模型和地形需要绘制,其中大部分都是非透明的,在这些非透明的物体后面有大量的物体被遮挡,真正能看到的物体并不多,在大规模三维场景的模型和地形绘制中,首先需要对每一个批次、每一帧图像进行遮挡查询,然后进行绘制。

遮挡查询一般分为硬件遮挡查询和软件遮挡查询,其中,硬件遮挡查询可以提供某个批次有多少个像素会被绘制出,从而在像素个数小于某值的情况下,我们认为该批次被遮挡了。

基于深度图的软件遮挡查询通常需要预先绘制遮挡体(遮挡其他物件标记物体)深度图,该深度图可以由中央处理器软件光栅化得出,也可以由图形处理器预渲染,但必然导致大量额外的性能开销(中央处理器端光线追踪/图像处理器预渲染的遮挡体),且遮挡体需要预先标记。



技术实现要素:

有鉴于此,本申请实施例提供了一种图像遮挡计算方法、装置、计算设备及存储介质,以解决现有技术中存在的技术缺陷。

根据本说明书实施例的第一方面,提供了一种图像遮挡计算方法,包括:

针对当前帧中待绘制图像中需要显示的目标对象,创建一个或多个包围盒对所述目标对象进行分割包围;

判断每个所述包围盒是否被遮挡;

根据判断结果确定每个所述包围盒对应的目标对象是否被遮挡,并将目标对象的遮挡情况数据进行保存。

可选的,判断每个所述包围盒是否被遮挡包括:

根据预先设定的分辨率,对每个所述包围盒的各个面分别进行光栅化分簇计算,确定每个分簇包含的像素点个数;

针对每个分簇中的像素点,通过计算着色器计算每个像素点的遮挡情况,确定每个分簇中未被遮挡的像素点数量,将所述未被遮挡的像素点数量与预先设定好的像素点阈值进行比较,确定分簇是否被遮挡;

根据所述分簇的遮挡情况,将未被遮挡的分簇数量与预先设定好的分簇阈值进行比较,确定包围盒的各个面是否被遮挡;

根据观察目标对象的角度确定所述包围盒所展示的面,通过判断所展示的面的遮挡情况确定所述包围盒的遮挡情况。

可选的,所述预先设定的分辨率是根据用户硬件性能参数进行设定的。

可选的,在所述判断结果为部分遮挡的情况下,针对所述部分遮挡的包围盒,对所述部分遮挡的包围盒进行重新划分,将所述部分遮挡的包围盒中未被遮挡的部分划分成第一包围盒,定义为未遮挡包围盒,将所述部分遮挡的包围盒中被遮挡的部分划分成第二包围盒,定义为遮挡包围盒。

可选的,所述包围盒的遮挡情况数据存储于乱序访问视图uav中。

根据本说明书实施例的第二方面,提供了一种图像绘制方法,包括:

查询当前帧和上一帧的遮挡情况数据;

对比得到当前帧和上一帧的差别并根据所述差别在所绘制的上一帧的基础上绘制当前帧。

可选的,所述cpu通过异步查询的方式查询预先存储的遮挡情况数据。

根据本说明书实施例的第三方面,提供了一种图像遮挡计算装置,包括:

创建模块,被配置为针对当前帧中待绘制图像中需要显示的目标对象,创建一个或多个包围盒对所述目标对象进行分割包围;

判断模块,被配置为判断每个所述包围盒是否被遮挡;

处理模块,被配置为根据判断结果确定每个所述包围盒对应的目标对象是否被遮挡,并将目标对象的遮挡情况数据进行保存。

可选的,所述判断模块包括:

计算单元,被配置为根据预先设定的分辨率,对每个所述包围盒的各个面分别进行光栅化分簇计算,确定每个分簇包含的像素点个数;

第一比较单元,被配置为针对每个分簇中的像素点,通过计算着色器计算每个像素点的遮挡情况,确定每个分簇中未被遮挡的像素点数量,将所述未被遮挡的像素点数量与预先设定好的像素点阈值进行比较,确定分簇是否被遮挡;

第二比较单元,被配置为根据所述分簇的遮挡情况,将未被遮挡的分簇数量与预先设定好的分簇阈值进行比较,确定包围盒的各个面是否被遮挡;

确定单元,被配置为根据观察目标对象的角度确定所述包围盒所展示的面,通过判断所展示的面的遮挡情况确定所述包围盒的遮挡情况。

可选的,所述预先设定的分辨率是根据用户硬件性能参数进行设定的。

可选的,所述处理模块,还被配置为在所述判断结果为部分遮挡的情况下,针对所述部分遮挡的包围盒,对所述部分遮挡的包围盒进行重新划分,将所述部分遮挡的包围盒中未被遮挡的部分划分成第一包围盒,定义为未遮挡包围盒,将所述部分遮挡的包围盒中被遮挡的部分划分成第二包围盒,定义为遮挡包围盒。

可选的,所述包围盒的遮挡情况数据存储于乱序访问视图uav中。

根据本说明书实施例的第四方面,提供了一种图像绘制装置,包括:

查询模块,被配置为查询当前帧和上一帧的遮挡情况数据;

绘制模块,被配置为对比得到当前帧和上一帧的差别并根据所述差别在所绘制的上一帧的基础上绘制当前帧。

可选的,所述接收查询模块被进一步的配置为:所述cpu通过异步查询的方式查询预先存储的遮挡情况数据。

根据本说明书实施例的第五方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现上述方法的步骤。

根据本说明书实施例的第六方面,提供了一种计算机可读存储介质,存储有计算机指令,该指令被处理器执行时实现上述的方法的步骤。

本申请中针对当前帧中待绘制图像中需要显示的目标对象,创建一个或多个包围盒对所述目标对象进行分割包围,分割包围结束后,判断每个所述包围盒是否被遮挡,根据判断每个包围盒的遮挡结果确定每个所述包围盒对应的目标对象是否被遮挡,并将所述目标对象的遮挡情况数据进行保存;本申请利用包围盒法,通过计算着色器对所述包围盒进行光栅化分簇计算,极大地缩减了对图像遮挡计算的运算量,同时利用gpu的并行计算能力,大幅度提升了数据的运算效率。

附图说明

图1是本说明书一实施例中的一种图像遮挡计算系统的结构示意图;

图2是本说明书一实施例中的一种图像遮挡计算方法的流程图;

图3是本说明书一实施例中的一种图像遮挡计算方法的示意图;

图4是本说明书一实施例中的一种图像绘制方法的流程图;

图5是本说明书一实施例中的一种图像遮挡计算装置模块图;

图6是本说明书一实施例中的一种图像绘制装置的结构示意图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。

下面通过具体实施例,对本发明进行详细说明。

参考图1,图1为本说明书一实施例提供的一种图像遮挡计算系统的结构示意图,在介绍本申请的技术方案之前,首先对本申请所涉及的图像遮挡计算系统的架构进行说明。

图1是示出了根据本说明书一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110、中央处理器120和图像处理器130。中央处理器120、图像处理器130与存储器110通过总线150相连接。

计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络通信。这些网络的示例包括公用交换电话网(pstn)、局域网(lan)、广域网(wan)、个域网(pan)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic))中的一个或多个,诸如ieee802.11无线局域网(wlan)无线接口、全球微波互联接入(wi-max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc)接口,等等。

在本说明书的一个实施例中,计算设备100的上述以及图1中未示出的其他部件也可以彼此相连接,例如通过总线150。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。

计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备100还可以是移动式或静止式的服务器。

图2示出了本说明书一实施例中的一种图像遮挡计算方法的流程图,应用于gpu端,如图2所示,包括步骤202至步骤206。

步骤202:针对当前帧中待绘制图像中需要显示的目标对象,创建一个或多个包围盒对所述目标对象进行分割包围。

本说明书一实施例中,参见图3所示,创建一个包围盒对所述目标对象进行分割。

本说明书一实施例中,利用包围盒法对需要显示的所述目标对象进行分割包围,通过判断所述包围盒的遮挡情况可以判断所述包围盒内包含所述目标对象的遮挡情况。

参见图3所示,例如在3d场景中,所述目标对象为一座山,通过一个包围盒对山进行分割,通过判断包围盒的遮挡情况,可以判断出山被遮挡。

本说明书一实施例中,针对所述需要显示的目标对象创建包围盒,所述包围盒越多,对所述目标对象的遮挡情况计算就越精确,所述需要显示的目标对象的分辨率就越高。

步骤204:判断每个所述包围盒是否被遮挡。

本说明书一实施例中,判断每个所述包围盒是否被遮挡包括:

根据预先设定的分辨率,对每个所述包围盒的各个面分别进行光栅化分簇计算,确定每个分簇包含的像素点个数;

针对每个分簇中的像素点,通过计算着色器计算每个像素点的遮挡情况,确定每个分簇中未被遮挡的像素点数量,将所述未被遮挡的像素点数量与预先设定好的像素点阈值进行比较,确定分簇是否被遮挡。

本说明书一实施例中,所述光栅化分簇计算是通过利用gpu的并行计算特点将计算着色器中并行计算单元拆分为线程组进行并行计算。

本说明书一实施例中,在所述未被遮挡的像素点大于预先设定好的像素点阈值的情况下,所述分簇被定义为未被遮挡分簇;在所述未被遮挡的像素点小于预先设定好的像素点阈值的情况下,所述分簇被定义为遮挡分簇。

根据所述分簇的遮挡情况,将未被遮挡的分簇数量与预先设定好的分簇阈值进行比较,确定包围盒的各个面是否被遮挡。

本说明书一实施例中,在所述未被遮挡的分簇数量大于预先设定好的分簇阈值的情况下,所述包围盒的面被定义为未被遮挡包围盒面;在所述未被遮挡的分簇数量小于预先设定好的分簇阈值的情况下,所述包围盒的面被定义为遮挡包围盒面。

根据观察目标对象的角度确定所述包围盒所展示的面,通过判断所展示的面的遮挡情况确定所述包围盒的遮挡情况。

本说明书一实施例中,所述包围盒的遮挡情况包括:遮挡、未遮挡和部分遮挡。

本说明书一实施例中,所述预先设定的分辨率是根据用户硬件性能参数进行设定的。

步骤206:根据判断结果确定每个所述包围盒对应的目标对象是否被遮挡,并将目标对象的遮挡情况数据进行保存。

本说明书一实施例中,在所述判断结果为部分遮挡的情况下,针对所述部分遮挡的包围盒,对所述部分遮挡的包围盒进行重新划分,将所述部分遮挡的包围盒中未被遮挡的部分划分成第一包围盒,定义为未遮挡包围盒,将所述部分遮挡的包围盒中被遮挡的部分划分成第二包围盒,定义为遮挡包围盒。

本说明书一实施例中,所述包围盒的遮挡情况数据存储于乱序访问视图uav中。

本说明书一实施例中,所述乱序访问视图uav(unorderedaccessview)可以为计算着色器并行读写的的数据视图,并且为并行计算的数据输入和输出接口。

本说明书中针对当前帧中待绘制图像中需要显示的目标对象,创建一个或多个包围盒对所述目标对象进行分割包围,分割包围结束后,判断每个所述包围盒是否被遮挡,根据判断每个包围盒的遮挡结果确定每个所述包围盒对应的目标对象是否被遮挡,并将所述目标对象的遮挡情况数据进行保存;本申请利用包围盒法,通过计算着色器对所述包围盒进行光栅化分簇计算,极大地缩减了对图像遮挡计算的运算量,同时利用gpu的并行计算能力,大幅度提升了数据的运算效率。

图4示出了本说明书一实施例中的一种图像绘制方法的流程图,应用于中央处理器cpu端,如图4所示,包括步骤402至步骤404。

步骤402:查询当前帧和上一帧的遮挡情况数据;

步骤404:对比得到当前帧和上一帧的差别并根据所述差别在所绘制的上一帧的基础上绘制当前帧。

本说明书一实施例中,所述cpu通过异步查询的方式查询预先存储的遮挡情况数据。

本说明书中通过查询当前帧和上一帧的遮挡情况数据,对比得到当前帧和上一帧的差别并根据所述差别在所绘制的上一帧的基础上绘制当前帧;本申请通过中央处理器cpu对图像的遮挡计算数据进行异步查询,通过中央处理器cpu多线程的处理方法,可以极大地提高数据查询的运算效率。

图5示出了本申请实施例中的一种图像遮挡计算装置模块图,应用于图像处理器gpu端,如图5所示,该图像遮挡计算装置500包括创建模块502、判断模块504和处理模块506。

创建模块502:被配置为针对当前帧中待绘制图像中需要显示的目标对象,创建一个或多个包围盒对所述目标对象进行分割包围;

判断模块504:被配置为判断每个所述包围盒是否被遮挡;

处理模块506:被配置为根据判断结果确定每个所述包围盒对应的目标对象是否被遮挡,并将目标对象的遮挡情况数据进行保存。

一个可选的实施例中,所述判断模块包括:

计算单元,被配置为根据预先设定的分辨率,对每个所述包围盒的各个面分别进行光栅化分簇计算,确定每个分簇包含的像素点个数;

第一比较单元,被配置为针对每个分簇中的像素点,通过计算着色器计算每个像素点的遮挡情况,确定每个分簇中未被遮挡的像素点数量,将所述未被遮挡的像素点数量与预先设定好的像素点阈值进行比较,确定分簇是否被遮挡;

第二比较单元,被配置为根据所述分簇的遮挡情况,将未被遮挡的分簇数量与预先设定好的分簇阈值进行比较,确定包围盒的各个面是否被遮挡;

确定单元,被配置为根据观察目标对象的角度确定所述包围盒所展示的面,通过判断所展示的面的遮挡情况确定所述包围盒的遮挡情况。

一个可选的实施例中,所述预先设定的分辨率是根据用户硬件性能参数进行设定的。

一个可选的实施例中,所述处理模块,还被配置为在所述判断结果为部分遮挡的情况下,针对所述部分遮挡的包围盒,对所述部分遮挡的包围盒进行重新划分,将所述部分遮挡的包围盒中未被遮挡的部分划分成第一包围盒,定义为未遮挡包围盒,将所述部分遮挡的包围盒中被遮挡的部分划分成第二包围盒,定义为遮挡包围盒。

一个可选的实施例中,所述包围盒的遮挡情况数据存储于乱序访问视图uav中。

图6示出了本申请实施例中的一种图像绘制装置模块图,应用于中央处理器cpu端,如图6所示,该图像绘制装置600包括查询模块602和绘制模块604。

查询模块602:被配置为查询当前帧和上一帧的遮挡情况数据;

绘制模块604:被配置为对比得到当前帧和上一帧的差别并根据所述差别在所绘制的上一帧的基础上绘制当前帧。

一个可选的实施例中,所述接收查询模块被进一步的配置为:所述cpu通过异步查询的方式查询预先存储的遮挡情况数据。

上述实施例阐明的装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

本说明书一实施例还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述的图像遮挡计算方法的步骤。

本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述的图像遮挡计算方法的步骤。

上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的图像遮挡计算方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述图像遮挡计算方法的技术方案的描述。

所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书并不受所描述的动作顺序的限制,因为依据本说明书,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1