news 2026/6/9 22:05:32

EGSTalker踩坑日记第一弹

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
EGSTalker踩坑日记第一弹

本文只针对25.4.30版本的EGSTalker仓库

一、环境配置

因为一直习惯于把项目zip拉下来上传服务器所以遇到了第一个问题,在服务器上没有办法执行这条指令(本地执行了也没效果不知道为啥)

gitsubmodule update --init --recursive

解决方法:

#在github上找到.gitmodules文件,自行下载到指定位置就可以了[submodule"submodules/custom-bg-depth-diff-gaussian-rasterization"]path=submodules/custom-bg-depth-diff-gaussian-rasterization url=https://github.com/joungbinlee/custom-bg-depth-diff-gaussian-rasterization.git[submodule"submodules/simple-knn"]path=submodules/simple-knn url=https://github.com/camenduru/simple-knn.git

下载后执行即可

pipinstall-e submodules/custom-gaussian-rasterization pipinstall-e submodules/simple-knn

二、数据预处理

原本的数据处理代码process.py的第六部分

ifopt.task==-1 or opt.task==6: extract_torso_and_gt(base_dir, ori_imgs_dir)

在保存之前缺少了文件夹创建步骤,而且这里不会报错!!!

#创建文件夹folder_path=os.path.dirname(image_path.replace('ori_imgs','torso_imgs').replace('.jpg','.png'))os.makedirs(folder_path,exist_ok=True)#在这段代码之前增加上述代码cv2.imwrite(image_path.replace('ori_imgs','torso_imgs').replace('.jpg','.png'),np.concatenate([torso_image,torso_alpha],axis=-1))

三、Train部分

本人python基础比较差因此很少在__init__.py里面做动作,但在这个项目里__init__.py包含了较多操作,这导致本人在运行时,默认执行地址会被改成

/home/xxx/miniconda3/envs/egstalker/lib/python3.9/site-packages/ikan

因此使用相对路径索引时,比如模型存储位置我写成model时,实际的绝对路径会变成

/home/xxx/miniconda3/envs/egstalker/lib/python3.9/site-packages/ikan/model

这导致了在运行过程中出现很多找不到文件的程序错误和找不到输出在哪的人类错误。解决方案如下:

#在train.py的main的最开始更改路径if__name__=="__main__":os.chdir(sys.path[0])

但还是会零星报一些找不到文件的错误,只需要在相应位置之前写入上述更改路径代码即可。
这里我觉得应该有一劳永逸的方法,但正如我最开始所说的,本人python基础不好,外加时间有限,干脆蠢蛋做法。

四、Inference with Custom Audio

Readme里面的示例代码给的是,如果按照示例跑的训练,iteration那里要删一个0

python render.py -s${YOUR_DATASET_DIR}/${DATASET_NAME}\--model_path${YOUR_MODEL_DIR}\--configs configs/egstalker_default.py\--iteration10000\# 训练的示例给的是1000,这里多一个零,如果是按训练跑的要删掉--batch16\--custom_aud<custom_aud>.npy\--custom_wav<custom_aud>.wav\--skip_train\--skip_test

另外就是render.py执行到这里会报一个索引越界的错误

ifname!='custom':model_name=model_path.split("/")[-2]iflen(model_path.split("/"))>=2else"/root/autodl-tmp/GaussianTalker/trained_model"print("model_path:", model_path)cmd=f'ffmpeg -loglevel quiet -y -i {gts_path}/gt.mp4 -i {inf_audio_dir} -c:v copy -c:a aac {gts_path}/{model_path.split("/")[-2]}_{name}_{iteration}iter_gt.mov'os.system(cmd)cmd=f'ffmpeg -loglevel quiet -y -i {render_path}/renders.mp4 -i {inf_audio_dir} -c:v copy -c:a aac {render_path}/{model_path.split("/")[-2]}_{name}_{iteration}iter_renders.mov'os.system(cmd)ifname!='custom':os.remove(f"{gts_path}/gt.mp4")os.remove(f"{render_path}/renders.mp4")

报错内容

Traceback(most recent call last): File"/home/xxx/xxx/EGSTalker-main/render.py", line231,in<module>render_sets(model.extract(args), hyperparam.extract(args), args.iteration, pipeline.extract(args), args)File"/home/xxx/xxx/EGSTalker-main/render.py", line163,inrender_sets render_set(dataset.model_path,"custom", scene.loaded_iter, scene.getCustomCameras(), gaussians, pipeline, audio_dir, batch_size)File"/home/xxx/xxx/EGSTalker-main/render.py", line134,inrender_set write_frames_to_video(tensor_to_image(image_tensor),render_path+'/renders', use_imageio=True)IndexError: list index out of range

这非常的玄学,盲猜是自己服务器的问题和项目无关,每次超出索引的代码位置还不一样,感觉像是程序执行过程中内存访址的问题,这里插个眼以后有空深研究一下。目前为了程序顺利执行,直接在这段之前return了,然后自行拼的音频。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 15:39:04

24、文本处理工具的使用与技巧

文本处理工具的使用与技巧 在日常的文本处理工作中,我们常常需要对文件进行排序、去重、提取特定部分等操作。下面将详细介绍一些常用的文本处理工具及其使用方法。 1. 非传统分隔符文件的排序 有些文件并不使用制表符(tabs)和空格作为字段分隔符,例如 /etc/passwd 文…

作者头像 李华
网站建设 2026/6/10 14:08:27

JoyAgent-JDGenie项目业务逻辑梳理

📌 查看流程图说明 本文档使用 Mermaid 语法绘制流程图。如果流程图无法正常显示,请使用以下方式查看: VS Code: 安装 “Markdown Preview Mermaid Support” 扩展 GitHub/GitLab: 直接查看,自动支持 Mermaid 在线编辑器: 访问 Mermaid Live Editor 复制代码查看 Typora: …

作者头像 李华
网站建设 2026/6/4 22:04:00

WebRTC架构详解:实现浏览器实时通信的技术核心

1 引言&#xff1a;WebRTC概述WebRTC&#xff08;Web Real-Time Communication&#xff09;是一项支持网页浏览器进行实时音视频通信的开源技术项目。它允许网络应用或站点在不借助中间插件的情况下&#xff0c;建立浏览器之间的点对点&#xff08;P2P&#xff09;连接&#xf…

作者头像 李华
网站建设 2026/6/8 13:51:15

直接开整!咱今天唠唠怎么用维纳过程预测设备寿命,手把手带代码那种。准备好你的Python环境,咱们从数据生成一路干到参数更新

基于维纳过程模型的剩余使用寿命预测 1.蒙特卡洛方法模拟部件的退化轨迹代码 2.线性维纳模型预测剩余使用寿命的代码及文章参考 3.非线性维纳模型预测剩余使用寿命的代码及文章参考 4.MLE估计算法代码 5.卡尔曼滤波算法更新参数代码。 6.贝叶斯参数更新蒙特卡洛造点退化数据先整…

作者头像 李华