徐丹、陈萍作者

手机秒变投篮机,还能模拟投篮真实手感,腾讯微视技术「家底」到底有多厚?

小小的 AR 投篮机背后包含着哪些技术?我们和腾讯微视技术团队聊了聊。

腾讯微视最近又出黑科技,这款新上线的游戏「AR 投篮机」能让你的手机秒变投篮机。

操作方法如下:进入腾讯微视 APP,搜索「AR 投篮」。


点击 AR 投篮机,就能进入游戏界面。找到一个背景平面,将篮筐调制最佳投篮位置,对准篮筐,向上滑动篮球,投中篮筐即可得分。该游戏对场地适应性很强,即便在暗光环境下,对单一纹理的地板也能定位。


虽然是虚拟投篮,但腾讯微视这款游戏的重力和碰撞都是模拟真实世界的物理特性来设计的。在滑动屏幕投球的过程中,用户滑动的速度、距离、角度共同决定了篮球投掷的落地点,最大程度模拟真实世界投掷物体的力度、方向和重力。

用户只要投中几次,掌握投球的力度和技巧,后面可凭借肌肉记忆,持续多次命中,分数的加成也会越来越高,投中的视觉,听觉特效反馈也会越加炫酷和强烈。

不仅如此,根据篮板的远近,游戏分为普通模式和挑战模式,模拟现实中的两分球和三分球。连续进球分数达到 20 分以后,筐会开始左右移动,最大程度的还原了投篮机的真实游戏体验。


游戏虽小,但背后的技术并不简单,腾讯微视有一支专门负责 AR 技术研发的「微视光流实验室」AR 团队,这款 AR 投篮机耗时四个月,可以说是腾讯微视 AR 技术的集大成者。除 AR 投篮机外,腾讯微视也有很多其他炫酷的 AR 应用,比如「纸片人」、3D 人民币等。

AR 是近两年才出现在大众面前的「黑科技」,公众对其认知度并不高。并且在不少人的印象中,这还是一项设备门槛很高的技术,但腾讯微视却能让 AR 覆盖到普通消费者,做到了在 90% 的安卓手机上运行。

这些炫酷的 AR 应用背后基于哪些技术原理?AR 技术又如何「走向寻常百姓家」?我们和腾讯微视技术团队聊了聊。

水平面 AR 算法:覆盖 90% 的安卓机,爆款「AR 投篮机」炼成背后

在 AR 投篮游戏中,虚拟的 3D 篮板看起来就像依附在现实的地板上一样。

如何做到这一点?本质上说就是要在三维场景中找到一个有一定特征点的依附平面(比如有花纹的地板),确定其坐标位置,然后将依附平面映射到二维屏幕上,再在平面上绘制想要展示的图形或者 3D 模型。

确定依附平面方面腾讯微视采用的是「水平面 AR 算法」,通常的做法是使用 SLAM 算法一边对三维场景进行扫描建图,一边定位水平面位置。

定位完成后在水平面上放上 AR 模型。接下来做的事情实际上就是要得到一个变换,让模型坐标系与屏幕坐标系建立映射关系,根据这个变换在屏幕上画出的图形就可以达到该图形依附在 AR 模型上的效果。

具体步骤为,从模型坐标系变换到真实的屏幕坐标系需要先旋转平移到相机坐标系,然后再从相机坐标系映射到屏幕坐标系。

但是,在手机 AR 的玩法中,如果直接使用 SLAM 来定位的话,在用户体验上会存在一些痛点,导致游戏很难成爆款。对此腾讯微视团队对技术做了很多优化。

「不同的玩法,要搭配不同的算法。不能一成不变地使用 SLAM 算法,否则就会造成杀鸡用牛刀。」

比如,绝大多数手机都只有一个摄像头,所以只能使用单目 SLAM 算法,必须要用户平移手机,直到有足够的视差后才能初始化。这个平移的操作,非常影响用户的体验。

另外,单目 SLAM 算法无法计算出真实的尺度,会出现「大人国小人国」的问题。

腾讯微视的做法是,充分利用手机上的多个传感器的信息和用户的交互信息,可以实现第一帧就初始化,并且能确定尺度

再利用自研的特征点跟踪算法,在弱纹理的区域,也能实现准确鲁棒的跟踪。在使用过程中,也不会出现卡顿,定位丢失等情况。

另外,用户可以用手拖放 AR 模型,可以用手拿上模型和放下,用户交互起来会很有意思。作为对比,ARkit 和 ARcore 都没有这样的功能,ARkit 和 ARcore 都只是单纯的放置 AR 模型,没有用手交互。

PBR 渲染:基于物理规律,游戏级别渲染效果

水平面 AR 算法可以让篮板依附在现实的地板上,但做出栩栩如生的篮球、篮板的 3D 模型还要靠渲染技术。

在这方面,腾讯微视采用的是 PBR 渲染,PBR 全称(Physicallly-Based Rendering)。这是一种基于物理规律模拟的渲染技术,最早用于电影的照片级真实的渲染,近几年由于硬件性能的不断提高,已经大量运用于 PC 游戏与主机游戏的实时渲染。

腾讯微视光流实验室自研的移动端高性能 3D 引擎,采用了业界领先的 PBR 算法,可以媲美游戏级渲染的效果,在移动端处于领先水平。与主流的游戏引擎相比,包体只有约 1.3MB。除了出色的 PBR 渲染效果外,引擎架构上保持了良好的扩展性,支持高性能的毛发效果渲染。

同时,腾讯微视的 3D 引擎支持对每个 3D 节点配置独立的 shader,扩展性更强,给创新应用提供了技术基础。

此外,算法还集成了动态骨骼插件 DynamicBone,可以高性能的模拟各种软硬程度的甩动效果,如头发、衣服等。且有高性能 GPU 3D 粒子系统,可以同时支持上万的粒子。

对于设计师来说,腾讯微视 3D 引擎可支持 Android,Windows,Linux 和 macOS 等跨平台应用,还提供了一整套完善的工具链和配套的 3D 编辑器,能帮助设计师灵活高效的组装出各种 3D 玩法。

AR 物理引擎:「黑科技」模拟真实投篮手感

和一般 AR 应用的不一样的是,AR 篮球还要能实时模拟真实世界物体运动与碰撞的反馈,根据用户滑动篮球的速度、距离、角度共同决定篮球投掷的落地点。这背后的技术是「AR 物理引擎」。

物理引擎支持长方体、球体、胶囊体、圆柱体以及自定义曲面的刚体模拟与碰撞,支持任意形状的软体仿真,能够自定义配置物体的各种碰撞参数(诸如质量、摩擦系数、弹性系数以及碰撞形状)。

还能模拟物体受力之后的运动状态,包括加速、减速、静止、碰撞等。在软体模拟功能中,能够很好地支持诸如软球以及布料的模拟,以及真实软体的碰撞效果。

腾讯微视「AR 投篮机」采用 BVH、CCD 等技术来加速碰撞检测过程,同时保证碰撞检测精度,在复杂场景下,能够同时支持数百个刚体的连续碰撞。可以在 Android、iOS 端以及桌面端进行物理实时模拟,针对不同的设备还能进行调参,参数调节鲁棒性高,不易出现模拟失控的情况。

目前,腾讯微视已将 3D 渲染软件 LightStudio 深入整合到物理引擎。通过 LightStudio 上简单的界面操作,可以低成本地配置出相当真实酷炫的物理模拟效果。

为了最大程度的模拟真实投篮体验,腾讯微视在用户体验上也做了很多优化设置。

在进行碰撞体生成的时候,腾讯微视一开始使用简单碰撞体来代表整个篮架,导致篮球与篮架的碰撞不精确,球体的碰撞反馈效果违和。后来改用精度超高的模型来进行碰撞体的创建,但又会出现卡顿的问题。

对此,腾讯微视专门对篮架构建了一个用于碰撞的网格模型,这个模型的点数与面数减少约 90%,同时此模型可以包裹住篮架,实现好的碰撞反馈效果。

篮架碰撞体的点数变少后,检测的精度实际会降低,此外篮球高速运动时可能会直接穿过篮筐的情况,对此腾讯微视使用了连续碰撞检测等方案解决。优化后在碰撞反馈效果与模拟效率之间实现了平衡。

骨骼动画:「神笔马良」让纸片人动起来

除了最新上线的 AR 篮球,腾讯微视还有很多新奇的 AR 应用,比如「AR 纸片人」挂件。可将画中的静态形象变成 3D 模型,模型还能抖动跳跃。


这里用到了两个重要技术:纸板人算法与骨骼动画

纸板人算法负责对图画进行边缘检测,提取轮廓,将其变成 3D 物体,然后分析图案提出骨骼点(手肘、膝盖等),将图案的各部分绑定到对应骨骼点。

在提取算法上,腾讯应用研究中心和腾讯微视共同研发的通用物体分割网络能实时提取复杂背景,结合传统提取方式,能在适应各种场景的同时具备实时性,在中低端机型上达到 30~40FPS。骨骼绑定时,腾讯微视算法会根据模型图案自动提取骨骼点并将图案的各部分绑定到对应的骨骼点,单张图案的骨骼提取和绑定在移动端只需几十 ms 就可以完成。

骨骼动画负责给绑定之后的模型赋予各种各样的动作,比如起身、跳跃、摆手。这里腾讯微视也给算法做了简化,只解算骨骼最末的子节点来驱动骨骼的变化,减少了资源占用率,甚至还可以应用于美颜等特效中。

Marker AR:纸币图案秒变实景

「3D 人民币」挂件也是一个典型的 AR 玩法。用户只要用手机扫描人民币背面,纸币上的景点图案就像被激活了一样,直接呈现到屏幕上,妙趣横生,给不少用户提供了新的旅行打卡思路。



这背后涉及到的技术就是 Marker AR 算法

扫描人民币时,Marker AR 算法可以利用图像检索算法把人民币背后的 Maker 图案识别出来,通过特征匹配算法准确估计 Marker 的位置和姿态。之后在识别的 Maker 图案上摆放预先设置的 3D 模型,当用户移动人民币时,摆放的 3D 模型也会跟着人民币进行相应的移动。

在实际操作中,用户可能会摆放多个人民币。为保证多 Marker 检测实时性,腾讯微视团队在检测到 Marker 后基于连续图像帧进行 Marker 跟踪,在移动端支持实时跟踪最多 10 + 个 Marker。

这么多的 AR 特效,动画设计师要如何应用?在这方面,腾讯微视也做了很多工作:将现有的 AR 算法都集成进一个 SDK

在玩法设计上,腾讯微视将底层的能力统一封装打包制作成针对设计师的可图形化操作工具,设计师不需要理解复杂的算法,只需要准备好素材和创意,几分钟就可快速生产出原本需要算法和工程同学投入几个星期才能完成的玩法,极大的提高了生产效率。

AR 技术究竟会给短视频带来怎样的影响?腾讯微视认为,目前 AR 技术还相对前沿,用户认知度不高,整个行业软硬件成熟度不高。但 AR 这种基于三维空间的信息展现及交互的形式是未来的趋势,是与 5G、AI 等技术的发展相互促进的。

腾讯微视正在给 AR 带给更多的用户,并培育用户习惯。「购买昂贵的 AR 设备显然不会是大多数人的选择,我们以一种更接地气的方式,打破虚拟与真实的界线,是一种全新的玩法体验,也在这个过程中建立用户心智」。

产业腾讯微视AR
相关数据
图像检索技术

图像检索系统是用于从大型数字图像数据库浏览、搜索和检索图像的计算机系统。 大多数传统和常见的图像检索方法利用向图像添加诸如字幕、关键字或描述之类的元数据的一些方法,以便可以对注释词执行检索。 手动图像注释耗时,费力且昂贵; 为了解决这个问题,人们已经对自动图像标注进行了大量研究。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

边缘检测技术

边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。图像属性中的显著变化通常反映了属性的重要事件和变化。这些包括(i)深度上的不连续、(ii)表面方向不连续、(iii)物质属性变化和(iv)场景照明变化。 边缘检测是图像处理和计算机视觉中,尤其是特征检测中的一个研究领域。

腾讯机构

腾讯,1998年11月诞生于中国深圳,是一家以互联网为基础的科技与文化公司。我们的使命是“通过互联网服务提升人类生活品质”。腾讯秉承着 “一切以用户价值为依归”的经营理念,为亿万网民提供优质的互联网综合服务。 腾讯的战略目标是“连接一切”,我们长期致力于社交平台与数字内容两大核心业务:一方面通过微信与QQ等社交平台,实现人与人、服务及设备的智慧连接;另一方面为数以亿计的用户提供优质的新闻、视频、游戏、音乐、文学、动漫、影业等数字内容产品及相关服务。我们还积极推动金融科技的发展,通过普及移动支付等技术能力,为智慧交通、智慧零售、智慧城市等领域提供有力支持。 腾讯希望成为各行各业的数字化助手,助力数字中国建设。在工业、医疗、零售、教育等各个领域,腾讯为传统行业的数字化转型升级提供“数字接口”和“数字工具箱”。我们秉持数字工匠精神,希望用数字创新提升每个人的生活品质。随着“互联网+”战略实施和数字经济的发展,我们通过战略合作与开放平台,与合作伙伴共建数字生态共同体,推进云计算、大数据、人工智能等前沿科技与各行各业的融合发展及创新共赢。多年来,腾讯的开放生态带动社会创业就业人次达数千万,相关创业企业估值已达数千亿元。 腾讯的愿景是成为“最受尊敬的互联网企业”。我们始终坚守“科技向善”的初心,运用科技手段助力公益事业发展,并将社会责任融入每一个产品。2007年,腾讯倡导并发起了中国互联网第一家在民政部注册的全国性非公募基金会——腾讯公益慈善基金会。腾讯公益致力于成为“人人可公益的创连者”,以互联网核心能力推动公益行业的长远发展为己任。腾讯公益联合多方发起了中国首个互联网公益日——99公益日,帮助公益组织和广大爱心网友、企业之间形成良好的公益生态,让透明化的“指尖公益”融入亿万网民的生活。

http://www.tencent.com/
5G技术

第五代移动通信系统(5th generation mobile networks),简称5G,是4G系统后的延伸。美国时间2018年6月13日,圣地牙哥3GPP会议订下第一个国际5G标准。由于物理波段的限制,5G 的网络也将会与其他通信技术并用,包含长距离的其他传统电信波段。

暂无评论
暂无评论~