CN109544606A - 基于多个Kinect的快速自动配准方法及系统 - Google Patents
基于多个Kinect的快速自动配准方法及系统 Download PDFInfo
- Publication number
- CN109544606A CN109544606A CN201811302695.3A CN201811302695A CN109544606A CN 109544606 A CN109544606 A CN 109544606A CN 201811302695 A CN201811302695 A CN 201811302695A CN 109544606 A CN109544606 A CN 109544606A
- Authority
- CN
- China
- Prior art keywords
- human body
- kinect
- data
- point cloud
- transformation matrix
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 75
- 239000011159 matrix material Substances 0.000 claims abstract description 102
- 230000009466 transformation Effects 0.000 claims abstract description 82
- 210000000988 bone and bone Anatomy 0.000 claims abstract description 33
- 238000013519 translation Methods 0.000 claims description 12
- 238000004422 calculation algorithm Methods 0.000 claims description 9
- 238000013507 mapping Methods 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 9
- 210000000746 body region Anatomy 0.000 claims description 6
- 230000006870 function Effects 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000009499 grossing Methods 0.000 claims description 3
- 230000009467 reduction Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 6
- 238000007781 pre-processing Methods 0.000 description 4
- 238000004088 simulation Methods 0.000 description 3
- 210000003423 ankle Anatomy 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 210000002683 foot Anatomy 0.000 description 2
- 210000003127 knee Anatomy 0.000 description 2
- 210000000707 wrist Anatomy 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 201000010099 disease Diseases 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 210000004936 left thumb Anatomy 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 210000004935 right thumb Anatomy 0.000 description 1
- 230000003238 somatosensory effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/30—Determination of transform parameters for the alignment of images, i.e. image registration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
- G06T7/593—Depth or shape recovery from multiple images from stereo images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
- G06T7/85—Stereo camera calibration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
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)
- Image Analysis (AREA)
Abstract
本发明基于多个Kinect的快速自动配准方法及系统,围绕人体布设三个Kinect传感器,每个Kinect传感器获取人体深度数据、人体彩色数据和人体骨骼点数据,使用棋盘格标定法获得每台Kinect的内参,再获得相邻两个Kinect传感器之间的初始变换矩阵;对人体深度数据和人体彩色数据进行处理,利用每台Kinect的内参,生成人体点云数据;利用初始变换矩阵将人体点云数据转换到统一世界坐标系;利用骨骼点数据对人体点云数据进行分类,计算刚体配准变换矩阵;使用最小二乘法优化刚体配准变换矩阵,得到最终的变换矩阵;通过最终的变换矩阵,将三个Kinect传感器获取的人体点云数据配准在一起,得到最终的配准结果。
Description
技术领域
本公开涉及图像处理技术领域,具体涉及基于多个Kinect的快速自动配准方法及系统。
背景技术
实物及场景的重建可以帮助人们更好的处理信息,随着计算机、体感设备等技术的发展,重建真实物体和场景在机器人控制,医疗,教育,计算机应用等领域发挥着日益重要的作用。
随着Kinect这种成像速度快、价格低廉、操作方式简便且能获得物体深度信息的体感设备发布,如何快速、逼真地用Kinect重建真实物体和场景正成为研究的热点问题,而基于Kinect重建真实场景的关键在于如何快速,准确的配准多个Kinect。基于深度图像配准的算法中,比较常用的是迭代最近点算法(ICP)和棋盘格标定法。
迭代最近点(Iterative Closest Points,ICP)的核心思想是针对不同坐标系下的两个点云数据集,找到两个点云集中对应的匹配点,迭代地缩小匹配点间的距离,直到距离小于设定阈值,最终得到对应关系点集间的最优刚体变换,实现点云数据的配准。定义函数E,对点集P1中的每一个点Pi运用变换关系得到点集P2,E可以理解为经过变换后的P2中每个点与M点集中对应点的距离和,重复迭代直到满足终止条件。
ICP在图像匹配上存在以下几个明显的缺点:
(1)该算法假设其中一个点集是另一个点集的子集,这一要求很多时候难以满足;
(2)该算法在搜索对应点的过程中,计算代价很大;
(3)在寻找对应点的时候,认为欧氏距离最近的点就是对应点,会产生一定数量的错误对应点。
棋盘格方法通常也用来标定Kinect,主要步骤如下:
(1)准备棋盘格标定板,连接Kinect深度传感器;
(2)前后转动棋盘格标定板,使用Kinect传感器扫描棋盘格定标板在各个位置的图像,并进行图像数据存储。至少在不同平面内扫描3幅棋盘格在不同方位的图像;
(3)利用Camera Calibration Toolbox,运行calib命令对Kinect传感器拍摄的图片进行标定。
基于棋盘格平面模板的摄像机标定由于其标定模板制作简单,应用也比较广泛。但是从标定实际应用状况和结果来看,有时候会产生标定精度不高,标定系统不稳定,标定操作过程复杂、繁琐、耗时等缺点,导致标定效果并不理想。
由于传统的三维配准方法的通用性和精度不够,难以满足用户的多种需求,在某些应用场合,例如对烧伤病人或者重病在床的患者进行其人体模型的重建时,从获取数据到模型的重建过程,复杂的过程和所消耗的时间都是需要重视的问题。
发明内容
本公开的目的就是为了解决上述问题,提供一种基于多个Kinect的快速自动配准方法及系统,该方法不需要人工标记来进行Kinect的配准,而且提高了Kinect配准速度和精度。
为实现上述目的,本公开采用如下技术方案:
作为本公开的第一方面,提供了基于多个Kinect的快速自动配准方法;
基于多个Kinect的快速自动配准方法,包括:
步骤(1):围绕人体布设三个Kinect传感器,每个Kinect传感器获取人体深度数据、人体彩色数据和人体骨骼点数据,使用棋盘格标定法获得每台Kinect的内参,再获得相邻两个Kinect传感器之间的初始变换矩阵;
步骤(2):对人体深度数据和人体彩色数据进行处理,利用每台Kinect的内参,生成人体点云数据;利用初始变换矩阵将人体点云数据转换到统一世界坐标系;
步骤(3):利用骨骼点数据对人体点云数据进行分类,计算刚体配准变换矩阵;
步骤(4):使用最小二乘法优化刚体配准变换矩阵,得到最终的变换矩阵;
步骤(5):通过最终的变换矩阵,将三个Kinect传感器获取的人体点云数据配准在一起,得到最终的配准结果。
作为可能的一种实现方式,所述步骤(1)中,预先将三个Kinect传感器布设在距离人体设定距离的三个位置上,三个Kinect传感器处在一个同心圆上,每个Kinect传感器与圆心的连线与相邻Kinect传感器与圆心的连线之间成120°夹角,待拍摄人体设于同心圆的圆心,每个Kinect传感器用于获取人体深度数据、人体彩色数据和人体骨骼点数据,使用棋盘格标定法获得初始变换矩阵。
作为可能的一种实现方式,每个Kinect传感器用于获取人体深度数据、人体彩色数据和人体骨骼点数据,使用棋盘格标定法获得初始变换矩阵,具体步骤如下:
步骤(1-1):每个Kinect传感器捕捉人体深度数据、人体彩色数据和人体骨骼点数据;人体深度数据是指人体深度图,人体彩色数据是指人体彩色图,人途骨骼点数据是指人体骨骼点坐标;
步骤(1-2):将每个Kinect传感器捕捉的人体深度数据、人体彩色数据和人体骨骼点数据保存;
步骤(1-3):将每个Kinect保存的人体深度数据、人体彩色数据和人体骨骼点数据上传到同一台计算机;
步骤(1-4):利用棋盘格标定法,即通过MATLAB的Camera Calibration Toolbox工具包的单目标定法对每个Kinect保存的人体深度数据进行计算,得到每台Kinect的内参;再利用Camera Calibration Toolbox工具包的双目标定法对单目标定的计算结果进行计算,得到第i个Kinect传感器与同心圆顺时针方向相邻下一个Kinect传感器之间的初始变换矩阵。
作为可能的一种实现方式,所述步骤(2)中,对人体深度数据和人体彩色数据进行处理,利用每台Kinect的内参,生成人体点云数据;具体步骤如下:
对每个Kinect获得的人体深度图进行处理,利用Kinect软件开发工具包KinectSoftware Development Kit中的人体索引值属性BodyIndex,将人体区域从人体深度图中提取出来,遍历人体深度图将不属于人体区域的深度值都设置为零;
利用Kinect软件开发工具包中映射彩色流到深度坐标属性MapColorFrameToDepthSpace将人体彩色图映射到人体深度图,实现人体彩色图与人体深度图中人体区域坐标的对齐;
利用每个Kinect的内参,生成人体点云数据。
作为可能的一种实现方式,利用每个Kinect的内参,生成人体点云数据的具体步骤为:
由于已经将人体彩色图映射到人体深度图Dij(dx,dy)上了,yx=dx,yy=dy即人体深度图上人体坐标与人体彩色图上人体坐标一一对应,所以得到加入颜色信息的人体点云数据:
pz=Cij/s; (1)
px=(yx-cx)·pz/fx; (2)
py=(yy-cy)·pz/fy; (3)
其中,i表示第i个Kinect传感器,i=1、2或3,j表示第j帧图像,s是深度图的方缩因子,s=1000。
作为可能的一种实现方式,所述步骤(2)中,还包括:利用初始变换矩阵将人体点云数据转换到统一世界坐标系:
其中,表示每台Kinect初始配准后的人体点云数据。
作为可能的一种实现方式,所述步骤(3)中,利用骨骼点数据对人体点云数据进行分类,计算刚体配准变换矩阵;具体步骤如下:
步骤(3-1):由Kinect SDK获取到人体的m个关节点的坐标;使用K-Means算法将每个Kinect传感器获取的人体点云数据分成m类;
步骤(3-2):将人体点云分类为m类后,设定每一类的旋转矩阵和平移矩阵;基于旋转矩阵和平移矩阵,得到每个Kinect传感器每类人体点云数据的刚体配准变换矩阵。
作为可能的一种实现方式,所述步骤(4)中,使用最小二乘法优化刚体配准变换矩阵,得到最终的变换矩阵步骤:
步骤(4-1):已知分类后的点云定义被转换的点云对应的转换后的目标点云为目标点云即为当前Kinect传感器所在同心圆顺时针方向下一个相邻Kinect传感器分类后对应关节点的点云;
为了确保转换后的目标点云与实际的目标点云贴合,为每类点云定义能量项Efit:
步骤(4-2):定义aij1、aij2和aij3是Aij的类向量,定义能量项Erig:
步骤(4-3):定义Kij(kx,ky,kz)是点云Pij(px,py,pz)在每类临域δ内的相邻节点,为了使得变换平滑,定义能量项Esmo:
其中,ωij表示平滑对变换矩阵的影响程度,设置为常数100,qij表示四元数,用来表示点云Pij(px,py,pz)的旋转矩阵,Tp表示点云Pij(px,py,pz)的平移矩阵,Tk表示点云Kij(kx,ky,kz)的平移矩阵
步骤(4-4):通过最小化能量函数Etol来实现(qij,Tij)即Aij的优化估计:
Etol=Efit+Erig+Esmo; (23)。
作为可能的一种实现方式,所述步骤(5)中,通过优化后的变换矩阵,将三个Kinect传感器获取的人体数据配准在一起,得到最终的配准结果:
对三个Kinect传感器获取j帧数据的生成的点云分别进行分类后,对分类后每一类点云计算得到一个其中,i表示第i个Kinect传感器,i=1、2或3,j表示第j帧,k表示第k个骨骼点;点云表示为第i台Kinect的第j帧的第k类点云,得到第j帧的配准结果
作为本公开的第二方面,提供了基于多个Kinect的快速自动配准系统;
基于多个Kinect的快速自动配准系统,包括:三个Kinect传感器和一台计算机设备;三个Kinect传感器均与计算机设备连接;
所述计算机设备,包括存储器、处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成如下步骤:
步骤(1):获取每个Kinect传感器采集的人体深度数据、人体彩色数据和人体骨骼点数据,使用棋盘格标定法获得每台Kinect传感器的内参,再获得相邻两个Kinect传感器之间的初始变换矩阵;
步骤(2):对人体深度数据和人体彩色数据进行处理,利用每台Kinect传感器的内参,生成人体点云数据;利用初始变换矩阵将人体点云数据转换到统一世界坐标系;
步骤(3):利用骨骼点数据对人体点云数据进行分类,计算刚体配准变换矩阵;
步骤(4):使用最小二乘法优化刚体配准变换矩阵,得到最终的变换矩阵;
步骤(5):通过最终的变换矩阵,将三个Kinect传感器获取的人体点云数据配准在一起,得到最终的配准结果。
本公开的有益效果:
(1)与传统的Kinect配准方法相比,本公开方法不需要借助外物来进行Kinect的配准,而且提高了Kinect配准速度和精度。
(2)与传统的设备注册方法相比,本公开的方法不需要其他对象来访问它,而且提高了注册速度和准确率。
(3)我们提出的方法对噪声和几何缺陷数据具有较好的鲁棒性。
附图说明
图1是本公开的流程示意图;
图2(a)是未处理待配准的图形;
图2(b)是画出了需要配准的连接的曲线;
图2(c)是使用该方法后得到的配准结果;
图3(a)是在我们的实验中测试的人,这个人处于自然状态,不需要做任何处理;
图3(b)是由不同角度的运动所得到的骨骼;
图3(c)是每个骨乘以各自的变换矩阵计算刚体和骨在同一坐标系下的结果;
图4(a)是对获得的深度彩色数据进行预处理,去除背景的结果;
图4(b)是对获得的深度彩色数据进行预处理,去除背景并去噪后的结果;
图5(a)是将三台kinect获取的信息转换到统一的世界坐标系的结果;
图5(b)是三台kinect获取的信息转换到统一的世界坐标系以及对结果的去噪;
图6(a)是利用骨骼点信息,扫描得到的原始点云;
图6(b)是利用骨骼点信息,将点云分类的结果;
图7(a)是人体配准的正面结果;
图7(b)是人体配准的背面结果。
具体实施方式
本公开的内容可以通过以下的仿真结果进一步进行说明。
如图1所示,是本公开的具体流程,先对三台kinect进行棋盘格标定,得到三台机器初始的变换矩阵,再利用每台获取的数据生成三个角度的点云数据,对着三片点云根据骨骼点分成25类,再根据每一类计算优化后的变换矩阵,再根据最终的变换矩阵将三台Kinect获得的数据配准在一起,得到完整的人体点云。
基于多个Kinect的快速自动配准方法,包括:
步骤(1):围绕人体布设三个Kinect传感器,每个Kinect传感器获取人体深度数据、人体彩色数据和人体骨骼点数据,使用棋盘格标定法获得每台Kinect的内参,再获得相邻两个Kinect传感器之间的初始变换矩阵;
步骤(2):对人体深度数据和人体彩色数据进行处理,利用每台Kinect的内参,生成人体点云数据;利用初始变换矩阵将人体点云数据转换到统一世界坐标系;
步骤(3):利用骨骼点数据对人体点云数据进行分类,计算刚体配准变换矩阵;
步骤(4):使用最小二乘法优化刚体配准变换矩阵,得到最终的变换矩阵;
步骤(5):通过最终的变换矩阵,将三个Kinect传感器获取的人体点云数据配准在一起,得到最终的配准结果。
作为可能的一种实现方式,所述步骤(1)中,预先将三个Kinect传感器布设在距离人体设定距离的三个位置上,三个Kinect传感器处在一个同心圆上,每个Kinect传感器与圆心的连线与相邻Kinect传感器与圆心的连线之间成120°夹角,待拍摄人体设于同心圆的圆心,每个Kinect传感器用于获取人体深度数据、人体彩色数据和人体骨骼点数据,使用棋盘格标定法获得初始变换矩阵。
作为可能的一种实现方式,每个Kinect传感器用于获取人体深度数据、人体彩色数据和人体骨骼点数据,使用棋盘格标定法获得初始变换矩阵,具体步骤如下:
步骤(1-1):每个Kinect传感器捕捉人体深度数据、人体彩色数据和人体骨骼点数据;
人体深度数据,是指获取人体深度图Dij,即424*512的深度值;
人体彩色数据,是指获取人体彩色图即3*424*512的颜色值;
人体骨骼点数据,是指获取骨骼点坐标数据即25个骨骼点坐标;
其中,i表示第i个Kinect传感器,i=1、2或3,j表示第j帧,RGB表示人体彩色图的三个通道,k表示第k个骨骼点;
步骤(1-2):将每个Kinect传感器捕捉的人体的深度Dij(dx,dy)、彩色和骨骼点数据保存;
其中,dx表示对应人体深度图中的横坐标;dy表示对应人体深度图中的纵坐标;yx表示对应彩色图RGB三个通道中的横坐标;yy表示对应彩色图RGB三个通道中的纵坐标;sx表示骨骼点的x坐标值;sy表示骨骼点的y坐标值;sz表示骨骼点的z坐标值;
步骤(1-3):将每个Kinect保存的人体深度数据、人体彩色数据和人体骨骼点数据上传到同一台计算机;
步骤(1-4):利用棋盘格标定法,即通过MATLAB的Camera Calibration Toolbox工具包的单目标定法对每个Kinect保存的人体深度数据进行计算,得到每台Kinect的内参(fx,fy,cx,cy),其中,fx和fy为Kinect传感器焦距,cx和cy为Kinect传感器中心点坐标;再利用Camera Calibration Toolbox工具包的双目标定法对单目标定的计算结果进行计算,得到第i个Kinect传感器与同心圆顺时针方向相邻下一个Kinect传感器之间的初始变换矩阵Ai0。
作为可能的一种实现方式,所述步骤(2)中,处理获取人体深度数据和人体彩色数据,生成人体点云数据;具体步骤如下:
步骤(2-1):对每个Kinect获得的人体深度图进行处理,利用Kinect软件开发工具包Kinect Software Development Kit中的人体索引值属性BodyIndex,将人体区域从人体深度图中提取出来,遍历人体深度图将不属于人体区域的深度值都设置为零;
利用Kinect软件开发工具包中映射彩色流到深度坐标属性MapColorFrameToDepthSpace将人体彩色图映射到人体深度图,实现人体彩色图与人体深度图中人体区域坐标的对齐。
利用每个Kinect的内参(fx,fy,cx,cy),生成人体点云数据
生成人体点云数据:
由于已经将人体彩色图映射到人体深度图Dij(dx,dy)上了,yx=dx,yy=dy即人体深度图上人体坐标与人体彩色图上人体坐标一一对应,所以得到加入颜色信息的人体点云数据:
pz=Cij/s; (1)
px=(yx-cx)·pz/fx; (2)
py=(yy-cy)·pz/fy; (3)
其中,i表示第i个Kinect传感器,i=1、2或3,j表示第j帧图像,s是深度图的方缩因子,s=1000。
步骤(2-2):利用初始变换矩阵,将每台Kinect生成的人体点云数据,转换到统一的世界坐标系:
其中,表示每台Kinect初始配准后的人体点云数据;
作为可能的一种实现方式,所述步骤(3)中,利用骨骼点数据对人体点云数据进行分类,计算局部刚体配准的变换矩阵的具体步骤如下:
步骤(3-1):利用25个骨骼点坐标k的取值范围是1到25,由KinectSDK自动获取到人体的25个关节点分别是脊柱底座、脊柱中部、颈部、头部、左肩膀、左手肘、左手腕、左手、右肩膀、右手肘、右手腕、右手、左臀部、左膝盖、左脚踝、左脚、左臀部、右膝盖、右脚踝、右脚、脊柱肩、左手尖、左拇指、右手尖和右拇指;
使用K-Means算法将每个Kinect获取的点云分成25类;
K-Means所要优化的目标函数J:
其中,将每个人体点云的N个数据点被分成K个类,N为每个Kinect获取的点云中包含的点的个数,K为25,xn为点云中的任一点坐标,μk为每一类的中心点坐标;
假设rnk为点的分类结果,其中rnk满足:
先固定μk,初始的中心点坐标为25个骨骼点坐标,选择最优的rnk,即将数据点归类到离μk最近的中心点就保证目标函数J最小;cluster k是指第k类;
再固定rnk,求最优μk,将J对μk求导,并令导数为零,求得J最小时μk满足:
即μk的值是第k类中的数据点的平均值;
步骤(3-2):将人体点云分类为25类后,设定每一类的旋转矩阵Rij,i表示第i个Kinect传感器,j表示第j类,即max(j)=5;用四元数表示旋转矩阵Rij来加快配准的计算速度,其中:
其中,T11是旋转矩阵Rij的第一行第一列元素,T12是旋转矩阵Rij的第一行第二列元素,T13是旋转矩阵Rij的第一行第三列元素,T21是旋转矩阵Rij的第二行第一列元素,T22是旋转矩阵Rij的第二行第二列元素,T23是旋转矩阵Rij的第二行第三列元素,T31是旋转矩阵Rij的第三行第一列元素,T32是旋转矩阵Rij的第三行第二列元素,T33是旋转矩阵Rij的第三行第三列元素。
设四元数qij=(q0,q1,q2,q3),其中q0、q1、q2、q3是四元数的四个变量,四元数的计算方法如下:
4q0q1=T23-T32; (13)
4q0q2=T31-T13; (14)
4q0q3=T12-T21; (15)
确定q0、q1、q2和q3的正负符号,即确定旋转的方向:
sign(q1)=sign(q0)sign(T23-T32); (16)
sign(q2)=sign(q0)sign(T31-T13); (17)
sign(q3)=sign(q0)sign(T12-T21); (18)
其中,sign表示该向量的正负号;
设Tij为平移矩阵,Tij=(t0,t1,t2)T与旋转矩阵Rij组成变换矩阵Aij,如下:
其中t0,t1,t2是平移矩阵的三个向量元素,Aij表示第i台Kinect的第j类点云的刚体配准变换矩阵,Aij=(qij,Tij);
作为可能的一种实现方式,所述步骤(4)中,使用最小二乘法优化刚体配准变换矩阵,得到最终的变换矩阵步骤:
步骤(4-1):已知分类后的点云定义被转换的点云对应的转换后的目标点云为目标点云即为当前Kinect传感器所在同心圆顺时针方向下一个相邻Kinect传感器分类后对应关节点的点云;
为了确保转换后的目标点云与实际的目标点云贴合,为每类点云定义能量项Efit:
步骤(4-2):定义aij1、aij2和aij3是Aij的类向量,为了使得仿射变换严格,定义能量项Erig:
步骤(4-3):定义Kij(kx,ky,kz)是点云Pij(px,py,pz)在每类临域δ内的相邻节点,为了使得变换平滑,定义能量项Esmo:
其中,ωij表示平滑对变换矩阵的影响程度,设置为常数100,qij表示四元数,用来表示点云Pij(px,py,pz)的旋转矩阵,Tp表示点云Pij(px,py,pz)的平移矩阵,Tk表示点云Kij(kx,ky,kz)的平移矩阵
步骤(4-4):通过最小化能量函数Etol来实现(qij,Tij)即Aij的优化估计:
Etol=Efit+Erig+Esmo; (23)。
作为可能的一种实现方式,所述步骤(5)中,通过优化后的变换矩阵,将三个Kinect传感器获取的人体数据配准在一起,得到最终的配准结果:
对三个Kinect传感器获取j帧数据的生成的点云分别进行分类后,对分类后每一类点云计算得到一个其中,i表示第i个Kinect传感器,i=1、2或3,j表示第j帧,k表示第k个骨骼点;点云表示为第i台Kinect的第j帧的第k类点云,得到第j帧的配准结果
1、仿真内容:应用本公开方法,对于输入对应的深度图、彩色图进行预处理,以及利用骨架信息的分类后进行图像配准。
2、仿真结果
图2(a)-图2(c)为本公开应用于图片上的匹配结果。其中图2(a)是未处理待配准的图形;图2(b)中画出了需要配准的连接的曲线;图2(c)是使用该方法后得到的配准结果。
从图2(a)-图2(c)可以看出,使用本公开方法能够对图像精准配准,可以得到成功匹配的图形。
图3(a)-图3(c)是本公开应用于把每个骨架的刚体变换得到一个标准的变换的结果。其中图3(a)是在我们的实验中测试的人,这个人处于自然状态,不需要做任何处理;图3(b)是由不同角度的运动所得到的骨骼,每两根骨头之间有一个刚体转换,我们可以用我们的算法把每个骨架的刚体变换得到一个标准的变换;在图3(c)中,每个骨乘以各自的变换矩阵计算刚体和骨在同一坐标系下的结果。
从图3(a)-图3(c)可以看出,使用本公开方法可以完成运动中骨架的配准,将不同Kinect中获取的动态骨架信息转换到一个坐标系中,并且完成骨骼信息的配准。
图4(a)、图4(b)是对获得的深度彩色数据进行预处理,去除背景并去噪后的结果。
图5(a)、图5(b)是将三台kinect获取的信息转换到统一的世界坐标系的结果,以及对结果的去噪。
图6(a)、图6(b)是利用骨骼点信息,将点云分类的结果。
图7(a)、图7(b)是人体配准的结果。
综上,本公开是基于多个Kinect的自动配准.我们结合深度、彩色骨骼数据对Kinect进行配准。本公开通过使用最小二乘算法计算出任意点云数据之间的平移和旋转矩阵,并用四元数来表示变换矩阵。与传统的Kinect配准方法相比,本文方法不需要借助外物来进行Kinect的配准,而且提高了Kinect配准速度和精度。
上述虽然结合附图对本公开的具体实施方式进行了描述,但并非对本公开保护范围的限制,所属领域技术人员应该明白,在本公开的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本公开的保护范围以内。
Claims (10)
1.基于多个Kinect的快速自动配准方法,其特征是,包括:
步骤(1):围绕人体布设三个Kinect传感器,每个Kinect传感器获取人体深度数据、人体彩色数据和人体骨骼点数据,使用棋盘格标定法获得每台Kinect的内参,再获得相邻两个Kinect传感器之间的初始变换矩阵;
步骤(2):对人体深度数据和人体彩色数据进行处理,利用每台Kinect的内参,生成人体点云数据;利用初始变换矩阵将人体点云数据转换到统一世界坐标系;
步骤(3):利用骨骼点数据对人体点云数据进行分类,计算刚体配准变换矩阵;
步骤(4):使用最小二乘法优化刚体配准变换矩阵,得到最终的变换矩阵;
步骤(5):通过最终的变换矩阵,将三个Kinect传感器获取的人体点云数据配准在一起,得到最终的配准结果。
2.如权利要求1所述的基于多个Kinect的快速自动配准方法,其特征是,所述步骤(1)中,预先将三个Kinect传感器布设在距离人体设定距离的三个位置上,三个Kinect传感器处在一个同心圆上,每个Kinect传感器与圆心的连线与相邻Kinect传感器与圆心的连线之间成120°夹角,待拍摄人体设于同心圆的圆心,每个Kinect传感器用于获取人体深度数据、人体彩色数据和人体骨骼点数据,使用棋盘格标定法获得初始变换矩阵。
3.如权利要求1所述的基于多个Kinect的快速自动配准方法,其特征是,每个Kinect传感器用于获取人体深度数据、人体彩色数据和人体骨骼点数据,使用棋盘格标定法获得初始变换矩阵,具体步骤如下:
步骤(1-1):每个Kinect传感器捕捉人体深度数据、人体彩色数据和人体骨骼点数据;人体深度数据是指人体深度图,人体彩色数据是指人体彩色图,人途骨骼点数据是指人体骨骼点坐标;
步骤(1-2):将每个Kinect传感器捕捉的人体深度数据、人体彩色数据和人体骨骼点数据保存;
步骤(1-3):将每个Kinect保存的人体深度数据、人体彩色数据和人体骨骼点数据上传到同一台计算机;
步骤(1-4):利用棋盘格标定法,即通过MATLAB的Camera Calibration Toolbox工具包的单目标定法对每个Kinect保存的人体深度数据进行计算,得到每台Kinect的内参;再利用Camera Calibration Toolbox工具包的双目标定法对单目标定的计算结果进行计算,得到第i个Kinect传感器与同心圆顺时针方向相邻下一个Kinect传感器之间的初始变换矩阵。
4.如权利要求1所述的基于多个Kinect的快速自动配准方法,其特征是,所述步骤(2)中,对人体深度数据和人体彩色数据进行处理,利用每台Kinect的内参,生成人体点云数据;具体步骤如下:
对每个Kinect获得的人体深度图进行处理,利用Kinect软件开发工具包KinectSoftware Development Kit中的人体索引值属性BodyIndex,将人体区域从人体深度图中提取出来,遍历人体深度图将不属于人体区域的深度值都设置为零;
利用Kinect软件开发工具包中映射彩色流到深度坐标属性MapColorFrameToDepthSpace将人体彩色图映射到人体深度图,实现人体彩色图与人体深度图中人体区域坐标的对齐;
利用每个Kinect的内参,生成人体点云数据。
5.如权利要求1所述的基于多个Kinect的快速自动配准方法,其特征是,利用每个Kinect的内参,生成人体点云数据的具体步骤为:
由于已经将人体彩色图映射到人体深度图Dij(dx,dy)上了,yx=dx,yy=dy即人体深度图上人体坐标与人体彩色图上人体坐标一一对应,所以得到加入颜色信息的人体点云数据:
pz=Cij/s;(1)
px=(yx-cx)·pz/fx;(2)
py=(yy-cy)·pz/fy;(3)
其中,i表示第i个Kinect传感器,i=1、2或3,j表示第j帧图像,s是深度图的方缩因子,s=1000。
6.如权利要求1所述的基于多个Kinect的快速自动配准方法,其特征是,所述步骤(2)中,还包括:利用初始变换矩阵将人体点云数据转换到统一世界坐标系:
其中,表示每台Kinect初始配准后的人体点云数据。
7.如权利要求1所述的基于多个Kinect的快速自动配准方法,其特征是,所述步骤(3)中,利用骨骼点数据对人体点云数据进行分类,计算刚体配准变换矩阵;具体步骤如下:
步骤(3-1):由Kinect SDK获取到人体的m个关节点的坐标;使用K-Means算法将每个Kinect传感器获取的人体点云数据分成m类;
步骤(3-2):将人体点云分类为m类后,设定每一类的旋转矩阵和平移矩阵;基于旋转矩阵和平移矩阵,得到每个Kinect传感器每类人体点云数据的刚体配准变换矩阵。
8.如权利要求1所述的基于多个Kinect的快速自动配准方法,其特征是,所述步骤(4)中,使用最小二乘法优化刚体配准变换矩阵,得到最终的变换矩阵步骤:
步骤(4-1):已知分类后的点云定义被转换的点云对应的转换后的目标点云为目标点云即为当前Kinect传感器所在同心圆顺时针方向下一个相邻Kinect传感器分类后对应关节点的点云;
为了确保转换后的目标点云与实际的目标点云贴合,为每类点云定义能量项Efit:
步骤(4-2):定义aij1、aij2和aij3是Aij的类向量,定义能量项Erig:
步骤(4-3):定义Kij(kx,ky,kz)是点云Pij(px,py,pz)在每类临域δ内的相邻节点,为了使得变换平滑,定义能量项Esmo:
其中,ωij表示平滑对变换矩阵的影响程度,设置为常数100,qij表示四元数,用来表示点云Pij(px,py,pz)的旋转矩阵,Tp表示点云Pij(px,py,pz)的平移矩阵,Tk表示点云Kij(kx,ky,kz)的平移矩阵
步骤(4-4):通过最小化能量函数Etol来实现(qij,Tij)即Aij的优化估计:
Etol=Efit+Erig+Esmo;(23)。
9.如权利要求1所述的基于多个Kinect的快速自动配准方法,其特征是,所述步骤(5)中,通过优化后的变换矩阵,将三个Kinect传感器获取的人体数据配准在一起,得到最终的配准结果:
对三个Kinect传感器获取j帧数据的生成的点云分别进行分类后,对分类后每一类点云计算得到一个其中,i表示第i个Kinect传感器,i=1、2或3,j表示第j帧,k表示第k个骨骼点;点云表示为第i台Kinect的第j帧的第k类点云,得到第j帧的配准结果
10.基于多个Kinect的快速自动配准系统,其特征是,包括:三个Kinect传感器和一台计算机设备;三个Kinect传感器均与计算机设备连接;
所述计算机设备,包括存储器、处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成如下步骤:
步骤(1):获取每个Kinect传感器采集的人体深度数据、人体彩色数据和人体骨骼点数据,使用棋盘格标定法获得每台Kinect传感器的内参,再获得相邻两个Kinect传感器之间的初始变换矩阵;
步骤(2):对人体深度数据和人体彩色数据进行处理,利用每台Kinect传感器的内参,生成人体点云数据;利用初始变换矩阵将人体点云数据转换到统一世界坐标系;
步骤(3):利用骨骼点数据对人体点云数据进行分类,计算刚体配准变换矩阵;
步骤(4):使用最小二乘法优化刚体配准变换矩阵,得到最终的变换矩阵;
步骤(5):通过最终的变换矩阵,将三个Kinect传感器获取的人体点云数据配准在一起,得到最终的配准结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811302695.3A CN109544606B (zh) | 2018-11-02 | 2018-11-02 | 基于多个Kinect的快速自动配准方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811302695.3A CN109544606B (zh) | 2018-11-02 | 2018-11-02 | 基于多个Kinect的快速自动配准方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109544606A true CN109544606A (zh) | 2019-03-29 |
CN109544606B CN109544606B (zh) | 2022-02-15 |
Family
ID=65846381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811302695.3A Active CN109544606B (zh) | 2018-11-02 | 2018-11-02 | 基于多个Kinect的快速自动配准方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109544606B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110163898A (zh) * | 2019-05-07 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 一种深度信息配准方法及装置 |
CN111199198A (zh) * | 2019-12-27 | 2020-05-26 | 深圳市优必选科技股份有限公司 | 一种图像目标定位方法、图像目标定位装置及移动机器人 |
CN111540040A (zh) * | 2020-04-20 | 2020-08-14 | 上海曼恒数字技术股份有限公司 | 一种基于点云数据进行模型构建方法、装置、存储介质 |
CN113313821A (zh) * | 2021-06-24 | 2021-08-27 | 河北农业大学 | 一种快速三维重建系统和方法 |
CN113345010A (zh) * | 2021-06-01 | 2021-09-03 | 北京理工大学 | 基于改进ICP的多Kinect系统坐标标定与转换方法 |
CN113450417A (zh) * | 2021-05-12 | 2021-09-28 | 深圳市格灵精睿视觉有限公司 | 标定参数优化方法、装置、设备及存储介质 |
CN113516694A (zh) * | 2021-04-13 | 2021-10-19 | 同济大学 | 一种基于多Kinect的远程医疗场景的动态可视化控制方法 |
CN113749651A (zh) * | 2021-10-18 | 2021-12-07 | 长春理工大学 | 一种基于人体姿势识别的压力评估方法及压力评估系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104298353A (zh) * | 2014-10-08 | 2015-01-21 | 宁波熵联信息技术有限公司 | 一种基于逆运动学的车辆监控防盗方法及系统 |
CN105989604A (zh) * | 2016-02-18 | 2016-10-05 | 合肥工业大学 | 一种基于kinect的目标物体三维彩色点云生成方法 |
CN107203753A (zh) * | 2017-05-25 | 2017-09-26 | 西安工业大学 | 一种基于模糊神经网络和图模型推理的动作识别方法 |
US20180047175A1 (en) * | 2016-08-12 | 2018-02-15 | Nanjing Huajie Imi Technology Co., Ltd | Method for implementing human skeleton tracking system based on depth data |
CN107767442A (zh) * | 2017-10-16 | 2018-03-06 | 浙江工业大学 | 一种基于Kinect和双目视觉的脚型三维重建与测量方法 |
CN108564653A (zh) * | 2018-03-16 | 2018-09-21 | 中国传媒大学 | 基于多Kinect的人体骨架追踪系统及方法 |
-
2018
- 2018-11-02 CN CN201811302695.3A patent/CN109544606B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104298353A (zh) * | 2014-10-08 | 2015-01-21 | 宁波熵联信息技术有限公司 | 一种基于逆运动学的车辆监控防盗方法及系统 |
CN105989604A (zh) * | 2016-02-18 | 2016-10-05 | 合肥工业大学 | 一种基于kinect的目标物体三维彩色点云生成方法 |
US20180047175A1 (en) * | 2016-08-12 | 2018-02-15 | Nanjing Huajie Imi Technology Co., Ltd | Method for implementing human skeleton tracking system based on depth data |
CN107203753A (zh) * | 2017-05-25 | 2017-09-26 | 西安工业大学 | 一种基于模糊神经网络和图模型推理的动作识别方法 |
CN107767442A (zh) * | 2017-10-16 | 2018-03-06 | 浙江工业大学 | 一种基于Kinect和双目视觉的脚型三维重建与测量方法 |
CN108564653A (zh) * | 2018-03-16 | 2018-09-21 | 中国传媒大学 | 基于多Kinect的人体骨架追踪系统及方法 |
Non-Patent Citations (2)
Title |
---|
朱江涛: "基于Kinect的人体三维重建与尺寸测量", 《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》 * |
陈英博: "Kinect点云数据与序列影像结合的三维重建技术", 《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110163898A (zh) * | 2019-05-07 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 一种深度信息配准方法及装置 |
CN110163898B (zh) * | 2019-05-07 | 2023-08-11 | 腾讯科技(深圳)有限公司 | 深度信息配准方法、装置、系统、设备及存储介质 |
CN111199198A (zh) * | 2019-12-27 | 2020-05-26 | 深圳市优必选科技股份有限公司 | 一种图像目标定位方法、图像目标定位装置及移动机器人 |
CN111199198B (zh) * | 2019-12-27 | 2023-08-04 | 深圳市优必选科技股份有限公司 | 一种图像目标定位方法、图像目标定位装置及移动机器人 |
CN111540040A (zh) * | 2020-04-20 | 2020-08-14 | 上海曼恒数字技术股份有限公司 | 一种基于点云数据进行模型构建方法、装置、存储介质 |
CN113516694A (zh) * | 2021-04-13 | 2021-10-19 | 同济大学 | 一种基于多Kinect的远程医疗场景的动态可视化控制方法 |
CN113450417A (zh) * | 2021-05-12 | 2021-09-28 | 深圳市格灵精睿视觉有限公司 | 标定参数优化方法、装置、设备及存储介质 |
CN113345010A (zh) * | 2021-06-01 | 2021-09-03 | 北京理工大学 | 基于改进ICP的多Kinect系统坐标标定与转换方法 |
CN113345010B (zh) * | 2021-06-01 | 2022-02-11 | 北京理工大学 | 基于改进ICP的多Kinect系统坐标标定与转换方法 |
CN113313821A (zh) * | 2021-06-24 | 2021-08-27 | 河北农业大学 | 一种快速三维重建系统和方法 |
CN113749651A (zh) * | 2021-10-18 | 2021-12-07 | 长春理工大学 | 一种基于人体姿势识别的压力评估方法及压力评估系统 |
CN113749651B (zh) * | 2021-10-18 | 2023-05-26 | 长春理工大学 | 一种基于人体姿势识别的压力评估方法及压力评估系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109544606B (zh) | 2022-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109544606B (zh) | 基于多个Kinect的快速自动配准方法及系统 | |
CN106780619B (zh) | 一种基于Kinect深度相机的人体尺寸测量方法 | |
Li et al. | Robust non-rigid registration with reweighted position and transformation sparsity | |
CN111145232A (zh) | 一种基于特征信息变化度的三维点云自动配准方法 | |
WO2014003081A1 (en) | Method for registering data | |
CN104240180B (zh) | 一种实现图像自动调整的方法及装置 | |
CN106919944A (zh) | 一种基于orb算法的大视角图像快速识别方法 | |
CN106934824B (zh) | 可变形物体的全局非刚性配准与重建方法 | |
Wuhrer et al. | Landmark-free posture invariant human shape correspondence | |
CN112562082A (zh) | 一种三维人脸重建方法及系统 | |
CN110163113B (zh) | 一种人体行为相似度计算方法及装置 | |
CN112330813A (zh) | 一种基于单目深度摄像头的着装下三维人体模型重建方法 | |
Tajdari et al. | Feature preserving non-rigid iterative weighted closest point and semi-curvature registration | |
CN104867104A (zh) | 基于xct图像非刚度配准的目标鼠解剖结构图谱获取方法 | |
CN108230402A (zh) | 一种基于三棱锥模型的立体标定方法 | |
CN114066953A (zh) | 一种针对刚性目标的三维多模态图像可变形配准方法 | |
CN109300148B (zh) | 基于方法协同的多源图像配准方法 | |
CN113706514B (zh) | 基于模板图像的病灶定位方法、装置、设备及存储介质 | |
Zhong et al. | Triple screening point cloud registration method based on image and geometric features | |
CN108062766B (zh) | 一种融合颜色矩信息的三维点云配准方法 | |
CN105844686A (zh) | 图像的三维效果显示方法及系统 | |
KR101673144B1 (ko) | 부분 선형화 기반의 3차원 영상 정합 방법 | |
Barros et al. | Real-time human pose estimation from body-scanned point clouds | |
CN110288696A (zh) | 一种完备一致生物体三维特征表征模型的建立方法 | |
Wuhrer et al. | Human shape correspondence with automatically predicted landmarks |
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 |