CN113345010B - 基于改进ICP的多Kinect系统坐标标定与转换方法 - Google Patents

基于改进ICP的多Kinect系统坐标标定与转换方法 Download PDF

Info

Publication number
CN113345010B
CN113345010B CN202110609194.5A CN202110609194A CN113345010B CN 113345010 B CN113345010 B CN 113345010B CN 202110609194 A CN202110609194 A CN 202110609194A CN 113345010 B CN113345010 B CN 113345010B
Authority
CN
China
Prior art keywords
coordinate system
kinect
calibration
data
unity3d
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110609194.5A
Other languages
English (en)
Other versions
CN113345010A (zh
Inventor
姚寿文
孔若思
栗丽辉
常富祥
兰泽令
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Priority to CN202110609194.5A priority Critical patent/CN113345010B/zh
Publication of CN113345010A publication Critical patent/CN113345010A/zh
Application granted granted Critical
Publication of CN113345010B publication Critical patent/CN113345010B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Length Measuring Devices By Optical Means (AREA)

Abstract

本发明公开一种基于改进ICP的多Kinect系统坐标标定与转换方法包括:获取第一坐标系统:第一坐标系统为OptiTrack运动追踪系统捕捉到的真实空间中人体的坐标系;获取第二坐标系统:第二坐标系统为以各自Kinect传感器坐标系原点为基准的骨骼节点的坐标系系统;使用改进的ICP方法将第一坐标系统、第二坐标系统与Unity3D的世界坐标系进行配准;然后进行校准,对校准结果进行可视化并分析校准误差分析。本发明通过将Kinect、OptiTrack运动追踪系统统一到Unity3D引擎世界坐标系内,标定过程简单、易用性好,大大减小了标定误差。

Description

基于改进ICP的多Kinect系统坐标标定与转换方法
技术领域
本发明属于机器视觉技术领域,尤其涉及一种基于改进ICP的多 Kinect系统坐标标定与转换方法。
背景技术
传统的全身运动追踪系统采用Kinect传感器对人体姿态进行捕捉。单个Kinect的标定过程主要包括单个RGB-D相机的内参标定和多个RGB-D相机之间的相对位姿矩阵标定,内参标定在Kinect出厂时已经进行过,因此主要需要研究的是多个RGB-D相机之间的位姿矩阵标定以及彩色相机和深度相机之间的校准。对于多个RGB-D相机之间的位姿矩阵标定,最常用的是基于计算机视觉的方法,例如张正友提出的棋盘格标定法、Kowalski等提出的基于二维空间标记的三维点云匹配法等,这些方法已比较成熟,已经有很多开源的软件可以实现,例如Matlab的相机标定工具包Camera Calibration Toolbox、 LiveScan3D等,基于计算机视觉的方法采集的标定输入数据源均来自RGB相机,Kinect传感器提供的骨骼数据来自红外相机,然而在 Kinect传感器中的红外相机和RGB相机是相互独立的,两个相机之间还存在着空间距离,这样的标定实现了两个RGB相机之间的转换,需要进一步做与深度相机之间的校准以及到Unity3D世界坐标系之间的转换,因此Kinect骨骼坐标系到Unity3D世界坐标系转换矩阵的获得需要经过多次坐标标定,标定过程的累计误差较大,不利于之后数据融合的精度。例如棋盘格标定法需要从多个角度获得完整的棋盘图案,受光照、地面等因素影响并非系统中每台Kinect传感器都可以观察到二维空间标记物,因此需要大量的工作来手动改变标记物位置、手动处理标定矩阵等,系统的每次使用均需要花费大量的时间进行重新标定,标定过程繁琐复杂,易用性较差。
发明内容
本发明要解决的技术问题是,提供一种基于改进ICP的多Kinect 系统坐标标定与转换方法,能够获取到每个Kinect传感器较为精确的旋转矩阵Rj和平移矩阵Tj,同时提高标定系统的易用性与可扩展性。
为实现上述目的,本发明采用如下的技术方案:
一种基于改进ICP的多Kinect系统坐标标定与转换方法,包括以下步骤:
S1、获取第一坐标系统:所述第一坐标系统为OptiTrack运动追踪系统捕捉到的真实空间中人体的坐标系;
获取第二坐标系统:所述第二坐标系统为以各自Kinect传感器坐标系原点为基准的骨骼节点的坐标系系统;
S2、使用改进的ICP方法将第一坐标系统、第二坐标系统与 Unity3D的世界坐标系进行配准;
S3、基于面部朝向、Kinect传感器捕捉到的人体骨骼数据,获取当前Kinect前视图朝向;进行面部朝向初始化、面部朝向更新、面部朝向平滑处理得到最终的面部朝向,通过计算最终的面部朝向与当前Kinect前视图朝向之间的夹角来判断是否需要对骨骼三维数据与追踪状态等参数进行左右互换;
S4、对第一坐标系统、第二坐标系统完成与Unity3D引擎世界坐标系配准后进行校准,对校准结果进行可视化并分析校准误差分析。
优选地,S1中具体为:
获取若干个OptiTrack相机采集第一标定杆上的光学标记点的空间位置信息,生成若干组点云数据;
基于所述云数据,计算若干个OptiTrack相机之间的相对位置;每个点云数据的样本量要大于2500个;
基于第二标定杆设定坐标系的原点以及各轴的朝向,所述第二标定杆的中长边对应的是坐标系的Z轴,所述第二标定杆的短边对应的是坐标系的X轴,所述第二标定杆的直角顶点即为坐标系的原点,将所述第二标定杆放置在地面。
优选地,在进行第二坐标系统与Unity3D坐标系配准之前,需要将多台Kinect传感器采集到的数据传输到Unity3D系统中做可视化处理,以确保基于UDP协议的数据传输可靠性。
优选地,所述可视化过程为:将Kinect传递来的三维坐标赋值给对应火柴人的对应关节游戏物体,当用户站在装配区域中心时,距离各Kinect传感器相同,因此在Unity引擎中可视化结果应为六个火柴人均匀围绕在世界坐标系原点的圆上。
优选地,S4中采用用户在装配区域中心摆出姿势Tpose,并按照顺时针或逆时针方向缓慢旋转肢体,在Unity3D引擎中采集至少3000 帧数据,其中OptiTrack运动捕捉系统传递来的骨骼数据作为第一地板真值,Kinect传感器采集的骨骼数据为第二地板真值,分别以第一地板真值、第二地板真值为基准求平均误差。
优选地,在OptiTrack相机、Kinect传感器在采集数据的过程中需要用户在可活动范围内移动过程中做弯腰或下蹲动作,来弥补Y 轴数据的缺陷。
优选地,所述S2中使用改进的ICP方法将第一坐标系统与 Unity3D的世界坐标系进行配准具体为:
通过标定算法将客户端采集到的骨骼数据经过处理统一到 Unity3D的世界坐标系中:
Figure BDA0003094899750000041
式中,(Xj,Yj,Zj)为第j个Kinect传感器坐标系下的坐标,
Figure BDA0003094899750000042
为共同世界坐标系下的坐标,也即是Unity3D中的世界坐标,其中Rj和Tj为第j个Kinect传感器旋转矩阵和平移矩阵,也称为相机的外参矩阵,其中Rj为3×3矩阵,Ti为3×1矩阵。
优选地,将求解第j个Kinect传感器的旋转矩阵和平移矩阵转化为最小化误差平方和。
优选地判断左右变换的方法为:选取骨架中左右成对出现的左右肩膀、左右肘、左右盆骨、左右膝盖来实现面部朝向的确定。
优选地,面部朝向初始化的过程为:使用正对Kinect传感器的左右肩膀计算出身体向量,通过从左肩到右肩的向量逆时针旋转90°得到面部朝向的初值。
本发明的技术效果为:本发明提出了基于改进ICP的多Kinect 系统坐标标定方案,通过将Kinect传感器、OptiTrack运动追踪系统统一到Unity3D引擎世界坐标系内,标定过程简单、易用性好,大大减小了标定误差。
附图说明
图1为本发明的坐标标定流程图;
图2为本发明的OptiTrack与Unity3D坐标系配准情况,其中图2 中的(a)为用户在真实空间中做拳击动作图,图2 中的 (b)为在Motive软件中映射得到的拳击动作位姿信息图,图2 中的 (c)为Motive将位姿信息传输到Unity3D引擎中后可视化得到的拳击动作Avatar模型图;
图3为本发明的多Kinect数据传输至Unity3D引擎可视化示意图;
图4为本发明的坐标转换后骨架的可视化结果;
图5为本发明的完整的标定过程;
图6为本发明通过面部朝向与肩膀向量矢量计算确定前视传感器;
图7为本发明两种面部朝向情况示意图;
图8为本发明面部朝向平滑流程图;
图9为本发明无标记运动追踪系统校准结果示意图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。
如图1所示,本发明提供一种基于改进ICP的多Kinect系统坐标标定与转换方法,包括如下内容:
对Kinect系统进行坐标标定:本实施例中使用6台Kinect v2 传感器对人体姿态进行捕捉扩大了追踪范围,但是每台传感器在空间中的位置和视角均不同,而且采集的骨骼数据都是以自身的深度摄像头坐标系为基准来采集的,由于可视化是在Unity3D引擎中完成的,因此需要通过标定算法将客户端采集到的骨骼数据经过处理统一到 Unity3D的世界坐标系中:
Figure BDA0003094899750000061
式中,(Xj,Yj,Zj)为第j个Kinect传感器坐标系下的坐标,
Figure BDA0003094899750000062
为共同世界坐标系下的坐标,也即是Unity3D中的世界坐标,其中Rj和Tj为第j个Kinect传感器旋转矩阵和平移矩阵,也称为相机的外参矩阵。其中Rj为3×3矩阵,Ti为3×1矩阵。统一到 Unity3D中的世界坐标系内之后,再把处理过的骨骼数据发送至主服务器端进行数据融合。
单个Kinect V2的标定过程主要包括单个RGB-D相机的内参标定和多个RGB-D相机之间的相对位姿矩阵标定,内参标定在Kinect出厂时已经进行过,因此我们主要需要研究的是多个RGB-D相机之间的位姿矩阵标定以及彩色相机和深度相机之间的校准。对于多个RGB-D 相机之间的位姿矩阵标定,Kinect骨骼坐标系到Unity3D世界坐标系转换矩阵的获得需要经过多次坐标标定,标定过程的累计误差较大,不利于之后数据融合的精度。因此设计了一种改进的ICP算法进行辅助。
为了获得每个Kinect传感器较为精确的旋转矩阵Rj和平移矩阵 Tj,同时提高标定系统的易用性与可扩展性,使用来自深度相机的骨骼数据作为标定程序的数据输入,提出了一种基于最小二乘解的骨骼数据标定方法。
数据来源为Head关节的三维位置,因为该处数据具有前后不变性、不容易被身体自遮挡、低抖动误差的优点,同时Kinect V2的 SDK与Unity3D内Oculus Rift S的预制体组件中均可以获得头部数据的三维位置数据,方便六台KinectV2、OculusRiftS、LeapMotion设备统一在Unity3D引擎的世界坐标系内。
空间点集{pi,j}为第j个Kinect传感器的头部数据点集,空间点集{qi}为Unity3D世界坐标系下Oculus头盔预制体的头部数据点集,两套点集根据索引具有一一对应关系,因此第j个Kinect传感器的旋转矩阵和平移矩阵的求解就可以转化求误差平方和最小问题,如式(2) 所示:
Figure BDA0003094899750000071
分别计算所述第一数据点集{pi,j}的质心、所述第二数据点集{qi} 的质心,得到第一点集质心
Figure BDA0003094899750000072
第二点集质心μq
Figure BDA0003094899750000073
Figure BDA0003094899750000074
然后对E(R,t)进行简化处理:
Figure BDA0003094899750000075
E(R,t)中第N项为:
Figure BDA0003094899750000081
将第一数据点集{pi,j}的每个点减去
Figure BDA0003094899750000082
得到第一去质心点集;将第二数据点集{qi}的每个点减去μq,得到第二去质心点集;
同时将每个点集中的每个点减去相应的质心,结果如式(7)所示,式中p′i,j为第j个Kinect头部关节数据去质心点集,qi′为Unity3D 引擎内Oculus头盔预制体位置数据去质心点集:
Figure BDA0003094899750000083
因此E(R,t)可化简为:
Figure BDA0003094899750000084
式(8)中的||qi′-Rpi,j′||、||μq-Rμp,j-t||均大于等于0,如果式(8) 的最小二乘解为
Figure BDA0003094899750000085
两个点集的质心
Figure BDA0003094899750000086
和μq也为确定值,那么一定存在一个最优旋转矩阵
Figure BDA0003094899750000087
使得第二项||μq-Rμp,j-t||2为0,那么优化问题可以简化为:
Figure BDA0003094899750000088
Figure BDA0003094899750000089
对式(9)进行展开,得:
Figure BDA0003094899750000091
由于旋转矩阵Rj为正交矩阵,同时点集P′和Q′为确定的,对最小化的计算没有影响,所以式(9)最小化等价于求:
Figure BDA0003094899750000092
也即为求:
Figure BDA0003094899750000093
由于qiT∈R1×3,Rj∈R3×3,pi,j′∈R3×1,所以式(13)为标量,由迹的性质trace(AB)=trace(BA)可得:
Figure BDA0003094899750000094
Figure BDA0003094899750000095
W的奇异值分解(SVD)可以表示为:
Figure BDA0003094899750000096
式中,U,V∈R3×3为正交矩阵,σ1≥σ2≥σ3是矩阵W的奇异值,那么式(14)可以表示为:
Figure BDA0003094899750000097
式中,U,V,Rj均为正交矩阵,那么这三个矩阵的积也为正交矩阵,令
Figure BDA0003094899750000098
那么:trace(ΛVTRjU)=trace(ΛM)=σ1m112m223m33,由于正交矩阵内的元素均小于1,那么只有当M为单位矩阵时,目标值达到最大,也即是M=VTRjU=I,同时正交矩阵与正交矩阵的转置相乘为单位矩阵,那么最优旋转矩阵为:
Figure BDA0003094899750000101
还需要对最优旋转矩阵进行行列式检测,如果
Figure BDA0003094899750000102
那么最优旋转矩阵即为所求,如果
Figure BDA0003094899750000103
则代表点集{p′i,j}为共面或共线点集,数据源较差,应当重新采集数据进行标定,当然这种情况极少发生。最后计算最优平移矩阵,流程图如图1所示。
在标定过程中用户戴着Oculus Rift S头盔在系统可活动范围内移动,六台客户端的Kinect V2和服务器端同时采集头部数据,将数据发送至服务器端进行处理,因此坐标统一只需要一次标定。然而使用头部数据存在一个缺陷,由于用户的移动在一个平坦的地板平面上,并且用户的头部高度变化不大,所收集到的数据几乎位于同一个平面上,Y轴的数据变化并不明显(Y轴为Unity3D引擎中的Y轴),为了避免上述点集共线或者共面的问题,因此在采集数据的过程中需要用户在可活动范围内移动过程中做弯腰或下蹲动作,来弥补Y轴数据的缺陷。
将OptiTrack的坐标系和Unity3D引擎的世界坐标系配准,首先应当建立OptiTrack捕捉真实空间中人体的坐标系。使用标定杆A和标定杆B是在Motive软件中对OptiTrack运动捕捉系统进行空间标定以及创建运动捕捉坐标系的工具。
用户在运动捕捉空间中手持标定杆A不断移动并且挥舞标定杆A, Motive软件会从12个OptiTrack相机中不断采集标定杆A上的三个光学标记点的空间位置信息,生成12组点云数据,采集完毕后经过 Motive软件的计算获得了12个摄像头之间的相对位置,每个点云数据的样本量要大于2500个才能获得比较高精度的标定结果,最新一次标定结果的平均误差为0.141mm。
标定杆B的作用为设定坐标系的原点以及各轴的朝向,其中长边对应的是坐标系的Z轴,短边对应的是坐标系的X轴,直角顶点即为坐标系的原点,将标定杆放置在地面,Motive软件计算地面坐标系后即完成Motive软件的标定以及坐标系建立。
Motive软件建立的坐标系和Unity3D引擎中的世界坐标系是不重合的,因为它们是不同软件下的不同坐标系统,因此需要将真实人体姿态映射到Motive软件中的位姿信息与Unity3D的世界坐标系进行配准。
在Unity3D接收Motive软件传递来的骨骼节点三维数据以及四元数旋转数据,并且有Avatar模型以及多种预制体可用,且有示例场景对插件的功能进行可视演示。
在无标记运动追踪系统的标定场景中拖入OptiTrack_Client预制体,该预制体可以获得Motive传递来的各种数据,并且存在Avatar 对传递来的位姿数据进行可视化。打开Motive软件的数据传输选项后,同时采集OptiTrack运动捕捉系统的头部三维坐标点云和Oculus Rift S在Unity3D引擎中头盔预制体Transform组件的Position信息三维坐标点云作为输入,基于改进的ICP的校准方法获得两个坐标系的4×4校准矩阵。图2显示了校准结果的情况,其中图2 中的 (a)为用户在真实空间中做拳击动作,图2 中的 (b)为在Motive软件中映射得到的拳击动作位姿信息,图2 中的 (c)为Motive将位姿信息传输到Unity3D引擎中后可视化得到的拳击动作Avatar模型,并且已经完成人体等身。
多Kinect与Unity3D坐标系转换:在进行多Kinect与Unity3D 坐标系配准之前,需要将多台Kinect传感器采集到的数据传输到Unity3D系统中做可视化,以确保基于UDP协议的OSC数据传输可靠性。
在进行坐标转换之前传输来的骨骼节点三维位置信息都是以各自Kinect传感器坐标系原点为基准的,将传递来的三维坐标赋值给对应火柴人的对应关节游戏物体,当用户站在装配区域中心时,距离各Kinect传感器近似相同,因此在Unity引擎中可视化结果应为六个火柴人均匀围绕在世界坐标系原点的圆上,如图3所示。确认数据传输可靠性之后,根据改进的ICP方法对坐标系统进行配准。
坐标配准完成后,用户站在训练场景的中心做抬起右手的动作,图4显示了六台Kinect传感器捕捉到的受训者姿态可视化结果,其中胶囊体节点代表脊柱部分关节、球形节点代表左侧身体关节、正方体节点代表右侧身体关节。
为了区分人体的正反面,降低左右误判率,提出面部朝向的定义方式、初始化方法以及更新方法,以跟踪前视向量的方法区分人体是否正对当前Kinect传感器,判断是否需要对关节三维数据以及追踪状态进行左右互换。
假设用户的面部朝向为vF,vs,i为第i个Kinect传感器捕捉到的人体骨骼左肩到右肩的关节向量,将vs,i逆时针旋转90°得到vf,i为第i 个Kinect传感器捕捉到骨骼的前视图朝向。
图6中的 (a)显示了用户面对Kinect传感器的情况,黑色融合骨架和第i个Kinect获取到的骨架判断的面部朝向vF、vs,i指向相同的方向,因此两个向量的内积vf,i·vF>0。相反,图6中的 (b)显示了相反的情况,当用户背对传感器时,Kinect传感器仍然假设用户面向自身,因此提供了错误的信息,导致该传感器判断的左右肩膀骨骼与融合骨架的左右肩膀完全相反,这种情况下所估计的面部朝向与用户的原始方向相反,也即是与融合骨架的面部朝向方向相反,因此两个向量的内积 vf,i·vF<0。
这个识别过程中,每帧对系统中所有的Kinect执行一次,由于每一帧用户的面朝方向和位置都在改变,因此用户是否正面朝向 Kinect传感器都是相对、暂时的。用户在不断运动的过程中,有可能肩膀的骨骼数据会由于遮挡而无法采集到正确的数据,导致预测的面部朝向出现重大失误,为了提高系统的鲁棒性,排除左右手腕、左右手、左右脚踝、左右脚等肢体末端追踪精度较低、抖动较大的骨骼节点,选择骨架中左右成对出现的左右肩膀、左右肘、左右盆骨、左右膝盖来实现面部朝向的确定。
具体方案为对该四对骨骼点计算可信度,如果一对骨骼点的骨骼追踪状态均为“Tracked”则满足要求,这四对骨骼点从上到下依次计算,找到满足要求的一对即可。对于判断为用户背对的Kinect传感器,很难正确的识别身体骨架的关节,在进行多源传感器数据融合之前,需要使用左右变换(Left Right Swap,LRS)处理,包括交换骨骼点对应的位置信息与追踪状态。
人体的面部朝向追踪是确定人体运动所需的重要向量参数,将对正反面判断、LRS计算以及关于面部朝向的系统层权重计算产生重要的影响。面部朝向信息的主要来源为融合后的骨架信息,但是融合过程的第一帧并没有完整的融合骨架信息,因此对面部朝向需要做初始化,具体方法为用户在进入装配区域内后,使用户做出姿势Tpose正对一个Kinect传感器,使用正对Kinect传感器的左右肩膀计算出身体向量,通过从左肩到右肩的向量逆时针旋转90°得到面部朝向的初值。之后的面部朝向更新则由融合得到的身体骨架计算得出。
使用具有21个关节的火柴人来表示用户的框架,并添加一条来自脊柱上部的灰色的线来表示计算得到的用户面部朝向,系统正确工作状态下的面部朝向情况如图7中的(a)所示。但是在实验过程中发现,当用户在实验场景中周向转动速度较快或者肩膀自遮挡情况严重的时候,用户面部朝向会出现反向情况,并且会一直保持,无法进行自我修正,如图7中的 (b)所示,这会干扰LRS方法的应用进而影响数据融合的计算,本实施例中将Oculus Rift S头盔预制体在Unity3D引擎中Z轴在XY平面内的投影作为朝向参考向量,对计算得到的面部朝向进行实时修正,当面部朝向与朝向参考向量相反时及时进行修正,系统的鲁棒性得到增强。
面部朝向的获取来源于融合骨架,当用户在装配区域内移动旋转较快时会导致面部朝向的变化较大,进而使得面部朝向的变化不平滑,不利于人体朝向约束的计算,常用的平滑处理方法有均值滤波、中值滤波、高斯滤波等,因此选择Holt双参数中值滤波来对面部朝向进行平滑处理,具体算法流程如下所示:
1.对转换平滑参数α,γ,T,r,rmax赋初值
2.k=1
3.初始化滤波位置Sk=xk和当前帧斜率bk=[0 0 0]T,Fk=xk,k=k+1
4.计算||xk-Sk-1||,如果大于减小抖动半径r,则对面部朝向初始位置重新赋值
Figure BDA0003094899750000151
5.更新滤波值与斜率Sk=αxk+(1-α)(St-1+bt-1),
bk=γ(Sk-Sk-1)+(1-γ)bk-1
6.预测未来以减小延迟Fk=Sk+bkT
7.如果预测值与原始值差值||Fk-xk||大于rmax,则对预测值进行修正
Figure BDA0003094899750000152
8.k=k+1,转4)
其中α为平滑参数,数值越低,滤波值越接近原始数据;γ为平滑参数,数值越低,矫正原始数据的速度越慢;T为预测未来的帧数;r 为减少抖动的半径;rmax为允许滤波坐标偏离原始数据的最大半径;xk为第k帧面部朝向的原始值;Sk为第k帧得到的面部朝向滤波值;bk为第k帧得到的面部朝向变化斜率;Fk为第k帧面部朝向的预测值,也即是使用双指数滤波算法对面部朝向原始数值操作后的目标值,以上变量均为三行一列的矩阵,算法流程示意图如图8所示。
完成面部朝向的定义、初始化与更新方法之后,可以根据面部朝向与当前Kinect前视图朝向之间的夹角来判断人体是否正对当前 Kinect,当判断为背对Kinect时需要使用左右互换来对数据进行处理,之后才能用于多源传感器的数据融合,因此面部朝向与左右互换处理是对无标记运动追踪系统空间标定的修正与补充,完整的标定过程如图5所示。
在OptiTrack运动追踪系统确定的坐标系统、六台Kinect坐标系统完成与Unity3D引擎世界坐标系校准后,对校准结果进行可视化并分析校准误差。
校准结果可视化如图9所示,黑色方块的数据源为多台Kinect,橙色圆球的数据源为OptiTrack运动追踪系统。
从OptiTrack运动追踪系统导出的3D骨架模型由一组20个关节组成,Kinect V2导出的3D骨架模型由25个关节组成,观察图9可以发现,OptiTrack光学捕捉的骨架模型和提出的基于Kinect传感器的系统的3D骨架模型彼此略有不同,有的骨骼节点可以匹配,有的骨骼节点无法匹配。为此,选择能够匹配的关节进行一对一匹配,如表1所示。
表1
Figure BDA0003094899750000161
Figure BDA0003094899750000171
为了进一步分析标定方法可靠性,进行了标定结果精度验证试验,客户端与服务器软件运行成功之后,用户站立在装配区域中心摆出姿势Tpose,并顺时针缓慢旋转肢体,在Unity3D引擎中采集3000帧数据,其中OptiTrack运动捕捉系统传递来的骨骼数据作为地板真值, 6台Kinect传感器采集的骨骼数据参考表1骨骼节点对应情况,分别以地板真值为基准求平均误差,具体结果如表2所示。
表2
Figure BDA0003094899750000172
Figure BDA0003094899750000181
分析表2可得,位于脊柱上的骨骼节点的平均误差要小于4cm,位于四肢的骨骼节点由于容易发生自遮挡等因素,相对而言标定误差更大。其中包括标定误差和OptiTrack运动捕捉系统的骨骼节点与 Kinect传感器识别的骨骼节点之间系统误差。每台Kinect传感器的平均标定误差约为5cm,可以接受,因此基于ICP的多Kinect系统标定方法是有效的。
以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

Claims (4)

1.一种基于改进ICP的多Kinect系统坐标标定与转换方法,其特征在于,包括以下步骤:
S1、获取第一坐标系统:所述第一坐标系统为OptiTrack运动追踪系统捕捉到的真实空间中人体的坐标系统;
获取第二坐标系统:所述第二坐标系统为以各自Kinect传感器坐标系原点为基准的骨骼节点的坐标系系统;
OptiTrack相机、Kinect传感器在采集数据的过程中需要用户在可活动范围内移动过程中做弯腰或下蹲动作,来弥补Y轴数据的缺陷;
获取若干个OptiTrack相机采集第一标定杆上的光学标记点的空间位置信息,生成若干组点云数据;
基于所述点云数据,计算若干个OptiTrack相机之间的相对位置;每个点云数据的样本量要大于2500个;
基于第二标定杆设定坐标系的原点以及各轴的朝向,所述第二标定杆的中长边对应的是坐标系的Z轴,所述第二标定杆的短边对应的是坐标系的X轴,所述第二标定杆的直角顶点即为坐标系的原点,将所述第二标定杆放置在地面;
在进行第二坐标系统与Unity3D世界坐标系配准之前,需要将多台Kinect传感器采集到的数据传输到Unity3D世界坐标系中做可视化处理,以确保基于UDP协议的数据传输可靠性;
S2、使用改进的ICP方法将第一坐标系统、第二坐标系统与Unity3D的世界坐标系进行配准;
使用改进的ICP方法将第一坐标系统与Unity3D的世界坐标系进行配准具体为:
通过改进的ICP方法将客户端采集到的骨骼数据经过处理统一到Unity3D的世界坐标系中:
Figure FDA0003335640450000021
式中,(Xj,Yj,Zj)为第j个Kinect传感器坐标系下的坐标,
Figure FDA0003335640450000022
为共同世界坐标系下的坐标,即是Unity3D中的世界坐标,其中Rj和Tj为第j个Kinect传感器旋转矩阵和平移矩阵,也称为相机的外参矩阵,其中Rj为3×3矩阵,Tj为3×1矩阵;
将求解第j个Kinect传感器的旋转矩阵和平移矩阵转化为最小化误差平方和;
S3、基于面部朝向、Kinect传感器捕捉到的人体骨骼数据,获取当前Kinect前视图朝向;进行面部朝向初始化、面部朝向更新、面部朝向平滑处理得到最终的面部朝向,通过计算最终的面部朝向与当前Kinect前视图朝向之间的夹角来判断是否需要进行左右互换;
S4、对第一坐标系统、第二坐标系统完成与Unity3D世界坐标系配准后进行校准,对校准结果进行可视化分析并校准误差;
采用用户在装配区域中心摆出姿势Tpose,并按照顺时针或逆时针方向缓慢旋转肢体,在Unity3D世界坐标系中采集至少3000帧数据,其中OptiTrack运动捕捉系统传递来的骨骼数据作为第一地板真值,Kinect传感器采集的骨骼数据为第二地板真值,分别以第一地板真值、第二地板真值为基准求平均误差。
2.如权利要求1所述的基于改进ICP的多Kinect系统坐标标定与转换方法,其特征在于,所述可视化过程为:将Kinect传递来的三维坐标赋值给对应火柴人的对应关节游戏物体,当用户站在装配区域中心时,距离各Kinect传感器相同,因此在Unity引擎中可视化结果应为六个火柴人均匀围绕在世界坐标系原点上。
3.如权利要求1所述的基于改进ICP的多Kinect系统坐标标定与转换方法,其特征在于,判断左右变换的方法为:选取骨架中左右成对出现的左右肩膀、左右肘、左右盆骨、左右膝盖来实现面部朝向的确定。
4.如权利要求1所述的基于改进ICP的多Kinect系统坐标标定与转换方法,其特征在于,面部朝向初始化的过程为:使用正对Kinect传感器的左右肩膀计算出身体向量,通过从左肩到右肩的向量逆时针旋转90°得到面部朝向的初值。
CN202110609194.5A 2021-06-01 2021-06-01 基于改进ICP的多Kinect系统坐标标定与转换方法 Active CN113345010B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110609194.5A CN113345010B (zh) 2021-06-01 2021-06-01 基于改进ICP的多Kinect系统坐标标定与转换方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110609194.5A CN113345010B (zh) 2021-06-01 2021-06-01 基于改进ICP的多Kinect系统坐标标定与转换方法

Publications (2)

Publication Number Publication Date
CN113345010A CN113345010A (zh) 2021-09-03
CN113345010B true CN113345010B (zh) 2022-02-11

Family

ID=77472644

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110609194.5A Active CN113345010B (zh) 2021-06-01 2021-06-01 基于改进ICP的多Kinect系统坐标标定与转换方法

Country Status (1)

Country Link
CN (1) CN113345010B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113870358B (zh) * 2021-09-17 2024-05-24 聚好看科技股份有限公司 一种多个3d相机联合标定的方法及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102638653A (zh) * 2012-03-01 2012-08-15 北京航空航天大学 一种基于Kinect的自动面部追踪方法
CN108564653A (zh) * 2018-03-16 2018-09-21 中国传媒大学 基于多Kinect的人体骨架追踪系统及方法
CN109544606A (zh) * 2018-11-02 2019-03-29 山东大学 基于多个Kinect的快速自动配准方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102638653A (zh) * 2012-03-01 2012-08-15 北京航空航天大学 一种基于Kinect的自动面部追踪方法
CN108564653A (zh) * 2018-03-16 2018-09-21 中国传媒大学 基于多Kinect的人体骨架追踪系统及方法
CN109544606A (zh) * 2018-11-02 2019-03-29 山东大学 基于多个Kinect的快速自动配准方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
双Kinect自适应加权数据融合的全身运动捕捉方法;姚寿文等;《重庆理工大学学报(自然科学)》;20190930;第33卷(第9期);第109-117页 *

Also Published As

Publication number Publication date
CN113345010A (zh) 2021-09-03

Similar Documents

Publication Publication Date Title
CN108346165B (zh) 机器人与三维传感组件联合标定方法与装置
CN109360240B (zh) 一种基于双目视觉的小型无人机定位方法
CN106780619B (zh) 一种基于Kinect深度相机的人体尺寸测量方法
CN109940626B (zh) 一种基于机器人视觉的画眉机器人系统的控制方法
CN111897349A (zh) 一种基于双目视觉的水下机器人自主避障方法
CN113077519B (zh) 一种基于人体骨架提取的多相机外参自动标定方法
JP2007066094A (ja) 姿勢推定装置および姿勢推定方法
CN115410233B (zh) 一种基于卡尔曼滤波和深度学习的手势姿态估计方法
CN113345010B (zh) 基于改进ICP的多Kinect系统坐标标定与转换方法
CN112183316A (zh) 一种运动员人体姿态测量方法
CN111401340A (zh) 目标对象的运动检测方法和装置
CN108115671A (zh) 基于3d视觉传感器的双臂机器人控制方法及系统
CN108621164A (zh) 基于深度相机的太极推手机器人
CN112712030A (zh) 三维姿态信息还原方法及装置
Phan et al. Towards 3D human posture estimation using multiple kinects despite self-contacts
CN114469079B (zh) 一种利用LightHouse的身体关节测量方法
KR102543653B1 (ko) 교차 공분산 3d 좌표 추정을 통한 가상공간 이동플랫폼 구축 방법
Neubert et al. Automatic training of a neural net for active stereo 3D reconstruction
CN114463495A (zh) 一种基于机器视觉技术的智能喷涂方法及系统
CN114862969A (zh) 一种智能巡检机器人的机载云台像机角度自适应调整方法及装置
JP2014117409A (ja) 身体関節位置の計測方法および装置
Juri et al. Characterization of a low-cost markerless system for 3D gait analysis
CN113112532A (zh) 一种多ToF相机系统实时配准方法
CN111860275A (zh) 手势识别数据采集系统、方法
Fortini et al. Markerless 3D human pose tracking through multiple cameras and AI: Enabling high accuracy, robustness, and real-time performance

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant