运动捕捉算法
‘壹’ 动作捕捉是什么
动作捕捉技术是一种记录并处理人或其他物体在三维空间中的动作的技术,它可以广泛应用于虚拟现实、游戏、医疗、娱乐等多个领域。动作捕捉技术可以利用不同的外部设备来对人体结构的位移进行数据记录和姿态还原。动作捕捉技术可以使数字模型的动作更加真实和流畅,也可以捕捉面部或手指的细微动作,这被称为表演捕捉。
动作捕捉技术的原理主要是利用外部设备来对人体结构或其他物体的位移进行数据记录和姿态还原,这些设备可以分为光学、惯性、机械等不同类型,它们各有优缺点和适用范围。
光学动作捕捉系统是利用摄像机或其他光学设备来记录被捕捉对象上附着的标记点或特征点的位置和运动,然数卖后通过计算机视觉算法来重建三维姿态。光学动作捕捉系统通常利用红外光和反光标识点,可以分为标定和非标定两种:标定的系统需要在被捕捉对象上贴上反光或发光的小球,非标定的系统则可以直接识别人体或物体的自然特征。光学动作捕捉系统的优点是精度高、延迟低、不受电磁干扰,缺点是成本高、设备复杂、空间受限、易受环境光影响。
惯性动作捕捉系统是利用惯性传感器(如加速度计、陀螺仪等)来测量被捕捉对象上各个部位的加速度和角速度,然后通过积分运算来计算出位置和姿态。惯性动作捕捉系统不需要外部设备或参考物,因此可以在任何环境下使用,且具有较高的灵活性和便携性。惯性动作捕捉系统的优点是成本低、设备简单、空间不受限,缺点是精度较低、延迟较高、册氏易受累积误差和温漂影响。
机械动作捕捉系统是利用机械装置(如关节臂或外骨骼等)来连接被捕捉对象的各个关节,然后通过测量装置上的角度或长度变化来计算州毕散出位置和姿态。机械动作捕捉系统不受环境光或电磁干扰的影响,且具有较高的精度和实时性。机械动作捕捉系统的优点是成本相对低、设备相对简单、精度较高、延迟较低,缺点是空间受限、灵活性差、易受机械摩擦和磨损影响 。
‘贰’ 动作捕捉技术的原理是什么
从技术的角度来说,运动捕捉的实质就是要测量、跟踪、记录物体在三维空间中的运动轨迹。像虚拟动点是利用红外光学运动捕捉技术,是国内动捕技术比较成熟的公司,他们的动捕技术可以捕捉的范围很大,精度也高。
‘叁’ 目标跟踪检测算法(一)——传统方法
姓名:刘帆;学号:20021210609;学院:电子工程学院
https://blog.csdn.net/qq_34919792/article/details/89893214
【嵌牛导读】目标跟踪算法研究难点与挑战在于实际复杂的应用环境 、背景相似干扰、光照条件的变化、遮挡等外界因素以及目标姿态变化,外观变形,尺度变化、平面外旋转、平面内旋转、出视野、快速运动和运动模糊等。而且当目标跟踪算法投入实际应用时,不可避免的一个问题——实时性问题也是非常的重要。正是有了这些问题,才使得算法研究充满着难点和挑战。
【嵌牛鼻子】目标跟踪算法,传统算法
【嵌牛提问】利用目标跟踪检测算法要达到何目的?第一阶段的单目标追踪算法包括什么?具体步骤有哪些?它们有何特点?
【嵌牛正文】
第一阶段
目标跟踪分为两个部分,一个是对指定目标寻找可以跟踪的特征,常用的有颜色,轮廓,特征点,轨迹等,另一个是对目标特征进行跟踪。
1、静态背景
1)背景差: 对背景的光照变化、噪声干扰以及周期性运动等进行建模。通过当前帧减去背景图来捕获运动物体的过程。
2)帧差: 由于场景中的目标在运动,目标的影像在不同图像帧中的位置不同。该类算法对时间上连续的两帧或三帧图像进行差分运算,不同帧对应的像素点相减,判断灰度差的绝对值,当绝对值超过一定阈值时,即可判断为运动目标,从而实现目标的检测功能。
与二帧差分法不同的是,三帧差分法(交并运算)去除了重影现象,可以检测出较为完整的物体。帧间差分法的原理简单,计算量小,能够快速检测出场景中的运动目标。但帧间差分法检测的目标不完整,内部含有“空洞”,这是因为运动目标在相邻帧之间的位置变化缓慢,目标内部在不同帧图像中相重叠的部分很难检测出来。帧间差分法通常不单独用在目标检测中,往往与其它的检测算法结合使用。
3)Codebook
算法为图像中每一个像素点建立一个码本,每个码本可以包括多个码元(对应阈值范围),在学习阶段,对当前像素点进行匹配,如果该像素值在某个码元的学习阈值内,也就是说与之前出现过的某种历史情况偏离不大,则认为该像素点符合背景特征,需要更新对应点的学习阈值和检测阈值。
如果新来的像素值与每个码元都不匹配,则可能是由于动态背景导致,这种情况下,我们需要为其建立一个新的码元。每个像素点通过对应多个码元,来适应复杂的动态背景。
在应用时,每隔一段时间选择K帧通过更新算法建立CodeBook背景模型,并且删除超过一段时间未使用的码元。
4)GMM
混合高斯模型(Gaussian of Micture Models,GMM)是较常用的背景去除方法之一(其他的还有均值法、中值法、滑动平均滤波等)。
首先我们需要了解单核高斯滤波的算法步骤:
混合高斯建模GMM(Gaussian Mixture Model)作为单核高斯背景建模的扩展,是目前使用最广泛的一种方法,GMM将背景模型描述为多个分布,每个像素的R、G、B三个通道像素值的变化分别由一个混合高斯模型分布来刻画,符合其中一个分布模型的像素即为背景像素。作为最常用的一种背景建模方法,GMM有很多改进版本,比如利用纹理复杂度来更新差分阈值,通过像素变化的剧烈程度来动态调整学习率等。
5)ViBe(2011)
ViBe算法主要特点是随机背景更新策略,这和GMM有很大不同。其步骤和GMM类似。具体的思想就是为每个像素点存储了一个样本集,样本集中采样值就是该像素点过去的像素值和其邻居点的像素值,然后将每一个新的像素值和样本集进行比较来判断是否属于背景点。
其中pt(x)为新帧的像素值,R为设定值,p1、p2、p3….为样本集中的像素值,以pt(x)为圆心R为半径的圆被认为成一个集,当样本集与此集的交集大于设定的阈值#min时,可认为此为背景像素点(交集越大,表示新像素点与样本集越相关)。我们可以通过改变#min的值与R的值来改变模型的灵敏度。
Step1:初始化单帧图像中每个像素点的背景模型。假设每一个像素和其邻域像素的像素值在空域上有相似的分布。基于这种假设,每一个像素模型都可以用其邻域中的像素来表示。为了保证背景模型符合统计学规律,邻域的范围要足够大。当输入第一帧图像时,即t=0时,像素的背景模型。其中,NG(x,y)表示空域上相邻的像素值,f(xi,yi)表示当前点的像素值。在N次的初始化的过程中,NG(x,y)中的像素点(xi,yi)被选中的可能次数为L=1,2,3,…,N。
Step2:对后续的图像序列进行前景目标分割操作。当t=k时,像素点(x,y)的背景模型为BKm(x,y),像素值为fk(x,y)。按照下面判断该像素值是否为前景。这里上标r是随机选的;T是预先设置好的阈值。当fk(x,y)满足符合背景#N次时,我们认为像素点fk(x,y)为背景,否则为前景。
Step3:ViBe算法的更新在时间和空间上都具有随机性。每一个背景点有1/ φ的概率去更新自己的模型样本值,同时也有1/ φ的概率去更新它的邻居点的模型样本值。更新邻居的样本值利用了像素值的空间传播特性,背景模型逐渐向外扩散,这也有利于Ghost区域的更快的识别。同时当前景点计数达到临界值时将其变为背景,并有1/ φ的概率去更新自己的模型样本值(为了减少缓慢移动物体的影响和摄像机的抖动)。
可以有如下总结,ViBe中的每一个像素点在更新的时候都有一个时间和空间上随机影响的范围,这个范围很小,大概3x3的样子,这个是考虑到摄像头抖动时会有坐标的轻微来回变化,这样虽然由于ViBe的判别方式仍认为是背景点,但是也会对后面的判别产生影响,为了保证空间的连续性,随机更新减少了这个影响。而在样本值保留在样本集中的概率随着时间的增大而变小,这就保证了像素模型在时间上面的延续特性。
6)光流
光流是由物体或相机的运动引起的图像对象在两个连续帧之间的视在运动模式。它是2D矢量场,其中每个矢量是一个位移矢量,显示点从第一帧到第二帧的移动。
光流实际上是一种特征点跟踪方法,其计算的为向量,基于三点假设:
1、场景中目标的像素在帧间运动时亮度(像素值或其衍生值)不发生变化;2、帧间位移不能太大;3、同一表面上的邻近点都在做相同的运动;
光流跟踪过程:1)对一个连续视频帧序列进行处理;2)对每一帧进行前景目标检测;3)对某一帧出现的前景目标,找出具有代表性的特征点(Harris角点);4)对于前后帧做像素值比较,寻找上一帧在当前帧中的最佳位置,从而得到前景目标在当前帧中的位置信息;5)重复上述步骤,即可实现目标跟踪
2、运动场(分为相机固定,但是视角变化和相机是运动的)
1)运动建模(如视觉里程计运动模型、速度运动模型等)
运动学是对进行刚性位移的相机进行构型,一般通过6个变量来描述,3个直角坐标,3个欧拉角(横滚、俯仰、偏航)。
Ⅰ、对相机的运动建模
由于这个不是我们本次所要讨论的重点,但是在《概率机器人》一书中提出了很多很好的方法,相机的运动需要对图像内的像素做位移矩阵和旋转矩阵的坐标换算。除了对相机建立传统的速度运动模型外,也可以用视觉里程计等通关过置信度的更新来得到概率最大位置。
Ⅱ、对于跟踪目标的运动建模
该方法需要提前通过先验知识知道所跟踪的目标对象是什么,比如车辆、行人、人脸等。通过对要跟踪的目标进行建模,然后再利用该模型来进行实际的跟踪。该方法必须提前知道要跟踪的目标对象是什么,然后再去跟踪指定的目标,这是它的局限性,因而其推广性相对比较差。(比如已知跟踪的物体是羽毛球,那很容易通过前几帧的取点,来建立整个羽毛球运动的抛物线模型)
2)核心搜索算法(常见的预测算法有Kalman(卡尔曼)滤波、扩展卡尔曼滤波、粒子滤波)
Ⅰ、Kalman 滤波
Kalman滤波器是通过前一状态预测当前状态,并使用当前观测状态进行校正,从而保证输出状态平稳变化,可有效抵抗观测误差。因此在运动目标跟踪中也被广泛使用。
在视频处理的运动目标跟踪里,每个目标的状态可表示为(x,y,w,h),x和y表示目标位置,w和h表示目标宽高。一般地认为目标的宽高是不变的,而其运动速度是匀速,那么目标的状态向量就应该扩展为(x,y,w,h,dx,dy),其中dx和dy是目标当前时刻的速度。通过kalman滤波器来估计每个时刻目标状态的大致过程为:
对视频进行运动目标检测,通过简单匹配方法来给出目标的第一个和第二个状态,从第三个状态开始,就先使用kalman滤波器预测出当前状态,再用当前帧图像的检测结果作为观测值输入给kalman滤波器,得到的校正结果就被认为是目标在当前帧的真实状态。(其中,Zt为测量值,为预测值,ut为控制量,Kt为增益。)
Ⅱ、扩展卡尔曼滤波(EKF)和无迹卡尔曼滤波(UKF)
由于卡尔曼滤波的假设为线性问题,无法直接用在非线性问题上,EKF和UKF解决了这个问题(这个线性问题体现在用测量量来计算预测量的过程中)。EKF是通过构建线性函数g(x),与非线性函数相切,并对每一时刻所求得的g(x)做KF,如下图所示。
UKF与EKF去求解雅可比矩阵拟合线性方程的方法不同,通过对那个先验分布中的采集点,来线性化随机变量的非线性函数。与EKF所用的方法不同,UKF产生的高斯分布和实际高斯分布更加接近,其引起的近似误差也更小。
Ⅲ、粒子滤波
1、初始状态:基于粒子滤波的目标追踪方法是一种生成式跟踪方法,所以要有一个初始化的阶段。对于第一帧图像,人工标定出待检测的目标,对该目标区域提出特征;
2、搜索阶段:现在已经知道了目标的特征,然后就在目标的周围撒点(particle), 如:a)均匀的撒点;b)按高斯分布撒点,就是近的地方撒得多,远的地方撒的少。论文里使用的是后一种方法。每一个粒子都计算所在区域内的颜色直方图,如初始化提取特征一样,然后对所有的相似度进行归一化。文中相似性使用的是巴氏距离;
3、重采样:根据粒子权重对粒子进行筛选,筛选过程中,既要大量保留权重大的粒子,又要有一小部分权重小的粒子;
4、状态转移:将重采样后的粒子带入状态转移方程得到新的预测粒子;
5、测量及更新:对目标点特征化,并计算各个粒子和目标间的巴氏距离,更新粒子的权重;
6、决策阶段:每个粒子都获得一个和目标的相似度,相似度越高,目标在该范围出现的可能性越高,将保留的所有粒子通过相似度加权后的结果作为目标可能的位置。
3)Meanshift算法
MeanShift算法属于核密度估计法,它不需要任何先验知识而完全依靠特征空间中样本点的计算其密度函数值。对于一组采样数据,直方图法通常把数据的值域分成若干相等的区间,数据按区间分成若干组,每组数据的个数与总参数个数的比率就是每个单元的概率值;核密度估计法的原理相似于直方图法,只是多了一个用于平滑数据的核函数。采用核函数估计法,在采样充分的情况下,能够渐进地收敛于任意的密度函数,即可以对服从任何分布的数据进行密度估计。
Meanshift算法步骤
1、通过对初始点(或者上一帧的目标点)为圆心,绘制一个半径为R的圆心,寻找特征和该点相似的点所构成的向量;
2、所有向量相加,可以获得一个向量叠加,这个向量指向特征点多的方向;
3、取步骤二的向量终点为初始点重复步骤一、二,直到得到的向量小于一定的阈值,也就是说明当前位置是特征点密度最密集的地方,停止迭代,认为该点为当前帧的目标点;
4)Camshift算法
Camshift算法是MeanShift算法的改进,称为连续自适应的MeanShift算法。Camshift 是由Meanshift 推导而来 Meanshift主要是用在单张影像上,但是独立一张影像分析对追踪而言并无意义,Camshift 就是利用MeanShift的方法,对影像串行进行分析。
1、首先在影像串行中选择目标区域。
2、计算此区域的颜色直方图(特征提取)。
3、用MeanShift算法来收敛欲追踪的区域。
4、通过目标点的位置和向量信息计算新的窗口大小,并标示之。
5、以此为参数重复步骤三、四。
Camshift 关键就在于当目标的大小发生改变的时候,此算法可以自适应调整目标区域继续跟踪。
3、小结
第一阶段的单目标追踪算法基本上都是传统方法,计算量小,在嵌入式等设备中落地较多,opencv中也预留了大量的接口。通过上面的两节的介绍,我们不难发现,目标检测算法的步骤分为两部分,一部分是对指定目标寻找可以跟踪的特征,常用的有颜色,轮廓,特征点,轨迹等,另一部分是对目标特征进行跟踪,如上文所提及的方法。所以目标检测方法的发展,也可总结为两个方面,一个是如何去获得更加具有区分性的可跟踪的稳定特征,另一个是如何建立帧与帧之间的数据关联,保证跟踪目标是正确的。
随着以概率为基础的卡尔曼滤波、粒子滤波或是以Meanshift为代表向量叠加方法在目标检测的运用,使得目标检测不再需要假设自身的一个状态为静止的,而是可以是运动的,更加符合复杂场景中的目标跟踪。
‘肆’ 运动捕捉的声学式
常用的声学式运动捕捉装置由发送器、接收器和处理单元组成。发送器是固定的超声波发生器;接收器一般由呈三角形排列的3个超声探头组成。将多个发送器固定在人身侍举体的各个部位,发送器持续发出超声波,每个接收器通过测量、计算声波从发送器到接收器的时间,3个构成三角形的接收器就可以确定发送器的位置和方向。由于声波的速度与温度有散大关,还必须有测温装置,并在算冲谈竖法中作出相应的补偿。
这类装置成本较低,但对运动的捕捉有较大的延时和滞后,精度差,还要求声源和接收器之间不能有遮挡,且受噪声等干扰较大,系统扩展困难。
全自由式运动捕捉系统Stage 精度相对较低
系统价格昂贵
‘伍’ 模式识别中有什么方法可以快速捕捉到物体的运动
这个应该是计算机视觉而不是模式识别。这个问题可以分为两个层次,第一是静态背景还是动态背景,第二是定性的运动目标检测,即只要运动就检测,还是定量的运动检测,即只有具有某种特殊运动模式的运动目标才会被检测出来。
常规的计算机视觉运动检测方法有背景差,帧间差和光流法三种。如果背景是动态的话,这三种都不好用,需要对背景运动进行分析,如果是摄像机运动引起的背景相对运动,可以用块匹配或摄像机运动估计的方法加以去除,如果是背景本身的运动,比如浮动的云,被风吹过的草地等等,则需要对背景运动的模式进行识别,这就要引入模式识别的概念了,就是把不同的运动状态看作模式的体现,进行分类与识别。当然还有一种比较简单的去除背景自身运动的方法,就是在普通的背景差或帧间差的基础上,进行图像形态学处理,根据运动区域的大小和形状,去除面积过小,形状或位置特殊的区域。饥核不过这种方法不是自适应的,庆肢毁也不是学习誉备的,是要算法设计者通过人际交互的方式定制参数或选择。
作者:耳东陈
链接:https://www.hu.com/question/19815310/answer/13422305
来源:知乎
着作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
‘陆’ 动作捕捉技术是什么原理
从技术的角度来说,运动捕捉的实质就是要测量、跟踪、记录物体在三维空间中的运动轨迹。典型的运动捕捉设备一般由以下几个部分组成:
· 传感器。所谓传感器是固定在运动物体特定部位的跟踪装置,它将向 Motion capture 系统提供运动物体运动的位置信息,一般会随着捕捉的细致程度确定跟踪器的数目。
· 信号捕捉设备。这种设备会因 Motion capture 系统的类型不同而有所区别,它们负责位置信号的捕捉。对于机械系统来说是一块捕捉电信号的线路板,对于光学 Motion capture 系统则是高分辨率红外摄像机。
· 数据传输设备。 Motion capture 系统,特别是需要实时效果的 Motion capture 系统需要将大量的运动数据从信号捕捉设备快速准确地传输到计算机系统进行处理,而数据传输设备就是用来完成此项工作的。
· 数据处理设备。经过 Motion capture 系统捕捉到的数据需要修正、处理后还要有三维模型向结合才能完成计算机动画制作的工作,这就需要我们应用数据处理软件或硬件来完成此项工作。软件也好硬件也罢它们都是借助计算机对数据高速的运算能力来完成数据的处理,使三维模型真正、自然地运动起来。
‘柒’ 想知道动作捕捉设备是怎么获取运动轨迹数据实现运动控制的求讲解!
实时三维空间数据的采集测量分析,在光学动捕系统设备中,采用得比较多的是Nokov的动作捕捉系统,通过光学镜头捕捉待测物体表面的反光标记点,实时获取物体运动数据,并进行进一步运动控制,Nokov光学动作捕捉系统广泛运用于虚拟仿真、运动分析、步态康复、模拟训练、机械仿生、机器人、无人机、人机交互、军事军工、外科整形、虚拟现实、电影动画、游戏制作等领域,对目标实行精度高的三维定位,而且生动流畅,所以在三维动作捕捉上精准度高,稳定性强。我们公司使用比较后感觉其技枝让李术水平已经达到国际水平,性价比相当的好。
我们公司一直猛迟在做这方面的开发,运动捕捉设备实现仿人机器人的运动控制主要是获取人体动作数据,采集目标人体的运动信息,光学的动作捕滑差捉系统是目前精度最高的设备了。在这个领域技术上,国内比较先进的就是Nokov,这款产品可以采集6DoF(采集六自由度)、关节角度等运动学数据,为机器人的位姿控制、运动规划提供连贯、流畅的动作数据基础。
‘捌’ 运动跟踪的运动捕捉的原理
从技术的角度来说,运动捕捉的实质就是要测量,跟踪,记录物体在三维空间中的运动轨迹.典型的运动捕捉设备一般由以下几个部分组成(见图1):
2.2.1传感器.所谓传感器是固定在运动物体特定部位的跟踪装置,它将向系统提供运动物体运动的位置信息,一般会随着捕脊手丛捉的细致程度确定跟踪器的数目.
2.2.2信号捕捉设备.负责捕捉,识别传感器的信号.负责将运动数据从信号捕捉设备快速准确地传送到计算樱樱机系统.这种设备会因系统的类型不同而有所区别,它们负责位置信号的捕捉.对于机械系统来说是一块捕捉电信号的线路板,对于光学系统则是高分辨率红外摄像机.
2.2.3数据传输设备.特别是需要实时效果的系统需要将大量的运动数据从信号捕捉设备快速准确地传输到计薯卜算机系统进行处理,而数据传输设备就是用来完成此项工作的.
2.2.4数据处理设备.经过系统捕捉到的数据需要修正,处理后还要有三维模型向结合才能完成计算机动画制作的工作,这就需要我们应用数据处理软件或硬件来完成此项工作.软件也好硬件也罢它们都是借助计算机对数据高速的运算能力来完成数据的处理,使三维模型真正,自然地运动起来.所以它是负责处理系统捕捉到的原始信号,计算传感器的运动轨迹,对数据进行修正,处理,并与三维角色模型相结合.
‘玖’ 动作捕捉 Motion Capture (Mocap)
动银棚作捕捉技术是一种记录并处理人或其他物体在三维空间中的动作的技术。动作捕捉技术的历史可以追溯到20世纪初,当时一些科学家和艺术家开始使用摄影机来记录人或动物的运动。随着计算机图形学和传感器技术的发展,动作捕捉技术逐渐成为电影、游戏、虚拟现实等领域中创造逼真角色和场景的重要手段。动作捕捉技术的原理主要是利槐唤用外部设备来对人体结构或其他物体的位移进行数据记录和姿态还原,这些设备可以分为光学、惯性、机械等不同类型,它们各有优缺点和适用范围。动作捕捉技术的应用非常广泛,除了娱乐领域外,还可以用于医疗、教育、军事、运动等方面,例如分析人体姿势、诊断疾病、模拟训练、提高运动表现等。动作捕捉技术的发展趋势是向更高精度、更低成锋明则本、更易操作和更多样化方向发展,例如利用深度学习等人工智能方法来优化数据处理和生成效果,或者利用智能手机等移动设备来实现便携式和低成本的动作捕捉。
‘拾’ 计算机视觉中,目前有哪些经典的目标跟踪算法
第一章介绍运动的分类、计算机视觉领域中运动分析模型、计算机视觉领域运动检测和目标跟踪技术研究现状、计算机视觉领域中运动分析技术的难点等内容;
第二章介绍传统的运动检测和目标跟踪算法,包括背景差分法、帧间差分法、光流场评估算法等;
第三章介绍具有周期性运动特征的低速目标运动检测和跟踪算法,并以CCD测量系统为例介绍该算法的应用;
第四章介绍高速运动目标识别和跟踪算法,并以激光通信十信标光捕获和跟踪系统为例介绍该算法的应用;
第五章介绍具有复杂背景的目标运动检测过程中采用的光流场算法,包括正规化相关的特性及其改进光流场评估算法,并介绍改进光流场算法的具体应用;
第六章介绍互补投票法实现可信赖运动向量估计。