具体实施方式
本发明实施例将本地的背景内容和远端的目标内容合成一个画面进行显示,使得通讯双方不需要对场景进行特殊布置,即可让画面中的场景和自身所处场景相同,增加通讯过程中的真实感。下面结合附图对本发明视频通讯方法、装置及设备的实施例进行详细描述。
实施例1:
本实施例提供一种视频预处理方法,如图1所示,该视频预处理方法包括如下步骤:
101、通过深度摄像机或者立体摄像机来获取本地场景内容及其深度值。
102、由本地场景内容的深度值可以将本地场景内容分成多个层次,这样就可以将本地目标内容所述的层次分割出来,即从本地场景内容中分割出本地目标内容。
103、将分割出的本地目标内容,以及本地目标内容对应的深度值发送到远端,一般需要发送到通讯的对端。
本实施例中主要通过步骤101和步骤102完成对图像的预处理,步骤103是一个将预处理内容发送出去的步骤,可以省略。
对应于上述视频预处理方法,本实施例还提供一种视频预处理装置,如图2所示,该视频预处理装置包括:信息获取模块21、分割模块22和发送模块23。
其中,信息获取模块21用于获取本地场景内容及其深度值,所述信息获取模块可以通过深度摄像机或者立体摄像机来实现,其中的深度摄像机采用红外技术获取图像的深度,而立体摄像机采用双摄像头来获取图像的深度。得到本地场景内容的深度值后,就可以将本地场景内容分成多个层次,分割模块22,用于依据本地场景内容深度值,从本地场景内容中分割出本地目标内容。发送模块23,用于将所述本地目标内容及其深度值发送到远端。
该视频预处理装置中主要通过信息获取模块21和分割模块22完成视频预处理,其中的发送模块23可以省略。
为了能够完成视频通讯,本实施例还提供一种与上述视频预处理方法对应的视频接收方法,如图3所示,该视频接收方法包括如下步骤:
301、接收远端发送的目标内容及其深度值。
302、获取本地的背景内容和背景内容的深度值。
303、根据深度值的不同,确定本地背景内容和远端目标内容的遮挡关系,一般为深度值小的像素挡住深度值大的像素,这样即可根据深度值的关系将远端目标内容和本地背景内容合成场景内容。
对应于上述视频接收方法,本实施例还提供一种视频接收装置,如图4所示,该视频接收装置包括:传输接口模块41、提取模块42和合成模块43。
其中,传输接口模块41用于接收远端发送的目标内容及其深度值;提取模块42用于获取本地的背景内容及其深度值;合成模块43,用于根据深度值的关系将远端目标内容和本地背景内容合成场景内容,一般情况下是深度值小的像素挡住深度值大的像素;最后通过显示器等设备显示合成后的场景内容。
如图5所示,本发明实施例还提供一种视频通讯设备,具体包括:信息获取模块51、分割模块52、传输接口模块53、提取模块54和合成模块55。
其中,信息获取模块51用于获取本地场景内容及其深度值,所述信息获取模块51可以通过深度摄像机或者立体摄像机来实现,其中的深度摄像机采用红外技术获取图像的深度,而立体摄像机采用双摄像头来获取图像的深度。分割模块52,用于依据本地场景内容深度值,从本地场景内容中分割出本地目标内容。传输接口模块53,用于将所述本地目标内容及其深度值发送到远端。
所述传输接口模块53还用于接收远端发送的目标内容及其深度值,提取模块54用于获取本地的背景内容及其深度值;合成模块55,用于根据深度值的关系将远端目标内容和本地背景内容合成场景内容,一般情况下是深度值小的像素挡住深度值大的像素;最后通过显示模块显示合成后的场景内容。
其中本地的背景内容可以为分割模块54分割出本地目标内容后的剩余内容,也可以通过另一个摄像机获取本地目标对面的背景内容及其深度值。
如果让本实施例中的视频预处理装置和视频接收装置之间进行通讯,比方说均接入到同一个网络,这样就够成一个视频通讯系统,该系统的发送端包括图2的视频预处理装置,接收端包括图4中的视频接收装置。
实施例2:
本实施例提供一种视频通讯设备,该设备将本地场景内容中的本地目标内容,以及本地目标内容对应的深度值发送到对端设备,对端设备在接收到本地目标内容后,将所述本地的目标内容和对端的背景合成一幅场景,并显示给对端的用户。这样可以确保对端的用户所看到的场景和自身所处的场景完全一样,比较具有临场感和真实感。本地的视频通讯设备在接收到远端的目标内容后,将远端目标内容和本地背景内容合成一幅场景,并显示给本地的用户,以提高本地用户在通讯过程中的临场感和真实感。
如图6所示,该视频通讯设备主要包括:信息获取模块61、分割模块62、编码模块63、传输接口模块64、解码模块65、合成模块66和显示模块67。
其中,信息获取模块61,用于实现对本地场景内容的拍摄,以及本地场景内容对应深度值的计算,或者直接获取本地场景内容对应深度值;分割模块62,用于根据深度值从本地场景内容中分割出本地目标内容;编码模块63,用于对分割出的本地目标内容及其对应的深度值进行编码;传输接口模块64,用来发送本地目标内容及其深度值,或者接收远端发送的目标内容及其深度值;解码模块65,用于实现对接收到的远端目标内容及其深度值的解码;合成模块66,用于对解码得到的远端目标内容与本地背景内容融合,根据对应的深度值生成立体视图,其中的本地背景内容可以是本地场景内容中分割出本地目标内容后的剩余内容,也可以是采用另一组摄像机拍摄的本地目标对面的场景内容;显示模块67,用于实现对和成图像的显示,可以是立体显示设备或普通二维显示设备,如果是立体显示设备,则需要重构一幅另一个视点的二维图像。
下面分别对本实施例视频通讯设备中的各个模块做详细介绍。
信息获取模块61可以有以下两种实现方式:一、采用深度摄像机同时得到本地场景内容及其深度值;二、采用多台摄像机拍摄本地场景内容,通过立体图像匹配方法得到对应的深度值。
深度摄像机(Depth Camera)是一种新型摄像机,深度摄像机可以在拍摄RGB彩色图像的同时获取彩色图像中每个像素对应的深度值。目前的深度摄像机主要采用红外方式深度值。
通过立体图像匹配方法得到对应的深度值的方法,要求在图像采集时采用两台或两台以上摄像机拍摄场景,得到场景不同角度的多幅图像,通过对图像进行匹配,可以获得场景在不同图像上的视差,根据视差和摄像机的内外参数,即可计算得到图像中每个像素对应的深度值。以下将以两台摄像机为例对图像匹配方式获取深度值进行说明。
如图7所示为水平放置的两台平行摄像机成像示意图,其中O1和O2分别为两个摄像机光心,其距离为B,点A到摄像机的垂直点O的距离为Z(即点A的深度),A1和A2分别点A在两个摄像机的成像点。
由三角形A1 O1 O1′和三角形A O1 C相似可得:
由三角形A2 O2 O1′和三角形A O2 C相似可得:
故推出两个成像点的视差为:d=A1O1′-A2O2′=f*(CO1-CO2)/Z=f*B/Z。
所以,可以得到点A的深度值Z=f*B/d。
由于f已知,B可以测量出来,d可以通过图像匹配的方法计算得到,所以,采用两台摄像机可以获取到场景中每个点对应的深度值。
通过立体摄像机来获取深度信息包括:找到场景中某一点在多幅图像中对应的成像点,然后再根据该点在多幅图像中坐标求出其深度值。找到场景中某一点在不同图像中对应成像点的过程由图像匹配完成。目前的图像匹配技术主要包括:基于窗口的匹配、基于特征的匹配和动态规划法等。
其中,基于窗口的匹配和动态规划法都采用了基于灰度的匹配算法。基于灰度的算法是将其中一个图像分割成多个小的子区域,以其灰度值作为模版在其它图像中找到和其最相似灰度值分布的子区域,如果两个子区域满足灰度值分布的相似性要求,我们可以认为子区域中的点是匹配的,即这两个子区域的成像点是场景中同一点的成像。在匹配过程中,通常使用相关函数衡量两个区域的相似性。
基于特征的匹配没有直接利用图像的灰度,而是利用由图像灰度信息导出的特征进行匹配,相比利用简单的亮度和灰度变化信息更加稳定。匹配特征可以认为是潜在的能够描述场景3D结构重要特征,如边缘和边缘的交点(角点)。基于特征的匹配一般先得到稀疏的深度信息图,然后利用内插值等方法得到图像的密集深度信息图。
分割模块62根据本地场景内容及其对应的深度值,对图像进行分割得到本地场景中的本地目标内容。分割模块62可以通过查找单元621和分割单元622来实现,查找单元621,用于查找本地目标内容在本地场景内容中出现的区域,分割单元622,用于在本地场景内容中对本地目标内容的区域进行准确的边缘轮廓提取,分割得到本地目标内容和其它本地背景内容。
一般来说,本地目标内容在本地场景中出现的区域,可以由本地用户估计本地目标相对摄像机的位置后,设定本地目标内容出现的深度值范围,在后续的视频处理中,由查找单元在该深度值范围内查找目标内容出现的区域。
如果需要查找的本地目标内容为一个人物形象,那么可以采用现有的人脸识别技术,通过人脸识别单元623从本地场景内容中自动识别出人脸图像出现的位置,然后由查找单元621在本地场景内容的深度值中查找所述人脸图像位置对应的深度值,然后根据查找到的深度值确定本地目标内容深度值的范围,并根据所述深度值的范围确定本地目标内容在场景内容中的区域。从而确定人物目标在场景中出现的深度范围。
由于深度值适合和彩色图像相对应的,根据深度值分割出的人物区域和从彩色图像中的人物区域相对应。得到的彩色图像的本地目标内容及其深度值后将被发送到编码模块63,编码模块63对其编码后通过传输接口模块64发送到远端。
由于从提取到的本地目标内容的大小不一样,需要将这些本地目标内容调整到同一大小,一般是将这些本地目标内容调整到与本地场景内容一样的大小,从而对每一帧得到相同大小的待编码图像,便于编码。这种调整不会对本地目标内容本身进行缩放,只是改变了本地目标内容所使用画布的大小。对于调整大小后出现的空白区域,可以采用0值填充。
本实施例中的编码模块63对分割出来的的本地目标内容及其深度值进行编码。相比单通道的二维视频,立体视频具有大得多的数据量:双目立体视频具有两个数据通道。视频数据的增加给其存储和传输都带来了困难。目前立体视频编码主要也可以分为两类:基于块的编码和基于对象的编码。在立体图像的的编码中,除了帧内预测和帧间预测消除空域和时域上的数据冗余度外,还必须消除多通道图像之间的空域数据冗余性。视差(Parallax)估计与补偿是立体视频编码中的一项关键技术,用于消除多通道图像间的空域冗余度。视差估计补偿的核心是找到两幅(或多幅)图像间的相关性。此处的立体视频编码内容包括彩色图像及其对应的深度值,可以采用分层编码,即将彩色图像混合编码放入基本层,深度值混合编码后放入增强层。
本实施例中的传输接口模块64,用于发送编码后本地目标内容及其深度值,并接收远端传输的编码后的远端目标内容及其深度值,送到送到解码模块进行解码处理。本实施例中的传输接口模块64可以是能够实现传输的各种有线或无线接口,例如:宽带接口,蓝牙接口、红外接口或者采用手机的移动通信网的接入技术。本实施例中传输接口模块只需要传输其中的本地目标及其深度值,相对于原有的本地场景内容而言,其数据量有所减少,可以减小数据传输时的带宽占用率
本实施例视频通讯设备的传输接口模块64接收到远端目标内容及其深度值后,需要进行处理才能显示。
解码模块65用于对接收的远端数据进行解码,得到远端的目标内容对应的深度值。
合成模块66,用于根据深度值对解码得到的远端目标内容与本地背景内容进行融合,得到合成的远端目标内容与本地背景融合后的彩色图像,以及对应的深度值,其中本地背景内容由提取模块69完成。合成过程中先要根据远端目标内容的深度值与本地背景内容的深度值确定遮挡关系,然后按照遮挡关系合成对应彩色图像内容。当显示模块67为三维立体显示设备,需进一步根据合成彩色图像内容和对应的深度值重构另一视点的虚拟图像,故而本实施例中还可以包括视图重构模块68,用于对合成后的图像内容进行视图重构,生成一个虚拟视点图像,该虚拟视点图像和合成彩色图像即构成立体视图,发送到三维立体显示设备实现立体显示。
如图8所示,给出了接收到的远端目标内容(人物),并示意出该远端目标内容的深度,以及本地采用深度摄像机方式获取的本地背景内容(树和桌子),并示意出该本地背景内容的深度,然后根据其中的深度关系进行合成,得到合成的场景。由于获得了远端目标内容和本地背景内容相对摄像机的距离,可以将远端人物插入到本地的桌子和树之间。
为了能够让合成的图像更加逼真,需要解决如下问题:
(1)远端目标内容的缩放问题。为了使远端人物与本地背景内容完美融合,可能需要通过缩放单元661调整远端目标内容相对摄像机的位置,这时需要同时对远端目标内容大小进行缩放。当需要把远端目标内容拉到更近的距离时,即减小深度值时,需要对远端目标内容进行放大;当把远端目标内容安排在更远的距离时,即增大深度值时,需要对其远端目标内容进行缩小。由于远端目标内容是单个目标,其深度变化的范围有限,在进行图像缩放时可以将透视关系的缩放简化为与其深度一致的线性缩放。
(2)远端目标内容和本地背景内容之间的相互遮挡问题。在对远端目标内容与本地背景内容融合时,通过合成单元662需要考虑其相互遮挡问题。遮挡关系可以由深度值确定,当像素点的水平和垂直位置重合时,深度值小的像素点遮挡深度值大的点(近景遮挡远景)。
(3)空洞填充问题。在去除了本地目标内容后得到的本地背景内容可能存在空洞,使其与远端目标内容融合后仍可能存在空洞。在此有两种解决方式:
第一种为使用另一组摄像机采集拍摄本地目标对面的场景内容,一般为人所看见的场景内容,在合成时,采用该场景内容直接和远端目标内容合成,该方式效果较好,即人所看见的背景与远端人物融合,由于直接使用对面的场景,不存在空洞填补问题,但是需要在视频通讯的每一端增加一组摄像机。
另一种解决方案为使用剔除本地目标内容后剩下的本地背景内容,对于可能出现的空洞,采用边缘像素填充的方法进行填充。
当本实施例视频通讯设备采用三维立体显示设备时,并且显示设备仅支持左右图像输入方式显示时,需要重构另一幅图像,从而实现立体显示。有些自动立体显示器支持一幅二维彩色图像及其对应的深度值进行三维立体显示,这样就不需要重构另一幅图像了,而是由自动立体显示器自身完成另一幅图像的重构,并且在重构过程中完成相应的空洞填充,如philips的立体显示器。
视图重构也称为虚拟视点图像合成,一般指从模型或不同角度的图像重构其它视角的图像。本实施例通过视图重构模块68来实现,当已知图像的深度时,可以根据以下公式计算虚拟视点与已知视图之间的视差:
d=A1O1′-A2O2′=f*(CO1-CO2)/Z=f*B/Z。
其中,d为虚拟视点视图与已知视图之间的视差,f为摄像机的焦距,B为虚拟视点与原摄像点之间的距离,Z为图像的深度。
当基于合成图像及其深度重构其右边的图像时,右边图像中某条扫描线xr处像素的颜色由左图像(合成图像)中对应扫描线xl处像素的颜色确定,其中xl的坐标由下式确定:
在根据以上公式确定合成视图内容时,由于存在遮挡问题而导致右图中的某些点无法在左图中找到对应的点,即存在空洞问题,同样采用空洞边缘的像素点对其进行填充,填充可以采用双线性插值方式进行。
本实施例中的显示模块用来显示对合成后的图像。该显示模块67可以是立体显示设备包括自动立体显示设备,立体眼镜和全息显示设备三维立体显示等,实现立体图像的立体显示,可以让用户体验到场景的深度,感受到立体效果。当需要进行立体显示时,一般需要完成上述的视图重构和空洞填充。本实施例显示模块也可以是普通二维显示设备,仅显示二维合成图像,当只需要显示二维图像,则不需要进行视图重构,直接显示合成后的二维图像。
实施例3:
本实施例为视频通信系统中的一个通讯过程实例,具体为两个用户(A和B)通过实施例2中的视频通讯设备进行通讯,其通讯过程中用户A向用户B发送视频数据,以及用户B接收用户A的视频数据的全过程,该视频通讯系统的结构如图10所示,包括发送端和接收端,发送端和接收端通过网络连接。
所述发送端,用于获取发送端的场景内容及其深度值,根据发送端的场景内容深度值,从发送端的场景内容中分割出发送端的目标内容,并将所述发送端的目标内容及其深度值发送到接收端;所述发送端包括:信息获取模块1001,用于实现对本地场景内容的拍摄,以及本地场景内容对应深度值的计算,或者直接获取本地场景内容对应深度值;分割模块1002,用于根据深度值从本地场景内容中分割出本地目标内容;编码模块1003,用于对分割出的本地目标内容及其对应的深度值进行编码;传输接口模块1004用来将本地目标内容及其深度值发送到接收端。
所述接收端用于接收发送端发送的目标内容及其深度值,并获取接收端的背景内容及其深度值,根据深度值将发送端的目标内容和接收端的背景内容合成场景内容。所述接收端包括传输接口模块1005,用来将接收远端发送的目标内容及其深度值;解码模块1006,用于实现对接收到的远端目标内容及其深度值的解码;合成模块1007,用于对解码得到的远端目标内容与本地背景内容融合,根据对应的深度值生成立体视图,其中的本地背景内容可以是本地场景内容中分割出本地目标内容后的剩余内容,通过提取模块1010提取该剩余内容;本地背景内容也可以是采用另一组摄像机拍摄的本地目标对面的场景内容;显示模块1009,用于实现对和成图像的显示,可以是立体显示设备或普通二维显示设备,如果是立体显示设备,则需要重构一幅另一个视点的二维图像。重构另一个视点二维图像可以通过视图重构模块1008来完成。
其通信过程如图9所示,具体包括如下步骤:
901、用户A的视频通讯设备的信息获取模块获取本地场景内容及其深度值;可以通过深度摄像机(depth camera)或者立体摄像机获取本地场景内容以及场景内容的深度值。深度摄像机通过红外线可以直接获取深度;而立体摄像机一般通过两个平行的摄像机获取场景内容,然后计算出该场景内容中每个像素的深度值,计算公式为:Z=fB/Δx;其中f为焦距,B为两个摄像机的距离,Δx为每个像素在两个摄像机中的位置差异。
902、用户A的视频通讯设备的分割模块从本地场景内容中分割出本地目标内容,具体为:由分割模块中的人脸识别单元对拍摄到的本地场景内容进行人脸识别得到人脸图像的位置,然后由分割模块中的查找单元在本地场景内容的深度值中查找所述人脸图像位置对应的深度值,并根据查找到的深度值确定拍摄到的图片中人物深度值的范围。这样就可以确定本地目标内容在场景内容中的区域,最后由分割模块中的分割单元根据确定的区域从本地场景内容中分割出人物目标。
903、在分割得出本地人物目标后,可以保存所述本地场景内容分割出本地人物目标后的剩余内容,及剩余内容的深度值;也可通过另一个摄像机同时获取人物目标对面的背景内容及其深度值,并保存。
904、将为了统一本地人物目标尺寸,需要将本地人物目标扩大到原是采集图片的大小,或者裁剪成其他尺寸的图片;由于剪裁后产生的空洞区域可以填充成0值。
905、分别对步骤904中所得到本地人物目标及其深度值进行编码,最好使用分层编码,采用分层编码需要传输的数据量较少。
906、将编码后的所述本地人物目标及其深度值,通过传输接口模块发送到用户B的视频通讯设备。
以上步骤完成了用户A的发送操作,以下步骤为用户B接收数据及其对数据的处理过程。
907、用户B的视频通讯设备通过传输接口模块,接收到用户A发送的人物目标及其深度值。
908、用户B的视频通讯设备通过解码模块对接收到的数据解码,得到用户A的人物目标及其深度值。同时用户B的视频通讯设备还需要获取背景内容和背景内容的深度值,一般情况下,可以将本地场景内容中去除本地目标后的剩余内容作为其背景内容。如果通过另一个摄像机获取用户B对面的背景内容及其深度值,会使用户B看到的画面更真实,并且在合成图像时不会产生空洞问题。
909、通过合成模块中缩放单元的对用户A发送过来的人物目标及其深度值进行缩放,得到较为理想大小的人物目标,当需要把远端目标内容拉到更近的距离时,即减小深度值时,需要对远端目标内容进行放大;当把远端目标内容安排在更远的距离时,即增大深度值时,需要对其远端目标内容进行缩小。
然后根据用户A的人物目标缩放后的深度值以及背景内容的深度值,确定远端人物目标和本地背景内容的遮挡关系,遮挡原则为:当像素点的水平和垂直位置重合时,深度值小的像素点遮挡深度值大的点(近景遮挡远景)。
合成模块中的合成单元再按照上述确定遮挡关系将人物目标和背景内容合成一幅场景内容。
如果背景内容是去除目标内容后的剩余内容,则需要将合成场景内容中的空洞进行像素填充;如果背景内容是直接获取用户B对面的场景,则不用进行像素填充。
910、视图重构模块对所述合成的场景内容进行虚拟视点图像合成,具体为根据以下公式计算虚拟视点与已知视图之间的视差:
d=A1O1′-A2O2′=f*(CO1-CO2)/Z=f*B/Z。
其中,d为虚拟视点视图与已知视图之间的视差,f为摄像机的焦距,B为虚拟视点与原摄像点之间的距离,Z为图像的深度。
当基于合成图像及其深度重构其右边的图像时,右边图像中某条扫描线xr处像素的颜色由左图像(合成图像)中对应扫描线xl处像素的颜色确定,其中xl的坐标由下式确定:
在完成视图重构后,需要对虚拟视点图像合成后的场景内容中的空洞进行像素填充。
911、通过显示模块显示合成后的场景内容,例如:通过自动立体显示设备、立体眼镜或全息显示设备三维立体显示等,实现立体图像的立体显示,或者通过普通二维显示设备仅显示二维合成图像。
本实施例的视频通讯系统中,用户A的设备还可以包括视频接收装置,用户B的设备还可以包括视频预处理装置,以确保用户B可以向用户A发送视频数据。如果用户B需要向用户A发送视频数据,其过程和图9一样,只是发送方和接收方改变了。本发明实施例主要用在视频通讯中,例如:一般的视频聊天,办公用的视频电话、视频会议等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。