SIGGRAPH | 6个惯性传感器和1个手机实现人体动作捕捉、定位与环境重建(1)

本文涉及的产品
视觉智能开放平台,图像资源包5000点
视觉智能开放平台,视频资源包5000点
视觉智能开放平台,分割抠图1万点
简介: SIGGRAPH | 6个惯性传感器和1个手机实现人体动作捕捉、定位与环境重建

SIGGRAPH | 6个惯性传感器和1个手机实现人体动作捕捉、定位与环境重建

机器之心 2023-05-12 12:43 发表于北京

机器之心专栏

机器之心编辑部

近年来,基于惯性的人体动作捕捉技术迅速发展。它们通过在人体上穿戴惯性传感器,实时测量人体的运动信息。然而,这就好比一个人在蒙着眼睛走路——我们可以感受到身体的运动,但随着时间的累积,我们越来越难以确定自己的位置。

本文则试图打开惯性动作捕捉的「眼睛」。通过额外佩戴一个手机相机,我们的算法便有了「视觉」。它可以在捕获人体运动的同时感知环境信息,进而实现对人体的精确定位。该项研究来自清华大学徐枫团队,已被计算机图形学领域国际顶级会议SIGGRAPH2023接收。



简介


随着计算机技术的发展,人体感知和环境感知已经成为现代智能应用中不可或缺的两部分。人体感知技术通过捕捉人体运动和动作,可以实现人机交互、智能医疗、游戏等应用。而环境感知技术则通过重建场景模型,可以实现三维重建、场景分析和智能导航等应用。两个任务相互依赖,然而国内外现有技术大多独立地处理它们。研究团队认为,人体运动和环境的组合感知对于人类与环境互动的场景非常重要。首先,人体和环境同时感知可以提高人类与环境互动的效率和安全性。例如,在自动驾驶汽车中,同时感知驾驶员的行为和周围环境可以更好地保证驾驶的安全性和顺畅性。其次,人体和环境同时感知可以实现更高级别的人机交互,例如,在虚拟现实和增强现实中,同时感知用户的动作和周围环境可以更好地实现沉浸式的体验。因此,人体和环境同时感知可以为我们带来更高效、更安全、更智能的人机交互和环境应用体验。


基于此,清华大学徐枫团队提出了仅使用6个惯性传感器(IMU)和1个单目彩色相机的同时实时人体动作捕捉、定位和环境建图技术(如图1所示)。惯性动作捕捉(mocap)技术探索人体运动信号等「内部」信息,而同时定位与建图(SLAM)技术主要依赖「外部」信息,即相机捕捉的环境。前者具有良好的稳定性,但由于没有外部正确的参考,全局位置漂移在长时间运动中会累积;后者可以高精度地估计场景中的全局位置,但当环境信息不可靠时(例如没有纹理或存在遮挡),就容易出现跟踪丢失。

因此,本文有效将这两种互补的技术(mocap和SLAM)结合起来。通过在多个关键算法上进行人体运动先验和视觉跟踪的融合,实现了鲁棒和精确的人体定位和地图重建。

图1 本文提出同时人体动作捕捉与环境建图技术


具体地,本研究将6个IMU穿戴在人的四肢、头和后背上,单目彩色相机固定在头部并向外拍摄。这种设计受到真实人类行为的启发:当人类处于新环境中时,他们通过眼睛观察环境并确定自己的位置,从而在场景中计划他们的运动。


在我们的系统中,单目相机充当人类的眼睛,为本技术提供实时场景重建和自我定位的视觉信号,而IMU则测量人体四肢和头部的运动。这套设置兼容现有VR设备,可利用VR头显中的相机和额外佩戴的IMU进行稳定无漂移的全身动捕和环境感知。整个系统首次实现了仅基于6个IMU和1个相机的同时人体动作捕捉和环境稀疏点重建,运行速度在CPU上达到60fps,并在精度上同时超过了两个领域最先进的技术。该系统的实时示例如图2和图3所示。


图2 在70米的复杂运动中,本系统精确跟踪人体位置并捕捉人体动作,无明显位置漂移。


图3 本系统同时重建人体运动和场景稀疏点的实时示例。


方法介绍


图4 方法总体流程


系统的任务是从6个IMU传感器的朝向和加速度测量值和相机拍摄的彩色图片中实时重建出人体运动、三维场景稀疏点云、并定位人在场景中的位置。我们设计了一个深度耦合的框架,以充分利用稀疏惯性动作捕捉和SLAM技术的互补优势。在这个框架中,人体运动先验与SLAM的多个关键组件相结合,SLAM的定位结果也回馈给人体运动捕捉。如图4所示,根据功能,我们将系统划分为四个模块:惯性动作捕捉模块(Inertial Motion Capture)、相机跟踪模块(Camera Tracking)、建图和闭环检测模块(Mapping & Loop Closing)和人体运动更新模块(Body Translation Updater)。以下分别介绍各个模块。

惯性动作捕捉

惯性动作捕捉模块从6个IMU测量值中估计人体姿态和运动。本模块的设计基于我们之前的PIP[1]工作,但本工作中不再假设场景是一个平坦的地面,而是考虑在3D空间中捕捉自由人体运动。为此,本文对PIP的优化算法进行了适应性的修改。

具体地,本模块首先通过多阶段循环神经网络从IMU测量值中预测人体关节旋转、速度、脚和地面接触概率。利用PIP提出的双重PD控制器,求解人体关节最优控制角加速度和线加速度。随后,本模块优化人体的位姿加速度,使其在满足接触约束条件C下实现PD控制器给出的加速度:

其中J为关节雅可比矩阵,为与地面接触的脚的线速度,约束C要求接触地面的脚的速度要小(不发生滑动)。该二次规划问题求解可以参考PIP[1]。通过姿态加速度积分从而获得人体姿态和运动后,可获得绑定在人体上的相机的位姿,用于后续模块。


相机跟踪


相机跟踪模块以惯性动作捕捉模块给出的初始相机位姿和相机拍摄的彩色图像作为输入,利用图像信息优化相机位姿,消除位置漂移。具体地,本模块基于ORB-SLAM3[2]设计,首先提取图像的ORB特征点,并和已经重建的稀疏地图点(下文介绍)利用特征相似度进行特征匹配,得到匹配的2D-3D点对,进而通过优化重投影误差的方法优化相机位姿。值得注意的是,仅优化重投影误差可能会受错误匹配影响,导致相机位姿优化结果较差。因此,本文在相机跟踪优化中融合人体运动先验信息,以惯性动捕结果作为约束,限制重投影误差的优化过程,以及时发现并排除错误的特征点-地图点匹配记地图点的世界坐标为,与之匹配的2D图像特征点的像素坐标为,其中表示所有的匹配关系。用表示优化前的初始相机位姿,则本模块优化相机位姿R,t


其中,为鲁棒Huber核函数,将三维旋转映射到三维向量空间,为透视投影运算,动作捕捉旋转和平移项的控制系数。该优化进行3次,每次都根据重投影误差将2D-3D匹配分类成正确或错误,在下一次优化中只有正确匹配被使用,错误匹配则被删除。通过动作捕捉约束提供的强有力的先验知识,本算法可以更好地区分正确和错误匹配,从而提高相机跟踪精度。解出相机位姿后,本模块提取出正确匹配的地图点对数量,并将其作为相机位姿的可信度。

建图和闭环检测


建图和闭环检测模块利用关键帧重建稀疏地图点并检测人体是否到达曾去过的位置以修正累计误差。在建图过程中,我们使用动作捕捉约束的光束平差法(Bundle Adjustment,BA)同时优化稀疏地图点位置和关键帧相机位姿,并引入地图点置信度以动态平衡动作捕捉约束项和重投影误差项的相对强弱关系,从而提高结果精度。当人体运动发生闭环时,进行动作捕捉辅助的位姿图优化(Pose Graph Optimization)以修正闭环误差。最终得到优化后的稀疏地图点位置和关键帧位姿 ,用于下一帧算法运行。具体地,本模块首先根据地图点的观测情况计算其置信度,用于后续BA优化。如下图5所示,根据观测到地图点的关键帧的位置,本模块计算关键帧基线长度bi和观测视角θi以确定地图点i的置信度,其中k为控制系数。

图5 (a)地图点置信度计算。(b)相同的基线长度b1=b2,更大的观测视角(蓝色)可以更好地抵抗相机位姿的扰动,导致更小的地图点位置误差(e1<e2)。


随后,同时优化最近20个关键帧相机位姿和它们观测到的地图点。其他看见这些地图点的关键帧位姿则在优化中固定不变。记所有可优化的关键帧集合为K0,所有固定的关键帧集合为Kf,关键帧j测到的地图点的集合记为Xj。表示需要优化的关键帧朝向和三维位置,表示地图点位置。则该动作捕捉约束的光束平差法优化定义为:


其中,表示关键帧j的上一个关键帧,为动作捕捉约束项的系数。该优化要求地图点的重投影误差要小,且每个关键帧的旋转、相对位置要和动作捕捉的结果相近,其中地图点置信度ci动态决定了动作捕捉约束项和地图点重投影项之间的相对权重关系:对于未充分重建的区域,系统更倾向于相信动作捕捉的结果;反之,若一个区域被反复观测到,系统则更相信视觉跟踪。该优化的因子图表示如下图6所示。


图6 动作捕捉约束的光束平差法优化因子图表示。当轨迹闭环被检测到后,系统进行闭环优化。基于ORB-SLAM3[2],记位姿图中的顶点集合为F,边的集合为C。则动作捕捉约束的位姿图优化定义为:


其中,为关键帧j的位姿,为位姿图优化之前关键帧i和j之间的相对位姿,为动作捕捉获得的相机位姿初值,将位姿映射到六维向量空间,为动作捕捉约束项的相对系数。该优化以动作捕捉先验为指导,将闭环误差分散到各个关键帧上。

人体运动更新


人体运动更新模块利用相机跟踪模块优化后的相机位姿及可信度,更新动作捕捉模块给出的人体全局位置。该模块使用Kalman滤波器的预测-校正算法实现。其中,动作捕捉模块提供恒定方差的人体运动加速度,可用于人体全局位置的预测(先验分布);而相机跟踪模块给出相机位置观测和置信度,用于人体全局位置的校正(后验分布)。其中,相机位置观测的协方差矩阵近似通过匹配的地图点数量计算为如下的对角阵:


其中为小数避免除数为0。即相机跟踪中成功匹配的地图点数量越多,相机位姿观测的方差越小。利用Kalman滤波算法,最终预测人体全局位置。

更详细的方法介绍和公式推导请参考论文原文及附录部分。




相关文章
|
2月前
|
算法
鬼手操控着你的手机?大模型GUI智能体易遭受环境劫持
【9月更文挑战第27天】近年来,随着人工智能技术的发展,多模态大语言模型(MLLM)在图形用户界面(GUI)中广泛应用,提升了交互体验。然而,最新研究《环境警示:多模态智能体易受环境干扰》指出,这些智能体可能因环境干扰而行为失准。作者通过实验展示了即使是强大模型也会受无关因素影响,导致不可靠或不可预测的行为。研究还证实,通过环境注入攻击可进一步加剧此问题。尽管如此,多模态GUI智能体依然潜力巨大,未来需改进感知能力和算法以增强鲁棒性,解决环境干扰问题。论文详细内容见:https://arxiv.org/abs/2408.02544。
50 8
|
3月前
|
Android开发
【Azure 环境】记录使用Notification Hub,安卓手机收不到Push通知时的错误,Error_Code 30602 or 30608
【Azure 环境】记录使用Notification Hub,安卓手机收不到Push通知时的错误,Error_Code 30602 or 30608
|
3月前
【Azure 环境】中国区Azure B2C 是否支持手机验证码登录呢?
【Azure 环境】中国区Azure B2C 是否支持手机验证码登录呢?
|
3月前
|
存储 Android开发 iOS开发
【Azure 环境】台湾同胞:詢問大陸所有廠牌手機是否都可透過通知中心發送訊息
【Azure 环境】台湾同胞:詢問大陸所有廠牌手機是否都可透過通知中心發送訊息
|
6月前
|
存储 定位技术 芯片
为何手机gps定位需要流量,而车载不需要?
为何手机gps定位需要流量,而车载不需要?
139 0
为何手机gps定位需要流量,而车载不需要?
|
6月前
|
机器学习/深度学习 传感器 数据可视化
MATLAB用深度学习长短期记忆 (LSTM) 神经网络对智能手机传感器时间序列数据进行分类
MATLAB用深度学习长短期记忆 (LSTM) 神经网络对智能手机传感器时间序列数据进行分类
MATLAB用深度学习长短期记忆 (LSTM) 神经网络对智能手机传感器时间序列数据进行分类
|
6月前
|
监控 定位技术 Android开发
如何获得你的准确位置及iphon手机应用定位不准确原因分析
如何获得你的准确位置及iphon手机应用定位不准确原因分析
190 0
|
6月前
|
人工智能 自然语言处理 搜索推荐
通义大模型落地手机芯片!离线环境可流畅运行多轮AI对话
通义大模型落地手机芯片!离线环境可流畅运行多轮AI对话
164 0
|
6月前
|
数据挖掘 数据处理 API
使用TransBigData组件实现个人手机定位功能
使用TransBigData组件实现个人手机定位功能
115 0
|
6月前
|
网络协议 关系型数据库 MySQL
安卓手机termux上安装MariaDB数据库并实现公网环境下的远程连接
安卓手机termux上安装MariaDB数据库并实现公网环境下的远程连接
228 0

热门文章

最新文章