高精度目标跟踪
Track Anything You Want. More Accurate & Smooth. 公开打擂,欢迎挑战 只有想不到 没有跟不到
Track Anything You Want. More Accurate & Smooth. 公开打擂,欢迎挑战 只有想不到 没有跟不到
前言 软组织的力学研究在近几十年内已经成熟,各种理论层出不穷,但总体来讲经历了三个阶段: 第一阶段,1940年Mooney提出了一个具有很强变形能力的超弹性材料的力学模型,1948年Rivlin对它做了改良,也就是现在流行的Mooney-Rivlin超弹性模型,目前对于超弹性材料的仿真都使用了Mooney-Rivlin。 第二阶段,1994年,Jeffrey Weiss 定义了纤维增强型Mooney-Rivlin,通过向量场控制当前构型的变形,这个理论为肌肉的力学仿真奠定了基础,并发表了论文(他博士读了九年,都在搞这个)。 第三阶段,2003年-2018年,在斯坦福大学跟工业光魔的共同努力下,肌肉仿真成功在数字人上应用,大幅提升了数字形象的真实感,目前 Ziva Dynamics,FACEGOOD 等公司也是类似技术路线。 我在2016年看到了Weta Digital一篇专访,放了这段肌肉仿真的视频( Weta Digital Horse FEM Simulation)它们从内到外做了一匹“真马”:骨骼层->肌肉层->筋膜层->脂肪层->皮层,深深被其震撼,了解到他们用到了有限元法(FEM),随后就沉迷这个技术了。我个人来讲喜欢写一些有难度的玩意,编译器、虚拟机、3D引擎、渲染器、物理引擎之类的都写过,这么牛逼的物理引擎不搞一下自然心痒得很,很幸运,是兴趣又跟自己的创业方向吻合,肌肉仿真的研发就这样开始了。刚开始对计算力学一窍不通,只好从头学起,一开始就像个无头苍蝇学习路线比较乱,有限元的书买了一堆,发现它只是个数值工具,想搞明白原理需要先看力学,力学里面又有经典力学、理论力学、固体力学、结构力学、材料力学、弹性力学,不知道从哪里出发,于是干脆全都看了一遍,最后范围逐渐缩小,聚焦之后学习起来自然就很高效了,现在已经在手撸有限元的C++实现了。 图(2)计算力学知名学者吴建营老师(左) 2017年FACEGOOD上线了表情捕捉产品,但当时对计算力学方向还是很迷惘,有幸遇见了吴建营老师,我把这个课题给他看了之后他给的反馈是“都是技术问题,没有理论问题,但是工程化方面人才比较缺”。听了这一番话我反倒是觉着靠谱了,工程化是我们的专长,这些年一直在做工程化的急先锋。FACEGOOD 搞仿真主要是提升数字人的真实感,例如只有从力学上模拟表情产生的全过程才能做到Physically Correct,这里面最核心的是解决人体软组织的力学建模问题,也就是需要得到韧带、肌腱、脂肪、皮层等软组织的精确力学模型。本文主要介绍软组织的数学建模以及其有限元的实现,读者需要具备变分法(Caculus of Variations)、计算力学(Computional Mechanics)、有限元法(Finite Element Method)等知识,熟悉横向各向同性(Transverse Isotropy)、不可压缩超弹性材料的应力、弹性张量等理论特性。按照本栏目一向硬核风格,直接给出完整思路,最后附上一段小DEMO。 认识韧带与肌腱 图(3) 人体有206块骨头,大部分骨头是不能直接向接触的,这样会有很大的摩擦,也没法运动。骨与骨之间并没有榫卯结构,也没有机械齿轮,把骨与骨连结起来的就是韧带和关节。从解剖学角度讲,韧带是骨与骨之间的直接连结,指的就是连接骨与骨之间的致密结缔组织。 每一块骨骼肌都分成肌腹和肌腱两部分,肌腹由肌纤维构成,色红质软,有收缩能力,肌腱由致密结缔组织构成,色白较硬,没有收缩能力。肌腱为肌肉末端的结缔组织纤维索,肌肉藉此附着于骨骼或其它结构。 材料初步(超弹性,横向各向异性的Strain Energy方程推导) 大部分生物材料的力学特性都是各向同性的,他们对载荷的变形反应取决于材料的分布方向,这种材料变形行为是材料内部超微小结构造成的结果,也就是跟纤维束有关,最常见的是胶原纤维、弹性纤维。弹性纤维主要存在于韧带和脉管壁,它与胶原纤维共同存在, 赋予组织以弹性和抗张能力。弹性纤维如同橡皮带一样,它的长度能够伸展到正常长度的几倍,当收缩时又能恢复到原始长度。组织的弹性则是通过改变散布在弹性纤维中胶原的数量来控制。 图(4)肌肉结构 [...]
前言 目前无论是学术界还是工业界对人脸的研究有两个方向,其一民用级,通过技术泛化为用户提供低精的产品,这些技术在工业级高精度上是无法满足需要的,主要因为算法泛化丢失了人脸的低频信息(五官的细微差别)。其二工业级,从人脸生物力学仿真层面,持续提高精度,FACEGOOD走在这个方向,在技术适当泛化的基础上,其将人脸关键点跟踪推向了极致,目前已将精度推到10万级,该技术可用于工业级换脸、表情捕捉等场合。 人脸关键点检测在安防、金融、娱乐等领域具有广泛的应用,可以说已经成为非常基础的算法,我们先来回顾一下它的发展历史,Tim Cootes & Chris Taylor在1995提出了一种新的方法(Active Shape Model)开创了人脸关键点对齐的先河,ASM引入了统计模型来解决对齐问题,紧接着三年之后,他俩在此基础上发展出了Active Appreance Model,这个方法有很重的历史地位,要知道当时人脸对齐问题是个很棘手的事,传统的CV算法太粗暴,难以应付人脸这种高纬特征,AAM之后算是进入了一个正确的方向,为后来神经网络方法奠定了基础,基本思想是ASM并没有考虑到纹理特征,只是对landmark训练了一个统计模型出来,AAM进一步优化了ASM,在回归的过程中加入了纹理特征,这样就解决了特征的泛化匹配的问题,使得人脸对齐更加鲁棒。20年之后,在众多研究者不断推动下2D人脸对齐问题已经彻底解决了,算法也已经白菜化,随便在github都有大量的精度不错的开源项目。 3DMM 与此同时,在1998年有两位研究人员又开辟了一条新赛道,他们提出了3D对齐算法,将人脸对齐推向了一个全新的维度,这套方法目前已经成为现在工业界主流的算法流程,现在工业界习惯上把它叫做3DMM,虽然并不严谨,但我们姑且沿用这样一个定义,3DMM计算结果是在人脸上拟合并投影出一个3D点云,它的应用就非常丰富了,美颜、表情捕捉、通过照片生成一张人脸等等都用了类似的技术。 公式1 如上图所示基本思想是:一张脸可以由多个不同的人脸通过线性组合得出,换句话说,给出一张人脸,要得出3D模型,就是一个系数的回归问题,了解AAM的同学一眼就看出来这个公式就是AAM公式,也可以说这是AAM的另一种应用,其中S是平均脸,s是特征向量,ai是权重系数。Tmodel是用来拟合人脸纹理,同样使用线性组合得出。3DMM是一个非常初期的idea,他的计算结果并不理想,现在来看只能算玩具级,主要是PCA在精度上的丢失是很严重的。 2008年,一篇论文的发表将3DMM的精度进一步推广,公式1只采样了人脸在某一时刻的表情,因此在表情上没有考虑到其他情况,导致精度丢失。这篇论文增加了一个维度,因此叫“双线性模型”,在人脸基础上加上了表情因素,这样的计算结果更加可信。 公式2 这个双线性公式在公式1的思路上增加了一个系数a,表示不同表情,b表示不同的个体,w是人脸数据库,到此3DMM在算法流程上完整了,为日后Facewarehouse等应用奠定了基础,后面的故事大家都知道了Facewarehouse推出了自己的数据库及应用思路,讲到这里我们对前面这些研究做个总结。 3DMM缺点是很明显的,在技术泛化这条路上一路狂奔,忽略了人脸非常多的细节,尤其是高频低幅度的表情细节,在个体上体现非常明显,造成这个局面的原因有两个,基于统计的回归并不精确,是一个模糊解,3D数据库模型的采集多数用成本低廉的设备生成,精度不高,两者加起来,3DMM在高精应用场景可以说完全无法满足需求,更不可能达到工业级超高精度需要。 FACEGOOD 3DMM 图示1 BFM & SFM 模型 图示2 FACEGOOD 模型 为了更精确的计算人脸的3D信息,并能适用于工业级业务场景,FACEGOOD团队采用相机阵列方式采集了100个不同个体的3D模型,每个人有43个不同的表情,以及他们对应的高精度皮肤材质数据,至于这些数据建立了FACEGOOD 3DMM模型。 目前开源的数据库主要有BFM跟SFM两个,同时还有一个Facewarehouse仅供学术研究使用,对比这些数据库,FACEGOOD 3DMM主要体现在精度上,抛弃kinect这类民用级扫描技术,使用相机阵列的方式,可以完全重建人脸的所有肖像特征,如上图所示,图示2是FACEGOOD数据,图示1是SFM数据,后者在细节上损失很大,基本上只保留了人脸的大概特征。 神经网络的优势主要在技术泛化上有很好的表现,但在高精度场合并非理想选择,为了达到高精度跟踪人脸的3D特征,包括脸型、五官的深度、微表情的变化等,FACEGOOD研发人员使用传统算法实现了这一套方案,目前已经在超写实数字人上开始应用。 传统绑定的问题 [...]
Vestibulum cursus in ligula lacinia lobortis. Morbi at velit at velit auctor efficitur ut ac justo. Phasellus porttitor, elit vitae scelerisque vestibulum, nunc libero bibendum massa.
Vestibulum cursus in ligula lacinia lobortis. Morbi at velit at velit auctor efficitur ut ac justo. Phasellus porttitor, elit vitae scelerisque vestibulum, nunc libero bibendum massa.
When is creative too creative? ALorem ipsum dolor sit amet, consectetur adipiscing elit. In et scelerisque sem. Nunc molestie neque augue, at gravida mi blandit eget. Aenean eu [...]
When is creative too creative? ALorem ipsum dolor sit amet, consectetur adipiscing elit. In et scelerisque sem. Nunc molestie neque augue, at gravida mi blandit eget. Aenean eu [...]
When is creative too creative? ALorem ipsum dolor sit amet, consectetur adipiscing elit. In et scelerisque sem. Nunc molestie neque augue, at gravida mi blandit eget. Aenean eu [...]
When is creative too creative? ALorem ipsum dolor sit amet, consectetur adipiscing elit. In et scelerisque sem. Nunc molestie neque augue, at gravida mi blandit eget. Aenean eu [...]