本申请涉及交互技术领域,尤其涉及一种图像处理方法及显示设备。
背景技术:
一般视频会议或者视频通话场景中,大多是显示设备通过显示对方的视频图像与本方的视频图像的方法进行多人通信,此交互过程中,双方通过显示屏幕上显示的多个视频图像了解视频状态。
为了提高视频过程中的沉浸感,衍生出一种新式的视频通信方法一虚拟通信,交互双方的发射端设备通过对摄像头采集的用户图像进行人物抠图处理,并为抠出的人物区域添加纯色背景,编码后发送给接收端设备;接收端设备对各个发送端设备发送的图像解码后,对纯色背景进行颜色值的替换,从各个图像中得到的人物模型,并将各个人物模型摆放到虚拟空间中的不同的位置处,使交互双方感觉像在同一个场景下中进行对话。
由于图像编码过程中,对人与背景边界处的像素点的颜色值进行了插值计算,导致边界处的像素点的颜色值存在失真,这样,接收端设备进行颜色替换时,会产生纯色背景的遗留,导致最后显示的图像中人物的周围就像增加了一个带有色彩的光圈一样,模糊不清,显示质量较差。
技术实现要素:
本申请提供了一种图像处理方法及显示设备,用以提高虚拟交互过程中图像的显示质量。
第一方面,本申请提供一种对图像进行处理的显示设备,包括:
所述显示器,与所述图形处理器连接,被配置为显示渲染后的图像;
所述存储器,与所述图形处理器连接,被配置为存储计算机程序指令;
所述图形处理器,被配置为根据所述计算机程序指令,执行以下操作:
从视频流中选取视频帧并解码,得到时间戳相同的第一图像和第二图像,所述第二图像与所述第一图像的分辨率相同,所述视频帧携带用户所在环境的光照类型;
根据所述光照类型,对所述第一图像进行滤光处理;
根据所述第一图像和所述第二图像,确定所述待渲染像素点的目标颜色值;
根据所述待渲染像素点的目标颜色值,渲染所述用户在虚拟空间对应的人物模型,并显示渲染后的图像。
第二方面,本申请提供一种对图像进行处理的显示设备,包括摄像头、存储器、图形处理器:
所述摄像头,与所述图形处理器连接,被配置为采集图像;
所述存储器,与所述图形处理器连接,被配置为存储计算机程序指令;
所述图形处理器,被配置为根据所述计算机程序指令,执行以下操作:
采集视频交互过程中用户的第一图像;
根据所述第一图像,识别所述用户所在环境的光照类型;
对所述第一图像进行人物抠图处理,根据抠出的人物区域生成所述用户的第二图像,所述第二图像与所述第一图像的分辨率相同;
对所述第一图像和所述第二图像进行编码,得到编码后的视频帧并发送给接收端,编码后的视频帧携带所述用户所在环境的光照类型。
第三方面,本申请提供一种图像处理方法,包括:
从视频流中选取视频帧并解码,得到时间戳相同的第一图像和第二图像,所述第二图像与所述第一图像的分辨率相同,所述视频帧携带用户所在环境的光照类型;
根据所述光照类型,对所述第一图像进行滤光处理;
根据所述第一图像和所述第二图像,确定所述待渲染像素点的目标颜色值;
根据所述待渲染像素点的目标颜色值,渲染所述用户在虚拟空间对应的人物模型,并显示渲染后的图像。
第四方面,本申请提供一种图像处理方法,包括:
采集视频交互过程中用户的第一图像;
根据所述第一图像,识别所述用户所在环境的光照类型;
对所述第一图像进行人物抠图处理,根据抠出的人物区域生成所述用户的第二图像,所述第二图像与所述第一图像的分辨率相同;
对所述第一图像和所述第二图像进行编码,得到编码后的视频帧并发送给接收端,编码后的视频帧携带所述用户所在环境的光照类型。
第五方面,本申请实施提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行本申请实施例中的图像处理方法。
本申请的上述实施例中,从视频流中选取视频帧并解码,得到时间戳相同的第一图像和第二图像,并根据视频帧携带的用户所在环境的光照类型,对第一图像进行滤光处理,由于视频交互过程中不同用户所在的环境不同,滤光处理可以减少环境光对第一图像的影响;再根据第一图像和第二图像,确定待渲染像素点的目标颜色值,根据待渲染像素点的目标颜色值,渲染用户在虚拟空间对应的人物模型,并显示渲染后的图像,由于是根据第一图像和第二图像确定的待渲染像素点的目标颜色值,相对于直接对解码后的第二图像进行颜色值的替换,可以减少人物与背景边界处像素点的颜色值的影响,从而提高虚拟交互过程中图像的显示质量。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1a示例性示出了相关技术中图像处理方法示意图;
图1b示例性示出了本申请实施例提供的图像处理方法示意图;
图2示例性示出了本申请实施例提供的应用场景示意图;
图3示例性示出了本申请实施例提供的一种图像处理方法的流程图;
图4示例性示出了本申请实施例提供的确定人物位置信息示意图;
图5示例性示出了本申请实施例提供的一种图像处理方法的流程图;
图6a示例性示出了本申请实施例提供的渲染显示过程示意图;
图6b示例性示出了本申请实施例提供的人物模型调整示意图;
图7示例性输出了本申请实施例提供的完整的图像处理过程示意图;
图8示例性示出了本申请实施例提供的完整的图像处理方法的流程图;
图9示例性示出了本申请实施例提供的一种显示设备的结构功能图;
图10示例性示出了本申请实施例提供的一种显示设备的结构功能图;
图11示例性示出了本申请实施例提供的一种显示设备的硬件结构图。
具体实施方式
为使本申请的目的、实施方式和优点更加清楚,下面将结合本申请示例性实施例中的附图,对本申请示例性实施方式进行清楚、完整地描述,显然,所描述的示例性实施例仅是本申请一部分实施例,而不是全部的实施例。
基于本申请描述的示例性实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请所附权利要求保护的范围。此外,虽然本申请中公开内容按照示范性一个或几个实例来介绍,但应理解,可以就这些公开内容的各个方面也可以单独构成一个完整实施方式。
本申请中说明书和权利要求书及上述附图中的术语〞第一″、〞第二″等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另外注明(unlessotherwiseindicated)。应该理解这样使用的用语在适当情况下可以互换,例如能够根据本申请实施例图示或描述中给出那些以外的顺序实施。
需要说明的是,本申请中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本申请的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。
此外,术语〞包括″和〞具有″以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的那些组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
本申请中使用的术语〞模块″,是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相关的功能。
基于虚拟空间的交互方式,需要对视频交互过程中采集的图像进行抠图处理,由于抠图处理是一个相对比较耗时的处理过程,同时,对每一视频帧都需要进行抠图处理,如果由接收端设备进行抠图处理,当视频通话中接入的人员较多时,需要同时对多个视频源进行抠图处理,对接收端中央处理器(centralprocessingunit,cpu)的性能要求较高。然而,视频交互过程中使用的终端大多为手机或者电视等,芯片处理能力有限,无法做到同时对多路视频流进行实时抠图处理。
因此,通常由发送端设备进行抠图处理后通过视频流传输,由接收端从视频流接收的视频帧进行渲染并显示。具体的,如图1a所示,发送端设备通过对摄像头采集的每一视频帧(原始图像)进行抠图处理,然后为抠出的人物添加纯色背景后进行编码传输,接收端设备通过对添加的纯色背景进行颜色替换,得到用于渲染采样的人物图像。由于接收端设备在渲染采样时,无法去掉由编码过程造成的人物四周失真的颜色值,导致显示后的人物四周存在彩色边框,显示效果较差,影响用户体验。并且,由于需要将视频交互过程的多个人物模型放置于同一场景的虚拟环境空间,由于视频通话的用户所在的环境各不相同,导致采集的图像中人物的光照类型不统一,融合在同一个场景中后,看起来不协调。
同时,由于用户距离发送端设备的远近不同,导致采集的人物大小不一,无法与虚拟空间中的物体(如椅子)大小所匹配,影响用户体验。
需要说明的是,发送端设备和接收端设备统称为显示设备,显示设备包括但不限于智能手机、笔记本电脑、平板、智能电视、可穿戴设备。发送端设备和接收端设备是相对而言的。例如,用户a和用户b进行视频通话,用户a使用显示设备1,用户b使用显示设备2,对于用户a来讲,显示设备2作为发送端设备,显示设备1作为接收端设备,对于用户b来讲,显示设备1作为发送端设备,显示设备2作为接收端设备。
基于上述分析,本申请实施例提供一种图像处理方法及显示设备。发送端设备根据摄像头采集的视频交互过程中用户的原始图像,识别用户所在环境的光照类型,以及对原始图像进行抠图处理,根据抠出的人物区域生成分辨率相同的掩码图像,并确定该用户在掩码图像中的位置信息,并将识别的光照类型和位置信息编码到视频帧中,并通过视频流发送视频帧,接收端设备从视频流中选取视频帧并解码,得到时间戳相同的原始图像和掩码图像,根据视频帧携带的用户所在环境的光照类型,对原始图像进行滤光处理,减少环境光对原始图像的影响;进一步地,接收端设备根据解码后得到的原始图像和掩码图像,进行虚拟空间中人物模型的渲染及显示,由于是从原始图像和掩码图像中获取待渲染像素点的颜色值,从而可以去掉掩码图像中添加的纯色背景,提高虚拟交互过程中图像的显示质量。
同时接收端设备根据视频帧携带的用户在掩码图像中的位置信息,调整渲染后图像中该用户对应的人物模型的位置及大小,使之与虚拟空间中的物体适配,使得渲染的画面更加协调,提高用户体验。
图1b示例性示出了本申请实施例提供的整体方案示意图。如图1b所示,针对发送端设备采集的每一视频帧(原始图像),都生成对应的掩码图像,对原始图像和掩码图像进行编码后发送给接收端设备;接收端设备解码后得到时间戳相同的原始图像和掩码图像,根据原始图像和掩码图像融合渲染虚拟空间中对应的人物模型。
需要说明的是,本申请实施例中的原始图像也称为第一图像,掩码图像也称为第二图像。
下面结合附图详细描述本申请的实施例。
图2示例性示出了本申请实施例提供的应用场景示意图。以图2所示的场景为例,用户a、用户b、用户c正在进行一场视频会议,其中,用户a正在高铁上使用显示设备(平板)100_1参与视频会议,用户b正在施工现场使用显示设备(手机)100_2参与视频会议,用户c正在办公室使用显示设备(笔记本电脑)100_3参与视频会议,显示设备100_1~100_3通过互联网进行通信。由于三者所处的环境不同,采集第一图像的光照类型不同,但同为一个视频会议的参与者,可为其创建一个会议场景中的虚拟空间,该虚拟空间中配有会议桌和会议椅,将用户a、用户b、用户b放置在相应的会议椅上,由各自使用的显示设备进行渲染显示,从而提高三者在同一会议场景进行交谈的沉浸感。
图3示例性示出了本申请实施例提供的一种图像处理方法的流程图。如图3所示,该流程由发送端设备执行,主要包括以下几步:
s301:采集视频交互过程中用户的第一图像。
该步骤中,发送端设备响应视频通话请求,开启摄像头,采集视频过程中用户的第一图像。
以图2所示的场景为例,平板100_1开启其摄像头,采集用户a的第一图像,平板100_2开启其摄像头,采集用户b的第一图像,笔记本电脑100_3,采集用户c的第一图像。
s302:根据第一图像,识别用户所在环境的光照类型。
该步骤中,采用机器学习算法识别第一图像,确定用户所在环境的光照类型,深度学习算法包括但不限于支持向量机(supportvectormachine,svm)算法、最近邻结点(k-nearestneighbor,knn)算法、聚类算法(k-means)。
其中,光照类型包括自然光、白炽光、led灯光等。可选的,每一光照类型可以键值对(类型:值)的形式进行记录。
比如,lighttype:0表示识别到的第一图像的光照类型为自然光。
s303:对第一图像进行人物抠图处理,根据抠出的人物区域生成用户的第二图像。
该步骤中,可使用人像抠图算法(比如边缘检测算法)对第一进行人物抠图处理,在进行抠图处理后,可以很容易得到人物的轮廓,该人物轮廓的外接矩形围成的区域标记为人物区域,也可使用其他不规则图形标记人物区域,根据抠出的人物区域,生成与第一图像的分辨率相同的第二图像。其中,第二图像由黑白灰三色组成,当像素点的颜色值中透明度分量取值为不透明取值(不透明取值等于1)时,显示为黑色,当像素点的颜色值中透明度分量取值为透明取值(透明取值等于0)时,显示为白色,当像素点的颜色值中透明度分量取值为半透明取值(半透明取值大于0小于1)时,显示为灰色。为了减少编码传输时的损失,本申请实施例中将第二图像中的人物区域设置为白色,其他区域设置为黑色。
在另一些实施例中,也可使用已有的抠图工具对第一图像进行抠图处理。
可选的,得到第二图像后,确定用户在第二图像中的位置信息,位置信息包括人物区域的参考点坐标以及人物区域的宽度和/或高度。
如图4所示,以第二图像的左上角顶点为uv坐标原点,以u轴正向为右,以v轴正向为下,确定人物区域的参考点p的坐标(u,v)为(10,20)像素,人物区域的宽度w为50像素,人物区域的高度h为100像素。
s304:对第一图像和第二图像进行编码,得到编码后的视频帧并发送给接收端设备。
该步骤中,可采用h264或h265协议对第一图像和第二图像进行编码。h264或h265协议分为视频编码层(videocodinglayer,vcl)和网络抽象层(networkabstractionlayer,nal),其中,vcl主要负责传递视频载荷,nal主要负责格式化图像数据,并在网络上传输。nal由多个nal单元(nalunit)组成,nalu主要是为视频提供补充增强信息(supplementalenhancementinformation,sei),补充内容以字符串形式组成。
在一些实施例中,可采用h264或h265协议,分别对第一图像和第二图像进行编码,得到第一视频帧和第二视频帧,将第一视频帧和第二视频帧通过视频流发送给接收端设备。具体实施时,可将第一视频帧通过第一视频流发送给接收端设备,将第二视频帧通过第二视频流发送给接收端设备,或者,将第一视频帧通过第三视频流的第一个通道发送给接收端设备,将第二视频帧通过第三视频流的第二个通道发送给接收端设备。
例如,第一图像编码为h264格式,第二图像也编码为h264格式,采用网页即时通信(webreal-timecommunication,webrtc)进行视频传输时,将第一视频帧和第二视频帧通过两路视频流传输给接收端,与其他接收端进行webrtc。
在s304中,编码后的视频帧携带用户所在环境的光照类型。例如,将s302识别的第一图像的光照类型编码到第一视频帧的sei中,使得第一视频帧携带用户所在环境的光照类型。
可选的,编码后的视频帧携带用户在第二图像中的位置信息。例如,将该用户在第二图像中的位置信息编码到第二视频帧的sei中,使得第二视频帧携带用户在第二图像中的位置信息。
需要说明的是,本申请实施例对光照类型和位置信息的写入位置不做限制性要求,比如,还可以将用户所在环境的光照类型以及用户在第二图像中的位置信息都写入第二视频帧中。
在另一些实施例中,还可先对第一图像和第二图像进行拼接,得到拼接图像,然后对拼接图像进行编码,得到第三视频帧,并将第三视频帧通过第四视频流发送给接收端设备。
此时,可将用户所在环境的光照类型以及用户在第二图像中的位置信息都写入第三视频帧中,使得所述第三视频帧携带用户所在环境的光照类型以及用户在第二图像中的位置信息。
图5示例性示出了本申请实施例提供的一种图像处理方法的流程图。如图5所示,该流程由接收端设备执行,主要包括以下几步:
s501:从视频流中选取视频帧并解码,得到时间戳相同的第一图像和第二图像。
该步骤中,接收端设备根据发送端设备发送视频帧的方式选取视频帧。具体的,当发送端通过第一视频流发送第一视频帧,通过第二视频流发送第二视频帧时(即发送端设备通过两路视频流发送视频帧),接收端设备根据时间戳信息,从两路视频流中选取时间戳相同的第一视频帧和第二视频帧,利用发送端设备对第一图像和第二图像编码的协议(比如h264或h265),分别对第一视频帧和第二视频帧进行解码,得到时间戳信息相同的第一图像和第二图像。当发送端设备通过第三视频流的第一通道发送第一视频帧,通过第二通道发送第二视频帧(即发送端设备通过一路视频流的两个通道发送视频帧)时,接收端设备从第一通道和第二通道中选取时间戳相同的第一视频帧和第二视频帧,利用发送端设备对第一图像和第二图像编码的协议(比如h264或h265),分别对第一视频帧和第二视频帧进行解码,得到时间戳信息相同的第一图像和第二图像。当发送端设备通过一路视频流发送第一图像和第二图像的拼接后的第三视频帧时,直接对选取第三视频帧进行解码,利用发送端设备对第一图像和第二图像拼接后的图像的编码协议(比如h264或h265),对第三视频帧进行解码,得到时间戳信息相同的第一图像和第二图像。
由图3的流程可知,第二图像与第一图像的分辨率相同,视频帧携带用户所在环境的光照类型。比如,发送端设备对采集的第一图像进行编码时,将识别的用户所在环境的光照类型编码到了第一视频帧的sei中,这样,第一视频帧携带用户所在环境的光照类型,因此,接收端设备对第一视频帧进行解码后,得到的第一图像中用户所在环境的光照类型。光照类型的描述参见前述实施例,在此不再重复。
在另一些实施例中,发送端设备第一图像和第二图像进行拼接后进行编码,将识别的用户所在环境的光照类型编码到了第三视频帧的sei中,这样,第三视频帧携带用户所在环境的光照类型,因此,接收端设备对第三视频帧进行解码后,得到的第一图像中用户所在环境的光照类型。
s502:根据光照类型,对第一图像进行滤光处理。
该步骤中,在多人通话过程中,由于每个用户所在的环境不同,导致发送端设备采集的第一图像的光照类型不同,若直接根据采集的第一图像进行颜色值采样,渲染后的各个人物模型看起来很不协调,影响用户体验。因此,可根据光照类型对第一图像进行环境光过滤。具体的,根据视频帧携带的光照类型,确定颜色值中各个颜色分量的权重系数,生成过滤矩阵,将过滤矩阵与第一图像中像素点的颜色值矩阵相乘,得到滤光处理后的第一图像。一般的,通常采用颜色饱和度矩阵对图像的颜色值进行过滤处理,颜色饱和度矩阵如下:
其中,各个对角线上的元素值分别对应颜色值中红色(r)、绿色(g)、蓝色(b)、透明度(a)分量的权重系数,最后一列为亚元列,用于对某个分量进行调整。其中权重系数越小,过滤掉该权重系数对应的颜色分量越多,即越能消除该颜色分量对图像中人物颜色的影响。
例如,颜色饱和度矩阵
以第一视频帧携带用户所在环境的光照类型为例,发送端设备100_2识别到用户b的第一图像的光照类型为白炽光,也就是说,第一视频帧的sei中lighttype的值为1,则接收端设备对白炽光进行过滤,去掉白炽灯的照明效果。而白炽光下采集的第一图像偏黄,因此,可使用减少黄色的过滤矩阵与第一图像相乘,得到滤光处理后的第一图像。由于黄色为红色和绿色混合而成,因此,使用的过滤矩阵如下:
该过滤矩阵可以将原始的颜色值中的r分量和g分量的值变为原来的0.5倍。
在一些实施例中,也可根据虚拟空间中的场景对第一图像进行二次过滤。
再例如,虚拟空间中的会议场景为自然光,滤掉用户b对应的第一图像中黄色光后,再将第一图像与自然光的过滤矩阵相乘,得到与虚拟空间中会议场景的颜色度相匹配的第一图像。
s503:根据第一图像和第二图像,确定待渲染像素点的目标颜色值。
该步骤中,针对每一视频帧中的每个待渲染像素点,首先,根据预先创建的待渲染网格中各个网格的uv坐标确定待渲染像素点的uv坐标,根据待渲染像素点的uv坐标,从第一图像中获取待渲染像素点的第一颜色值,以及从第二图像中获取待渲染像素点的第二颜色值,进一步地,判断第一颜色值与设定的颜色阈值的大小,若第二颜色值小于等于设定的颜色阈值,则将第一颜色值中的透明度分量设置为透明取值(比如设置为0,1表示不透明取值),得到目标颜色值,否则,将第一颜色值确定为目标颜色值。
例如,如图6a所示,根据待渲染像素点q3的∪v坐标,从第一图像中获取到q1的第一颜色值,从第二图像中获取到q2的第二颜色值,经判断,第二颜色值小于设定的颜色阈值,则将第一颜色值中的透明度分量的取值设置为0,得到第一目标颜色值;根据待渲染像素点q5的uv坐标,从第一图像中获取到q3的第一颜色值,从第二图像中获取到q4的第二颜色值,经判断,第二颜色值大于设定的颜色阈值,则将第一颜色值设置为第二目标颜色值。
s504:根据待渲染像素点的目标颜色值,渲染用户在虚拟空间对应的人物模型,并显示渲染后的图像。
该步骤中,针对每一视频帧,根据该视频帧中各个待渲染像素点的目标颜色值,渲染各个用户在虚拟空间中对应的人物模型,并显示渲染后的图像。
例如,用户a使用的显示设备100_1,根据接收的显示设备100_2发送的第一视频帧和第二视频帧,解码后得到用户b的第一图像和第二图像,根据用户b的第一图像和第二图像确定待渲染像素点的目标颜色值,根据各个待渲染像素点的目标颜色值渲染用户b在虚拟空间中的人物模型,显示设备100_1根据接收的显示设备100_3发送的第一视频帧和第二视频帧,解码后得到用户c的第一图像和第二图像,根据用户c的第一图像和第二图像确定待渲染像素点的目标颜色值,根据各个待渲染像素点的目标颜色值渲染用户c在虚拟空间中的人物模型,显示设备100_1根据其自身采集的用户a的第一图像以及生成的第二图像,确定待渲染像素点的目标颜色值,根据各个待渲染像素点的目标颜色值渲染用户a在虚拟空间中的人物模型。
需要说明的是,本申请实施例还可以先根据第一图像和第二图像,渲染用户在虚拟空间对应的人物模型,得到渲染后的图像,然后根据光照类型,对渲染后的图像进行滤光处理。
本申请的上述实施例中,根据视频帧携带的用户所在环境的光照类型,对第一图像进行滤光处理,减少环境光对原始图像的影响,使得根据第一图像对人物图像进行渲染采样时,各个人物模型与虚拟空间中的场景更加协调;根据待渲染像素点的uv坐标从第一图像和第二图像中获取颜色值,实现第一图像和第二图像的融合渲染显示,消除了第二图像中人物轮廓与背景区域交界处,由于图像编码造成的颜色值残留对渲染图像的影响,提高虚拟交互过程中图像的显示质量。
由于用户距离发送端设备的远近不同,导致采集的人物大小不一,无法与虚拟空间中的物体(如椅子)大小所匹配。
可选的,编码后的视频帧携带用户在第二图像中的位置信息,位置信息包括用户在第二图像中的人物区域的参考点坐标、人物区域的宽度或高度,接收端设备根据位置信息,对渲染后的图像中用户的人物模型进行调整。调整内容如下:
(1)调整人物模型的位置
以发送端设备发送的第二视频帧携带用户在第二图像中的位置信息,接收端设备根据位置信息,确定人物模型的中心点坐标,并根据中心点坐标以及预设的人物模型的头部大小,确定人物模型在相应方向的移动距离。其中,人物模型的头部大小可根据虚拟空间中参照物体的大小预先设置。
具体的,根据参考点p的u坐标以及人物区域的宽度w,确定人物模型中心点的u坐标(公式为:w/2 u);或者,根据参考点p的v坐标以及人物区域的高度h,确定人物模型中心点的v坐标(公式为:h/2 v)。
以图4所示的数据为例,假设虚拟场景中会议椅的宽度为80像素,高度为80像素,预设人物模型的头部大小为40/2=20像素,其中,参考点p的uv坐标为(10,20),w=40,h=60,则计算得到的中心点的u坐标为:40/2 10=30;或者,中心点的v坐标为:60/2 20=50。
进一步地,根据渲染后的图像的横向分辨率确定人物模型的理论u坐标,以及,根据渲染后的图像的纵向分辨率确定人物模型的头部理论v坐标,并根据中心点坐标中的u坐标与人物模型的理论u坐标的大小,确定人物模型的横向移动距离,以及根据人物模型的头部理论v坐标与预设的头部大小,确定人物模型的纵向移动距离。
例如,仍以图4为例,假设渲染显示后的图像的横纵分辨率为640*480(像素),则人物模型的理论u坐标为640/2=320,人物模型的横向移动距离为人物模型的理论u坐标减去中心点坐标中的u坐标,即320-(40/2 10)=290,由于差值大于0,即向右移动290个像素单位,人物模型的头部理论v坐标为480/2-(40/2)=220,人物模型的纵向移动距离为人物模型的头部理论v坐标减去预设的头部大小,即220-20=200,由于差值大于0,即向下移动200个像素单位。
在另一些实施例中,还可根据渲染后的图像的纵向分辨率确定人物模型的理论v坐标,根据渲染后的图像的横向分辨率确定人物模型的头部理论u坐标,并根据中心点坐标中的v坐标与人物模型的理论v坐标的大小,确定人物模型的纵向移动距离,以及根据人物模型的头部理论u坐标与预设的头部大小,确定人物模型的横向移动距离。
例如,仍以图4为例,假设渲染显示后的图像的横纵分辨率为640*480(像素),则人物模型的理论v坐标为480/2=240,人物模型的纵向移动距离为240-(60/2 20)=190,由于差值大于0,即向下移动190个像素单位,人物模型的头部理论u坐标为640/2-(40/2)=300,人物模型的横向移动距离为300-20=280,由于差值大于0,即向右移动280个像素单位。
(2)调整人物模型的大小
以发送端设备发送的第二视频帧携带的位置信息为例,根据位置信息中人物区域的宽度或高度,对虚拟空间中的人物模型的大小进行缩放。
具体的,根据位置信息中人物区域的宽度,与虚拟空间中参考物的预设宽度的比例,调整人物模型的大小。
例如,仍以图4为例,虚拟空间中会议椅的宽度为80,是人物区域的宽度的2倍,因此,将渲染后的人物模型放大2倍,以使其与虚拟空间中的物体大小相匹配。
在另一些实施例中,根据位置信息中人物区域的高度,与虚拟空间中参考物的预设高度的比例,调整人物模型的大小。
例如,仍以图4为例,虚拟空间中会议椅的高度为80,是人物区域的高度的1.3倍,因此,将渲染后的人物模型放大1.3倍,以使其与虚拟空间中的物体大小相匹配。
图6b示例性示出了本申请实施例提供的人物模型的调整过程示意图。调整前,人物模型在图6b中的位置用虚线表示,未能正确放置在虚拟空间的会议椅上,且相对于会议椅的大小,人物模型偏小,因此,需要进行移动和放大的调整。调整后,人物模型在图6b中的位置用实线表示,其正确的放置于会议椅上,且大小与会议椅相匹配。
需要说明的是,上述实施例仅以第二视频帧携带用户在第二图像中的位置信息为例进行的描述,对于第一视频帧或第三视频帧携带的用户在第二图像中的位置信息的情况,同样适用上述调整方式。
本申请的上述实施例中,通过视频帧中携带的位置信息,对人物模型进行水平方向或垂直方向的运动,使其能够准确放置于虚拟空间中,并且,还对人物模型的大小进行了调整,使其与虚拟空间中的物体大小相匹配,使整个视频画面看起来更加协调,提升用户体验。
需要说明的是,在渲染显示时,接收端设备的摄像头可以采集本用户的原始图像,抠图后生成本用户的掩码图像,根据本用户的原始图像和掩码图像,渲染本用户在虚拟空间中的人物模型。
本申请的实施例中,以对一个视频帧的处理为例,图7示例性输出了本申请实施例提供的完整的图像处理过程示意图。如图7所示,由发送端设备采集视频通话过程中用户的第一图像(原始图像),并进行人物抠图,根据抠出的人物区域生成第二图像(掩码图像),经过编码器编码后,得到第一视频帧和第二视频帧,通过视频流发送给接收端设备;接收端设备的解码器对从视频流中接收的第一视频帧和第二视频帧进行解码,得到第一图像和第二图像,像素着色器从第一图像和第二图像中获取待渲染像素点的颜色值,并根据确定的待渲染像素点的目标颜色值对虚拟空间中的人物模型进行渲染。详细流程参见图8。
图8示例性示出了本申请实施例提供的图像处理方法的完整流程图。如图8所示,该流程主要包括以下几步:
s801:发送端设备采集视频交互过程中第一用户的第一图像。
该步骤中,响应视频通话请求,发送端设备开启摄像头,采集第一用户的第一图像。
s802:发送端设备根据第一用户的第一图像,识别第一用户所在环境的光照类型。
该步骤的详细描述参加s302,在此不再重复。
s803:发送端设备对第一图像进行人物抠图处理,根据抠出的人物区域生成第一用户的第二图像,并确定第一用户在第二图像中的位置信息。
该步骤中,在不影响本申请实施例实质内容的基础上,本申请实施例对抠图处理的方法不做限制性要求,可以使用抠图算法进行人物抠图,也可使用现有的抠图工具进行人物抠图,具体描述参见s303,在此不再重复。
s804:发送端设备对第一用户的第一图像和第二图像进行编码,得到第一视频帧和第二视频帧,第一视频帧携带第一用户所在环境的光照类型,第二视频帧携带第一用户在第二图像中的位置信息。
该步骤中,第二图像的分辨率与第一图像相同,编码器可采用h264或h265协议对第一图像和第二图像进行编码,将第一用户所在环境的光照类型写入第一视频帧的sei中,将第一用户在第二图像中的位置信息写入第二视频帧的sei中。具体参见前述参见s304,在此不再重复。
s805:发送端设备通过视频流将第一用户的第一视频帧和第二视频帧发送给接收端设备。
该步骤中,第一视频帧和第一视频帧可以以两路视频流分别传输,也可以由一路视频流的两个通道进行传输,具体可根据实际的传输协议进行设置。具体描述参见s304,在此不再重复。
s806:接收端设备从视频流中选取时间戳相同的第一视频帧和第二视频帧并分别解码,得到第一用户的第一图像和第二图像。
该步骤中,为了第一图像中的人物和第二图像中的人物相对应,应从视频流中选取时间戳相同的第一视频帧和第二视频帧,解码器解码后得到第一图像和第二图像。由编码过程可知,第一视频帧携带第一用户所在环境的光照类型,第二视频帧携带第一用户在第二图像中的位置信息。具体描述参见s501,在此不再重复。
s807:接收端设备根据第一视频帧携带的光照类型,对第一用户的第一图像进行滤光处理。
该步骤中,可使用颜色饱和度矩阵对第一图像的颜色值进行过滤处理。具体的,根据第一视频帧携带的光照类型,确定颜色值中各个颜色分量的权重系数,生成过滤矩阵,将过滤矩阵与第一图像中像素点的颜色值矩阵相乘,得到滤光处理后的第一图像,从而减少环境光对第一图像色彩的影响,以使渲染后的人物色彩更加协调。具体描述参见s502,在此不再重复。
s808:接收端设备根据待渲染像素点的uv坐标,从第一用户的第一图像中获取待渲染像素点的第一颜色值,以及从第一用户的第二图像中获取待渲染像素点的第二颜色值。
该步骤中,渲染引擎预先创建待渲染网格,经光栅化生成各个片元,并根据网格顶点的uv坐标插值得到各片元的uv坐标,每个片元对应一个待渲染的像素点,根据待渲染像素点的uv坐标,从第一图像中获取第一颜色值,以及从第二图像中获取第二颜色值。
s809:接收端设备判断第二颜色值是否不大于设定的颜色阈值,若是,执行s810,否则,执行s811。
该步骤中,接收端设备根据第二颜色值与设定的颜色阈值的大小,确定待渲染像素点的目标颜色值。具体描述参见s503,在此不再重复。
s810:接收端设备将第一颜色值中的透明度分量设置为透明取值,得到目标颜色值。
该步骤中,第二颜色值不大于设定的颜色阈值,表明待渲染像素点位于背景区域,因此,可将第一颜色值中的透明度分量设置为透明取值,实现透明效果。
s811:接收端设备将第一颜色值确定为目标颜色值。
该步骤中,第二颜色值大于设定的颜色阈值,表明待渲染像素点位于人物区域,因此,将第一颜色值确定为目标颜色值。
s812:接收端设备根据待渲染像素点的目标颜色值,渲染第一用户在虚拟空间对应的人物模型。
s813:接收端设备根据第二视频帧携带的用户在第二图像中的位置信息,调整第一用户的人物模型的位置和大小。
该步骤中,位置信息包括人物区域的参考点坐标以及人物区域的宽度和/或高度,根据位置信息可以确定人物模型中心点的uv坐标结合渲染图像的横纵分辨率以及预设的人物模型的头部大小,确定人物模型的移动距离,以及结合虚拟空间中物体的大小,对人物模型进行缩放调整。具体调整方式参见前述实施例,在此不再重复。
s814:接收端设备采集第二用户的第一图像,识别第二用户所在环境的光照类型,经抠图处理后,根据抠出的人物区域生成第二用户的第二图像,并确定第二用户在第二图像中的位置信息。
该步骤中,由于接收端设备同样具有摄像头,可以采集第二用户的图像,并对采集的第二用户的第一图像进行抠图处理。具体描述参见s302~s303,在此不再重复。
s815:接收端设备根据第二用户所在环境的光照类型,对第二用户的第一图像进行滤光处理。
该步骤中滤光处理方式参见s502,在此不再重复。
s816:接收端设备根据第二用户的第一图像和第二图像,渲染虚拟空间中第二用户的人物模型并显示渲染后的图像。
该步骤中,接收端根据待渲染像素点的uv坐标,从第二用户的第一图像中获取第三颜色值以及从第二图像中获取第四颜色值,将第四颜色值与设定颜色阈值进行比较,若第四颜色值小于等于设定颜色阈值,表明待渲染像素点位于背景区域,因此,可将第三颜色值中的透明度分量设置为透明取值,实现透明效果;若第四颜色值大于设定颜色阈值,表明待渲染像素点位于人物区域,因此,将第三颜色值确定为目标颜色值,进一步地,根据待渲染像素点的目标颜色值,渲染虚拟空间中第二用户的人物模型,并根据第二用户在第二图像中的位置信息,调整第二用户对应的人物模型的位置和大小。具体调整方式参见前述实施例,在此不再重复。
在一些实施例中,执行s804时,发送端设备可先对第一用户的第一图像和第二图像进行拼接,得到拼接图像,在对拼接图像进行编码,得到第三视频帧,第三视频帧携带第一用户所在环境的光照类型以及第一用户在第二图像中的位置信息。此时,在s806中,接收端设备从视频流接收第三视频帧并解码,得到时间戳相同的第一图像和第二图像。
基于相同的技术构思,本申请实施例提供一种显示设备,该显示设备可以实现前述实施例图3中的图像显示方法,且能达到相同的技术效果,在此不再赘述。
参见图9,该显示设备包括采集模块901、识别模块902、处理模块903、编码模块904、发送模块905;
采集模块901,用于采集视频交互过程中用户的第一图像;
识别模块902,用于根据第一图像,识别用户所在环境的光照类型;
处理模块903,用于对第一图像进行人物抠图处理,根据抠出的人物区域生成用户的第二图像,第二图像与第一图像的分辨率相同;
编码模块904,用于对第一图像和第二图像进行编码,得到编码后的视频帧,编码后的视频帧携带用户所在环境的光照类型;
发送模块905,用于通过视频流将编码后的视频帧发送给接收端。
可选的,编码模块904具体用于:
分别对第一图像和第二图像进行编码,得到第一视频帧和第二视频帧;
发送模块905具体用于:
将第一视频帧通过第一视频流发送给接收端,以及将第二视频帧通过第二视频流发送给接收端;或者
分别对第一图像和第二图像进行编码,得到第一视频帧和第二视频帧,将第一视频帧通过第三视频流的第一通道发送给接收端,以及将第二视频帧通过第三视频流的第二通道发送给接收端;
处理模块903,还用于对第一图像和第二图像进行拼接,得到拼接图像;
编码模块904具体用于:对拼接图像进行编码,得到第三视频帧;
发送模块905具体用于:将第三视频帧通过第四视频流发送给接收端。
可选的,处理模块903还用于确定用户在第二图像中的位置信息,并将位置信息写入编码后的视频帧,位置信息包括人物区域的参考点坐标以及人物区域的宽度或高度。
基于相同的技术构思,本申请实施例提供一种显示设备,该显示设备可以实现前述实施例图5中的图像显示方法,且能达到相同的技术效果,在此不再赘述。
参见图10,该显示设备包括接收模块1001、解码模块1002、处理模块1003、渲染显示模块1004;
接收模块1001,用于从视频流中选取视频帧;
解码模块1002,用于对选取的视频帧进行解码,得到时间戳相同的第一图像和第二图像,第二图像与第一图像的分辨率相同,视频帧携带用户所在环境的光照类型;
处理模块1003,用于根据光照类型,对第一图像进行滤光处理;根据第一图像和第二图像,确定待渲染像素点的目标颜色值;
渲染显示模块1004,用于根据待渲染像素点的目标颜色值,渲染用户在虚拟空间对应的人物模型,并显示渲染后的图像。
可选的,处理模块1003,具体用于:
根据待渲染像素点的uv坐标,从第一图像中获取待渲染像素点的第一颜色值,以及从第二图像中获取待渲染像素点的第二颜色值;
若第二颜色值小于等于设定的颜色阈值,则将第一颜色值中的透明度分量设置为透明取值,得到目标颜色值;或者
若第二颜色值大于设定的颜色阈值,则将第一颜色值确定为目标颜色值。
可选的,处理模块1003,具体用于:
根据光照类型,确定颜色值中各个颜色分量的权重系数,生成过滤矩阵;
将过滤矩阵与第一图像中像素点的颜色值矩阵相乘,得到滤光处理后的第一图像。
可选的,视频帧携带所述用户在所述第二图像中的位置信息;
处理模块1003,还用于根据位置信息,对渲染后的图像中用户的人物模型进行调整。
可选的,处理模块1003,具体用于:
根据位置信息,确定人物模型的中心点坐标;
根据中心点坐标以及预设的人物模型的头部大小,确定人物模型在相应方向的移动距离。
可选的,处理模块1003,具体用于:
根据参考点的u坐标以及人物区域的宽度,确定人物模型中心点的u坐标;或者
根据参考点的v坐标以及人物区域的高度,确定人物模型中心点的v坐标;以及
根据中心点坐标中的u坐标与人物模型的理论u坐标的大小,确定人物模型的横向移动距离,以及根据人物模型的头部理论v坐标与预设的头部大小,确定人物模型的纵向移动距离,人物模型的理论u坐标是根据渲染后的图像的横向分辨率确定的,人物模型的头部理论v坐标是根据渲染后的图像的纵向分辨率确定的;或者
根据中心点坐标中的v坐标与人物模型的理论v坐标的大小,确定人物模型的纵向移动距离,以及根据人物模型的头部理论u坐标与预设的头部大小,确定人物模型的横向移动距离,人物模型的理论v坐标是根据渲染后的图像的纵向分辨率确定的,人物模型的头部理论u坐标是根据渲染后的图像的横向分辨率确定的。
可选的,处理模块1003,具体用于:
根据位置信息中人物区域的宽度,与虚拟空间中参考物的预设宽度的比例,调整人物模型的大小;或者
根据位置信息中人物区域的高度,与虚拟空间中参考物的预设高度的比例,调整人物模型的大小。
需要说明的是,显示设备既可以作为发送端设备执行图3所示的流程,也可以作为接收端设备执行图5所示的流程,发送设备和接收端设备时相对交互用户描述的。
基于相同的技术构思,本申请实施例提供一种显示设备,该显示设备可以实现前述实施例图3、图5中的图像显示方法,且能达到相同的技术效果,在此不再赘述。
参见图11,该显示设备包括摄像头1101、通信接口1102、显示器1103、存储器1104、图形处理器1105,摄像头1101、通信接口1102、显示器1103、存储器1104与图形处理器1105总线连接,摄像头1101被配置为采集用户图像,通信接口1102被配置为收发图像数据,显示器1103被配置为显示渲染后的图像,存储器1104被配置为存储计算机程序指令,图形处理器1105被配置为根据存储器1104存储的计算机程序指令,执行图3、图5所示的图像处理流程。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令用于使计算机执行本申请实施例中的图像处理方法。
以上参照示出根据本申请实施例的方法、装置(系统)和/或计算机程序产品的框图和/或流程图描述本申请。应理解,可以通过计算机程序指令来实现框图和/或流程图示图的一个块以及框图和/或流程图示图的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机的处理器和/或其它可编程数据处理装置,以产生机器,使得经由计算机处理器和/或其它可编程数据处理装置执行的指令创建用于实现框图和/或流程图块中所指定的功能/动作的方法。
相应地,还可以用硬件和/或软件(包括固件、驻留软件、微码等)来实施本申请。更进一步地,本申请可以采取计算机可使用或计算机可读存储介质上的计算机程序产品的形式,其具有在介质中实现的计算机可使用或计算机可读程序代码,以由指令执行系统来使用或结合指令执行系统而使用。在本申请上下文中,计算机可使用或计算机可读介质可以是任意介质,其可以包含、存储、通信、传输、或传送程序,以由指令执行系统、装置或设备使用,或结合指令执行系统、装置或设备使用。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
1.一种对图像进行处理的显示设备,其特征在于,包括显示器、存储器、图形处理器:
所述显示器,与所述图形处理器连接,被配置为显示渲染后的图像;
所述存储器,与所述图形处理器连接,被配置为存储计算机程序指令;
所述图形处理器,被配置为根据所述计算机程序指令,执行以下操作:
从视频流中选取视频帧并解码,得到时间戳相同的第一图像和第二图像,所述第二图像与所述第一图像的分辨率相同,所述视频帧携带用户所在环境的光照类型;
根据所述光照类型,对所述第一图像进行滤光处理;
根据所述第一图像和所述第二图像,确定所述待渲染像素点的目标颜色值;
根据所述待渲染像素点的目标颜色值,渲染所述用户在虚拟空间对应的人物模型,并显示渲染后的图像。
2.如权利要求1所述的显示设备,其特征在于,所述图像处理器根据所述第一图像和所述第二图像,确定所述待渲染像素点的目标颜色值,具体被配置为:
根据待渲染像素点的uv坐标,从所述第一图像中获取所述待渲染像素点的第一颜色值,以及从所述第二图像中获取所述待渲染像素点的第二颜色值;
若所述第二颜色值小于等于设定的颜色阈值,则将所述第一颜色值中的透明度分量设置为透明取值,得到所述目标颜色值;或者
若所述第二颜色值大于设定的颜色阈值,则将所述第一颜色值确定为所述目标颜色值。
3.如权利要求1所述的显示设备,其特征在于,所述视频帧携带所述用户在所述第二图像中的位置信息,所述图形处理器,还被配置为:
根据所述位置信息,对渲染后的图像中所述用户的人物模型进行调整,所述位置信息包括所述用户在所述第二图像中的人物区域的参考点坐标、所述人物区域的宽度或高度。
4.如权利要求3所述的显示设备,其特征在于,所述图形处理器根据所述位置信息,对渲染后的图像中所述用户的人物模型进行调整,具体被配置为:
根据所述位置信息,确定所述人物模型的中心点坐标;
根据所述中心点坐标以及预设的人物模型的头部大小,确定所述人物模型在相应方向的移动距离。
5.如权利要求4所述的显示设备,其特征在于,所述图形处理器根据所述位置信息,确定所述人物模型的中心点坐标,具体被配置为:
根据所述参考点的u坐标以及所述人物区域的宽度,确定所述人物模型中心点的u坐标;或者
根据所述参考点的v坐标以及所述人物区域的高度,确定所述人物模型中心点的v坐标;
所述图形处理器根据所述中心点坐标以及预设的人物模型的头部大小,确定所述人物模型在相应方向的移动距离,具体被配置为:
根据所述中心点坐标中的u坐标与所述人物模型的理论u坐标的大小,确定所述人物模型的横向移动距离,以及根据所述人物模型的头部理论v坐标与预设的头部大小,确定所述人物模型的纵向移动距离,所述人物模型的理论u坐标是根据所述渲染后的图像的横向分辨率确定的,所述人物模型的头部理论v坐标是根据所述渲染后的图像的纵向分辨率确定的;或者
根据所述中心点坐标中的v坐标与所述人物模型的理论v坐标的大小,确定所述人物模型的纵向移动距离,以及根据所述人物模型的头部理论u坐标与预设的头部大小,确定所述人物模型的横向移动距离,所述人物模型的理论v坐标是根据所述渲染后的图像的纵向分辨率确定的,所述人物模型的头部理论u坐标是根据所述渲染后的图像的横向分辨率确定的。
6.如权利要求3所述的显示设备,其特征在于,所述图像处理器根据所述位置信息,对渲染后的图像中所述用户的人物模型进行调整,具体被配置为:
根据所述位置信息中所述人物区域的宽度,与虚拟空间中参考物的预设宽度的比例,调整所述人物模型的大小;或者
根据所述位置信息中所述人物区域的高度,与虚拟空间中参考物的预设高度的比例,调整所述人物模型的大小。
7.如权利要求1-6中任一项所述的显示设备,其特征在于,所述图形处理器根据所述光照类型,对所述第一图像进行滤光处理,具体被配置为:
根据所述光照类型,确定颜色值中各个颜色分量的权重系数,生成过滤矩阵;
将所述过滤矩阵与所述第一图像中像素点的颜色值矩阵相乘,得到滤光处理后的第一图像。
8.一种对图像进行处理的显示设备,其特征在于,包括摄像头、存储器、图形处理器:
所述摄像头,与所述图形处理器连接,被配置为采集图像;
所述存储器,与所述图形处理器连接,被配置为存储计算机程序指令;
所述图形处理器,被配置为根据所述计算机程序指令,执行以下操作:
采集视频交互过程中用户的第一图像;
根据所述第一图像,识别所述用户所在环境的光照类型;
对所述第一图像进行人物抠图处理,根据抠出的人物区域生成所述用户的第二图像,所述第二图像与所述第一图像的分辨率相同;
对所述第一图像和所述第二图像进行编码,得到编码后的视频帧并通过视频流发送给接收端,编码后的视频帧携带所述用户所在环境的光照类型。
9.如权利要求8所述的显示设备,其特征在于,所述图形处理器对所述第一图像和所述第二图像进行编码,得到编码后的视频帧并通过视频流发送给接收端,具体被配置为:
分别对所述第一图像和所述第二图像进行编码,得到第一视频帧和第二视频帧,将所述第一视频帧通过第一视频流发送给接收端,以及将所述第二视频帧通过第二视频流发送给所述接收端;或者
分别对所述第一图像和所述第二图像进行编码,得到第一视频帧和第二视频帧,将所述第一视频帧通过第三视频流的第一通道发送给接收端,以及将所述第二视频帧通过所述第三视频流的第二通道发送给所述接收端;或者
对所述第一图像和所述第二图像进行拼接,得到拼接图像,对所述拼接图像进行编码,得到第三视频帧,并将所述第三视频帧通过第四视频流发送给所述接收端。
10.如权利要求8所述的显示设备,其特征在于,所述图形处理器还被配置为:
确定所述用户在所述第二图像中的位置信息,并将所述位置信息写入编码后的视频帧,所述位置信息包括所述人物区域的参考点坐标以及所述人物区域的宽度或高度。
技术总结