CN112929682B - 对图像背景进行透明处理的方法、装置、系统及电子设备 - Google Patents
对图像背景进行透明处理的方法、装置、系统及电子设备 Download PDFInfo
- Publication number
- CN112929682B CN112929682B CN202110083842.8A CN202110083842A CN112929682B CN 112929682 B CN112929682 B CN 112929682B CN 202110083842 A CN202110083842 A CN 202110083842A CN 112929682 B CN112929682 B CN 112929682B
- Authority
- CN
- China
- Prior art keywords
- target
- rendering
- transparent
- target texture
- target object
- 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
- 238000000034 method Methods 0.000 title claims abstract description 124
- 238000012545 processing Methods 0.000 title claims abstract description 32
- 238000009877 rendering Methods 0.000 claims abstract description 101
- 230000008569 process Effects 0.000 claims abstract description 30
- 238000004590 computer program Methods 0.000 claims description 7
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 238000012544 monitoring process Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 238000002156 mixing Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000013307 optical fiber Substances 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/23412—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs for generating or manipulating the scene composition of objects, e.g. MPEG-4 objects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/426—Internal components of the client ; Characteristics thereof
- H04N21/42653—Internal components of the client ; Characteristics thereof for processing graphics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44012—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
本申请提供一种对图像背景进行透明处理的方法,所述方法由虚幻引擎执行,所述方法包括:基于指定的触发信号,将目标对象的渲染结果写入可被跨进程访问的目标纹理,生成目标纹理句柄,其中,所述渲染结果的背景色为透明;将所述目标纹理句柄写入到可被跨进程访问的内存,以供其他进程读取所述目标纹理句柄,并基于所述目标纹理句柄,访问所述虚幻引擎的所述目标纹理,生成包含目标对象且背景色为透明的图像。
Description
技术领域
本申请涉及图像处理技术领域,尤其涉及一种对图像背景进行透明处理的方法、装置、直播系统、电子设备及计算机可读存储介质。
背景技术
在直播应用场景中,某些情况下,需要对当前帧图像进行背景去除,即保留当前帧中的目标对象,将其余部分进行透明处理。相关技术中,基于虚幻引擎所制作的直播图像,如果要进行背景透明,一般通过在开播端使用绿幕抠图的方式实现:基于开源软件OBS(Open Broadcaster Software)的色度键功能将除了目标对象以外的背景设置为纯绿色,然后将该纯绿色区域的颜色设置为透明,达到背景去除的目的。
然而,由于OBS自身功能的限制,在当前图像的目标对象包含半透明颜色时,OBS会将半透明颜色区域也设置为透明,即将不该进行背景去除的区域也进行了背景透明。那么,人物、礼物等目标对象就不能有半透明的效果,限制了对虚拟对象半透明颜色的使用。
发明内容
为克服相关技术中存在的问题,本申请提供了一种对图像背景进行透明处理的方法、装置、直播系统、电子设备及计算机可读存储介质。
根据本申请实施例的第一方面,提供一种对图像背景进行透明处理的方法,所述方法由虚幻引擎执行,所述方法包括:基于指定的触发信号,将目标对象的渲染结果写入可被跨进程访问的目标纹理,生成目标纹理句柄,其中,所述渲染结果的背景色为透明;将所述目标纹理句柄写入到可被跨进程访问的内存,以供其他进程读取所述目标纹理句柄,并基于所述目标纹理句柄,访问虚幻引擎的所述目标纹理,生成包含目标对象且背景色为透明的图像。
根据本申请实施例的第二方面,提供一种开播端对图像背景的透明处理方法,所述方法由开播端执行,所述方法包括:访问虚幻引擎中可被跨进程访问的内存,获取目标纹理句柄,所述目标纹理句柄在虚幻引擎基于指定的触发信号,将目标对象的渲染结果写入可被跨进程访问的目标纹理的过程中生成,其中,所述渲染结果的背景色为透明;基于所述目标纹理句柄,访问虚幻引擎中的所述目标纹理,生成包含目标对象且背景色为透明的图像。
根据本申请实施例的第三方面,提供一种对图像背景进行透明处理的装置,所述装置包括:第一写入装置,用于基于指定的触发信号,将目标对象的渲染结果写入可被跨进程访问的目标纹理,生成目标纹理句柄,其中,所述渲染结果的背景色为透明;第二写入装置,用于将所述目标纹理句柄写入到可被跨进程访问的内存,以供其他进程读取所述目标纹理句柄,并基于所述目标纹理句柄,访问所述目标纹理,生成包含目标对象且背景色为透明的图像。
根据本申请实施例的第四方面,提供一种直播系统,所述系统包括虚幻引擎和开播端;其中,所述虚幻引擎,用于基于指定的触发信号,将目标对象的渲染结果写入可被跨进程访问的目标纹理,生成目标纹理句柄,其中,所述渲染结果的背景色为透明,并将所述目标纹理句柄写入到可被跨进程访问的内存;所述开播端,用于从所述可被跨进程访问的内容中读取所述目标纹理句柄,并基于所述目标纹理句柄,访问虚幻引擎中的所述目标纹理,生成包含目标对象且背景色为透明的图像。
根据本申请实施例的第五方面,提供一种电子设备,所述电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本申请第一方面或第二方面所述的方法。
根据本申请实施例的第六方面,提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本申请第一方面或第二方面所述的方法。
本申请的实施例提供的技术方案可以包括以下有益效果:
基于本申请实施例所述的方法,利用了虚幻引擎制作图像的过程中所获得的目标对象的渲染结果,其中所述渲染结果的背景色为透明。通过将所述目标对象的渲染结果写入到可被跨进程访问的目标纹理中,生成的目标纹理句柄;然后将目标纹理句柄写入到可被跨进程访问的内存中,以供其他线程,例如开播端,基于所述目标纹理句柄,直接获取包含目标对象且背景色为透明的图像。可以看到,通过本申请实施例所述的方法,利用虚幻引擎设置图像的背景色为透明,并供其他线程读取,能够使其他线程直接读取到背景色为透明的图像,避免了使用OBS进行背景透明时,对半透明对象不适用的问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1A是本申请根据一示例性实施例示出的一种利用OBS来实现绿幕抠图的编辑窗口示意图。
图1B是本申请根据一示例性实施例示出的一种未进行背景透明的原图像。
图1C是是本申请根据一示例性实施例示出的一种利用OBS软件进行背景透明的效果示意图。
图2是本申请根据一示例性实施例示出的一种对图像背景进行透明处理的方法的流程图。
图3是本申请根据一示例性实施例示出的一种基于虚幻引擎为预先创建的摄像机创建场景捕捉二维组件的视图窗口示意图。
图4是本申请根据一示例性实施例示出的一种基于本申请实施例对包含目标对象的图像进行背景透明的处理结果图。
图5是本申请根据一示例性实施例示出的一种开播端对图像背景的透明处理方法的流程图。
图6是本申请根据一示例性实施例示出的一种对图像背景进行透明处理的装置的结构框图。
图7是本申请根据一示例性实施例示出的一种直播系统的结构框图。
图8是本申请根据一示例性实施例示出的一种电子设备的结构框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在直播应用场景中,炫酷奇幻的背景常常能够为主播平台吸引到更多的流量,且能够为用户带来更为更好的观看体验。然而,基于虚幻引擎所渲染的场景,在某些情况下,例如进行目标对象和其他背景的合成,在游戏界面右下角区域仅展示人物形象等等,可能仅需要获取当前场景中的目标对象,故需要对当前帧图像进行背景透明,仅保留当前场景中的目标对象,俗称“抠图”技术。
相关技术中,基于虚幻引擎软件所制作的直播图像,如果需要进行背景透明,一般是使用绿幕抠图的方式。通常采用开源软件OBS(Open Broadcaster Software)来实现绿幕抠图。
参见图1A,给出了利用开源软件OBS来实现绿幕抠图的编辑窗口示意图。其中,101为开源软件OBS的编辑窗口视图,102为需要保留的目标对象,103为OBS中的色度键值功能,通过设置该功能的颜色,能够令OBS自动将此颜色的区域设置为透明。一般来说,通常将此功能的颜色设置为“纯绿色”,即为通常所称的“绿幕抠图”。
但是,由于OBS等抠图软件自身的缺陷,在当前图像的目标对象包含半透明颜色时,OBS会将半透明颜色区域也直接设置为透明。结合图1B和图1C进行对比说明。图1B给出了要进行背景透明的原图像,以仅对区域104进行背景透明为例进行说明。将图1B所示的图像通过OBS软件,对区域104进行背景去除,其输出结果如图1C所示。从图1C所示的104可以看到,由于目标对象中存在一个半透明的物体——丝带,因此,在借助OBS软件进行背景去除时,会不仅将原图像的背景透明化,还会将半透明的丝带区域也完全透明化,而对于半透明物体+非透明物体的区域,例如“半透明丝带+头发”的区域,则不会进行背景透明,进而背景透明的结果是,在半透明物体+非透明物体的区域出现锯齿现象。可见,基于OBS软件的背景透明方法,无法支持包含半透明物体的图像。对于直播场景来说,在直播的图像中,就无法使用包含半透明的对象,例如半透明的人物服装、半透明的礼物等等,限制了直播图像的色彩效果。
为了克服相关技术所存在的上述技术缺陷,本申请实施例提供了一种对图像背景进行透明处理的方法,所述方法由虚幻引擎执行。如图2所示,为本申请实施例所提供的一种对图像背景进行透明处理的方法流程图,所述方法包括:
步骤S201,基于指定的触发信号,将目标对象的渲染结果写入可被跨进程访问的目标纹理,生成目标纹理句柄,其中,所述渲染结果的背景色为透明;
步骤S202,将所述目标纹理句柄写入到可被跨进程访问的内存,以供其他进程读取所述目标纹理句柄,并基于所述目标纹理句柄,访问虚幻引擎的所述目标纹理,生成包含目标对象且背景色为透明的图像。
在一些实施例中,所述其他线程,可以为开播端,所述开播端为对虚幻引擎所生成的直播内容进行后续处理的计算机设备或者服务器设备等等,所述开播端从虚幻引擎接收的直播数据,经过处理后发送给用户端。当然,本领域技术人员应当理解,所述方法也可以被用在游戏领域中,故,所述其他线程可以为游戏服务器的相关进程,本申请对此不做限制。
当用于直播的图像是基于虚幻引擎制作生成时,包含目标对象且背景色为透明的图像的渲染结果,可以从虚幻引擎中获取。
虚幻引擎自身带有摄像机功能。对于虚幻引擎所创建的虚拟场景,所述摄像机能够捕获用户视角范围内的、包含目标对象的图像。在应用本申请实施例所述的方法进行背景透明时,基于开发人员预先的设置,在虚幻引擎编辑地图里面创建一个摄像机,并对该摄像机设置好范围,所述摄像机所对准的画面即为要展现的图像;此外,如图3所示,预先为所创建的摄像机301创建一个场景捕捉二维(Scene Capture Component 2D)组件302。所述场景捕捉二维组件同样为虚幻引擎自带的工具,用于从单一平面捕获场景“快照”(即获取单一平面捕获场景的渲染数据)并将其推送给渲染目标(Render Target)资源。那么,基于所述场景捕捉二维组件302,能够对所述摄像机301所“拍摄”的图像获取所述图像对应的渲染数据。
与预先创建的摄像机和所述摄像机的场景捕获二维组件相对应,渲染目标(Render Target)资源同样被预先创建,且与所述场景捕获二维组件进行绑定(即所述渲染目标资源与所述场景捕捉二维组件是关联创建的)。所述渲染目标资源,被设置为带有透明参数通道的格式,例如,对于虚幻引擎4.0来说,所述带有透明参数通道的格式可以为RGBA16F。此外,将所述渲染目标资源的背景色设置为透明,即设置为RGBA(0,0,0,0)。那么,基于所述渲染目标资源的上述设置,当虚幻引擎渲染进程启动时,虚幻引擎会自动将摄像机所对准的、包含目标对象的图像渲染到所述渲染目标资源,且所述渲染目标资源所包含的图像的渲染数据,仅目标对象保留了其本身的色彩参数,而其背景色为透明。
在一些实施例中,步骤S201中所述的目标对象的渲染结果,可以通过以下方式获取:监听虚幻引擎渲染进程的端口;当确定所述渲染进程启动时,将场景捕捉二维组件所存储的渲染数据渲染到渲染目标资源,获得所述目标对象的渲染结果。其中,所述场景捕捉二维组件和渲染目标资源在所述渲染进程启动之前关联创建,所述渲染目标资源的格式包含透明参数通道,所述场景捕捉二维组件所存储的渲染数据为包含所述目标对象且背景色为透明的图像的渲染数据。
通过上述实施例可以看到,通过利用虚幻引擎自带的摄像机及其场景捕捉二维组件,将场景捕捉二维组件所存储的渲染数据渲染到渲染目标资源,充分地利用了虚幻引擎内置的功能,能够简单有效地获取包含目标对象且背景色为透明的渲染数据,并将其保存在渲染目标资源中。
步骤S201中所述的目标对象的渲染结果,除了通过上述实施例的方式获取,还可以通过将所述渲染目标资源所获取的包含目标对象且背景色为透明的渲染数据,存储在虚幻引擎的一个专用缓存区,虚幻引擎通过接收用户的指定的输入指令,调用所述专用缓存区所存储的包含目标对象且背景色为透明的渲染数据,进而获取所述目标对象的渲染结果。当然,本领域技术人员还可以通过其他方式,获取步骤S201中所述的目标对象的渲染结果,本申请对此不做具体的限制。
对于虚幻引擎来说,其渲染采取的是轮询的机制,即虚幻引擎存在多个会自动更新的线程,例如,客户端视口(Viewport Client)渲染线程。所述客户端视口每隔一段固定的时间,都会将当前场景的内容重新渲染一次,包括前文所述的预先创建的摄像头及其场景捕捉二维组件。因此,在本申请的一个实施例中,可以将虚幻引擎的指定线程的更新信号作为步骤S201中的指定的触发信号,所述指定线程可以为客户端视口。
通过上述实施例可以看到,利用虚幻引擎内置的指定线程的更新信号作为指定的触发信号,能够在节省开发难度的基础上,为本申请实施例所述的将目标对象的渲染结果写入可被跨进程访问的目标纹理提供一个触发机制。
当然,本领域技术人员应当理解,还可以设置具有指定时间间隔的定时器,将所述定时器的计时结果作为所述指定的触发信号。当满足指定的时间间隔时,虚幻引擎就将目标对象的渲染结果写入可被跨进程访问的目标纹理,生成目标纹理句柄。此外,所述指定的触发信号,还可以是开发人员利用虚幻引擎的其他内置的、能够自动更新的渲染线程,本申请对此不做限制。
虚幻引擎是制作直播数据的平台,由虚幻引擎所生成的图像数据,一般为高动态范围(High Dynamic Range,HDR)的数据。然而,由于目前的终端设备,包括计算机设备、平板、手机、显示器等等,所允许显示的动态范围通常为标准动态范围(Standard DynamicRange,SDR),标准动态范围的动态范围通常低于虚幻引擎所生成的高动态范围数据的动态范围。
因此,在一些实施例中,当部分或者全部观看直播数据的用户端的设备仅允许标准动态范围或者低于虚幻引擎产生的数据的动态范围时,则在步骤S201中,所述方法还包括:在将目标对象的渲染结果写入可被跨进程访问的目标纹理的过程中,对所述目标对象的渲染结果进行高动态范围到低动态范围的色调转换。
其中,所述高动态范围的动态范围大于第一阈值,所述低动态范围的动态范围低于第二阈值。第一阈值和第二阈值,可以由开发人员依据经验值或者统计值等等进行设定,本申请对此不做限制。
将所述目标对象的渲染结果进行高动态范围到低动态范围的色调转换,可以参考相关技术的实现方式,例如,基于指定的色调映射、对色调进行取对数操作等等,本申请对色调转换的具体实现方式不做限制。
在一些实施例中,所述对所述目标对象的渲染结果进行高动态范围到低动态范围的色调转换,可以是将RGB16F格式的渲染数据转换为RGBA8格式的渲染数据,即将R通道、G通道、B通道的数据分别以16位存储、透明参数通道(也称为阿尔法通道)的数据以8为存储的高动态范围的渲染数据转换为,R通道、G通道、B通道和透明参数通道的数据都以8位存储的渲染数据。
通过上述实施例可以看到,考虑观看直播数据的用户端的设备的动态范围,将从虚幻引擎所获取的高动态范围的渲染数据,转换为用户端的设备适用的低动态范围(相对于虚幻引擎所产生的动态范围为“低动态范围”)的渲染数据,能够为用户端提供更好的观看体验。
在一些实施例中,所述方法还包括:在将目标对象的渲染结果写入可被跨进程访问的目标纹理的过程中,对所述渲染结果的透明通道参数和RGB通道的值进行指定方式的混合处理。
基于前文所述内容可知,所述目标对象的渲染结果的格式是包括透明参数通道的。对于一个图像来说,如果想要保留的目标对象中既包括半透明物体和非透明物体,且半透明物体位于非透明物体之上,例如图1B中的104区域所示。那么,对于此种情况,可以对所述渲染结果的透明参数通道和RGB通道颜色值进行指定方式的混合处理。
在一些实施例中,所述指定方式的混合处理,可以如以下代码所示:
FinalColor.rgb=SourceColor*SourceAlpha+DestColor*(1-SourceAlpha);
FinalColor.a=SourceAlpha*0+DestAlpha*1;
其中,FinalColor.rgb为所述目标对象的渲染结果经过混合处理之后,RGB通道的最终值,FinalColor.a为所述目标对象的渲染结果经过混合处理之后,透明参数通道的最终值;SourceColor为待将渲染结果渲染上去的物体的RGB通道的值,SourceAlpha为待将渲染结果渲染上去的物体的透明参数通道的值,DestColor为所述渲染目标资源所存储的RGB通道的值,DestAlpha为所述渲染目标资源所存储的透明参数通道的值。
通过上述实施例可以看到,通过指定方式的混合处理,能够对既包括半透明物体和非透明物体,且半透明物体位于非透明物体之上的目标对象的渲染结果进行确定,保证半透明物体和非透明物体的颜色都能够正确渲染。
当然,本领域技术人员应当理解,上述代码为示例性说明,所述指定方式的混合处理还可以通过其他代码形式实现;此外,上述代码中参数前的系数,可以根据想要呈现的透明效果进行适应性调整,本申请对此不作限制。
此外,本领域技术人员应当理解,对于一个图像来说,也有可能想要保留的目标对象中虽然包括半透明物体和非半透明物体,但是半透明物体和非半透明物体并不存在遮挡关系,在这种情况下,则并不需要进行上述实施例所述的指定方式的混合处理。
因此,在一些实施例中,可以通过预先检测所述渲染结果的透明参数通道具有透明参数的像素的位置,与RGB通道具有数值的像素的位置是否相同,然后再确定是否执行上述所述指定方式的混合处理。
如图4所示,为基于本申请上述的实施例对包含目标对象的图像进行背景透明的处理结果。通过所述结果可以看到,基于本申请实施例所述的方法,利用虚幻引擎设置图像的背景色为透明,并供开播端读取,能够使开播端直接读取到包含目标对象且背景色为透明的图像,避免了使用OBS进行背景透明时,对半透明对象不适用的问题。
与上述由虚幻引擎所执行的背景透明方法相对应,本申请实施例还提供了一种开播端对图像背景的透明处理方法,所述方法由开播端执行,如图5所示,所述方法包括:
步骤S501,访问虚幻引擎中可被跨进程访问的内存,获取目标纹理句柄,所述目标纹理句柄在虚幻引擎基于指定的触发信号,将目标对象的渲染结果写入可被跨进程访问的目标纹理的过程中生成,其中,所述渲染结果的背景色为透明;
步骤S502,基于所述目标纹理句柄,访问虚幻引擎中的所述目标纹理,生成包含目标对象且背景色为透明的图像。
上述实施例所述的背景透明方法,与前文由虚幻引擎所执行的一种对图像背景进行透明处理的方法相对应,本申请对此不做赘述。在开播端生成目标对象且背景色为透明的图像之后,开播端可以将所述图像发送给直播客户端。
通过上述各实施例可以看到,基于虚幻引擎对目标渲染资源的可被跨进程的存储,开播端能够直接读取到包含目标对象且背景色为透明的图像,避免了使用OBS进行背景透明时,对半透明对象不适用的问题。
与前述由虚幻引擎所执行的背景透明方法相对应,本申请还提供了一种对图像背景进行透明处理的装置。如图6所示,是本申请根据一示例性实施例示出的一种对图像背景进行透明处理的装置的框图,所述背景透明装600包括:
第一写入装置601,用于基于指定的触发信号,将目标对象的渲染结果写入可被跨进程访问的目标纹理,生成目标纹理句柄,其中,所述渲染结果的背景色为透明;
第二写入装置602,用于将所述目标纹理句柄写入到可被跨进程访问的内存,以供其他进程读取所述目标纹理句柄,并基于所述目标纹理句柄,访问所述目标纹理,生成包含目标对象且背景色为透明的图像。
应用本申请上述实施例所述的装置,对直播图像进行背景透明的具体实施方式,可以参照前文方法实施例,本申请对此不作赘述。
此外,如图7所示,本申请还提供了一种直播系统,所述系统包括安装有虚幻引擎的电子设备701和开播端702;
其中,所述电子设备701所安装的虚幻引擎,用于基于指定的触发信号,将目标对象的渲染结果写入可被跨进程访问的目标纹理,生成目标纹理句柄,其中,所述渲染结果的背景色为透明,并将所述目标纹理句柄写入到可被跨进程访问的内存;
所述开播端702,用于从所述可被跨进程访问的内容中读取所述目标纹理句柄,并基于所述目标纹理句柄,访问虚幻因中的所述目标纹理,生成包含目标对象且背景色为透明的图像。
所述电子设备701可以为计算机设备、服务器或者具备运行虚幻引擎的处理器的其他电子设备,所述开播端702可以为计算机设备、服务器或者具备相应处理能力的其他电子设备,本申请对此不作限制。
所述电子设备701与所述开播端702可以进行通信,所述通信可以是通过有线方式实现,例如数据传输线、光纤等等,也可以是通过无线方式实现,例如无线网络、蓝牙等等,本申请对具体通信方式不作限制。
与前述方法的实施例相对应,本申请还提供了一种电子设备,图7为本申请所提供的一种示例性电子设备的结构示意图。
如图8所示,本实施例提供的一种电子设备800,包括:处理器801、存储器802及存储在存储器802上并可在处理器801上运行的计算机程序,所述处理器执行所述程序时实现本申请前文的方法。该电子设备中的处理器801可以是一个或多个,图8中以一个处理器801为例,所述处理器可以包括GPU和CPU。所述电子设备中的处理器801和存储器802可以通过通信总线或其他方式连接,图8中以通过通信总线803连接为例。
本实施例中电子设备的处理器801中集成了上述实施例提供的基于虚幻引擎的背景透明装置。此外,该电子设备中的存储器802作为一种计算机可读存储介质,可用于存储一个或多个程序,所述程序可以是软件程序、计算机可执行程序以及模块,如本申请实施例中背景透明方法对应的程序指令/模块。处理器801通过运行存储在存储器802中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述方法实施例中背景透明方法。
存储器802可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器802可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器802可进一步包括相对于处理器802远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器801通过运行存储在存储器802中的程序,从而执行各种功能应用以及数据处理,实现本申请实施例提供的背景透明方法。
此外,本申请还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现前文所述的任一方法。
所述计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CDROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述计算机可读存储介质的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
上述装置可执行本申请前述所有实施例所提供的方法,具备执行上述方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请前述所有实施例所提供的方法。
本领域技术人员在考虑申请及实践这里申请的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种对图像背景进行透明处理的方法,其特征在于,所述方法由虚幻引擎执行,所述方法包括:
基于指定的触发信号,将目标对象的渲染结果写入所述虚幻引擎中可被跨进程访问的目标纹理,生成目标纹理句柄,其中,所述渲染结果的背景色为透明;
将所述目标纹理句柄写入到所述虚幻引擎中可被跨进程访问的内存,以供其他进程读取所述目标纹理句柄,并基于所述目标纹理句柄,访问虚幻引擎的所述目标纹理,生成包含目标对象且背景色为透明的图像。
2.根据权利要求1所述的方法,其特征在于,所述指定的触发信号为虚幻引擎的指定线程的更新信号,所述指定线程为客户端视口。
3.根据权利要求1所述的方法,其特征在于,所述目标对象的渲染结果,通过以下方式获取:
监听虚幻引擎的渲染进程的端口;
当确定所述渲染进程启动时,将场景捕捉二维组件所存储的渲染数据渲染到渲染目标资源,获得所述目标对象的渲染结果;
其中,所述场景捕捉二维组件和渲染目标资源在所述渲染进程启动之前关联创建,所述渲染目标资源的格式包含透明参数通道,所述场景捕捉二维组件所存储的渲染数据为包含所述目标对象且背景色为透明的图像的渲染数据。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在将目标对象的渲染结果写入所述虚幻引擎中可被跨进程访问的目标纹理的过程中,对所述目标对象的渲染结果进行高动态范围到低动态范围的色调转换;
其中,所述高动态范围的动态范围大于第一阈值,所述低动态范围的动态范围低于第二阈值。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在将目标对象的渲染结果写入所述虚幻引擎中可被跨进程访问的目标纹理的过程中,对所述渲染结果的透明参数通道和RGB通道的值进行指定方式的混合处理。
6.一种开播端对图像背景的透明处理方法,其特征在于,所述方法由开播端执行,所述方法包括:
访问虚幻引擎中可被跨进程访问的内存,获取目标纹理句柄,其中,所述目标纹理句柄是在基于指定的触发信号将目标对象的渲染结果写入所述虚幻引擎中可被跨进程访问的目标纹理的过程中生成的,所述渲染结果的背景色为透明;
基于所述目标纹理句柄,访问所述虚幻引擎中的所述目标纹理,生成包含目标对象且背景色为透明的图像。
7.一种对图像背景进行透明处理的装置,其特征在于,所述装置包括:
第一写入模块,用于基于指定的触发信号,将目标对象的渲染结果写入虚幻引擎中可被跨进程访问的目标纹理,生成目标纹理句柄,其中,所述渲染结果的背景色为透明;
第二写入模块,用于将所述目标纹理句柄写入到所述虚幻引擎中可被跨进程访问的内存,以供其他进程读取所述目标纹理句柄,并基于所述目标纹理句柄,访问所述目标纹理,生成包含目标对象且背景色为透明的图像。
8.一种直播系统,其特征在于,所述系统包括安装有虚幻引擎的电子设备和开播端;
其中,所述电子设备所安装的虚幻引擎,用于基于指定的触发信号,将目标对象的渲染结果写入所述虚幻引擎中可被跨进程访问的目标纹理,生成目标纹理句柄,其中,所述渲染结果的背景色为透明,并将所述目标纹理句柄写入到所述虚幻引擎中可被跨进程访问的内存;
所述开播端,用于从所述虚幻引擎中可被跨进程访问的内容中读取所述目标纹理句柄,并基于所述目标纹理句柄,访问所述虚幻引擎中的所述目标纹理,生成包含目标对象且背景色为透明的图像。
9.一种电子设备,其特征在于,所述电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至6任一项的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110083842.8A CN112929682B (zh) | 2021-01-21 | 2021-01-21 | 对图像背景进行透明处理的方法、装置、系统及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110083842.8A CN112929682B (zh) | 2021-01-21 | 2021-01-21 | 对图像背景进行透明处理的方法、装置、系统及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112929682A CN112929682A (zh) | 2021-06-08 |
CN112929682B true CN112929682B (zh) | 2023-03-24 |
Family
ID=76164112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110083842.8A Active CN112929682B (zh) | 2021-01-21 | 2021-01-21 | 对图像背景进行透明处理的方法、装置、系统及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112929682B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115225615B (zh) * | 2022-06-30 | 2024-02-23 | 如你所视(北京)科技有限公司 | 虚幻引擎像素流送方法及装置 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6295068B1 (en) * | 1999-04-06 | 2001-09-25 | Neomagic Corp. | Advanced graphics port (AGP) display driver with restricted execute mode for transparently transferring textures to a local texture cache |
WO2015052514A2 (en) * | 2013-10-08 | 2015-04-16 | Digimania Limited | Rendering composites/layers for video animations |
CN106062705A (zh) * | 2014-02-24 | 2016-10-26 | 微软技术许可有限责任公司 | 跨平台渲染引擎 |
CN106331850A (zh) * | 2016-09-18 | 2017-01-11 | 上海幻电信息科技有限公司 | 浏览器直播客户端、浏览器直播系统及浏览器直播方法 |
CN108399646A (zh) * | 2017-02-07 | 2018-08-14 | 腾讯科技(深圳)有限公司 | 一种图像渲染方法及装置 |
JP2019114035A (ja) * | 2017-12-22 | 2019-07-11 | 大日本印刷株式会社 | コンピュータプログラム、画像処理装置、画像処理方法及びボクセルデータ |
CN110047122A (zh) * | 2019-04-04 | 2019-07-23 | 北京字节跳动网络技术有限公司 | 渲染图像的方法、装置、电子设备和计算机可读存储介质 |
US10692288B1 (en) * | 2016-06-27 | 2020-06-23 | Lucasfilm Entertainment Company Ltd. | Compositing images for augmented reality |
CN111580988A (zh) * | 2020-04-29 | 2020-08-25 | 广州虎牙科技有限公司 | 开放平台的实现方法、装置、存储介质和计算机设备 |
CN111669646A (zh) * | 2019-03-07 | 2020-09-15 | 北京陌陌信息技术有限公司 | 透明视频的播放方法、装置、设备及介质 |
CN112035771A (zh) * | 2019-06-03 | 2020-12-04 | 阿里巴巴集团控股有限公司 | 基于web的摄像头数据绘制方法、装置及电子设备 |
-
2021
- 2021-01-21 CN CN202110083842.8A patent/CN112929682B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6295068B1 (en) * | 1999-04-06 | 2001-09-25 | Neomagic Corp. | Advanced graphics port (AGP) display driver with restricted execute mode for transparently transferring textures to a local texture cache |
WO2015052514A2 (en) * | 2013-10-08 | 2015-04-16 | Digimania Limited | Rendering composites/layers for video animations |
CN106062705A (zh) * | 2014-02-24 | 2016-10-26 | 微软技术许可有限责任公司 | 跨平台渲染引擎 |
US10692288B1 (en) * | 2016-06-27 | 2020-06-23 | Lucasfilm Entertainment Company Ltd. | Compositing images for augmented reality |
CN106331850A (zh) * | 2016-09-18 | 2017-01-11 | 上海幻电信息科技有限公司 | 浏览器直播客户端、浏览器直播系统及浏览器直播方法 |
CN108399646A (zh) * | 2017-02-07 | 2018-08-14 | 腾讯科技(深圳)有限公司 | 一种图像渲染方法及装置 |
JP2019114035A (ja) * | 2017-12-22 | 2019-07-11 | 大日本印刷株式会社 | コンピュータプログラム、画像処理装置、画像処理方法及びボクセルデータ |
CN111669646A (zh) * | 2019-03-07 | 2020-09-15 | 北京陌陌信息技术有限公司 | 透明视频的播放方法、装置、设备及介质 |
CN110047122A (zh) * | 2019-04-04 | 2019-07-23 | 北京字节跳动网络技术有限公司 | 渲染图像的方法、装置、电子设备和计算机可读存储介质 |
CN112035771A (zh) * | 2019-06-03 | 2020-12-04 | 阿里巴巴集团控股有限公司 | 基于web的摄像头数据绘制方法、装置及电子设备 |
CN111580988A (zh) * | 2020-04-29 | 2020-08-25 | 广州虎牙科技有限公司 | 开放平台的实现方法、装置、存储介质和计算机设备 |
Non-Patent Citations (1)
Title |
---|
基于OpenGL的虚拟校园漫游系统的设计与实现;岳俊梅;《计算机时代》;20071115(第11期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112929682A (zh) | 2021-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10110936B2 (en) | Web-based live broadcast | |
CN109600666B (zh) | 游戏场景中的视频播放方法、装置、介质以及电子设备 | |
US20220007083A1 (en) | Method and stream-pushing client for processing live stream in webrtc | |
CN116185743B (zh) | OpenGL接口的双显卡对比调试方法、装置及介质 | |
CN113079408B (zh) | 视频播放方法、装置和系统 | |
CN112511896A (zh) | 一种视频渲染方法及装置 | |
WO2023241459A1 (zh) | 数据通信方法、系统、电子设备和存储介质 | |
CN112929682B (zh) | 对图像背景进行透明处理的方法、装置、系统及电子设备 | |
US20140161173A1 (en) | System and method for controlling video encoding using content information | |
CN107580228B (zh) | 一种监控视频处理方法、装置及设备 | |
US20230412891A1 (en) | Video processing method, electronic device and medium | |
CN109859328B (zh) | 一种场景切换方法、装置、设备和介质 | |
CN110856033B (zh) | 一种对象显示方法、装置、终端及存储介质 | |
CN112367295B (zh) | 插件展示方法及装置、存储介质及电子设备 | |
CN111292392A (zh) | 基于unity的图像显示方法、装置、设备及介质 | |
CN110766599B (zh) | 一种利用Qt Quick绘制图像时防止出现白屏的方法及系统 | |
CN110876069A (zh) | 视频截图的获取方法、装置、设备及存储介质 | |
KR101970787B1 (ko) | 안드로이드 플랫폼 기반 듀얼 메모리를 이용한 비디오 디코딩 장치 및 방법 | |
CN114286163B (zh) | 一种序列图的录制方法、装置、设备及存储介质 | |
US9972064B1 (en) | Non-intrusive and low-power recording | |
CN110536076A (zh) | 一种Unity全景视频录制的方法及终端 | |
CN115599335B (zh) | 基于多屏模式下共享版式文件的方法及系统 | |
WO2022061723A1 (zh) | 一种图像处理方法、设备、终端及存储介质 | |
CN117173322A (zh) | 一种虚拟头像的渲染方法、装置、电子设备及存储介质 | |
CN117708454A (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 |