当前位置: 首页 > 科技观察

如何把范冰冰“送”到自己家?

时间:2023-03-16 12:05:37 科技观察

2017天猫双十一盛典,1.4亿人边玩边买。“名人来你家”独特的AR互动活动令人印象深刻。晚会上,范冰冰和卢靖姗瞬间穿越到所有观众家中,6分钟内225万人次邀请“明星到你家”。今天,我们请到了阿里工程师穆杰来为大家揭秘如何把范冰冰“送”到你家。背景介绍每年的天猫双11狂欢之夜都是星光熠熠,2017年也不例外。大多数娱乐圈都来了,还有好莱坞巨星和超级体育名人。但如果明星们像往常一样留在电视里,这就不是什么新鲜事了。电视上的明星能否走下舞台,甚至走进每个观众的家中,实现与观众的零距离互动?范冰冰“传送”到你家。在这场晚会中,观众只需在手机上点击一个按钮,就可以“邀请”明星到自己家中拍照互动。原来,阿里巴巴工程师首次将真人3D建模和动作捕捉技术应用到国产手机平台,逼真地还原了明星的动作甚至面部表情,然后通过特殊加密将模型文件压缩到20M左右算法。将AR技术与VR全景技术相结合,实现利用科技将明星通过AR技术投射到真实场景中,达到与观众面对面、多角度、零距离接触的效果。机遇与挑战接到这样的项目,整个团队都非常激动。它可以为公众带来一项新技术。它不仅是技术的展示,更是技术人员心中的一种执念:技术改变世界。经过技术研究,我们有以下担忧:1.AR算法需要更好的性能。2.需要集成在淘宝&猫客APP中,bundlesize越小越好。3.在iOS平台上,只有iPhone6S和iOS11用户可以使用ARKIT。4.Android端碎片化严重,机型差异巨大,各种兼容性问题。针对以上问题,我们调研了一些成熟的引擎:1、Unreal、Unity等游戏引擎,开发生态成熟,能力强大。专业的特效需要专业的团队,像Unity这样简单的特效上手并不难。但是,它们相对较大并且具有框架性质。他们直接生成一个大引擎,是一个独立的app,不适合嵌入到手机淘宝等应用中。2、随着浏览器的发展,WebGL的纯渲染能力和兼容性越来越强,将会满足大量的需求。但是,面对各种需要高性能的AR算法,或者各种与渲染相关的强大原生能力(比如优化的直播视频流、图像插值内容等),它就会无能为力。等待原生开发其实就是等待标准的制定和普及。PWA和WebAssembly等技术尚未完全可用。3.混合方案通常面临异构系统导致的异步渲染缺陷,高频通信通常会带来性能不佳的问题。另外,Native的披露能力,除了API级别的披露,无论是对资源使用的细粒度控制,还是需要处理的渲染内容,都不是简单抽象一两次函数调用就能解决的问题在底层。考虑到2017年猫玩的覆盖范围和广度,兼容淘宝/猫客和各种模式渠道是必然的。综上所述,我们最终采用Weex-Redim架构来解决问题。Weex-redim在淘宝嵌入应用包大小的情况下,实现了多端一致性、动态性、高易用性、高性能的3D/VR/AR应用开发系统,具备开放使用的能力。关于Weex-Redim的常见问题和思考Redim是以vuecomponents的形式调用的。对于熟悉Vue/Weex的同学来说,只需要了解一些图形概念就可以上手,几乎没有成本。这是稀有且有价值的。市面上大部分引擎都需要熟悉一定的图形相关知识,开发者需要学习上手。1、如何创建AR+SLAM场景?使用标签创建AR场景,Camera/Renderer/Light等Redim已经帮你不用管了。跟踪也是通过Redim的slam算法来解决的。你要做的只是在标签上指定一个算法:type=arkit/planeasmarker/imu。2.动画支持Redim原生支持Animation,目前支持translate3d和opacity,一些常用的矩阵运算基本可以支持。复杂的动画支持是有限的。3.Redim不适合做什么?高质量的大型场景级渲染:对于大型内容和灯光渲染场景,由于缺乏工具链,搭建起来还是比较困难的。而且动态创建不确定类型和数量的节点也是一件不方便编写的事情。高效的帧级粒度富交互:当有60fps的实时计算需求,需要反映组件的属性变化时,由于Weex的线程转发机制,效率不高。暂时可以通过降低回调频率来缓解,但要看情况。自由控制子组件粒度:当你想控制组件无法描述的非常底层的渲染特性时,如果组件不提供控制,你就无法自定义。除非你自己扩展新组件。…Redim具有上手快、无兼容性烦恼、性能稳定、开发效率高等优点。但是,由于在大规模场景渲染中缺少工具链,仍然存在很多不便之处。总的来说,大部分业务场景还是比较推荐同学们使用的:)项目中的一些“坑”1.模型太大,50Mb左右的模型大小足以让大部分用户望而却步。解决方案比较有针对性。我们将通过双十一前期活动提前发布相关模型文件,并在晚会当晚进行预加载。这样的解决方案太多了,我们就不一一列举了。一劳永逸,还是要通过模型压缩算法的:)2、需要三个算法:苹果的硬件支持在iPhone6s+iOS11平台,Arkit能给用户最好的体验。其他低于iOS11的系统和Android上跑分75分以上的中高端机型采用传感器+Marker解决问题。其余不在黑名单中的机型使用IMU传感器。3.基于人脸还是基于特征点?关于这个问题,我们已经重复了很多次。基于特征点,存在以下问题:每次启动应用程序时,都不知道设备的位置。对于远距离和长期使用,误差会累积并成为漂移。主要问题是定位不准确,范爷很容易上天:)基于表面的检测存在以下问题:无法识别人脸环境,例如纯色墙壁和纯色桌子。面对室外环境。因为深度传感器有距离限制,如果空间大小超过限制,就没有深度信息。主要问题是定位时间过长,容易让用户失去耐心。为了体现最好的视觉效果,我们最终选择了face-baseddetection。4.不同的算法对应不同的世界坐标,其单位也不同。这需要统一处理。猫湾效果图【本文为专栏作者“阿里巴巴官方技术”原创稿件,转载请联系原作者】点此查看该作者更多好文