
运动捕捉
文章平均质量分 95
风翼冰舟
Machine Learning,
Algorithm
展开
-
UE自带重定向原理
UE自带重定向方法验证核心源码在VS的解决方案中的位置:UE4\Source\Developer\AssetTools\Private\AssetTypeActions\AnimSequence.cpp中第3237行RemapTracksToNewSkeleton函数跳转方法AssetTypeActions_AnimationAsset.cpp的RetargetNonSkeletonAnimationHandler函数调用了RetargetAnimationHandler跳转到EditorA原创 2022-02-11 20:51:55 · 3078 阅读 · 3 评论 -
卡通角色表情驱动系列二
前言之前介绍了使用传统算法求解BS系数的表情驱动方法,其中提到过的三种方法之一是基于网格形变迁移做的,那么这篇文章就是对《Deformation Transfer for Triangle Meshes》做表情驱动的解析。国际惯例,参考博客:论文原文《Deformation Transfer for Triangle Meshes》大佬的代码本博文实现几乎照搬大佬代码,但是大佬代码实在是太多太复杂了,搞了很多库和函数,还有很多重复的实现,所以本博客一边解析论文,一边按照大佬的代码简化实现,把几原创 2021-07-17 22:51:43 · 4304 阅读 · 2 评论 -
卡通角色表情驱动系列一
前言分析完ThreeDPoseTracker来做卡通角色的身体驱动,接下来在卡通驱动领域还有一个是表情驱动。对这个真的是一窍不通啊,只能慢慢看论文了。国际惯例,参考博客/论文:《Landmark-guided deformation transfer of template facial expressions for automatic generation of avatar blendshapes》《FACSvatar: An Open Source Modular Framework fo原创 2021-04-07 17:45:41 · 8742 阅读 · 17 评论 -
卡通驱动项目ThreeDPoseTracker——关键点平滑方案解析
前言之前对ThreeDPoseTracker的深度学习模型和unity中的驱动方法进行过解析,还有一个比较重要的就是从深度学习模型出来的3D关键点数据会有抖动,在ThreeDPoseTracker源码中有做两次平滑,一部分是卡尔曼滤波,还有一部分是低通滤波。这次就是对这部分类型进行解析。国际惯例参考博客:ThreeDPoseTracker源码VNectBarracudaRunner.cs理论与代码复现在源工程的VNectBarracudaRunner.cs脚本中,有一个函数KalmanUpdate原创 2021-03-18 17:17:42 · 6668 阅读 · 10 评论 -
卡通驱动项目ThreeDPoseTracker——模型驱动解析
前言之前解析过ThreeDPoseTracker这个项目中的深度学习模型,公众号有兄弟私信一些问题,我刚好对这个项目实现有兴趣,就分析一波源码,顺便把问题解答一下。这个源码其实包括很多内容:3D姿态估计,坐标平滑,骨骼驱动,物理仿真等,非常值得分析。参考博客:ThreeDPoseTracker源码理论与实现核心代码是源码中的VNectModel.cs,主要是用预测出的3D坐标驱动卡通人体模型,包括内容有:根关节位置各关节旋转信息其核心在于旋转量的确定,至于根关节位置的确定,感觉涉及到很原创 2021-03-09 19:30:40 · 14825 阅读 · 8 评论 -
Unity中BVH骨骼动画驱动的可视化理论与实现
前言找了很久使用BVH到unity中驱动骨骼动画的代码,但是都不是特别好用,自己以前写过,原理很简单,这里记录一下。理论初始姿态在BVH或者其它骨骼动画中,一般涉及到三种姿势:A-pose,T-pose,其它姿势。其中A-pos或者T-pos通常是作为骨骼定义的姿势或者第一帧骨骼姿势。比如在unity中,导入某个模型时,通常为T-pose的姿态,如unity娘模型刚导入的时候:这个Tpose在CMU提供的BVH骨骼动画数据中,第一帧数据也是T-pose,比如:但是在Maya中设计角色,或者原创 2021-01-09 16:58:09 · 8451 阅读 · 23 评论 -
OBJ可视化——UV还原(修正)
前言前面写过一篇obj格式解析的博客,但是这篇文章中可视化的工作是参考PRNet的源码进行的,后来细细思考了一下,有点问题,具体看下面。问题来源在PRNet源码的render.py中有个函数render_texture,是作者用于将uv展开图重新映射回3D模型中,具体流程可以看出是:找到当前三角形的uv坐标和3D坐标将三个顶点的uv图颜色取平均,作为当前面片的颜色tri_tex = (colors[:, triangles[0,:]] + colors[:,triangles[1,:]]原创 2020-12-30 14:31:02 · 4039 阅读 · 8 评论 -
obj格式解析
前言最近处理一些网格渲染的时候,需要解析Obj文件,从Free3D上随便找了个免费的人体obj模型解析测试一波国际惯例,参考博客:本文所使用的从Free3D下载的模型.obj文件格式与.mtl文件格式详解3D中的obj文件格式3D中OBJ文件格式解析obj文件解析维基百科Wavefront .obj fileObject Files (.obj)MTL Files Material Definitions for OBJ Filespython读取objobj的可视化软件MeshLa原创 2020-10-15 19:36:24 · 8723 阅读 · 1 评论 -
Ogre共享骨骼与两种骨骼驱动方法
前言最近业务中用到Ogre做基于3D关键点虚拟角色骨骼驱动,但是遇到两个问题:身体、头、眼睛、衣服等mesh的骨骼是分开的,但是骨骼结构都是一样的,需要设置共享骨骼驱动的时候可以直接修改骨骼旋转量,或者将旋转量存到动画帧里面去,后者会根据播放时间间隔自动插帧国际惯例,参考博客:Ogre3D 实现角色换装【Ogre-windows】旋转矩阵及位置解析Ogre 换装系统 shareSkeletonInstanceWith代码实现下面分别包括:共享骨骼、关节驱动、动画帧驱动、遇到的坑其中关原创 2020-10-13 16:33:19 · 963 阅读 · 0 评论 -
3D姿态估计——ThreeDPose项目简单易用的模型解析
前言之前写过tensorflow官方的posenet模型解析,用起来比较简单,但是缺点是只有2D关键点,本着易用性的原则,当然要再来个简单易用的3D姿态估计。偶然看见了ThreeDPose的项目,感觉很强大的,所以把模型扒下来记录一下调用方法。参考博客:ThreeDPose官方代码微软的ONNX模型解析库ONNX解析库的pythonAPI文档3D姿态估计最大的好处就是卡通角色的肢体驱动了,其实就是单目摄像头的动捕方法。理论和代码解析可以从官方去下载模型,戳这里,或者在文末的百度网盘下载。原创 2020-07-22 15:05:41 · 11701 阅读 · 26 评论 -
骨骼动画——论文与代码精读《Phase-Functioned Neural Networks for Character Control》
前言最近一直玩CV,对之前学的动捕知识都忘得差不多了,最近要好好总结一下一直以来学习的内容,不能学了忘。对2017年的SIGGRAPH论文《Phase-Functioned Neural Networks for Character Control》进行一波深入剖析吧,结合源码。额外多句嘴,这一系列的研究有:在2016年SIGGRAPH有一篇《A Deep Learning Framewo...原创 2020-01-15 15:53:29 · 7323 阅读 · 23 评论 -
Openpose——windows编译(炒鸡简单)
前言最近准备看看rtpose的代码,发现已经由openpose这个项目维护着了,由于经常在windows下调试代码,所以尝试了一下如何在windows下编译openpose源码,结果发现,我靠,炒鸡简单,Cmake一步搞定。写博客的目的在于,为了避免后续openpose的项目组各种维护各种加新内容的时候又改变了很多库什么的,比如升级CUDA版本、Opencv之类的,所以这里记录一下当前配置...原创 2018-08-27 17:00:10 · 34721 阅读 · 99 评论 -
刚体运动学-四元数插值
前言之前对写了一篇关于刚体运动学相关知识博客:刚体运动学——欧拉角、四元数、旋转矩阵,本篇博客就举例来说明,如何在运动捕捉数据中进行四元数插值。国际惯例,参考博客:探讨:向量(方向)之间的插值-四元数法VS.旋转矩阵法的性能比较书籍《3D数学基础:图形与游戏开发》 插值理论问题:3D空间中,在等长度的两个交角为θθ\theta的向量V1(x1,y1,z1)V1(x1,y...原创 2018-07-10 12:01:13 · 3491 阅读 · 2 评论 -
刚体运动学——欧拉角、四元数、旋转矩阵
前言刚体运动旋转一般用:欧拉角、四元数、轴角对等表示,在对某个坐标旋转的时候,只需将欧拉角或四元数转换为旋转矩阵,并与原始坐标相乘,便可得到旋转以后的坐标。这里主要看看欧拉角、四元数和旋转矩阵。国际惯例,参考博客:四元数与旋转【Unity技巧】四元数(Quaternion)和旋转三维转动的欧拉角和转轴转角参数相互转换的谢国芳公式 欧拉角百度百科欧拉角维基百科欧拉角百...原创 2018-07-09 18:12:15 · 21801 阅读 · 2 评论 -
运动合成——机器学习技术
运动捕捉中的机器学习技术应用原创 2015-09-11 15:53:27 · 3250 阅读 · 3 评论 -
世界坐标
世界坐标系下,各个关节点的位置计算转载 2015-10-23 10:26:46 · 2279 阅读 · 11 评论 -
运动捕捉数据的描述ASF/AMC
运动捕捉数据有多种格式:ASF/AMC,BVH,C3D等,这三个是比较常用的原创 2015-10-22 21:49:26 · 9635 阅读 · 19 评论 -
相机矩阵(Camera Matrix)
前言最近翻阅关于从2D视频或者图片中重构3D姿态的文章及其源码,发现都有关于摄像机参数的求解,查找了相关资料,做一下笔记。国际惯例,来一波参考网址透视变换、透镜畸变及校正模型、相机校正(Camera Calibration)、Matlab相机校正工具箱、【立体视觉(一)】由基本矩阵、本质矩阵恢复摄像机矩阵——Structure from motion、Multiple View Geometry i原创 2017-05-02 21:28:29 · 104075 阅读 · 45 评论 -
【Ogre-windows】环境配置
前言由于工程原因, 学习一下Ogre面向对象图形渲染开源引擎, 慢慢爬坑吧。首先还是环境的配置问题哎. 其实最重要的是要预先编译三方库, 虽然官方说可以自动编译, 但是在自己电脑上还是出现了无法解析外部符号之类的问题, 正常情况下我就认为是三方库的lib出现了问题, 最后额外编译三方库才得到了解决, 话不多说, 安装开始.环境: windows10、VS2013、Ogre1.10所需code:官方原创 2017-11-24 17:29:44 · 7576 阅读 · 2 评论 -
【Ogre-windows】实例配置
前言折腾了好久才搞定教程实例, 主要是因为上一篇博客安装的具体版本是Ogre1.10.9, 而官方的Ogre Wiki Tutorial Framework没有指定具体版本, 如果单纯下载Ogre Wiki Tutorial Framework 1.10 - (Windows line endings, updated 2015-10-15) 运行, 基本会血崩. 所以, 在经过仔细琢磨官网以后发原创 2017-11-30 11:06:24 · 3146 阅读 · 3 评论 -
【Ogre-windows】旋转矩阵及位置解析
前言这篇博客主要针对三种问题如何创建动画帧如何获取全局位置如何计算全局旋转矩阵仿真环境为VS2013+Ogre1.10.9与matlab验证创建动画帧这里只做一个简单的实验: 将自带的人物模型Jaiqua的run运动给新创建的运动myrun中并播放,直接贴代码了void JaiQua::createanim(){ SkeletonInstance*原创 2018-01-18 14:57:39 · 3060 阅读 · 1 评论