最近发布的Pico4支持了RGB see through(16MP*1 RGB),支持了彩色透视,相信有些小伙伴已经体验上了。(我还没有)
昨天夜里的OC大会上,期待已久的Quest Pro也支持了全彩透视,正好借着这个机会聊聊XR当中的透视问题。
VR or AR?
VR还是AR,这是一个长期的争论。这个争论的前提是两种场景都存在,而且在将来会融合进同一台设备中,问题就成了VR取代AR,还是AR取代VR。
这个问题的关键所在,就是哪个透视方案更加优秀?
AR see through,与生俱来的特性
AR目前的光学方案主要是光波导与BirdBath,在设计思路上的相通之处是
眼睛既可以看见传递/反射的虚像,又可以透过镜片看见真实环境。
但是体验过AR产品,不论是Nreal,Rokid,还是MagicLeap,Hololens,都有一种显示效果“咋就这吊样”的疑问。
MD跟宣传图明显不符啊!
加色法与减色法原理
加色法原理针对的是色光混合,也就是大家常常提到的RGB三原色。
RGB三种颜色的光,通过不同亮度的混合,可以产生丰富多彩的颜色。在一个色深8bit的色域当中,每种原色有2的8次方的色阶,也就是256种变化,三种颜色即为256的三次方1670万色。
如果一张FHD的图片在未压缩的情况下,数据量是多少呢?192010808*4,大约是63MB。
1920*1080是图片分辨率,说明有多少个像素点
8是8bit的色彩深度
4是通道数。那有细心的小伙伴可能发现了,为啥上面说三原色,3个色彩通道,为啥现在是4呢?因为在一般的人机界面中会用到透明和半透明,所以这里会有一个256阶的α通道,同样是8bit。
从下面左侧的图,可以清晰地看到加色法的效果,在三原色0,0,0的状态下为黑色,即不发光;在三原色为255,255,255的状态下为白色。
右侧的图则说明了在印刷中的减色法,在一张白纸上,什么颜色都不涂,是白色,如果把青品红都涂上,就变成了黑色。
大家回想一下,电脑显示器,电视,手机屏幕,在不点亮的情况下,是不是黑色?
而书籍,海报,一般都是印刷在白纸上?
在一个加色法的系统内,需要一个绝对的暗场来保证色准与对比度。大家记住这句话。
为什么需要绝对暗场?因为要保证色彩准确度与对比度。我们来举几个例子帮助理解。
假如三个子像素,最大亮度都为255nit,在一个纯黑的环境中发光,要显示一个墨绿色。
这时候的RGB色值分别为50,100,64,实际发光亮度约为138nit,理想状态下对比度为138/0,接近无穷大。
如果环境白光等效亮度为100nit,相当于每个色彩通道都叠加了100nit,则RGB的色值变为了150,200,164,已经发生了色偏,颜色淡了很多。并且对比度变成了(138+100)/100,大幅下降到2.38比1。
案例一:LCD与OLED的原理
传统的LCD屏幕是怎么来营造暗场的呢?通过相位垂直的偏振片来实现。
当两个偏振层(Polarizer)相位垂直时,光线不能通过,则认为是一个纯黑的环境。通过液晶的偏振效应,将透过下层偏振片的偏振背光,再次进行偏转通过彩色滤光片,通过上层偏振片时就看到了色光。
在实际的制造中, 因为工艺问题,偏振片并不能阻隔100%的光线,所以LCD屏幕会出现漏光问题。
OLED采用了自发光的材料,所以没有背光层,无需对背光遮光,所以结构上要简单很多。
但光线的干扰除了来自背光,还有环境光的反射,所以OLED在最上方加入了偏振层,同样利用偏振原理,来抑制环境光线的反射,以保证暗场的纯粹性。
案例二:投影仪原理
投影仪跟AR透视的问题接近了。
我们看到的投影画面非自发光,而是来自于光的漫发射,同样适用于加色法原理。
大家在使用投影仪的时候,一定会有这样的体会:
关灯,哇,投影效果好棒,家庭影院!
开灯,擦,全面拉垮,怎么这个叼样?
投影仪没有像屏幕一样的内部偏振结构形成的暗场,只能靠消除环境光线来保证暗场的纯粹性。
所以投影比较好的环境是全黑环境里面的大白墙。
影响投影效果的规律,是投影仪亮度越高越好,环境越黑越好。
但由于白墙这种暗场的环境脆弱性,即便是一点点光线,开个小夜灯,投影仪的对比度下降也非常明显;
即使是亮度非常高的投影仪,甚至反射的等效亮度超过了电视机,在白天的观看效果也远不如电视,因为电视是自带暗场的。
AR透视的暗场问题
第一次体验AR眼镜,模糊惨白的显示似曾相识,这不就是白天看微投的效果吗!?
由于AR眼镜要追求透视,所以光学结构中一定是可以透光的。
透光之后环境光就带来了暗场不纯粹的问题,导致色彩失准,对比度急剧下滑。
怎么解决暗场问题呢?
我们依据前面投影的规律,AR亮度越高越好,环境越黑越好。
提升亮度
提高显示亮度可以略微提升一点效果,但正如投影仪,一点光线也会影响色彩与对比度。况且以目前的AR产品形态与电池技术,高亮度下的功耗,发热,microOLED寿命都会收到较大的影响。
剩下的就是让环境光降低了。
遮光之物理遮光片
其实厂家并非没有意识到这个问题,这不Nreal就贴心地提供了一个塑料遮光片。
戴上之后,偶吼,效果好了很多。
物理遮光片原理简单,成本低,效果还不错。
但是这个片片戴上去,摘下来,实在有点累赘与傻。
遮光之 电致变色
电致变色就是材料在外加电场的作用下,改变颜色或者透明度等光学性质。
电致变色材料如果取代塑料遮光片,可以直接集成在眼镜本身,并通过软件控制,比塑料遮光片不知道优雅到哪里去了。
但缺点也非常明显:技术成熟度低,成本高,增加重量与功耗,是上电透明还是下电透明,得想清楚。
最关键一点:类似于塑料遮光片的一刀切,肯定不是最优解。
像素级遮光之液晶偏振
前面分析过LCD的原理,设想一下:
在AR眼镜的最外侧加上一层偏振片,这时候透过镜片的环境光线就变成了偏振光。
再加一组液晶层,根据α通道的阶梯值,控制液晶偏转的方向;
α通道为0:则液晶与偏振层相位对齐,光线正常透过;
α通道为255:则液晶与偏振层相位垂直,光线被阻隔。
像素级控制透视与暗场,才是AR see through的终极目标。
video see through/Passthrough
video see through是业界比较通用的叫法,Oculus一般叫做Passthrough。我挺喜欢Passthrough的叫法,pass有着透着某种管线(camera→display)传递过去的意思,与AR see through直接用眼镜看透相对应,定义更加形象准确,按照大家习惯就先叫VST了。
灰度video see through
在Quest2上,灰度Passthrough是买一送一的功能。
为实现VR设备的inside-out追踪,quest2配备了4颗30万像素的灰度摄像头。与动辄4800万,1亿像素的手机摄像头无法相提并论。
很多人就想问了,30万像素这么低,做slam能好吗?手势识别能好吗?
换成更高像素的效果会不会更好?
换成彩色的摄像头会不会更好?
首先30万像素灰度的摄像头,成本优势是非常明显的。
实际上,图像识别神经网络往往会做下采样来提升实时性,VGA分辨率足够喂饱一般的神经网络。只要不是目标对象太小,分辨率都是够用的。
换彩色呢?区分情况。比如要识别斑马线,灰度足够了;要识别红绿灯,还是彩色准一些。
但是在inside-out的追踪算法中,主要依赖物体的轮廓,纹理等特征。这些特征识别不依赖色彩(想象一下,一双手的照片,无论是黑白还是彩色,你都能精准识别出这是一双手),所以换成RGB Camera之后收益几乎可以忽略不计。而且,由于灰度摄像头省略了彩色的Bayer filter,感光能力更强,在低光环境下的追踪表现也就更好一些。灰度图像数据量为彩色图像的1/4,也更加节约内存与算力。
综上所述,用于inside-out追踪的Camera,30万像素分辨率足够,灰度满足特征识别要求,低光下表现更佳,运算速度更快,节约算力与功耗,成本低廉,是非常好的选型方案。
但是,这样规格的Camera用于passthrough则远远不够。
RGB video see through
彩色透视的优势
基于RGB Camera的彩色透视,可以说从根本上解决了透视中暗场营造的问题,全封闭的结构,自带暗场的LCD,OLED。
虚像与真实环境融合从现实效果来讲天衣无缝,真正可以实现以假乱真的效果。手头有iPhone的小伙伴可以尝试一下基于AR kit开发的一些应用,大致感受一下效果。
但是基于RGB video see through的透视方案,同样面临非常多的挑战。
彩色透视的挑战
更高的像素,色彩,与动态范围
为还原现实,忠于显示,彩色Camera在成像水平上远远高于灰度Camera。
以Quest2为例,1832*1920的单眼分辨率,点对点满足的话需要350万像素以上。况且双眼存在非交叉区域,边缘畸变不可用,以及FOV的仿真度,实际需要600万甚至更高的Camera。(如果Pico4的1600万是四合一拜耳排列,灯效像素也就在400万)
彩色是必须的,不光是色彩,还有动态范围。人眼的动态范围在120db以上,而一般消费级sensor在60db左右(拍照时可以通过包围曝光与堆栈实现HDR)。
更高的成本
高像素彩色Camera的成本肯定是高于低像素灰度摄像头的,而且并不适合做inside-out的追踪,所以日常灰度Camera并不能去掉,这给透视功能带来了额外的成本。
额外的性能开销与功耗
在设备工作状态下,追踪算法要一直运行,所以灰度Camera是一直在工作的。在灰度透视中,只是把Camera中的图像进行显示,额外的功耗微乎其微。
但由于彩色透视状态下,灰度Camera与彩色Camera需要同时工作,且彩色Camera带来的性能开销,内存占用,最终到功耗发热,都要远高于灰度透视。
而且,彩色Camera日常处于关闭状态,上电,加载驱动,屏幕送显等一系列工作也会导致透视功能启动缓慢。
令人眩晕的延迟
正如VR的显示延迟会导致晕动症一样,彩色透视下的显示延迟同样会导致晕动反应。
VR的渲染显示,可以通过ASW,ATW算法进行补偿,但是现实世界复杂而精妙,难以通过补偿算法抵消延迟。
这种延迟来源于MIPI CSI视频输入接口捕获CMOS senor输出的RAW data(video capture latency)
ISP对RAW data进行流水线处理,生成YUV图像(IPS pipeline latency)
从YUV图像转化与渲染为屏幕可显示的RGB图像(rendering latency)
以及最终通过MIPI DSI上屏显示(display latency)
以我们日常用的手机相机预览界面为例,通常也有几十毫秒的延迟。
(测试方法,高刷屏幕显示秒表,使用手机相机拍摄并预览,使用高于1/1000的快门的相机拍摄)
在Quest Pro上搭载的XR2+ gen1上,高通提供了新的图像处理pipeline,让e2e的延迟低于10ms,这是对透视体验至关重要的改进。而根据Pico4目前的反馈,延迟不算令人满意。
畸变,双目拼合,与图像mapping
一般来讲,焦距越短,广角畸变越明显;如果是用于算法,鱼眼镜头也没问题。但是人眼看就很别扭了。
如果采用单目,将无法实现视差带来的立体视觉,使用双目则需要对图像进行拼合处理。
同时,彩色透视不光要还原光线与色彩,同样也要还原空间关系。如何将现实环境完美的mapping到显示中,这也是一个有挑战的问题。
我对VR彩色透视应用的期待
第一,干掉安全区
我敢说安全区(Guardian)是VR里面最烂的发明了,这直接消灭用户使用VR的兴致。
戴上VR设备后:
找不到边界!
创建边界!
确认高度!
切换到原地边界!
确认清空周围物体!
创建安全区的过程,仿佛接连不断的大耳刮子,直到把人扇晕,才能进入迷幻的虚拟世界。
我对彩色透视的期望,第一个就是能赶紧消灭安全区。
第二,解锁使用场景,让VR破圈
VR在现阶段有个矛盾点:
- 戴上之后,封闭起来,隔绝真实环境,关于现实世界的事情都做不了了;
- 虚拟世界又还没那么让人沉迷其中,玩一玩就想摘掉。
这导致了用户缺少购买动力,甚至使用动力。
如果VR往现实增强的方向迈进一步,提供给用户一个与现实环境相容,不那么隔绝封闭的使用体验,伴随人与现实世界的交互,额外的体验都是增量收获。
这样的体验下,用户不但可以在家使用VR,更可以将VR带入更多户外场景中,通勤,办公,小憩休闲,等用户的使用时长与习惯逐渐养成,消费沉浸式内容是自然而然的举动。
原文始发于微信公众号(邪魔与科技):XR透视问题,从Quest Pro与Pico4的RGB see through说开去