All Houdini Machine Learning

Houdini PDG 点云数据批量生成植被覆盖图

    在获取了特征化点云数据后,我们来使用houdini生成高度图以及植被的覆盖图。     首先是数据导入Houdini,并根据类型分组。     然后使用前面高度图处理的时候的方法,对点云数据做预处理,使得其符合要求。 最后根据最早的分组来获取两个处理好的数据集,以便用于后续的运算。         然后我们根据植被信息的高度来判断是否是植被,比如这边我们设定的核心数值就是10,在使用射线从头顶向下打,如果植被信息的数据与地面的数据信息差距大于10的时候,则判断这边的部分是植被覆盖,通过这个我们就可以生成植被mask层。         最终我们设定输出,这边要注意的是我们要保证输出的图片的格式是和unreal的设定一致的,因此输出的高度图格式和mask图格式如下:     …

All Machine Learning

Pix2pix 高度图地形生成效果

使用的开源代码 https://github.com/affinelayer/pix2pix-tensorflow     安装 Conda create –name pix2pix Conda activate pix2pix Conda install cudatoolkit=9.0 tensorflow-gpu     训练命令: Python pix2pix.py –mode …

All Machine Learning

人脸 Mean+PCA 实验

    实验完全基于COMA这份代码,原因是这里面有完整的整个人头的数据库,以及PCA相关的代码,因此只要在这个基础上尝试去实现自己的所想即可。 https://github.com/anuragranj/coma     首先我们要找到一份实现了读取和存储网格数据的代码,最好还包括实时展示。computeModels.py 是合适选择,做适当的修改即可实现其包含的意义,主要就是展示结果模型的比较。     代码分析:     首先是terminal数据输入的支持,这边要注意的是选择的数据,输入的格式如default所示。     然后是最重要的FaceData数据类型的初始化。 这边要输入的是训练和测试数据集,以及模板模型。我们深入去看facedata数据类型的构成你会发现,这个数据类型里面产生的数据 std, mean, pca 等等全部是根据train数据来生成的,模板模型唯一的作用就是提供face信息。这也就是为什么改动.obj文件对结果没有影响。 …

All Machine Learning

Mesh Deform 的一些参考

这边从实现角度出发,看可以参考哪些来做。 主要来源: https://github.com/timzhang642/3D-Machine-Learning         Deep learning 处理三维数据,想要实现三角形网格deformation,近期的研究发展如下:     CNN对于处理图片这样的像素类结构数据是有效的,但是三维网格具有特殊的拓扑结构,不能直接使用用于图片的训练模型结构。因此首先大家想到的是将三维结构类二维化处理,最后得到三维结果。主要方式分为两类: 一种是将三维网格直接拉成2D的平面形式,这个在图形学上面有方法实现,然后再直接处理平面数据; 一种是三维网格体素化或者点云化,然后处理体素,点云;因为体素点云的数据量大,而且其主要有意义的单位都是表示表面的体素或者点云,因此后续的paper都是在优化数据结构来使得可以同时处理更多的体素单元,让用这种方式处理的分辨率更高。     当然大家最希望的就是直接处理三角形网格,这边的方法思路大致可以分为两类: 一类是训练模型处理的还是图片数据或者体素或者点云,其结果用来使得网格模型做变换;比如最多的就是利用FFD来实现。【FFD: Learning Free-Form Deformations …

All Machine Learning

一些人脸重建的paper

Self-Supervised Multi-level Face Model Learning for Monocular Reconstruction at Over 250 Hz     本文由马克斯–普朗克研究所和斯坦福大学等机构合作完成,是 CVPR 2018 的 oral 文章。为了提升单张图片重建 3D 脸部模型的效果,该论文采用了多层次的脸部结构重建方法,作者把传统的基于参数化 …

All Machine Learning

网格生成优化

基于Greedy Mesh算法来生成网格,减少网格点的数量。 https://github.com/roboleary/GreedyMesh https://github.com/barraudf/Unity-Voxel     方法的效果视频: https://www.youtube.com/watch?v=0OZxZZCea8I         当前的网格生成渲染流程如下图所示,明显的就是两个方法,首先是生成网格,然后是渲染网格。     NormalBlockMeshGen.cpp 里面实现了基于体素块生成网格的方法。 void NormalBlockMeshGen::GenMeshImpl(AGE::uint16 *normalblocks, AGE::uint32 *pointlightblocks, …

All Houdini Machine Learning

Houdini PDG 点云数据批量生成高度图

    这边的目标是实现在Houdini批量处理所有的点云地形数据生成高度图。     首先第一步就是要实现处理点云数据生成高度图的HDA文件     这里面首先是处理一下点云,使得更好的表述地形。这个部分就不细讲了,见另外一篇我专门讲怎么处理地形点云数据的文章。     然后往下有一个特殊步骤,用于生成我们输出的高度图的文件名。 这一步的计算结果就是detail面板底下我们有了这个outfilename的对象,并把它暂时存储在null节点OutFileName里面。     下一步就是添加了heightfield_output节点用于输出高度图,这里面的文件名就是上面我们计算保存的输出文件文件名。其他的参数则是按需设置。     至此我们就实现了单个地块的点云数据输出高度图,然后我们来看怎么批量处理数据。     首先我们要把上面的包装成一个Hda文件并设置参数。如下图所示,我们这里的参数就两个,一个是Pts输入文件名,输出的文件名由于是自动生成的,就不需要输入。还有就是存成高度图的按钮。 …

All Houdini Machine Learning

LAStools 处理点云数据

    对于直接下载的原始点云数据,不处理的化你是很难得到想要的地面信息啥的。因此这边记录的就是如何使用LAStools工具来初加工这些数据,为后续Houdini精加工数据做铺垫。     原始的点云数据下载地址: https://cloud.sdsc.edu/v1/AUTH_opentopography/PC_Bulk/DOGAMI/ 这里下载的点云数据格式大多数是.laz,这是一种.las格式的压缩格式。     LAStools下载地址: https://rapidlasso.com/ 下载完解压后,在目录下的bin文件夹下就是我们要使用的这些工具。 打开Cmd.exe,cd到这个bin目录即可在命令行使用这些工具。     我们期望从原始的点云数据获得的信息是:地形数据,植被数据,建筑数据。我们下面讲解一下获得这些数据的操作。     首先拷贝一个测试数据集:例如这里我们用的是 ot_44121C8101.laz。 然后输入以下命令获得 …

Advanced Game Tech All Machine Learning

Phase-Functioned Neural Networks for Character Control

理论部分:     http://theorangeduck.com/page/phase-functioned-neural-networks-character-control     视频内容: 讲者背景:角色动画机器学习方向的博士毕业, 动画系统,中间的就是黑盒,就是动画系统 用户输入动画系统的是按钮的指向信息,如图所示的平面的指向,是比较高级的指令,比如我们想走向哪个方向。 动画系统则像是巨大的状态机,不同的状态对应不同的动画,之间会有动画混合。这个复杂的系统直接写代码比较复杂,很难维护, 因此我们重新考虑能不能用一个简单的算法来实现这个复杂的动画交互系统。 我们希望动画系统的输入输出就变成一些参数而已。 我们再来看原来的复杂的动画系统,如果把输入输出看作是动画模型的参数,那么也是可以做到的,就像是在一个巨大的数据库里面挑东西输出。 因此我们希望做到的第二点就是直接输出下一个pose 当然可以,基本思想就是把动画系统当作是黑盒,我们给一些输入就有想要的输出,后面具体讲做法。 输入x:Trajectory Positions, Directions, Heights;Previous Joint Position, …

Advanced Game Tech All Machine Learning

AIAnimation使用代码分析

历尽艰难跑起来了,问题是没有办法操作,猜测Ubuntu和windows的操作代码不兼容,代码分析部分的主要目标之一就是把操作改掉:     代码结构分析 一切从main函数开始: 首先是SDL初始化,Simple DirectMedia Layer(SDL) is a cross-platform development library designed to provide low level access to audio, keyboard, …