首页 / 技术领域 / 动作捕捉 / 基于多目相机的动作捕捉方法、装置和存储介质

基于多目相机的动作捕捉方法、装置和存储介质

热词 相机 关节点 捕捉 动作 坐标 照片 关节 成像 样本 猴子
专利类型 发明公开 法律事件 实质审查;
专利有效性 实质审查 当前状态 实质审查
申请号 CN202411535038.9 申请日 2024-10-30
公开(公告)号 CN119479068A 公开(公告)日 2025-02-18
申请人 临港国家实验室; 申请人类型 其他
发明人 黄逸凡; 何振亮; 杨晗; 郭西良; 尹家鹏; 李澄宇; 第一发明人 黄逸凡
权利人 临港国家实验室 权利人类型 其他
当前权利人 临港国家实验室 当前权利人类型 其他
省份 当前专利权人所在省份:上海市 城市 当前专利权人所在城市:上海市徐汇区
具体地址 当前专利权人所在详细地址:上海市徐汇区岳阳路319号8号楼 邮编 当前专利权人邮编:200031
主IPC国际分类 G06V40/20 所有IPC国际分类 G06V40/20G06T17/00G06V10/774G06V10/82G06T7/80
专利引用数量 0 专利被引用数量 0
专利权利要求数量 20 专利文献类型 A
专利代理机构 中国贸促会专利商标事务所有限公司 专利代理人 张婧宇;
摘要 本公开涉及一种本公开涉及基于多目相机的 动作捕捉 方法、装置和存储介质。包括:使用多目相机对观测对象同时成像以获得多个样本照片,其中对多目相机进行标定并且计算多目相机中的每个相机的单应矩阵;在多个样本照片中选择需要捕捉的关 节点 进行标注,并应用动作识别模型进行训练,生成该关节点在多个样本照片中的每个照片上的二维坐标及其相应的 置信度 ;根据置信度的预设 阈值 对所有二维坐标进行筛选,将筛选出的二维坐标两两组合得到多个二维坐标对;基于单应矩阵分别将多个二维坐标对进行 三维重建 ,并且将计算结果作为该关节点的三维坐标集;根据预设规则从三维坐标集中确定该关节点的最终坐标。
权利要求

1.一种基于多目相机的动作捕捉方法,包括:
使用多目相机对观测对象同时成像以获得多个样本照片,其中对所述多目相机进行标定并且计算所述多目相机中的每个相机的单应矩阵;
在所述多个样本照片中选择需要捕捉的关节点进行标注,并应用动作识别模型进行训练,生成所述关节点在所述多个样本照片中的每个照片上的二维坐标及其相应的置信度
根据置信度的预设阈值对所有二维坐标进行筛选,将筛选出的二维坐标两两组合得到多个二维坐标对;
基于所述单应矩阵分别将所述多个二维坐标对进行三维重建,并且将计算结果作为所述关节点的三维坐标集;
根据预设规则从所述三维坐标集中确定所述关节点的最终坐标。
2.根据权利要求1所述的动作捕捉方法,其中:
所述动作识别模型包括基于deepercut的深度学习模型。
3.根据权利要求2所述的动作捕捉方法,其中:
所述动作识别模型支持对所述多个样本照片的并行推理。
4.根据权利要求1所述的动作捕捉方法,其中:
对所述二维坐标进行筛选包括剔除置信度低于所述预设阈值的二维坐标。
5.根据权利要求1所述的动作捕捉方法,其中:
对所述二维坐标进行筛选包括对异常数值的排除。
6.根据权利要求1所述的动作捕捉方法,其中:
所述预设规则包括对所述三维坐标集取中位值或平均值。
7.根据权利要求1所述的动作捕捉方法,还包括:
对所述多个样本照片进行预处理,其中,将瑕疵照片进行排除。
8.根据权利要求1所述的动作捕捉方法,其中:
以第一频率向所述多目相机中的每个相机同时发送控制信号,每个相机在接收到所述控制信号中的一个信号时获取成像的一
9.根据权利要求8所述的动作捕捉方法,还包括:
采集所述观测对象的脑电信号并且将所述脑电信号处理为预设的代号的组合,以第二频率读取所述代号,分析所述代号与所述最终坐标的对应关系。
10.根据权利要求9所述的动作捕捉方法,其中:
所述第二频率为所述第一频率的整数N倍,其中N > 1。
11.根据权利要求9所述的动作捕捉方法,其中:
将控制信号中的第一个信号与所述多个样本照片的第一帧在时间轴上对齐。
12.根据权利要求9所述的动作捕捉方法,其中:
将读取到的所述代号与所述多个样本照片的帧计数逐字节地放入先进先出的队列中作为待处理的数据。
13.一种基于多目相机的动作捕捉装置,包括:
存储器,其上存储有指令;以及
处理器,被配置为执行存储在所述存储器上的指令,以执行以下处理:
使用多目相机对观测对象同时成像以获得多个样本照片,其中对所述多目相机进行标定并且计算所述多目相机中的每个相机的单应矩阵;
在所述多个样本照片中选择需要捕捉的关节点进行标注,并应用动作识别模型进行训练,生成所述关节点在所述多个样本照片中的每个照片上的二维坐标及其相应的置信度;
根据置信度的预设阈值对所有二维坐标进行筛选,将筛选出的二维坐标两两组合得到多个二维坐标对;
基于所述单应矩阵分别将所述多个二维坐标对进行三维重建,并且将计算结果作为所述关节点的三维坐标集;
根据预设规则从所述三维坐标集中确定所述关节点的最终坐标。
14.根据权利要求13所述的动作捕捉装置,其中
所述处理器还被配置为执行所述存储器上的指令,以执行以下处理:
对所述二维坐标进行筛选包括剔除置信度低于所述预设阈值的二维坐标或对异常数值的排除。
15.根据权利要求13所述的动作捕捉装置,其中
所述处理器还被配置为执行所述存储器上的指令,以执行以下处理:
所述预设规则包括对所述三维坐标集取中位值或平均值。
16.根据权利要求13所述的动作捕捉装置,其中
所述处理器还被配置为执行所述存储器上的指令,以执行以下处理:
以第一频率向所述多目相机中的每个相机同时发送控制信号,每个相机在接收到所述控制信号中的一个信号时获取成像的一帧。
17.根据权利要求16所述的动作捕捉装置,其中
所述处理器还被配置为执行所述存储器上的指令,以执行以下处理:
采集所述观测对象的脑电信号并且将所述脑电信号处理为预设的代号的组合,以第二频率读取所述代号,分析所述代号与所述最终坐标的对应关系。
18.根据权利要求17所述的动作捕捉装置,其中
所述处理器还被配置为执行所述存储器上的指令,以执行以下处理:
将读取到的所述代号与所述多个样本照片的帧计数逐字节地放入先进先出的队列中作为待处理的数据。
19.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器运行时使所述处理器执行如权利要求1至12中任一项所述的动作捕捉方法。
20.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器运行时使所述处理器执行如权利要求1至12中任一项所述的动作捕捉方法。

说明书全文

基于多目相机的动作捕捉方法、装置和存储介质

技术领域

[0001] 本公开涉及对观测对象的动作捕捉方法、装置和存储介质,并且具体地,涉及使用多目相机观测非人灵长类的动作捕捉方法、装置和存储介质。

背景技术

[0002] 一般而言,三维动作捕捉是一种记录并处理人或其它物体实时动作的技术。动作捕捉常被用于影视等行业,通过在演员身上安装传感器并记录位置信息,计算基于演员个体的动作骨架,再通过计算机技术生成虚拟的人物形象,得到演员身体动作或面部表情等变化趋势。这类动作捕捉技术的关键在于固定在肢体上的诸多传感器。随着技术的发展,当前也有了很多基于计算机视觉的三维动作捕捉技术,其中包括有标记(在肢体兴趣点表面覆盖明显的颜色标记)以及无标记(肢体表面无任何颜色标记)方法。
[0003] 在现有技术中,有通过双目摄像头及卷积神经网络来实现的无标记三维动作捕捉方法,但是其针对二维关节点捕捉的方案仅支持人体的18个关节点,无法应用于任意动物或任意关节点;同时,该方案中使用的双目摄像头对二维的卷积神经网络所捕捉的关节点精度、以及对相机标定的精度要求均很高,可能会影响最终的计算结果。
[0004] 特别地,对于脑科学研究领域,在以探索大脑秘密、攻克大脑疾病为导向的脑科学研究以及以建立和发展人工智能技术为导向的类脑研究中,其中包括研究脑部活动与肢体动作之间的关联性,将获取的与脑部活动相关联的信息与动作捕捉结果进行对齐,因此也需要特定于脑科学领域的动作捕捉方法及装置。发明内容
[0005] 本申请提出了一种基于多目相机的动作捕捉的方法、装置和存储介质。
[0006] 根据本公开的实施例的第一方面,提供了一种基于多目相机的动作捕捉方法,包括:使用多目相机对观测对象同时成像以获得多个样本照片,其中对多目相机进行标定并且计算多目相机中的每个相机的单应矩阵;在多个样本照片中选择需要捕捉的关节点进行标注,并应用动作识别模型进行训练,生成关节点在所述多个样本照片中的每个照片上的二维坐标及其相应的置信度;根据置信度的预设阈值对所有二维坐标进行筛选,将筛选出的二维坐标两两组合得到多个二维坐标对;基于单应矩阵分别将多个二维坐标对进行三维重建,并且将计算结果作为关节点的三维坐标集;根据预设规则从三维坐标集中确定关节点的最终坐标。
[0007] 根据本公开的实施例的第二方面,提供了一种基于多目相机的动作捕捉装置,包括:存储器,其上存储有指令;以及处理器,被配置为执行存储在存储器上的指令,以执行以下处理:使用多目相机对观测对象同时成像以获得多个样本照片,其中对多目相机进行标定并且计算多目相机中的每个相机的单应矩阵;在多个样本照片中选择需要捕捉的关节点进行标注,并应用动作识别模型进行训练,生成关节点在所述多个样本照片中的每个照片上的二维坐标及其相应的置信度;根据置信度的预设阈值对所有二维坐标进行筛选,将筛选出的二维坐标两两组合得到多个二维坐标对;基于单应矩阵分别将多个二维坐标对进行三维重建,并且将计算结果作为关节点的三维坐标集;根据预设规则从三维坐标集中确定关节点的最终坐标。
[0008] 根据本公开的实施例的第三方面,提供了一种其上存储有程序指令的计算机可读存储介质,该程序指令在执行时使计算机实现根据本公开的实施例的第一方面所述的动作捕捉方法。
[0009] 根据本公开的实施例的第四方面,提供了一种计算机程序产品,包括计算机程序指令,该计算机程序指令被处理器执行时实现根据本公开的实施例的第一方面所述的动作捕捉方法。
[0010] 根据本公开的实施例的优点在于,在不适合采用有标记三维动作捕捉方法(即对人或动物佩戴传感器或进行关节点颜色标记)的场景中,特别是在传感器或颜色标记都可能产生影响实验结果的脑科学研究领域,本公开的技术方案可以实现无标记的动作捕捉。
[0011] 根据本公开的实施例的另一优点在于解决动作捕捉场景中的遮挡问题,诸如来自目标物以外的其它物体的遮挡,或者目标物的自遮挡等。本公开的技术方案通过采用任意目数的相机对目标物进行环绕拍摄,有助于减少动作捕捉中因遮挡造成的影响。
[0012] 根据本公开的实施例的又一优点在于,针对人或动物的肢体运动通常速度较高的特点,在保持对运动捕捉的高率条件下将高帧率的行为数据与更高频率的脑电信号数据进行时间对齐,这对于脑科学研究领域的分析研究十分有利。
[0013] 应当认识到,上述优点不需全部集中在一个或一些特定实施例中实现,而是可以部分分散在根据本公开的不同实施例中。根据本公开的实施例可以具有上述优点中的一个或一些,也可以替代地或者附加地具有其它的优点。
[0014] 通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得更为清楚。

附图说明

[0015] 图1是示出了根据本公开的实施例的基于多目相机的动作捕捉装置及其处理方法的示意图。
[0016] 图2示出了根据本公开的实施例的基于多目相机的动作捕捉装置的示例性配置框图
[0017] 图3示出了根据本公开的实施例的基于多目相机的动作捕捉方法的示例性流程图
[0018] 图4示出了根据本公开的另一实施例的基于多目相机的动作捕捉系统的示例性配置图。
[0019] 图5A和图5B示出了用于根据本公开的实施例的动作捕捉装置的多目相机的示例性透视图。
[0020] 图6示出了可以实现根据本公开的实施例的计算设备的示例性配置。

具体实施方式

[0021] 下面将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
[0022] 以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。也就是说,本文中的结构及方法是以示例性的方式示出以说明本公开中的结构和方法的不同实施例。然而,本领域技术人员将会理解,它们仅仅说明可以用来实施的本公开的示例性方式,而不是穷尽的方式。此外,附图不必按比例绘制,一些特征可能被放大以示出具体组件的细节。
[0023] 对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
[0024] 三维动作捕捉技术经常被应用于影视制作、游戏、人机交互等领域,一般基于安装在人体上的传感器记录肢体(特别是关节点)的位置信息,并结合时间信息(诸如采样频率、成像帧数等)进行数据处理,从而建立人体的动作模型。进一步地,当前也有基于计算机视觉的动作捕捉方法,诸如在兴趣点表面覆盖明显的颜色标记,并利用计算机模型计算这些标记的运动轨迹等。但是,在一些应用场景中,并不适合对人或其它灵长类动物佩戴传感器或进行关节点颜色标记,例如对于脑科学领域,由于需要行为数据与脑电数据一起分析,传感器或颜色标记都会对原有的脑电信号产生影响,因此采用无标记的动作捕捉方法就变得很有必要,但在实际应用中难度更高。
[0025] 另一方面,在一些动作捕捉场景中,由于大体上不同方向/度的两个二维坐标即可完成对某个物体的三维坐标重建,往往会采用两个相机执行成像,这就会导致目标物遮挡的情况发生,比如目标物被不相干物遮挡,或者观测目标物的某个关节点时被目标物自遮挡等,进而影响到动作捕捉结果的准确度。尤其在脑科学领域,对非人灵长类动物的动作捕捉可能会将诸如猴子等的观测对象置于特定实验装置中,并且至少部分地限制猴子的四肢、身体和头部,这种情况下猴子待观测的身体部分可能会因为拍摄角度或者猴子自身的特殊动作等,产生待观测的关节点被遮挡以至于无法被分析处理等问题。
[0026] 此外,特别地,就脑科学领域而言,动作捕捉的后续目的是要为脑科学和类脑科学课题研究的方向提供支持,诸如辅助对脑神经信号控制的分析等,因此还需要将高帧率的行为数据与更高频率的脑电信号数据进行时间对齐,这也为动捕的方法和装置提出了更高的要求。
[0027] 概括而言,本公开的技术方案主要针对上述问题中的一个或多个提出了一种动作捕捉方法及装置,特别地用于对非人灵长类的观测,可以应用基于计算机视觉的无标记三维动捕技术,解决动作捕捉过程中目标物被遮挡等问题,并且可以实现与同时采集到的脑电信号的对齐等。应当理解,本公开中所涉及的动作捕捉方法可以应用于各种不同的领域,除了作为实施例描述的用于脑科学研究领域之外,在影视、动画、游戏、行为识别、人机交互等其它领域中,为了掌握人体或动物体运动规律、动作轨迹等目的均可以采用本公开的动作捕捉方法及装置。
[0028] 图1是示出了根据本公开的实施例的基于多目相机的动作捕捉装置及其处理方法的示意图。图中示出了多目相机100和观测对象200,在一个非限制性的实施例中,观测对象200是作为非人灵长类代表的猴子。多目相机100包括三个或更多个相机,诸如图1所示的实施例具有四个相机,其中每个相机一般地采用高速相机,以指定频率对观测对象200进行成像,获取观测对象200做出动作的样本照片1100。应当理解的是,图1的样本照片1100仅为随机选取的四个示例,并不用于表示多目相机100在某一时刻同时从四个相机上获取的照片,也不表示多目相机100中的同一相机在不同时刻获取的四个照片,样本照片1100的数量也可以为三个或更多个。
[0029] 应当理解的是,对于指定观测对象以及/或者观测对象的指定关节点,理论上仅需两个二维坐标即能重建出三维坐标,所以现有的三维动作捕捉方法中采用的成像装置为双目摄像头(双目相机),即从两个角度和方向对观测对象进行拍摄。然而,由于观测对象可能会发生肢体平移或转动等动态行为,成像中可能有画面被遮挡、成像不完整、成像不清晰等情况,即成像质量有高低之分。以脑科学研究领域为例,需要对包括非人灵长类的观测对象进行动作捕捉,诸如需要捕捉到猴手在特定时间段内的动作轨迹,则猴手部分完整无遮挡、清晰无重影的样本照片的成像质量被判定为高,并且越完整、越清晰的照片的成像质量越高;相反,如果猴手部分不完整、被遮挡或者不清晰,则该样本照片的成像质量低。对双目相机而言,同一时刻捕获的两张样本照片中一旦有一张照片存在上述影响成像质量的问题,就会降低所计算的二维坐标精确度,进而使重建出的三维坐标出现较大的偏差。相比之下,本公开采用的装置或系统中的多目相机100包括三个或更多个相机,同一时刻获取观测对象的三个或更多个样本照片,则可基于成像质量排除具有显著瑕疵的照片,或优选部分成像质量高的照片,从而提升进入后续处理的样本照片的可靠性。
[0030] 具体而言,首先在样本照片1100中根据动捕的预设需求进行关节点标注1102,如图1中第二张样本照片所示的白点。将已标注关节点的样本照片输入到动作识别模型中,计算出该关节点在各个样本照片中的二维坐标及置信度1200,包括二维坐标(xi, yi)和置信度αi(其中i为样本照片的序号,在本实施例中可以为1、2或3,在不同的实施例中也可以为其它数字)。由于观测对象200是随时会发生动作变化的动物体,样本照片1100不一定能始终获得成像质量高的样本照片,为解决该问题,在一些实施例中也会在动作识别模型之前执行预处理步骤,包括不限于对基于成像质量的瑕疵排除1104,以及根据动作识别模型计算的置信度αi选定置信度区间来执行的二维坐标筛选等。举例而言,可以采用置信度大于0.5作为阈值区间对样本照片1100进行筛选,得到待分析的有效二维坐标。将这些二维坐标两两组合为二维坐标对,并基于此进行三维重建,得到该关节点的三维坐标(Xj, Yj, Z)j 组成的集合1300,其中j为三维坐标的序号,由能够组合出的二维坐标对的数量决定。对同一个关节点而言,由于包括但不限于成像精度、误差积累等影响,前述计算得到的三维坐标之间不一定重合,需要最终三维坐标集1300中确定该关节点的最终坐标2000,表示为(Xf, Yf, Z)f 。
[0031] 图2示出了根据本公开的实施例的基于多目相机的动作捕捉装置2000的示例性配置框图。在一个非限制性实施例中,基于多目相机的动作捕捉装置2000可以包括处理器2100。动作捕捉装置2000的处理器2100提供实现本公开的动作捕捉方法的各种功能。
[0032] 处理器2100可以指在计算系统中执行功能的数字电路系统、模拟电路系统或混合信号(模拟和数字的组合)电路系统的各种实现。处理电路可以包括例如诸如集成电路(IC)、专用集成电路(ASIC)这样的电路、单独处理器核心的部分或电路、整个处理器核心、单独的处理器、诸如现场可编程阵列(FPGA)的可编程硬件设备、和/或包括多个处理器的系统。
[0033] 在一些实施例中,动作捕捉装置2000还可以包括存储器(未示出)。动作捕捉装置2000的存储器可以存储由处理器2100产生的信息以及用于处理器2100操作的程序和数据。
存储器可以是易失性存储器和/或非易失性存储器。例如,存储器可以包括但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、只读存储器(ROM)以及闪存存储器。
[0034] 另外,动作捕捉装置2000也可以以芯片级来实现,或者可以通过包括其它外部部件而以设备及来实现。
[0035] 本公开的动作捕捉装置2000被配置为基于架设在观测对象周围的多目相机对运动中的观测对象进行动作捕捉和分析。在一些实施例中,观测对象为诸如猴子的非人灵长类动物,其用于脑科学领域的研究时一般被置于猴椅等实验装置内,为保证能够实时跟随猴子的动作以及与猴子被固定的身体部分相对静止,多目相机通常被安装在猴椅上与之结合使用。动作捕捉装置2000接收由多目相机成像的样本照片,因此需要与多目相机实现通信,即动作捕捉装置2000应与多目相机物理连接或电气连接。在一些实施例中,动作捕捉装置2000可以同样地安装在猴椅上,或者与猴椅分离设置。
[0036] 如图2所示,在一些实施例中,基于多目相机的动作捕捉装置2000的处理器2100可以包括成像控制单元2010、相机标定单元2020、动作识别单元2030、二维坐标处理单元2040、三维重建单元2050以及结果生成单元2060。
[0037] 应当理解,图2所示的基于多目相机的动作捕捉装置2000的各个单元是根据其所实现的具体功能所划分的逻辑模,而不是用于限制具体的实现方式。在实际实现时,上述各个模块可被实现为独立的物理实体,或者也可由单个实体(例如,处理器(CPU或DSP等)、集成电路等)来实现。
[0038] 接下来,将参照图2详细描述动作捕捉装置2000的各单元的具体操作。
[0039] 成像控制单元2010可以被配置为控制设置在诸如猴子的观测对象周围的多目相机进行成像,以获得猴子在多个角度下的样本照片,其中多目相机包含三个或更多个成像设备。成像控制单元2010可以被配置为控制多目相机进行机械结构或硬件布置上的变化,也可以被配置为经由有线或无线通信等方式控制多目相机的内部参数。在一个非限制性实施例中,这些成像设备被安装在用于限制猴子部分肢体的猴椅上,一般地高于猴子所固定的位置,进一步地高于猴子头部的高度,使得多目相机能够以俯视的视角对猴子进行拍摄。成像控制单元2010对多目相机的控制包括但不限于改变多目相机中每个相机的拍摄角度,开启或关闭部分相机,设置成像频率和其它相机参数等。附加地,成像控制单元2010还可以被配置为根据预设的成像需求执行对多目相机的控制,诸如在脑科学研究领域,使用猴椅的实验人员可以基于观测对象的特征或实验目标等对多目相机进行个性化设置。
[0040] 相机标定单元2020可以被配置为对多目相机进行标定,以及计算多目相机中每个相机的单应矩阵。由于使用多个相机对猴子进行成像,需要将同一时刻拍摄的不同角度的样本照片进行时间上的对齐,利用每个相机的姿态估计来进行多目相机的标定。在一个非限制性实施例中,使用张正友标定法求解多目相机中每个相机的内参,并且计算处每个相机基于世界坐标系的旋转向量及平移向量;使用罗德里格斯方程计算旋转矩阵,随后,使用前述变量计算每个相机的单应矩阵。一般地,单应矩阵描述的是共面的点从一个视角的拍摄图像转化为另一个视角所拍摄图像的变换关系,其中包含了每个相机的内参和外参。在使用张正友标定法的时候,单应矩阵被用于计算用于成像的标定板平面和像素平面的变换关系。
[0041] 动作识别单元2030可以被配置为基于成像控制单元2010获得的多个样本照片进行观测对象的动作识别。一般地,需要对观测对象拍摄足量的样本照片,并应用预设的动作识别模型对这些样本照片进行训练。在一个非限制性实施例中,动作识别模型包括基于deepercut的深度学习模型,主要来自deeplabcut开源库。具体思路为:在样本照片中提出观测对象的候选区域,将每个候选区域作为一个关节点;所有关节点组成一个密集连接图,关节点之间的关联性作为样本照片中关节点之间的权重,将其作为优化问题进行求解。常规的deepercut的模型可以用于识别未知对象数量的样本照片,其中将属于同一个观测对象的关节点归为一类,则每个对象是一个单独类。
[0042] 对于脑科学领域而言,在对诸如猴子等非人灵长类进行观测时,样本照片中通常只有一个对象,因此deepercut模型主要基于标记的关节点来对观测对象的特定肢体部分进行识别。在一个非限制性实施例中,在脑科学领域的动作捕捉研究中,参照图1中所示的关节点标注(操作1102),可以将猴子的手部、尾部或头部的特定位置设定为需要识别或追踪的关节点,并将标注了动作捕捉的关节点的样本照片输入到deepercut模型中进行训练。诸如,基于采集的大量猴手样本,利用deeplabcut训练出二维猴手识别模型。接下来,应用数据训练所获得的数据生成这些关节点在每个样本照片上的二维坐标及其相应的置信度。
置信度被用于描述其对应的二维坐标的可信程度范围,诸如可以被设定在区间[0, 1]中。
[0043] 附加地,本申请对开源的deepercut模型进行了改进。传统的deepercut模型为基于tensorflow编写的人体姿态估计,但开源库中的原始模型去除了tensorflow所支持的并行推理,仅支持输入一张图片、并返回该一张图片的关节点坐标信息。本申请为提高模型运行速度,修改底层逻辑以将并行推理重新添加回deepercut模型中,使得修改后的模型支持输入多张图片,并同时返回该多张图片的关节点坐标信息。修改后的模型能够实现对多个样本照片的实时运算,即采集原始画面的同时输出识别结果。
[0044] 附加地或可替代地,在将样本照片输入到deepercut模型进行计算之前,对样本照片进行预处理,其中包括对瑕疵照片进行排除,如前所述,即选取成像质量高的样本照片进入动作识别模型。同样参照图1,样本照片1100示意性地示出为四张照片,并且在执行关节点标注(操作1102)时在猴手上标注了动作捕捉的关节点。样本照片1100中所示出的四张照片中,后三者均捕捉到完整、清晰的猴手,而第一张照片由于猴子肢体的随机运动,在相机的成像范围内没有捕捉到猴手的影像,因此该照片在瑕疵排除(操作1104)中被排除,不会进入后续的处理步骤。此外,瑕疵排除1104还可以包括由于猴子运动速度过快而导致的画面模糊重影、由于成像角度导致画面中出现遮挡物等情形。
[0045] 二维坐标处理单元2040可以被配置为基于动作识别单元2030中生成的关节点二维坐标及其置信度执行进一步的数据处理。一般而言,置信度反映了样本的某个参数的可信程度,在本公开的实施例中即为关节点在样本照片中被识别到的可信度,其在一定程度上体现出该样本照片所能提供的二维坐标位置的准确性。因此,可以通过设定置信度的阈值来筛选所需的二维坐标,并且通过仅将可信度更高的二维坐标输入到后续处理中以获得更为准确的动作捕捉结果。其中,被选取的置信度范围可以是一个(或多个)区间,也可以是一个(或多个)数值,这些均可以由使用者基于特定的使用目的来预先设置。相应地,对二维坐标的筛选可以将置信度低于预设阈值的二维坐标直接剔除,也可以仅保留置信度落在预设区间或数值集合内的二维坐标。在一个非限制性实施例中,将置信度的预设阈值设定为0.5,通过剔除置信度低于0.5的二维坐标,得到进入后续分析处理(即参与该关节点三维重建)的二维坐标。进一步地,由于两个二维坐标即可以进行三维坐标的重建,二维坐标处理单元2040还被配置为将前述步骤中筛选出的二维坐标两两组合,得到多个二维坐标对。
[0046] 接下来由三维重建单元2050基于接收到的多个二维坐标对进行三维重建。二维坐标处理单元2040中筛选出置信度符合要求的坐标值有利于提高三维重建的准确度,基于这些二维坐标对和相机标定单元2020计算出的单应矩阵,求出所标记的关节点在世界坐标系中的三维坐标。多目相机中包含三个或更多个相机,例如参照图1中多目相机100中包括四个相机,在所有样本照片的成像质量都符合条件、并且每张样本照片中所标记关节点的二维坐标都具有满足预设阈值的置信度的情况下,至多能够得到4个有效二维坐标,基于两两组合得到的全部6个二维坐标对进行三维重建,从而形成关于该关节点的三维坐标集。
[0047] 进一步地,结果生成单元2060可以被配置为根据预设规则,从前述的三维坐标集中确定关节点的最终坐标。在一个非限制性实施例中,多目相机被配置为以一定频率获取样本照片的高速相机,则可以在三维重建单元2050中获得以成像时间排列的关节点三维坐标,在结果生成单元2060中确定计算结果。就每个关节点而言,预设规则一般地包括对其三维坐标集取中位值或平均值。优选地,在所有计算出的三维坐标中,取中位值能够很好地排除置信度满足预设阈值但依然识别错误的坐标点,避免对最终结果的负面影响。可替代地,对于每个关节点的三维坐标集在世界坐标系中构成的多边形或多面体,预设规则也可以包括取该多边形的重心或该多面体的质心。据此可以建立每个关节点在世界坐标系中随时间变化的运动轨迹,从而实现对观测对象的动作捕捉。
[0048] 附加地或可替代地,成像控制单元2010还被配置为接收来自相机标定单元2020或结果生成单元2060的信息,并基于所接收的信息对多目相机进行控制。在一个非限制性实施例中,多目相机可以根据预设的成像需求(诸如基于实验目的的设计安排)进行个性化设置,相机标定单元2020进一步被配置为在执行标定时检验多目相机中每个相机的姿态,以确定相机的姿态符合预设需求。其中,当相机标定单元2020对相机姿态的检验结果不符合预设需求时,相机标定单元2020将与检验结果相关联的信息发送到成像控制单元2010,成像控制单元2010基于该信息对多目相机进行必要的调整。类似地,基于结果生成单元2060所确定的最终坐标,可以建立关节点在世界坐标系中的运动轨迹,在诸如脑科学研究领域对猴子肢体进行动捕时,希望关节点的运动轨迹能够位于利于观察的最佳位置(一般地,位于画面的中心位置)而对成像角度等进行调整,或者希望可以对画面中捕捉到轨迹的部分进行尺寸缩放等调整,则结果生成单元2060将与所希望的调整相关联的信息发送到成像控制单元2010,成像控制单元2010基于该信息对多目相机执行这些所希望的调整。
[0049] 下面参照图3来描述根据本公开的实施例的基于多目相机的动作捕捉方法3000的示例性流程图。该方法3000例如可以用于图2所示的基于多目相机的动作捕捉装置2000。
[0050] 如图3所示,在步骤S301中,使用多目相机对观测对象同时成像以获得多个样本照片,其中对多目相机进行标定并且计算多目相机中的每个相机的单应矩阵。在步骤S302中,在多个样本照片中选择需要捕捉的关节点进行标注,并应用动作识别模型进行训练,生成关节点在多个样本照片中的每个照片上的二维坐标及其相应的置信度。在步骤S303中,根据置信度的预设阈值对所有二维坐标进行筛选,将筛选出的二维坐标两两组合得到多个二维坐标对。在步骤S304中,基于单应矩阵分别将多个二维坐标对进行三维重建,并且将计算结果作为关节点的三维坐标集。在步骤S305中,根据预设规则从三维坐标集中确定关节点的最终坐标。
[0051] 上述步骤S301至S305例如可以分别由前述成像控制单元2010、相机标定单元2020、动作识别单元2030、二维坐标处理单元2040、三维重建单元2050以及结果生成单元
2060来分别地或共同实现。关于步骤S301至S305的详细情形,与参照图2的描述类似,在此不作赘述。
[0052] 接下来,将参照图4描述根据本公开的另一实施例的基于多目相机的动作捕捉系统的示例性配置图。如图所示,在一个非限制性实施例中,使用单片机410实现对多目相机420的控制,并且多目相机420将成像所得的样本照片发送到计算机430以进行后续处理。其中多目相机420包括三个或更多个单独的高速相机,以特定的成像频率对观测对象进行拍摄,在图4中示出为相机421、422、423、424。在一个实施例中,单片机410的类型可以包括Arduino开源电子平台。一般地,在Arduino板的某一个引脚上以特定的第一频率发送控制信号,将控制信号通过信号线以并联的方式同时接到相机421、422、423、424上,每个相机接收到控制信号中的一个信号就执行一次成像,从而获取成像的一帧。其中,控制信号可以为TTL信号。此时由于控制信号的源是板上的同一个引脚,执行一次成像获取的所有画面都来自于同一时刻,因此实现多相机的同步触发。
[0053] 特别地,对于脑科学研究领域,对观测对象的动作捕捉可以为探索脑部活动和肢体动作之间的关联性提供研究基础。因此,本公开的实施例中的动作捕捉系统还可以用于将捕捉到的画面与同一时刻发生的脑部活动相对应。一般地,脑部活动可以由适用于脑部生物组织的柔性电极采集的脑电信号来表示。在图4中,将经过处理的脑电信号40同样地接到单片机410的引脚上。举例而言,以诸如20kHz的特定频率对观测对象的脑电信号进行采集,该脑电信号一般地为不规律的模拟信号,为便于分析,将其处理为6位的代号形式,作为脑电信号40传输到单片机410(诸如Arduino板)。脑电信号40经由6个信号线传输并由单片6
机410上的6个引脚读取,其代号范围为0至2(即0至64)。这些代号所指代的内容可以根据使用者的实验目的进行不同定义,诸如1代表任务开始,8代表成功抓取,23代表目标出现等。
[0054] 在一个非限制性实施例中,在单片机410中以第二频率读取代号形式的脑电信号40。由于前述脑信号的采集频率高达20kHz,因此要求代号的监听频率越高越好,诸如第二频率可以为10kHz。并且特别地,触发成像的第一频率(即相机的fps)是高于读取脑电信号
40的第二频率之间的倍数N,即N > 1。每读取N次脑电信号40则触发多目相机420的一次成像,同时在该循环中进行控制信号的计数。进一步地,将单片机410上的控制信号中的第一个信号与多目相机420成像所得的样本照片的第一帧在时间轴上对齐。由此,可获得每次读到的脑电信号40中的代号及所属的触发计数,即样本照片中的第几帧画面。通过如前所述地分析同一时刻的多个样本照片以得到关节点的三维坐标后,即可将脑电信号40中的代号对齐到该三维坐标。换言之,可以据此获取表示脑部活动的脑电信号40与捕捉到的动作轨迹之间的对应关系,为研究脑部活动对动物肢体的触发或控制提供有益的参考。
[0055] 附加地,需要实时地将脑电信号40中的代号及帧计数值通过串口传输到计算机端,由于诸如Arduino类型的单片机410无法并行计算,而串口数据的传输会耗费时间进而8
影响用于读取的第二频率,因此在Arduino板中,将所有读取到的代号(字符:单字节0至2)
32
和帧计数(整型:四字节0至2 )逐字节地放入一个先进先出的队列中,作为待处理的数据。
在频率为10kHz的主循环中,每循环一次从队列中取出一个字节发送至电脑,在波特率设为
115200的情况下,发送一个字节耗时约80μs,而循环一次的耗时需要固定为100μs(对应
10kHz的第二频率),通过Arduino内的时钟实现。这是因为如果一次循环发送两个或以上的字节,则会因为发送时长超过100μs而无法实现,因此需要把数据逐字节拆分入队列再逐字节发送。
[0056] 进一步地,在计算机端接收前述串口数据流,同时需要解码。接收到的数据有的是由四个字节组成的帧计数,有的是单字节的代号,它们之间无规律,因此需要在单片机410处对要传输的数据进行编码。由于单字节的代号(8位)只用到0至64即后6位,因此第一位始终为0;相比之下,四字节整型的帧计数值(32位),其能表示的最大整数为4294967296(帧),而相机的采集帧率为200fps,折算下来可记录5965小时(溢出前),远超过实际一次试验的时间,如果将其第一位设为相对于与单字节的代号第一位的标记位(“1”),剩余31位仍可表示2982小时的记录时间,满足一次试验所需的时长。基于此,数据第一位的标记位若为1,则后续包括该字节本身的四个字节表示的数据为帧计数值,否则(标记位为0)该字节为代号值。
[0057] 进一步地,在计算机端对接收到的串口数据流进行解码时,若接收到的字节的第一位为1,则后续四个字节(包括该字节本身)共同解码为帧计数值,否则该字节单独解码为代号值。最终,计算机端可以获得一系列帧计数值,以及该些帧内读取到的信号值(每帧内可以同时读取到多个代号),进而将这些代号与实际捕获的真实脑电信号对齐。最终,基于成像的频率逐帧计算并保存所有关节点的三维坐标,并在有代号的帧处记录上对应代号值,从而有助于进行脑信号与动捕数据的联合分析。
[0058] 图5A和图5B示出了用于根据本公开的实施例的动作捕捉装置的多目相机的示例性透视图。在一个非限制性实施例中,本公开的动作捕捉方法可以用于观测身体固定在猴椅中的猴子(未示出),并且特别地可以用于捕捉猴子手部的动作。图5A和5B主要示出了可以作为猴椅的功能配件的动作捕捉装置510;并且附加地,动作捕捉装置510也可以与同样作为猴椅的功能配件的头部固定装置520结合使用,诸如避免头部移动对动作捕捉的干扰等。一般而言,动作捕捉装置510设置在猴椅上方以对固定于猴椅内的猴子进行成像,其可以直接设置在猴椅上或者可以经由头部固定装置520与猴椅连接。
[0059] 参照图5A和图5B所示的非限制性实施例,动作捕捉装置510可以构造用于捕捉位于猴椅中的猴子的肢体、特别是手部的动作。动作捕捉装置510可以包括相机支撑架5101和设置在相机支撑架5101上的至少三个相机5102,图5A中示出的实施例为四个相机5102(其中一个相机在图中被遮挡)。如前文所述,两组二维坐标即可以进行三维重建,即由两个相机5102捕捉到的图像对于动作捕捉而言就已经足够,但在实践中发现,在仅设置两个相机的情况下各相机5102所能提供的视角较为有限,从而可能由于所捕捉的对象被遮挡而损害三维动作捕捉的效果、特别是影响三维动作捕捉的精度。通过设置多于两个相机5102(诸如图5A中示出的四个相机5102),能够较好地排除遮挡对动作捕捉的影响。总体上期望的是,这四个相机5102尽可能以不同的、差别相对较大的视角拍摄被捕捉对象。
[0060] 在本实施例中,相机支撑架5101可以直接与位于动作捕捉装置510下方的猴椅(未示出)连接;在另外的一些实施例中,相机支撑架5101也可以经由相应的螺栓5103固定在头部固定装置520的连接侧上。
[0061] 如图5A和图5B所示,相机支撑架5101可以包括竖直支撑杆5104(图5A中示出的实施例为两个竖直支撑杆5104)和从竖直支撑杆5104出发基本上平延伸的水平支撑框架5105。水平支撑框架5105包括在所述两个竖直支撑杆5104之间延伸的横梁5106和从竖直支撑杆5104出发向前水平延伸的弧形框5107,多个相机5102设置在弧形框5107上。为了确保结构的稳定性,避免干扰性的晃动,在竖直支撑杆5104、横梁5106和弧形框5107之间构造有加强部5108。
[0062] 进一步地,可以在弧形框5107的前部设置有两个相机5102,而在弧形框5107的侧部分别设置有一个相机5102。各相机5102可以经由万向球5109与弧形框5107连接,特别是与弧形框5107的相应的连接部5110连接。在图5A中,位于前部的两个相机5102分别经由一个L型转接板5111连接在相应的万向球5109上,而位于侧部的两个相机5102分别经由一个平板状的转接板5112连接在相应的万向球5109上。
[0063] 如图5B所示,动作捕捉装置510还可以包括部分地包围相机5102的防撞罩5113。在一个非限制性实施例中,设置在侧面的两个相机5102分别配设有一个防撞罩5113,而设置在前方的两个相机5102共同配设有一个防撞罩5113,从而该防撞罩5113具有较大的尺寸。防撞罩5113可以经由螺栓5114固定在相应的连接部5110上。
[0064] 在一些实施例中,在动作捕捉装置510安装在猴椅上的情况下,动作捕捉装置510在地面上的投影可以被猴椅在地面上的投影完全包围。由此能在猴椅移动时防止动作捕捉装置510与其他物体直接相撞。
[0065] 图6示出了可以实现根据本公开的实施例的计算设备的示例性配置。该计算设备包括一个或多个处理器601、经由总线604连接到处理器601的输入/输出接口605以及连接到总线604的存储器602和603。在一些实施例中,存储器602可以是只读存储器(ROM),存储器603可以是随机存储存储器(RAM)。
[0066] 处理器601可以是任何种类的处理器,并且可以包括但不限于一个或多个通用处理器或专用处理器(诸如专用处理芯片)。存储器602和603可以是任何非暂态的并且可以实现数据存储的存储设备,并且可以包括但不限于盘驱动器、光存储设备、固态存储器、软盘、柔性盘、硬盘、磁带或任何其他磁性介质、压缩盘或任何其他光学介质、缓存存储器和/或任何其他存储芯片或模块、和/或计算机可以从其中读取数据、指令和/或代码的其他任何介质。
[0067] 总线604可以包括但不限于工业标准架构(Industry Standard Architecture,ISA)总线、微通道架构(Micro Channel Architecture,MCA)总线、增强ISA(EISA)总线、视频电子标准协会(VESA)局部总线、以及外设组件互连(PCI)总线等。
[0068] 在一些实施例中,输入/输出接口605与以下单元连接,由诸如供用户输入操作命令的键盘鼠标之类的输入设备所配置的输入单元606、向显示设备输出处理操作画面和处理结果的图像的输出单元607、包括用于存储程序和各种数据的硬盘驱动器等的存储单元608以及包括局域网(LAN)适配器等并经由以互联网为代表的网络执行通信处理的通信单元609。此外,还连接了驱动器610,该驱动器610从可移除存储介质611读取数据和在其上写数据。
[0069] 可单独地或以任何组合方式来使用前述实施方案的各个方面、实施方案、具体实施或特征。可由软件、硬件或硬件与软件的组合来实现前述实施方案的各个方面。
[0070] 例如,前述实施方案可体现为计算机可读介质上的计算机可读代码。计算机可读介质为可存储数据的任何数据存储设备,所述数据其后可由计算机系统读取。计算机可读介质的示例包括只读存储器、随机存取存储器、CD‑ROM、DVD、磁带、硬盘驱动器、固态驱动器和光学数据存储设备。计算机可读介质还可分布在网络耦接的计算机系统中使得计算机可读代码以分布式方式来存储和执行。
[0071] 例如,前述实施方案可采用硬件电路的形式。硬件电路可以包括组合式逻辑电路、时钟存储设备(诸如软盘、触发器、存器等)、有限状态机、诸如静态随机存取存储器或嵌入式动态随机存取存储器的存储器、定制设计电路、可编程逻辑阵列等的任意组合。
[0072] 在一个实施方案中,可以通过用诸如Verilog或VHDL的硬件描述语言(HDL)编码和设计一个或多个集成电路或者结合使用离散电路来实现根据本公开的硬件电路。
[0073] 需要注意的是,在此使用的术语是仅用于说明具体方面的目的,而不用于限制公开内容。如在此使用的单数形式“一个”和“所述一个”应包括复数形式,除非上下文明确地另有表述。可以理解到,术语“包括”和“包含”以及其他类似术语,在申请文件中使用时,具体说明所陈述的操作、元件和/或部件的存在,而不排除一个或多个其他操作、元件、部件和/或它们的组合的存在或添加。如在此使用的术语“和/或”包括一个或多个相关的列举的项目的所有的任意的组合。在对附图的说明中,类似的附图标记总是表示类似的元件。
[0074] 在附图中的元件的厚度可以为了清楚性起见而被夸张。另外可以理解到,如果一个元件被称为在另一个元件上、与另一个元件耦合或者与另一个元件连接,那么所述一个元件可以直接地在所述另一个元件上形成、与之耦合或者与之连接,或者在它们之间可以有一个或多个介于中间的元件。相反,如果在此使用表述“直接在……上”、“直接与……耦合”和“直接与……连接”,那么表示没有介于中间的元件。用来说明元件之间的关系的其他词语应该被类似地解释,例如“在……之间”和“直接在……之间”、“附着”和“直接附着”、“相邻”和“直接相邻”等等。
[0075] 在此术语例如“顶”、“底”、“上方”、“下方”、“上面”、“下面”等等用来描述如在附图中所示的一个元件、层或区域相对于另一个元件、层或区域的关系。可以理解到,除了在附图中描述的取向之外,这些术语应该也包含装置的其他取向。
[0076] 可以理解到,尽管术语“第一”、“第二”等等可以在此用来说明不同的元件,但是这些元件不应被这些术语限制。这些术语仅仅用来将一个元件与另一个元件区分开。因此,第一元件可以被称为第二元件,而不背离本申请构思的教导。
[0077] 也可以考虑到,在此公开的所有示例性的实施方式可以任意地相互组合。最后要指出的是,上述实施例仅仅用于理解本申请,而不对本申请的保护范围构成限制。对于本领域技术人员来说,在上述实施例的基础上可以做出修改,这些修改都不脱离本申请的保护范围。
QQ群二维码
意见反馈