Intel想用6个深感相机实现全身追踪

对VR来说,追踪是很关键的技术。当前市面上的VR头显主要支持手柄和头部追踪,一些公司如CTRL-labs曾提出通过电脉冲追踪手势的方案、Clay AIR在研发无硬件手势追踪技术,而Leap Motion、Magic Leap已经有效果优秀的这方面技术了。

Holosuit

Valve曾研发针对手部的骨骼追踪技术,不过这并不能满足全身追踪的需求。当前存在一些还在开发中的全身追踪方案,比如OptiTrack通过六个身体部位捕捉动作的追踪方案、Teslasuit动作捕捉全身服、Holosuit等。

上个月底,Intel实感技术CTO办公室的软件工程师Philip Krejov向大家展示了一种通过摄像头追踪全身的方案。据悉,这是一种基于深度学习的VR/AR人体动作识别技术,使用的硬件包括摄像机和HTC Vive追踪器,在性价比方面比全身服更有优势。

据青亭网了解,在此之前已经出现相似的技术,比如2017年,美国卡内基美隆大学认知计算研究室曾提出用于实时多人动作识别的通用机器学习架构OpenPose,它能够识别单个图像中135个关键点,缺点是仅支持6-12fps的帧率。

OpenPose

Stacked Hourglass Networks(堆叠沙漏网络结构)也是一款通用的动作识别架构,它和OpenPose一样都是非常精准,缺点是受GPU限制。每一块堆叠的沙漏本身是一个复杂的卷曲神经网络,它们通过外在图像和热量图来估计人体动作。

DensePose

Facebook在2018年曾提出DensePose数据集和网络架构,它能够识别人体表面,适用于追踪人体轮廓以及身体活动原理,缺点是会受到光线限制以及训练过程繁琐(每年需要在5万张人像上人工标记500万个点)。

这么大个的头显有没有很眼熟

Krejov表示,他团队研发的方案结合了深度网络与通用算法,但是对计算的要求很高,因此主要只能用于PC VR,如果应用在一体机中,那它的体积估计恐怕一般人无法承受。

基于深度的手势和动作识别

这类型的识别技术分为机器学习法和模型拟合两大类,前者通过数据训练随机决策森林来识别身体部位(可估计每帧的关节位置),优点是能够达到很高的帧率,缺点是训练需要数百万张图片;后者利用符号距离转化功能将预先构建的人体或手部模型向点云数据靠近,它的优点是模拟了运动学,缺点是需要多次模拟。

机器学习结合模型拟合的办法

Krejov曾将机器学习和模型拟合相结合,编写了一款能够在40fps的CPU上运行的手势识别算法。他利用随机决策森林来收集手部数据,然后将数据与模型拟合。同样适用这种方式的DoubleFusion技术,能够估测人体的动作和轮廓/表面,不过局限依然是对计算要求高。

AI+点云拟合

随后他由结合机器学习与点云拟合技术,研发了骨骼识别方案。为了提高追踪效率,他还结合了头显与手柄的位置信息。

下图解释了该方案的动作识别流程,前两步是基于多视图系统的校准和图像捕捉,接着是数据标记、数据矫正、实时动作估测(包括关节拟合+机器学习)。

在实时动作估测部分,机器将捕捉到的人像数据以及头显、手柄的位置数据输入体积很小的卷曲神经网络,生成由人体关节的热感图以及头显、手柄的浮点值。

采集真实训练数据

深度摄像数据包含红黄蓝和深度信息

点云对应不同的红黄蓝和xyz值

合成数据缺少噪点

Krejov提出的动作识别方案需要收集RGB和深度图像数据(每颗像素有各自对应的深度值),生成点云,这样每一个样本各代表了人体表面的一点。与真实数据相比,合成的训练数据缺少了噪点等特性,这些噪点是很难模仿合成的。但是真实数据需要人工标记,因此在时间、成本和准确性上都有局限。

为了采集动作数据,美国卡内基梅隆大学曾研发全景式三角测量法,即先估计手上关节的平面位置图,接着制作成手的3D模型,然后再重新投射到2D平面上,反复优化。OpenPose就是基于这种方案,Krejov的科研团队曾使用OpenPose来标记平面图像。

在全景式三角测量法基础上,Krejov提出了多视角捕捉的概念,这就需要使用更多摄像机,不过好处是能够采集到更准确的数据。

摄像头同步和校准

据悉,他的方案使用了6个RealSense深感相机,多个相机就需要考虑时间同步的问题,还需要将它们校准到同一坐标空间。使用三角测量法时,可以采用软件同步的方式,但是对于容积重建这种更复杂的任务来说,为减少伪影的出现,就不得不考虑同步摄像头触发装置的方法。

Krejov的多视角捕捉法,需要将六台摄像机等距摆放在追踪目标周围。他表示,你也可以使用更多相机,甚至为每台相机设定需要捕捉的专属节点。

装有HTC Vive追踪器的校准图表

校准过程

他还表示,这些相机需要通过校准,与统一的坐标系对齐,于是他们将HTC Vive追踪器装在校准图表上,通过移动来校准相机摄像头和HTC Vive头显。

这项多视角捕捉技术可实现更准确的自动标记,耸肩、抬腿等细微的动作都捕捉得不错。

数据矫正过程

在捕捉到人体姿势数据后,Krejov的方案还可以让你从任何视角进行渲染和校准,方法是在目标周围画一个立方体,然后提取出从六个视角捕捉到的图像。

排查异常值

Krejov发现,秉承自然规律,人的骨骼在短期内不会改变长度,因此如果想要识别错误的自动标注,可通过排查数据异常值。

动作数据不平均,主要集中在深紫色部分

另外,由于采集到的数据中动作比较单一,重新采集数据也不可避免,目的是为了确保不同动作的数据量平均。

Krejov称,使用这种方法,就不再需要手动标记,只需要监督拍摄过程,而且在30分钟内,就能够采集到5万张完成标记的训练样本。

单一相机方案

为了满足终端消费者需求,Krejov称他们也研发了只需要一台摄像头的方案。

利用之前采集到的多视角训练数据,他们研发了一款小型机器学习网络(采用关节推理原理),分成六部分,其中大部分是卷曲神经网络。首先他们将图像中的动作数据进行缩小和精简,加上头显和手柄的位置信息,然后再次放大,生成估计的热量图以及关节位置信息和最初估计的头显和手柄位置信息。

通过参考头显和手柄位置,目标超出相机视野的身体部位也可以追踪,另外参考目标与地面的位置,还能够分析他是否跳离地面。小型网络可在i7 CPU上运行,刷新率达200 fps。

模型优化

橘色为点云

为了确保准确性,该方案还需要对模型进行优化,方式是将点云数据与模型对齐,找到差别最小的节点,然后分析这些节点与模型之间的相互影响,以此来生成优化的骨骼追踪数据。

未优化的模型通常不够准确,人的动作局限在小范围中,因此他们使用机器学习来优化模型。优化后,追踪更加稳定,

Krejov及团队在研究方案时,采用了HTC Vive头显,优势是它内置头部追踪功能,更能优化单一相机的追踪方案。

躯干追踪部分,该方案采用了模型拟合和机器学习技术,可追踪腰部,让你在VR中玩呼啦圈,还能够追踪腿和脚,让你在VR中踢球、跨栏、跑步、跳舞等,这样就省去了VR跑步机等VR控制器。

为了验证这项技术,Krejov和团队编写了一款Unity插件,让他们将估计模型放进游戏里。接着他们使用Final IK的现成反向运动方案,将游戏中的人物与估计模型叠加。

他发现,使用这种追踪方法,他在VR中可以用脚与彩球直接互动,手肘也可以追踪到,只是使用手柄拿起球还比较困难。

动作追踪的一些应用场景

如果Krejov的这骨骼追踪方案得以应用,将为VR社交和远程办公提供更好的交互,目前Magic Leap的Avatar Chat只支持上半身追踪,而Spatial的远程协作平台也并未支持对全身的追踪。

原文地址:https://www.cnblogs.com/chuangye95/p/10204527.html

时间: 2024-10-15 08:09:53

Intel想用6个深感相机实现全身追踪的相关文章

OpenCV、PCL;Xtion、kinect;OpenNI、kinect for windows SDK比较

一.对比介绍: 1. OpenCV:开源跨平台,OpenCV于1999年由Intel建立,如今由Willow Garage提供支持. 2. OpenNI:OpenNI组织创建于2010年11月.主要成员之一是PrimeSense公司(以色列一家公司,被苹果收购(2013年11月25),Kinect1核心芯片,华    硕Xtion).其他成员还有开发ROS的机器人公司Willow Garage,以及游戏公司Side-Kick.(因此OpenNI完全支持华硕,而不完全支持kinect2) 3. P

有关默认相机转VR相机

呃...15年开篇~ 去年想写一个有关默认相机转VR相机的脚本,当时没写完,今天不小心翻到并写完了,而且思路也和原来完全不一样了,增加了是否删除原相机与是否转换所选相机的选项. 由于国内VR版本比较混乱,中间加了个中英文版本的适配. fn cam_to_vrcam sel:#off del:#on = ( local sel_cam = #() local del_cam = #() case sel of ( #off : cams = cameras #on : cams = sel_cam

用矩阵旋转相机

modelMatOfCamera=inverse(veiwMat) newModelMatOfCamera=modelMatOfCamera*rotMat,这里注意rotMat要右乘modelMatOfCamera,因为我们想在相机的局部空间里旋转相机(即原地扭头),而不是想在世界空间旋转相机(让相机绕着世界原点转). 则可得新的视图矩阵为: newViewMat=inverse(newModelMatOfCamera) 或者也可以计算新的up,eye和center: newUp=secondC

ARM、Intel、MIPS处理器啥区别?看完全懂了【转】

转自:http://news.mydrivers.com/1/472/472317.htm 安卓支持三类处理器(CPU):ARM.Intel和MIPS.ARM无疑被使用得最为广泛.Intel因为普及于台式机和服务器而被人们所熟知,然而对移动行业影响力相对较小.MIPS在32位和64位嵌入式领域中历史悠久,获得了不少的成功,可目前Android的采用率在三者中最低. 总之,ARM现在是赢家而Intel是ARM的最强对手.那么ARM处理器和Intel处理器到底有何区别?为什么ARM如此受欢迎?你的智

DokiCam 360°4K相机:为极致运动爱好者而生

去年11月,位于中国苏州的DokiCam为其360°消费像机推出了Kickstarter人群资助活动.随着本次活动圆满结束,这款被称为DokiCam 360°的动作相机现在已经可以购买. 进入360°摄像机领域,DokiCam能够捕获4K(4896×2448)静止画面,3K(2880×1440)视频,直播以及兼容iOS和Android的应用程序,支持一键上传到用户喜欢的社交网络,如Facebook,Twitter和Instagram.该应用程序还具有几种观看模式,如Tiny Planet,VR,

新型无镜头相机助力计算机视觉

计算机视觉处理高分辨率的图像需要非常多的计算量,因此很多数据集的图像分辨率都非常小.而近日,工程师们用一块玻璃.一个光电探测器和一些软件,开发了一种「透视」相机,这种不带镜头的相机能拍摄分辨率非常小的图像,并抽象出物体的主要轮廓.因此使用这种相机拍摄的图像能大量降低计算机视觉所需要的计算力.同时,他们也在开发用机器学习算法处理更复杂图像的技术. 以前的相机配备自己的专门设备,如镜头和胶卷,而且照相得去照相馆.后来,手机.平板电脑.笔记本电脑和视频游戏机都有了自己的照相功能.现在,相机似乎会在某天

我的Android第三章:Android的组件介绍

小编摘录了Android文档介绍Android四大组件的基本内容,感觉文档的内容写的很详细所以小编将它写入了博客 Android 使用Java语言开发.Android SDK 工具编译代码-以及任意数据并连同相关资源打包进一个Android 包内,它是一个以.apk 为后缀的压缩文件. 一个 .apk 文件中的 所有代码就是一个程序.这个.apk文件就用于在Android设备上安装这个程序. 一旦安装成功,这个Android程序就拥有了自己独立的运行沙盒(沙盒是在受限的安全环境中运行应用程序的一

iOS10 配置须知-b

在iOS10中,如果你的App想要访问用户的相机.相册.麦克风.通讯录等等权限,都需要进行相关的配置,不然会直接crash.需要在info.plist中添加App需要的一些设备权限. NSBluetoothPeripheralUsageDescription访问蓝牙 NSCalendarsUsageDescription访问日历 NSCameraUsageDescription相机 NSPhotoLibraryUsageDescription相册 NSContactsUsageDescripti

ARM和X86架构

重温下CPU是什么 中央处理单元(CPU)主要由运算器.控制器.寄存器三部分组成.运算器起着运算的作用,控制器负责发出CPU每条指令所需要的信息,寄存器保存运算或者指令的一些临时文件以保证更高的速度. CPU有着处理指令.执行操作.控制时间.处理数据四大作用,打个比喻来说,CPU就像我们的大脑,帮我们完成各种各样的生理活动.因此如果没有CPU,那么电脑就是一堆废物,无法工作.移动设备其实很复杂,这些CPU需要执行数以百万计的指示,才能使它向我们期待的方向运行,而CPU的速度和功率效率是至关重要的