多相机人体三维姿态捕捉
传统的光学或惯性动作捕捉设备由于价格昂贵,很难走进民用。但伴随短视频的兴起,中短篇动画制作的需求猛增。此外,游戏、影视行业也对低成本动作捕捉有着强烈的需求。于是便催生了价格低廉的计算机视觉动作捕捉技术。
学术界对从视频中提取三维的人体姿态研究成果颇丰。但由于存在系统性不足:二维信息恢复三维信息,本身便缺秩。即使是运用个人人体模型的先验,也很难准确的捕捉人体动作。即便是重投影回视频后看起来效果不错,也无法在垂直视频方向(即深度方向)达到理想情况。
为解决这个问题,多相机联合的动作捕捉技术便应运而生。主要需要解决以下几个问题:1.相机空间位置标定2.相机录制时间同步3.每个视角二维关键点提取4.三维骨骼坐标求解5.滤波,优化,套人体模型。
解决步骤如下:
1.相机空间位置标定:传统的棋盘格标定算法在这个场景下面临两大挑战,一是距离较远,二是相机与棋盘格的夹角较大,常常误识别。解决策略有两个,一是制作立体的标定物,二是将重写标定算法,手动选点。
2.普通的USB相机时间同步能控制在1ms以内。用ffmpeg多线程录制或OpenCV都可以。
3.二维关键点提取,传统的OpenPose或者Hrnet、mmpose都可以。
4.结合第一步标定的外参,多个相机各自发出一条射线在空间中交汇于一点。具体的求解步骤可以构造矩阵,用奇异值分解的办法求解。
5.得到的三维坐标点会存在噪声,首先用One欧Filter将噪声过滤,然后套用人体Smpl模型在黎曼空间做优化,最大限度保留动作真实性。
如果你对人体动作识别感兴趣,想要交流沟通或者想要我之前写的多相机动作提取源码,可以找我。thujiang000
The End