开发一款像Hololens这样的产品需要学习哪些技术?
HoloLens是属于VR还是AR领域的产品,这个就不多做评述了。不妨先把问题简化,先把这个需求当作一款普通的类Oculus VR的虚拟现实眼镜来实现。
那么首先,您需要有能力获得用作画面呈现的显示屏:在这个万众争新的时代,采用OLED的显示屏幕简直是不二之选,TFT液晶屏首先从屏幕本身的延时性就足以让您直接输在起跑线上;
然后是分辨率。所谓的“2K”屏(2560 x 1440)将会是今年底到明年初的主力产品,因为大家已经受够了现在所有VR内容画面的模糊感和锯齿感;
接着还有不小于75Hz的高刷新率,足够保证沉浸感的FOV角度,低余晖,等等——当然了,兑现上述参数的前提是您能够拿到稳定的OLED货源:如果三星拉长一张驴脸看也不看您低垂的头颅,那么也许只能暂时搞些散片过过日子。
然后您需要放置在显示屏之前的两个镜片,球面或者非球面形体,不同的焦距适应, PMMA材质,高透过率,极低的色散,必要的话还可能重新注塑改善抗冲击能力。什么,千叶眼镜店买的?要不咱换方向做个SM眼罩试试?
然后是IMU,即加速度/陀螺仪/地磁组成的九轴传感器来确定头盔的空间姿态。选择尽量高的输出频率,这意味着更低的传感器延时;而必要的滤波和插值手段则让输出结果可以排除干扰,平滑如丝。哦?用一个手柄来控制啊?那别做HoloLens了,做个智能挖掘机啥的吧。
哦,对了,还有稳定的散热性能,至少加装两个呼呼呼的风扇,以免死宅们油腻腻的皮肤泛起一层不合时宜的白雾。以及完善的电源管理机制,不要以为Oculus在这里就做得很好了,最新版的DK2在Switchable Video Card上完全摆烂的血淋淋的事实正摆在我们面前,详情见:0.7 Setup Guide and GPU Compatibility 。
以上,不考虑结构设计,工装,制版,开模,批量生产,装配,材料,用户舒适度,数据协议,镜头畸变,SDK接口,Demo示例,地推,专利,以及可能控告你辐射超标的学生家长……这一系列其它看似不重要,然而到了必要的时段就分分钟要你难看的已知需求的话,我们也许已经能够制作一款差不多也许似乎就快能用的VR眼镜了。然而这才哪儿到哪儿啊!
假设现在我们或者我们的投资人笃信“人有多大胆,地有多大产”的原则,要在上述基础上实现一款类HoloLens的增强现实眼镜产品。
这个简单——不就是多加俩摄像头么,芝麻大的事儿。
好的,现在需要的是一款双目摄像头模组,为了让增强现实的混合效果能够最大化地真实可信,它的分辨率和刷新率至少不应低于VR内容显示屏;而为了避免高速运动过程中产生的模糊与撕裂(别忘了您的牛逼IMU),它还应当具备全局快门的特性,让每一帧画面都清晰可辨;哦,还有镜头参数应该也能够严格对应。那么,随便搜一款约为2K分辨率,>75FPS,>120度FOV的全局快门摄像头模组(还不是双目哦)的价位大概是——
嗯,假设投资人咬咬牙能接纳这么一个还算不太离谱的价格,下面您就得掰开三头六臂能够扛下重新制版、FPGA处理、硬时钟同步以及单路或者多路信号输出的职责,以及不得不面临的另一个经典的计算机视觉问题:标定——因为如果不做画面标定,不对齐和纠正VR内容与摄像头画面的匹配关系话,您这款产品也许只能用来在拍摄画面上叠加一个CCTV的标识而已。
真麻烦啊,其实我有个好主意诶,用透明屏来表达眼前的内容呗?然后把VR场景叠加上去?听起来确实不错,然而——
现有的液晶透明显示技术,最大的问题是失去了带有发光灯管的背板,因此需要柔和的日光灯箱来进行弥补。那么这种补光是补在您的眉毛上?还是脑瓜顶?还是……总之在材料科学家告诉您这个世界又革命了而且新技术已经低成本普及了之前,还是安安静静地用现有的成熟方案比较好。
好的,好的,攻关完毕,没人知道您的模组是如何安装到眼镜之上并且确保这种刚性连接是不会在匀速运动时产生共振的。下面我们要再放一个PC进去……
……
这没什么错啊,仿制HoloLens嘛,人家也是内置了CPU和GPU来做必要的运算的,并且诸如Intel Atom或者MK802或者树莓派这样的设备也足够成熟到塞入您的不大不小的眼镜中去。不过旧的敌人也因此又死灰复燃了:散热与电源管理。
也许时时刻刻在进行满负荷运算的CPU,以及也许为了摆脱线缆而不得不加入的电池组和稳压模块,为了满足这些搞不定就分分钟要用户难看的设备和板卡,不知道您是不是已经耗尽了身体里的最后一点精血呢?
但是这可没玩完,大头还没有出场呢:SLAM与即时定位。
也许您还记得当年的Kinect Fusion,以及那种只靠一个RGBD摄像头就能够实现空间点云生成和三维重建的快感吧。并且还有开源的Kinfu以及它们所蕴含的高效率的SLAM算法可以参考,在一个未知环境里,快速根据颜色和深度信息识别与生成地图,并且判断自身在地图中的位置。尽管这种无外部输入反馈的算法依然存在着误差的累积和偏移,但是通过科学家与您的不断努力,相信已经有能力把它集成到一个U盘大小的ARM系统当中,并且在小而美而不发热的高性能GPU的通用计算能力笼罩下,能够接受2K的双目摄像头输入、重建和进行空间定位了,这是多么伟大的成就啊————
等等,我们漏掉了什么?
你说RGBD摄像头?你说深度?
那刚才那个双目摄像头模组能干这事么?当然不能。那么从技术上要怎么做?TOF。那么什么是TOF?哦……
靠,白忙活了。也许不然,因为重新寻找一个专有的双目高速全局快门的2K RGBD摄像头似乎并不是那么容易的事情,而且深度和三维场景重建与实时定位或许也承受不起那种程度的高分辨率,或者现在就问问您的CPU和风扇还好吗?所以要不我们把深度信息单独拿出来识别吧,就像HoloLens也许做的那样。
太棒了,虽然不知道您是如何披荆斩棘来到这里的,但是假设您通过各种专业知识的学习与实践,以及连续21天不断的努力确实做到了。现在就是我们推出这款最新成果的时候了——
等等,用户怎么用啊?人家微软视频里那么牛逼的效果,你让咱也搞一个出来爽爽嘛。
有Unity的封装吗?有Unreal的封装吗?有底层图形接口嘛?为啥你只有DX11不提供DX9啊?为啥你的OpenGL接口不提供MSAA啊?为啥你的示范工程只有VisualStudio 2012啊?为啥不支持Intel高性能核芯卡啊?为啥不支持移动版啊?为啥不支持其他系统啊?为啥……
还有还有,为啥看着这么笨重啊?原型机是吗?重新设计吧,制版吧,开模吧,小型化吧,论证吧,测试除错吧,反馈吧,设计吧,制版吧,开模吧……
至于普及什么是VR,什么是AR,什么是混在一起的MR;怎么在空间放置三维模型,怎么做根据深度的平滑和遮挡,怎么做实时光影渲染以及与真实场景的匹配……那又足以放到另外一个话题了。况且以上所有的论题,都完全没有铺开来讲述;而因为小弟我的能力和知识层面所限,因此遗漏和错漏和谬误的知识点,同样数不胜数。
所以这不是单枪匹马,或者一句话的问题就可以承受的重量......
来源:雷锋网