- 博客(24)
- 收藏
- 关注
原创 DMTet与FlexiCubes人体重建比较
和分别是在 NeurIPS 2021 和 SIGGRAPH 2023发布的两个关于的工作。在三维重建和生成中使用二维图片作为约束的方法越来越多,特别是现在还有许多2D的大模型的情况下,可微渲染几乎成为标配。传统Marching Cubes一般是在CPU上进行,现在的方法通常使用DMTet进行可微渲染,也有一些方法使用FC渲染。因此本文记录一下两个方法在重建上的效果。
2024-10-24 21:00:35 637
原创 nvdiffrast可微渲染记录
nvdiffrast是一个高效的底层渲染工具,具体介绍可以参考官方文档或者中文翻译相比于pytorch3d,kaolin等库实现可微,nvdiffrast优点是高效,但缺点就是偏低层实现,对于相机光照,材质等需要额外处理,官方是这样描述的:这里使用kaolin + nvdiffrast实现mask,法线,颜色图的渲染。使用kaolin设置相机参数,代码来源:FlexiCubes这里设置成围绕物体生成随机相机视角(mesh需要先归一化)这里使用trimesh读取obj格式文件。我测试了kaolin,py
2024-09-11 19:30:46 611
原创 ubuntu升级导致nvidia驱动问题
当时报错提示gcc版本不同,kernel编译的环境是12,我系统里的是8还是9。已经是最新版本的驱动了,但安装仍然出现上面的错误,不同的是这次log文件中记录了对应的warning。我是在这里选择对应的版本进行下载,之前在其他地方下载的仍然报错,当时下载的版本545.xxxx。(显卡是3090)下载好了就可以安装了。在安装时,报内核安装失败的错误,日志文件如下,报错后就停止安装了。因为已经可以运行项目了,所以暂时没有研究出现这个问题的解决的办法。,nvidia的显卡驱动版本不匹配了,需要更新一下显卡驱动。
2024-01-30 10:17:56 2012 3
原创 Linux上运行blender的python脚本
之前有下过一些其他的关于blender/linux/python之类的文件,文件都很小,里面只有py文件。blender-x-x文件夹中必须要有blender这个文件,才能运行脚本。这个包不能直接使用pip安装,需要下载blender。然后用blender运行这个安装脚本,就可以在blender中python中添加pyquaternion这个库了。因为运行脚本是在blender中的python运行,如果自己的脚本有额外的包需要额外安装。将下载好的blender解压后,先将blender添加到环境变量中。
2024-01-14 21:50:43 979 1
原创 Docker启动失败:Iptables not found(daemon不能启动)和nvidia-docker运行问题
问题并不是出在nvidia-docker安装上,而是没有使用nvidia-docker去监控docker容器。使用这种方式启动dockerd就可以正常启动daemon,并且iptables问题也可以解决。但是nvidia-smi正常,并且重装多次nvidia-docker后仍然有问题。2.在解决前面的问题后,docker可以正常启动,但对于部分容器仍然启动不了。里有同样因为iptables问题不能启动daemon,提出的解决方案。在查看日志文件和分析后,发现可能是nvidia-docker的问题。
2024-01-11 10:13:09 2124
原创 trimesh保存的mesh在blender打开
1.使用trimesh保存的mesh,在blender打开初始是没有颜色的。可以设置一些参数来改变 mesh的材质和反射率等。首先在blender菜单栏中选择‘着色’如果使用点云加颜色需要进行额外的设置。然后添加‘颜色属性’设置‘col’并连线。
2023-12-15 20:18:15 706
原创 ubuntu安装pytorch,pytorch3d,pyrender最佳实践
然后使用pip或者conda安装,两种都安装失败过,使用pip安装成功率更高,前提必须使用conda安装了必要的库。pip安装时要添加额外的url源,并且注意加cu101/cu113 ,选择对应cuda版本。ubuntu版本最好是18.0.4。在20版本试过会失败!conda安装注意需要安装cudatoolkit。ps:安装不成功和网络有一点关系,最好对进行加速。
2023-10-22 10:36:19 912 3
原创 在服务器运行需要GUI项目
如果你想在没有图形用户界面(GUI)的服务器上运行需要可视化的软件或库(如`aitviewer`或其他3D可视化工具),你通常需要使用某种"虚拟"的显示系统。在Linux环境中,最常用的这种系统是X虚拟帧缓冲(Xvfb)。Xvfb模拟了X服务器的存在,而实际上并没有显示任何东西。这使得你可以在没有物理显示的服务器上运行需要图形环境的程序。
2023-10-09 15:26:28 324 1
原创 pytorch原地操作无法反向传播
解决:网络中出现原地操作。torch中提供的softplus中出现了原地操作,可以直接用数学表达式直接替换,计算方法与原方法原理一样。
2023-08-28 15:28:16 277
原创 pytorch中的矩阵变换
函数返回输入矩阵input的转置。交换维度dim0和dim1。view()是共享内存,reshape()不共享内存。将tesor维度换位。
2023-08-28 15:11:11 286
原创 X-avatar数据集处理
extrinsic.npy中应该是每一帧图片一个4*4的矩阵。intrinsic.npy中对应一个3*3的矩阵。每一帧对应一个pkl和ply,分别对应没有纹理的smpl/smplx模型的动作。应该是人物的建模信息,通过脚本可以生成带有纹理图的ply格式的模型。每帧对应一个(1024,1024,3),都是pkl格式的文件。每一帧对应的RGB图片,分辨率800*1200,背景为白色。来源:如果只用ply格式,可以直接导入有纹理模型。每一帧对应的tiff格式的深度信息。来源:好像可以用blander。
2023-06-06 16:47:43 237
原创 X-avatar 运行指南
作者解释是smplx版本使用了预训练模型已经训练的比较好了,如果SMPL版本没有完全训练好,会查询更多的点,会更消耗显存。在开始训练时,只要2g显存,但每val后显存就会变大(如果修改val的epoch,但没什么效果,val多次后显存还是会超出限制)但points_per_frame即使缩小10倍,显存消耗仅减少几个g,在3090上训练要缩小到原来的1/100.00034是编号,motion_path是动作文件的路径(解压出来的文件)data_root是上面demo生成的动作序列的ply文件。
2023-06-05 11:42:16 341 1
原创 aitviewer在window保存应用
InstantAvatar中保存视频源代码是用来保存视频,但使用ssh连接(vscode)会出现很多问题。所以在window上配置简单的环境来运行(需要pytorch+cuda)。
2023-04-27 23:02:04 256 3
原创 InstantAvatar 运行Video
修改InstantAvatar/scripts/custom/run-openpose-bin.sh脚本中openpose的路径。修改InstantAvatar/scripts/custom/run-sam.py脚本中pth路径。下载后放入InstantAvatar/data/custom中,只需要images文件夹。其他视频要修改conf文件,和脚本中设置的文件名称。
2023-04-27 18:51:38 583 1
原创 AvartarCLIP运行详解 --2
生成pose,项目提供4种方式。在AvatarCLIP/AvatarAnimate下运行下面命令,使用4种不同的方法生成不同的动作,例如argue,run等,输出npy文件。下面需要错误,需要使用修改文件,以及添加变量解决,但生成pose的前两种方式依然运行不了。有以下错误,无法解决。
2023-04-27 16:03:01 757 2
原创 InstantAvatar排坑
PeopleSnapshot中需要将下载的文件放入对应文件夹。解压密码是ZXy84PVgFe。smpl文件放入新建的SMPLX/smpl文件夹中,要修改对应名称。##安装pytorch3d 如果脚本中没有安装成功的话。##运行项目中环境安装脚本。##注意要先更新pip。
2023-04-27 16:02:17 1355 4
原创 AvatarCLIP运行详解 --1
源项目使用V100 32g显存的卡来做的实验。我使用3090,24g显存和p100,16g显存进行项目搭建。粗略模型生成,保存在AvatarGen/ShapeGen/output/coarse_shape下。训练30000轮,需要32g显存,训练7.5h。#在 AvatarCLIP/AvatarGen/ShapeGen路径运行,生成.obj文件。json文件格式如下,第一个元素还有“camera_angle_x”,剩余每张图片个一个元素。#使用默认的smpl的基础模型进行雕刻,生成林肯。
2023-04-13 13:29:00 469
原创 AvatarCLIP配置排坑
特别注意:安装前检测nvcc,即cuda。如果自己安装cuda可能会有版本不对等问题,最好直接找个带nvcc的镜像。在运行下面的代码时,如果环境没问题较快就会生成.obj文件,若长时间等待则是因为显卡和上面那个项目不兼容的问题,并且也不会生成结果。这个项目很老,其中AvatarCLIP项目提供的已经可以适配高版本的pytorch(但还会有警报)在环境配置时,下面这三个可以直接在安装requirements.txt时一块自动安装。配置环境时不要用项目中给的方式安装pytorch。#用带cuda版本的方式。
2023-04-12 22:43:43 372 1
原创 c语言回顾4
折半查找:通过中间值来判断,如果值小于n往右半轴移动,大于则往左半轴。注意折半查找需要时有序表,时间复杂度时O(logn)。快排:时间复杂度O(logn),空间复杂度O(logn)。归并:时间复杂度O(logn),空间复杂度O(n)。冒泡:注意第二层循环截至是n-i-1。下面所有排序都是升序。
2023-03-25 14:14:28 62
原创 c语言回顾3
层次遍历:使用队列进行层次遍历,注意队列结构体形式。先初始化队列,然后将根节点root入队。如果队列不为空,则出队返回出队的BiTNode节点,输出值,并将它的左孩子和右孩子加入队列。非递归中序遍历:利用栈,若读入元素不为空将元素压入栈并往左走,当元素为空时,弹出栈并往右走,直到栈为空。建树: 树的结构体和链表类似,有左右孩子。建树使用递归方式建树,注意刷入数字的顺序。邻接矩阵:用二维矩阵表示边的关系,用一维数组保存顶点。遍历:先序,中序,后序的递归形式相似。
2023-03-24 20:56:07 64 1
原创 c语言回顾2
front是链表头 从front开始->node1->node2->rear。下面是线性栈实现方式,为了统一操做使用指针的方式声明结构体,使用前先申请空间,使用->来读取数据。在操做时,基本上都是使用LinkList这种指针形式,比如申请空间等。链队和链表类似,需要声明Node节点和Queue队列的结构体,因为都是用*的方式所以都统一用->头插法/尾插法:下面代码都是带头节点版本,注意先初始化头节点head-> next=NULL。注意:LinkList是指针(地址),但->指向的元素还是元素。
2023-03-24 15:18:24 67
原创 c语言回顾1
另一种导入string.h,使用strlen()获得字符串长度,获得是有值的长度不一定是char数组的长度。atoi是将char[10]转化成int的方法,只对数组有效,所以如果是一个字符则要先补成数组。%f:float带小数的结果,%lf是double,都可以指定位数。若在函数中设置为static静态变量,函数结束也不会释放空间,被修改的值仍然保存。p1=p2 指的是p1指向p2所指向的位置,所以原值不变(没带*,p1指的是地址)结构体声明:可以在最后具体声明使用的结构体,或者在使用时在声明赋值。
2023-03-22 13:32:17 150
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人