Equi-Rectangular Projection (ERP)

投影方式

等距柱状投影是目前应用最为广泛的一种VR视频投影方式,最初是公元前100 年古希腊航海家Marînos o Týrios 为了绘制地图而发明的。这种投影方式把地球的经线映射成间距相等的垂直线,把地球的纬线映射成间距相等的水平线,则可生成一幅横纵比为2:1的地图。

投影公式

在全景图像及视频中,等距柱状投影的实现思路是用相同数量的采样点保存每条纬线上的数据,从而得到对应的二维平面上的矩形视频。如上图为该投影格式的展开示意图,在归一化后的平面坐标系上,u、v 的取值可以是[0, 1]内的任意值。

其中,经纬度坐标系与三维笛卡尔坐标系转换公式如下:

⎧⎩⎨⎪⎪X=cosθcosϕY=sinθZ=−cosθsinϕ(1) (1) { X = c o s θ c o s ϕ Y = s i n θ Z = − c o s θ s i n ϕ

\begin{cases} X = cos\theta cos\phi\\Y = sin\theta\\Z = −cos\theta sin\phi\\\end{cases}\tag{1}

该面上某一点从平面点转换到三维空间中的对应点首先使用公式(2)对采样点(m, n)进行一个位移变换。

⎧⎩⎨⎪⎪u=m+0.5W,mϵ[0,W)v=n+0.5H,nϵ[0,H)(2) (2) { u = m + 0.5 W , m ϵ [ 0 , W ) v = n + 0.5 H , n ϵ [ 0 , H )

\begin{cases} u = \dfrac{m + 0.5}{W},\quad m\:\epsilon\:[0, W)\\v = \dfrac{n + 0.5}{H},\quad n\:\epsilon\:[0, H)\\\end{cases}\tag{2}

再使用平面点坐标(u, v)通过下列得出球面上的经纬度点(θ,Φ)。

{ϕ=2π(u–0.5)θ=2π(0.5−v)(3) (3) { ϕ = 2 π ( u – 0.5 ) θ = 2 π ( 0.5 − v )

\begin{cases} \phi = 2\pi(u – 0.5) \\\theta = 2\pi(0.5 -v) \\\end{cases}\tag{3}

然后再利用公式(1)即可计算得出三维点坐标(X, Y, Z)。

反过来,从三维空间点转换为二维平面点,对于三维空间内某一点(X, Y, Z), 可利用公式(4)得出经纬度值(θ,Φ),再通过公式(3)得出平面点(u, v)即可。

⎧⎩⎨⎪⎪ϕ=arctan(−ZX)θ=arcsin(YX2+Y2+Z2‾‾‾‾‾‾‾‾‾‾‾‾‾√)(4) (4) { ϕ = a r c t a n ( − Z X ) θ = a r c s i n ( Y X 2 + Y 2 + Z 2 )

\begin{cases} \phi = arctan(-\dfrac{Z}{X}) \\\theta = arcsin(\dfrac{Y}{\sqrt{X^2+Y^2+Z^2}}) \\\end{cases}\tag{4}

投影效果

下图为ERP投影的两幅实际效果图,其平面图像横纵比为2:1。

显然,这种投影方式映射关系简单,即使是投影后的二维平面视频也很直观,方便用户观察。但对球形视频每条纬线上都用相同数量的采样点,导致越靠近两极的纬线其冗余采样点数量就越多。例如在两极处,本来只需要一个采样点,但却用了和赤道处同样多的采样点,冗余数据量最大。这种方法增大了视频所占空间,给视频传输过程带来很大问题;像素密度分布极度不均匀的同时还引入了相当严重的图像拉伸,导致了非常高的失真。因为最终视频画质是由原始素材画质和拉伸后视频画质共同决定的,所以采用这种方法得到的视频画质较差。

Equal-Area Projection (EAP)

投影方式

Equal-area Projection(EAP)指的是Cylindrical Equal-area Projection,是一系列的圆柱等面积投影,将经线映射为等间隔的垂直线,纬线映射为水平线(非等间距)。可以想象为,将球面映射到一个圆柱面上并将圆柱面展开。Cylindrical Equal-area Projection,由赤道向两极水平拉伸不断增大,在Standard parallels标准纬线处是无拉伸失真的。不同Cylindrical Equal-area Projection的区别就是水平轴与垂直轴的比例(拉伸因子),这个比例决定了Cylindrical Equal-area Projection的Standard parallels。

投影公式

与ERP相同,EAP只有一个面,EAP的面索引始终设为0。在uv平面上,u和v的范围均为[0, 1]。
对于2D到3D的坐标转换,给定采样位置(m, n),我们可以首先用公式(2)计算(u, v)。 然后,球体上的经度和纬度(φ, θ)可以从(u, v)计算得到:

{θ=arcsin(1.0−2v)ϕ=2π(u−0.5)(5) (5) { θ = a r c s i n ( 1.0 − 2 v ) ϕ = 2 π ( u − 0.5 )

\begin{cases} \theta = arcsin(1.0 − 2v)\\\phi = 2\pi(u − 0.5)\\\end{cases}\tag{5}

最后,使用(1)公式可以计算出三维笛卡尔坐标系下的坐标(X, Y, Z)。

对于3D到2D坐标转换,给定(X, Y, Z),使用公式(1)求解(Φ,θ)。然后,通过求解方程(5)来计算(u,v)。 最后,通过求解方程(2),就可以得到采样点(m, n)的坐标。

投影效果

在360视频中,连续投影主要为ERP和EAP,很明显,他们两者主要区别于平面坐标y与球面坐标φ的映射关系。ERP的纬线被投影为等间隔的水平线,而EAP不是,因为EAP保证了投影的等面积。但两者都存在拉伸问题,引入了较大的冗余。

在360视频中采用的EAP,即Lambert cylindrical equal-area projection,是一种Cylindrical Equal-area Projection圆柱等面积投影,这个投影在赤道处无失真,即赤道为标准纬线,失真向两极迅速递增。像任何圆柱投影一样,远离赤道拉伸越严重。两极将一点拉伸为一条线,产生了无限的失真。

Adjusted Equal-area Projection (AEP)

投影方式

Adjusted EAP是在JVET-G0051会议上制定的针对EAP投影方式的改进,在360Lib-4.0版本中直接替代了原有的EAP方式。事实上,EAP是AEP的在投影参数β=1时的一种特定情形。

投影公式

在EAP中,使用如下的公式进行3D到2D的坐标转换:

{u=ϕ2π+0.5v=−0.5sinθ+0.5(6) (6) { u = ϕ 2 π + 0.5 v = − 0.5 s i n θ + 0.5

\begin{cases} u = \dfrac{\phi}{2\pi}+0.5\\v = -0.5sin\theta+0.5\\\end{cases}\tag{6}

而在AEP中,使用如下公式进行3D到2D的坐标转换:

⎧⎩⎨⎪⎪u=ϕ2π+0.5v=−0.5sin(βθ)sin(0.5πβ)+0.5(7) (7) { u = ϕ 2 π + 0.5 v = − 0.5 s i n ( β θ ) s i n ( 0.5 π β ) + 0.5

\begin{cases} u = \dfrac{\phi}{2\pi}+0.5\\v = -\dfrac{0.5sin(\beta\theta)}{sin(0.5\pi\beta)}+0.5\\\end{cases}\tag{7}

可以看出,EAP是AEP的在参数β=1时的一种特殊情形,而在JVET-G0051会议提案中,建议将β设置为1/1.4,来得到最优的PSNR评分。

投影效果

下图是AEP在不同β值下的 E2E PSNR-NN 评分。

在下图中,通过对比左图(a)与右图(b),可以看出在北半球的区域(房屋屋顶),AEP(β=1/1.4)的图形扭曲程度远远小于EAP,进一步提高了EAP的投影质量。

Equatorial Cylindrical Projection(ECP)

这部分是由实验室老肖撰写的。

投影方式

赤道圆柱投影(ECP)和等距圆柱投影(ERP)的投影方式相同,同样是将地球的经线映射成间距相等的垂直线,把地球的纬线映射成间距相等的水平线,详情可见ERP投影方式。在ECP的投影方式中,将投影获得的ERP二维平面划分为6个面积相等的区域,划分及其效果图如下图所示:

默认情况下,下图中显示的3x2布局格式为ECP的布局方式。编号为0和1的投影面分别跨度30纬度和360个经度值360经度,编号为2,3,4,5的投影面分别跨度120纬度和90经度。

投影公式

同ERP一样,对于从二维平面采样点(m,n)转换为三维空间点(X, Y, Z), (φ, θ)可由点(m,n)通过公式(2)与(3)得到, 然后再利用公式(1)即可计算得出三维点坐标(X, Y, Z)。

反向从三维空间点转换为二维平面点,对于三维空间内某一点(X, Y, Z), 可利用公式(4)得出经纬度值(θ,Φ), 再由公式(2)和(3)得出平面点(u, v)和(m,n)即可。

投影效果

赤道圆柱投影方式的效果图如下图所示:

ECP的3x2框架中编号为2,3,4,5的投影面内的图像展示效果较好,他们显示的是球面赤道附近的曲面区域,若球面赤道附近的曲面为重要的图像区域,则使用ECP的投影方式十分合适,但是在编号为0,1的投影平面内,ECP投影将ERP两极区域的平面进行了压缩与拉伸,使得平面分布不均匀,并且上下两个片面间存在一条不连续的直线。

参考

  • 岳麓吹雪 - Equal-area Projection(EAP), https://blog.csdn.net/lin453701006/article/details/71159745
  • JVET-G0051
  • 360lib-4.0 Software Manual

原文戳这里,转载请声明。

360lib投影格式介绍(一) - 伪圆柱投影(ERP / EAP / AEP / ECP)相关推荐

  1. 360lib投影格式介绍(二) - 立方体贴图投影(CMP / ACP / EAC / SSP / TSP)

    CubeMap Projection (CMP) 投影方式 在计算机图形学中,立方体投影是常用的环境映射方法之一,常用于游戏场景中的天空盒,相当于等距柱状投影的优化版,环境投影到立方体之后可分六个正方 ...

  2. FME的ESRI Geodatabase (MDB)格式介绍(一)

    原文发布时间:2010-10-13 作者:毛毛虫 来源: ESRI Geodatabase (MDB) 是一种FME 格式,它的FME格式关键字是GEODATABASE_MDB. 1.创建类: FME ...

  3. 点云格式介绍(更新中,待补充)

    常见点云存储方式有pcd.ply.txt.bin文件. 一.点云的基本组成 点云组成可以是以下几种形式数据的排列组合. (1)x.y.z:点云的空间坐标. (2)i:强度值,强度反应了点的密集成度. ...

  4. mysql linestringfromwkb_WKTWKB 笔记一:格式介绍

    WKT&WKB 笔记一:格式介绍 数据格式类型: POINT(6 10) LINESTRING(3 4,10 50,20 25) POLYGON((1 1,5 1,5 5,1 5,1 1),( ...

  5. MySQL Binlog三种格式介绍及分析

    一.Mysql Binlog格式介绍 Mysql binlog日志有三种格式,分别为Statement,MiXED,以及ROW! 1.Statement:每一条会修改数据的sql都会记录在binlog ...

  6. 图像bayer格式介绍以及bayer插值原理CFA

    1 图像bayer格式介绍 bayer格式图片是伊士曼·柯达公司科学家Bryce Bayer发明的,Bryce Bayer所发明的拜耳阵列被广泛运用数字图像. 对于彩色图像,需要采集多种最基本的颜色, ...

  7. CIF、QCIF、HD1、D1格式介绍

    CIF.QCIF.HD1.D1格式介绍 CIF简介 CIF是常用的标准化图像格式(Common Intermediate Format).在H.323协议簇中,规定了视频采集设备的标准采集分辨率.CI ...

  8. PLY格式介绍与读取

    一.格式介绍 PLY是一种电脑档案格式,全名为多边形档案(Polygon File Format)或 斯坦福三角形档案(Stanford Triangle Format).  史丹佛大学的 The D ...

  9. 哈佛参考文献注释及APA文献格式介绍

    在Report写作里面,除了观点论据等,应该就是参考文献最难处理了吧.因为首先我们需要知道的是,尽管同学们的英语水平能够读懂普通的英语文章,但是却不一定能够读得懂参考文献,更别提把它用到Report中 ...

最新文章

  1. Spring Boot Admin 2.1.0 全攻略
  2. 浙江工业大学计算机学院推免生,浙江工业大学计算机科学与技术学院(专业学位)计算机技术保研...
  3. ACM入门之【DP】
  4. html设置图片不可拖拽,js css3实现图片拖拽效果
  5. LeetCode Algorithm 1566. 重复至少 K 次且长度为 M 的模式
  6. powerbi的功能介绍_PowerBI 8月更新,这几个实用功能,你应该会用到
  7. Stone game(dp计数上海icpc网络预选赛)
  8. 解决JAVA_HOME nor the JRE_HOME environment variable is defined
  9. 【Keras】从两个实际任务掌握图像分类
  10. Jenkins:项目配置
  11. 4步带你从Web前端小白到入门!
  12. sscom32串口测试软件连接串口时有时会造成设备异常,更换别的串口软件后正常,特此记录
  13. kong_团结的面Kong:国际妇女节
  14. 两个数组合成一个json对象_js把两个json数组根据相同键值合并成一个数组
  15. elasticsearch基础知识
  16. JavaScript 音乐播放器
  17. 扫描图片批量倾斜校正小工具
  18. Jlink 烧录stm32 提示- ERROR: Verification of RAMCode failed @ address 0x20000000.
  19. 充电器pps功能是什么_联想推出45W拯救者充电器,支持PPS功能主打便携
  20. vue scroll 监听,点击按钮自动滚动到相应的信息展示

热门文章

  1. 计算机一级系统压缩密码,教你如何设置密码保护Win10系统压缩文件夹?
  2. ECJIA到家短信插件开发
  3. web应用上线发布详细流程(jeecg-boot,vue3)
  4. 杭州嘉云数据电话面试
  5. 学校私有云盘在学校信息化建设中的作用-教学资源库平台
  6. 1.14勤能补拙也是舒适区
  7. 你是把「热点」营销了,却没有营销到品牌
  8. uwsgi部署django
  9. OpenGL画太阳系
  10. 微信小程序使用that=this原理