全景图像映射方法与流程

文档序号:12740574阅读:321来源:国知局
全景图像映射方法与流程

本发明涉及虚拟现实(VR)领域,尤其涉及一种新的全景图像映射方法,能够减少编码全景图像和视频所需的码率,可用于全景图像和视频。



背景技术:

随着虚拟现实技术的日益发展,各领域对虚拟现实视频的需求日益增加。相比于传统的平面图像,360°的全景图像要求更广的视角,因此,全景图像需要更高的分辨率,其编码所需的码率也高出许多。

现有的编码和存储技术均不支持球面,因此,采用现有方法对全景图像进行编码和存储,需要将360°的全景图像映射到二维平面上。现有方法中,最常见的映射方式是equirectangular映射,这种映射方式根据球面的经度和纬度对球面进行采样,将球面映射到二维平面上。但是,采用这种映射方式对360°全景图像进行映射时,在球面的高纬度区域存在着较严重的过采样现象,编码所需的码率及解码的复杂度高。



技术实现要素:

本发明提供一种新的全景图像映射方法及其相应的反映射方法,通过全景图像映射方法可将球面映射到二维平面上,采用全景图像反映射方法可从平面映射回球面,以进行渲染观看。本发明方法有效改善全景图像或视频所对应球面在高纬度区域的过采样,减少编码全景图像和视频所需的码率,同时提高了编码效率。

本发明提供的技术方案是:

一种全景图像映射方法,将全景图像或视频A所对应的球面映射到二维平面图像或视频B上,可改善全景图像在高纬度区域的过采样,减少编码全景图像和视频所需的码率;所述映射方法将球面映射为二维平面,首先根据球面的纬度,将球面分成三个区域:分别记为区域I,区域II和区域III;区域I对应球面上纬度为-90°~Z1的区域,区域II对应球面上纬度为Z1~Z2的区域,区域III对应球面上纬度为Z2~90°的区域;然后将区域I映射为分辨率为W1×W1的方形平面I′,区域II映射为分辨率为WII×HII的矩形平面II′,区域III映射为分辨率为WIII×WIII的方形平面III′;最后根据WI,WII,HII,WIII的值将平面I′,II′,III′拼成一个平面,所的平面即为上述二维平面图像B;所述参数Z1,Z2,WI,WII,HII,WIII均可进行设置,且需满足条件:-90°≤Z1≤Z2和Z1≤Z2≤90°。

针对上述全景图像映射方法,进一步地,将全景图像或视频A所对应的球面映射到二维平面图像或视频B上的过程包括以下步骤或以下步骤的等效实现:

1)对方形平面I′中的每个像素点,根据其在平面I′中的坐标(X,Y),计算其对应的球面坐标Coordinate(经度和纬度),然后根据球面坐标Coordinate取球面上对应位置的像素值(或附近像素通过插值计算得到相应像素值),作为平面I′中像素点(X,Y)的像素值。根据平面I′中的坐标(X,Y)计算其对应的球面坐标Coordinate的方法为:

1.1)计算得到该点到方形平面I′中心的垂直距离和水平距离,取其中较大的一个记为m;

1.2)方形平面I′可看作是多个同心方形组成的,本步中计算得到该点到其所在的同心方形上第零个点的距离,记为n;其中第零个点的位置可任意选取,可按照顺时针或逆时针方式计算上述距离;

1.3)根据n和m计算得到方形平面I′中坐标为(X,Y)的点所对应的纬度latitude和经度longitude;

2)对矩形平面II′中的每个像素点,根据其在平面II′中的坐标(X,Y),计算其对应的球面坐标Coordinate(经度和纬度),然后根据球面坐标Coordinate取球面上对应位置的像素值(或附近像素通过插值计算得到相应像素值),作为平面II′中像素点(X,Y)的像素值。根据平面II′中的坐标(X,Y)计算其对应的球面坐标Coordinate的公式为:

latitude=Z2-(Z2-Z1)×(Y+0.5)÷HII

longitude=360°×(X+0.5)÷WII-180°+offset

其中,offset为矩形平面II′中心对应的经度,可自行设置。

3)对方形平面III′中的每个像素点,根据其在平面III′中的坐标(X,Y),计算其对应的球面坐标Coordinate(经度和纬度),然后根据球面坐标Coordinate取球面上对应位置的像素值(或附近像素通过插值计算得到相应像素值),作为平面I′中像素点(X,Y)的像素值。根据平面I′中的坐标(X,Y)计算其对应的球面坐标Coordinate的方法为:

3.1)计算得到该点到方形平面III′中心的垂直距离和水平距离,取其中较大的一个记为m;

3.2)方形平面III′可看作是多个同心方形组成的,本步中计算得到该点到其所在的同心方形上第零个点的距离,记为n;其中第零个点的位置可任意选取;

3.3)根据n和m计算得到方形平面III′中坐标为(X,Y)的点所对应的纬度latitude和经度longitude;

4)根据WI,WII,HII,WIII的值将平面I′,II′,III′拼成一个平面。

针对上述全景图像映射过程,进一步地,全景图像或视频A的映射格式包括但不限于经纬图、立方体映射图像或视频、多路相机采集的全景图像或视频。

针对上述全景图像映射方法,进一步地,步骤1.1)中计算得到该点到方形平面I′中心的垂直距离和水平距离,取其中较大的一个记为m的计算公式如下:

m=max(abs(WI÷2-X-0.5),abs(WI÷2-Y-0.5))

针对上述全景图像映射方法,进一步地,步骤1.2)中计算得到该点到其所在的同心方形上第零个点的距离,具体选取右上角的像素为第零个像素,距离按逆时针方向计算,其计算方法如下:

m2=(W1-1)÷2-m

针对上述全景图像映射方法,进一步地,步骤1.3)中根据n和m计算得到方形平面I′中坐标为(X,Y)的点所对应的纬度latitude和经度longitude的计算公式如下:

latitude=(Z1+90°)×m÷(W1÷2)-90°

longitude=n÷(8×m)×360°-180°

针对上述全景图像映射方法,进一步地,步骤3.1)中计算得到该点到方形平面III′中心的垂直距离和水平距离,取其中较大的一个记为m的计算公式如下:

m=max(abs(WIII÷2-X-0.5),abs(WIII÷2-Y-0.5))

针对上述全景图像映射方法,进一步地,步骤3.2)中计算得到该点到其所在的同心方形上第零个点的距离,具体选取右上角的像素为第零个像素,距离按顺时针方向计算,其计算方法如下:

m2=(WIII-1)÷2-m

针对上述全景图像映射方法,进一步地,步骤3.3)中根据n和m计算得到方形平面III′中坐标为(X,Y)的点所对应的纬度latitude和经度longitude的计算公式如下:

latitude=90°-(90°-Z2)×m÷(WIII÷2)

longitude=n÷(8×m)×360°-180°

针对上述全景图像映射方法,进一步地,步骤4)中当WI=0.25×WII=HII=WIII时可进行如下的拼接:由于0.25×WII=HII,因此矩形平面II′的分辨率为表示为4HII×HII,首先将矩形平面II′分成四个分辨率为HII×HII的小平面,记作:II′1,II′2,II′3,II′4,然后按照平面II′1,平面II′2,平面II′3,平面III′,平面II′4,平面I′的顺序将它们拼接成一个分辨率为6W1×W1的平面,拼接中平面III′顺时针旋转90°,平面II′4逆时针旋转90°。

另一方面,全景图像反映射方法将二维平面图像或视频B映射回球面,二维平面图像B由三个平面拼接而成,这三个平面记为平面I′,平面II′,平面III′,平面I′是分辨率为W1×W1的方形平面,平面II′是分辨率为W11×H11的矩形平面,平面III′是分辨率为WIII×WIII的方形平面;全景视频反映射方法将平面I′映射回球面上纬度为-90°~Z1的区域I,平面II′映射回球面上纬度为Z1~Z2的区域II,平面III′映射回球面上纬度为Z2~90°的区域III,所述参数Z1,Z2,WI,WII,HII,WIII的值包括但不限于从码流中获取。

针对上述全景图像反映射方法,将二维平面图像或视频B映射回球面的过程包括以下步骤及以下步骤的等效实现:

1)将二维平面图像B拆分成平面I′,平面II′,平面III′

2)对于球面上纬度为-90°~Z1的区域中的所有像素,根据其球面坐标Coordinate(经度和纬度)计算其对应到平面I′中的坐标(X,Y),取平面I′中(X,Y)处的像素值(或附近像素进行插值),作为球面上坐标Coordinate处像素点的值。根据球面坐标Coordinate计算其对应到平面I′中的坐标(X,Y)的步骤如下:

2.1)根据纬度latitude计算球面上的点在平面I′中的对应点距离平面I′中心的距离m;

2.2)根据经度longitude计算球面上的点在平面I′中的对应点距离该对应点所在的同心方形中第零个点的距离n;

2.3)根据m和n的值以及同心方形第零个像素的位置,计算出球面上的点在平面I′中的对应点的坐标(X,Y)

3)对于球面上纬度为Z1~Z2的区域中的所有像素,根据其球面坐标Coordinate(经度和纬度)计算其对应到平面II′中的坐标(X,Y),取平面II′中(X,Y)处的像素值(或附近像素进行插值),作为球面上坐标Coordinate处像素点的值。根据其球面坐标Coordinate计算其对应到平面II′中的坐标(X,Y)的计算公式为:

Y=(Z2-latitude)×HII÷(Z2-Z1)-0.5

X=(longitude+180°-offste)÷360°×WII-0.5

其中offset为矩形平面II′中心对应的经度。

4)对于球面上纬度为Z2~90°的区域中的所有像素,根据其球面坐标Coordinate(经度和纬度)计算其对应到平面III′中的坐标(X,Y),取平面III′中(X,Y)处的像素值(或附近像素进行插值),作为球面上坐标Coordinate处像素点的值。

4.1)根据纬度latitude计算球面上的点在平面III′中的对应点距离平面III′中心的距离m;

4.2)根据经度longitude计算球面上的点在平面III′中的对应点距离该对应点所在的同心方形中第零个点的距离n;

4.3)根据m和n的值以及同心方形第零个像素的位置,计算出球面上的点在平面III′中的对应点的坐标(X,Y)

针对上述全景图像反映射方法,进一步地,步骤1)中当参数WI=0.25×WII=HII=WIII,且平面I′,平面II′,平面III′拼接成的二维平面图像B分辨率为6W1×W1时,可进行如下拆分:将二维平面图像B分成6个W1×W1的平面,分别记作平面1,平面2,平面3,平面4,平面5,平面6,将平面4逆时针旋转90°得到平面III′;平面6即为平面I′;剩下的4个平面按照平面1,平面2,平面3,平面5的顺序拼接为分辨率4WI×WI的平面(其中平面5顺时针旋转90°)得到平面II′

针对上述全景图像反映射方法,进一步地,步骤2.1)中根据纬度latitude计算球面上的点在平面I′中的对应点距离平面I′中心的距离m的计算公式如下:

m=(WI÷2)×(latitude+90°)÷(Z1+90°)

针对上述全景图像反映射方法,进一步地,步骤2.2)中根据经度longitude计算球面上的点在平面I′中的对应点距离该对应点所在的同心方形中第零个点的距离n的计算公式如下:

n=8×m×(longitude+180°)÷360°

针对上述全景图像反映射方法,进一步地,步骤2.3)中根据m和n的值,具体选取右上角的像素为第零个像素,距离按逆时针方向计算,计算出球面上的点在平面I′中的对应点的坐标(X,Y)的计算公式如下:

m2=(WI-1)÷2-m

针对上述全景图像反映射方法,进一步地,步骤4.1)中根据纬度latitude计算球面上的点在平面III′中的对应点距离平面III′中心的距离m的计算公式如下:

m=(WIII÷2)×(90°-latitude)÷(90°-Z2)

针对上述全景图像反映射方法,进一步地,步骤4.2)中根据经度longitude计算球面上的点在平面III′中的对应点距离该对应点所在的同心方形中第零个点的距离n的计算公式如下:

n=8×m×(longitude+180°)÷360°

针对上述全景图像反映射方法,进一步地,步骤4.3)中根据m和n的值,具体选取右上角的像素为第零个像素,距离按顺时针方向计算,计算出球面上的点在平面III′中的对应点的坐标(X,Y)的计算公式如下:

m2=(WIII-1)÷2-m

与现有技术相比,本发明的有益效果是:

本发明提供一种新的全景图像映射方法及反映射方法。其中,映射过程将全景图像或视频A对应的球面映射为二维平面图像或视频B,首先根据球面的纬度,将球面分成三个区域:分别记为区域I,区域II和区域III;将所述三个区域分别映射为方形平面I′、矩形平面II′和方形平面III′;再将平面I′、II′、III′拼成一个平面;所得的平面即为二维平面图像或视频B

本发明方法可自行设置参数进行映射和反映射。相较于equirectangular映射方法,当合理选择参数时(比如:WI=0.25×WII=HII=WIII),本发明方法可有效地改善在高纬度区域的过采样,能够有效降低编码所需的码率以及解码的复杂度。在具体实施中,将球面全景视频分别使用equirectangular,PLANE_POLES和本发明的方法映射为相同大小(像素个数相同)的平面视屏并进行编码,本发明的方法相较于equirectangular映射取得了超过10%的编码效率的提升,相较于PLANE_POLES方法,取得了3%-4%的编码效率的提升。本发明可应用于全景图像和视频。

附图说明

图1是本发明实施例提供的全景图像映射方法中映射过程的示意图;

其中,(a)为映射前的球面全景图像;(b)为通过本发明全景图像映射方法映射后的方形平面I′、矩形平面II′和方形平面III′的示意图;(c)为映射后再拼接得到的平面图像。

图2是本发明实施例将全景图像映射成平面图像的效果图。

具体实施方式

下面结合附图,通过实施例进一步描述本发明,但不以任何方式限制本发明的范围。

本发明提供了一种新的全景图像映射方法及其相应的反映射方法,通过本发明的全景图像映射方法可将球面映射到二维平面上,能够改善在高纬度区域的过采样。通过全景图像反映射方法可将本发明中的平面图像映射回球面,以进行渲染观看。

本发明实施例提供了一种基于主视点的全景图像映射方法,包括全景图像映射方法以及相应的反映射方法,以下分别介绍映射方法以及反映射方法的实施例。

图1所示为通过全景视频反映射方法将全景图像A所对应的球面映射到二维平面图像B上的映射过程。根据球面的纬度,将球面分成三个区域:分别记为区域I,区域II和区域III;区域I对应球面上纬度为-90°~Z1的区域,区域II对应球面上纬度为Z1~Z2的区域,区域III对应球面上纬度为Z2~90°的区域;然后将区域I映射为分辨率为W1×W1的方形平面I′,区域II映射为分辨率为WII×HII的矩形平面II′,区域III映射为分辨率为WIII×WIII的方形平面III′;最后根据WI,WII,HII,WIII的值将平面I′,II′,III′拼成一个平面,所得的平面即为上述二维平面图像B;所述参数Z1,Z2,WI,WII,HII,WIII均可进行设置,且需满足条件:-90°≤Z1≤Z2和Z1≤Z2≤90°,在本实施例中令参数WI=0.25×WII=HII=WIII以保证最后拼接成矩形。将图1(a)中的球面映射并拼接成图1(c)中的平面的方法步骤如下:

第一步:对方形平面I′中的每个像素点,根据其在平面I′中的坐标(X,Y),计算其对应的球面坐标Coordinate(经度和纬度),然后根据球面坐标Coordinate取球面上对应位置的像素值(或附近像素通过插值计算得到相应像素值),作为平面I′中像素点(X,Y)的像素值。根据平面I′中的坐标(X,Y)计算其对应的球面坐标Coordinate的方法为:

1.1)计算得到该点到方形平面I′中心的垂直距离和水平距离,取其中较大的一个记为m;通过式1计算得到:

m=max(abs(WI÷2-X-0.5),abs(WI÷2-Y-0.5)) (式1)

1.2)方形平面I′可看作是多个同心方形组成的,本步中计算得到该点到其所在的同心方形上第零个点的距离,记为n;具体地,本实施例选取右上角的像素为第零个像素,距离按逆时针方向计算,其计算方法如下:

其中,m2=(WI-1)÷2-m。

1.3)根据n和m,分别通过式3和式4计算得到方形平面I′中坐标为(X,Y)的点所对应的纬度latitude和经度longitude:

latitude=(Z1+90°)×m÷(WI÷2)-90° (式3)

longitude=n÷(8×m)×360°-180° (式4)

第二步:对方形平面II′中的每个像素点,根据其在平面II′中的坐标(X,Y),计算其对应的球面坐标Coordinate(经度和纬度),然后根据球面坐标Coordinate取球面上对应位置的像素值(或附近像素通过插值计算得到相应像素值),作为平面II′中像素点(X,Y)的像素值。根据平面II′中的坐标(X,Y)计算其对应的球面坐标Coordinate的公式为:

latitude=Z2-(Z2-Z1)×(Y+0.5)÷HII (式5)

longitude=360°×(X+0.5)÷WII-180°+offset (式6)

其中,offset为矩形平面II′中心对应的经度,可自行设置。

第三步:对方形平面III′中的每个像素点,根据其在平面III′中的坐标(X,Y),计算其对应的球面坐标Coordinate(经度和纬度),然后根据球面坐标Coordinate取球面上对应位置的像素值(或附近像素通过插值计算得到相应像素值),作为平面III′中像素点(X,Y)的像素值。根据平面III′中的坐标(X,Y)计算其对应的球面坐标Coordinate的方法为:

3.1)计算得到该点到方形平面III′中心的垂直距离和水平距离,取其中较大的一个记为m;

m=max(abs(WIII÷2-X-0.5),abs(WIII÷2-Y-0.5)) (式7)

3.2)方形平面III′可看作是多个同心方形组成的,本步中计算得到该点到其所在的同心方形上第零个点的距离,记为n;其中第零个点的位置可任意选取;

其中,m2=(WIII-1)÷2-m;

3.3)根据n和m计算得到方形平面III′中坐标为(X,Y)的点所对应的纬度latitude和经度longitude;

latitude=90°-(90°-Z2)×m÷(WIII÷2) (式9)

longitude=n÷(8×m)×360°-180° (式10)

第四步:如图1(b)和图1(c)所示,首先将矩形平面II′分成四个分辨率为HII×HII的小平面,记作:II′1,II′2,II′3,II′4,然后按照平面II′1,平面II′2,平面II′3,平面III′,平面II′4,平面I′的顺序将它们拼接成一个分辨率为6WI×WI的平面,拼接中平面III′顺时针旋转90°,平面II′4逆时针旋转90°。

至此,本实施例完成将全景图像从球面映射成平面图像,得到的平面图像展示效果如图2所示。

另一方面,本发明提供的全景图像反映射方法将二维平面图像B映射回球面,二维平面图像B由三个平面拼接而成,这三个平面记为平面I′,平面II′,平面III′,平面I′是分辨率为WI×WI的方形平面,平面II′是分辨率为WII×HII的矩形平面,平面III′是分辨率为WIII×WIII的方形平面;全景视频反映射方法将平面I′映射回球面上纬度为-90°~Z1的区域I,平面II′映射回球面上纬度为Z1~Z2的区域II,平面III′映射回球面上纬度为Z2~90°的区域III,所述参数Z1,Z2,WI,WII,HII,WIII的值包括但不限于从码流中获取。本实施例中令参数WI=0.25×WII=HII=WIII,且平面I′,平面II′,平面III′拼接成的二维平面图像B分辨率为6WI×WI

上述全景视频反映射方法将二维平面图像B映射回球面的具体步骤如下:

第一步:二维平面图像B拆分成平面I′,平面II′,平面III′,拆分的方法为,将二维平面图像B分成6个WI×WI的平面,分别记作平面1,平面2,平面3,平面4,平面5,平面6,将平面4逆时针旋转90°得到平面III′;平面6即为平面I′;剩下的4个平面按照平面1、平面2、平面3、平面5的顺序拼接为分辨率4WI×WI的平面(其中平面5顺时针旋转90°)得到平面II′;

第二步:对于球面上纬度为-90°~Z1的区域中的所有像素,根据其球面坐标Coordinate(经度和纬度)计算其对应到平面I′中的坐标(X,Y),取平面I′中(X,Y)处的像素值(或附近像素进行插值),作为球面上坐标Coordinate处像素点的值。根据球面坐标Coordinate计算其对应到平面I′中的坐标(X,Y)的步骤如下:

2.1)根据纬度latitude计算球面上的点在平面I′中的对应点距离平面I′中心的距离m,计算公式如下:

m=(WI÷2)×(latitude+90°)÷(Z1+90°) (式11)

2.2)根据经度longitude计算球面上的点在平面I′中的对应点距离该对应点所在的同心方形中第零个点的距离n,其计算公式如下:

n=8×m×(longitude+180°)÷360° (式12)

2.3)根据m和n的值计算出球面上的点在平面I′中的对应点的坐标(X,Y):

其中,m2=(WI-1)÷2-m;

第三步:对于球面上纬度为Z1~Z2的区域中的所有像素,根据其球面坐标Coordinate(经度和纬度)计算其对应到平面II′中的坐标(X,Y),取平面II′中(X,Y)处的像素值(或附近像素进行插值),作为球面上坐标Coordinate处像素点的值。根据其球面坐标Coordinate计算其对应到平面II′中的坐标(X,Y)的计算公式为:

Y=(Z2-latitude)×HII÷(Z2-Z1)-0.5 (式14)

X=(longitude+180°-offset)÷360°×WII-0.5 (式15)

其中,offset为矩形平面II′中心对应的经度。

第四步:对于球面上纬度为Z2~90°的区域中的所有像素,根据其球面坐标Coordinate(经度和纬度)计算其对应到平面III′中的坐标(X,Y),取平面III′中(X,Y)处的像素值(或附近像素进行插值),作为球面上坐标Coordinate处像素点的值。

4.1)根据纬度latitude计算球面上的点在平面III′中的对应点距离平面III′中心的距离m;

m=(WIII÷2)×(90°-latitude)÷(90°-Z2) (式16)

4.2)根据经度longitude计算球面上的点在平面III′中的对应点距离该对应点所在的同心方形中第零个点的距离n;

n=8×m×(longitude+180°)÷360° (式17)

4.3)根据m和n的值计算出球面上的点在平面III′中的对应点的坐标(X,Y)

m2=(WIII-1)÷2-m

其中,m2=(WIII-1)÷2-m。

至此,上述实施例完成本发明反映射方法的所有步骤,通过反映射方法将二维平面图像B映射回球面,便于进行渲染观看。

在具体实施中,将球面全景视频分别使用equirectangular映射方法、PLANE_POLES映射方法和本发明方法映射为相同大小(像素个数相同)的平面视频并进行编码。其中,PLANE_POLES映射方法是在equirectangular映射方法基础上,将球面上两极附近的区域映射成方形,将球面上纬度相同的圆环映射为平面上的圆环。实施结果表明,本发明的方法相较于equirectangular映射取得了超过10%的编码效率的提升,相较于PLANE_POLES的方法,取得了3%-4%的编码效率的提升。

需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附权利要求的精神和范围内,各种替换和修改都是可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。

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