news 2026/9/24 22:12:41

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/9/24 0:35:16

AI 如何从配置历史与变更日志中推理出“变更引发的故障”——自动化根因分析的因果推理引擎

AI 如何从配置历史与变更日志中推理出“变更引发的故障”——自动化根因分析的因果推理引擎在超大规模网络的运维世界里&#xff0c;最令人心悸的时刻&#xff0c;往往不是监控屏上一片飘红的“宕机”&#xff0c;而是监控指标一片祥和&#xff0c;业务投诉却如雪片般飞来。这是…

作者头像 李华
网站建设 2026/9/24 0:35:03

21、数据存档、备份与正则表达式应用全解析

数据存档、备份与正则表达式应用全解析 1. 数据存档与备份工具 在数据管理中,存档和备份是至关重要的操作,能确保数据的安全性和可恢复性。以下将介绍几种常用的工具及其使用方法。 1.1 tar 工具 现代 GNU tar 版本支持直接使用 gzip 和 bzip2 压缩。使用 z 和 j 选项,分…

作者头像 李华
网站建设 2026/9/24 0:34:50

子公司组织结构图绘制 母公司管控关系可视化

在企业规模化、多元化发展的进程中&#xff0c;集团型企业往往会通过设立子公司、分公司等形式拓展业务边界。子公司作为集团战略落地的重要载体&#xff0c;其组织结构的合理性直接影响运营效率&#xff1b;而母公司与子公司之间的管控关系&#xff0c;更是决定集团资源配置、…

作者头像 李华
网站建设 2026/9/24 7:06:34

WebSocket架构详解:从协议原理到企业级应用实践

1 引言&#xff1a;为什么需要WebSocket&#xff1f;在实时交互需求爆发的今天&#xff0c;传统的HTTP轮询已难以满足低延迟、高并发的场景要求。WebSocket作为HTML5的核心协议之一&#xff0c;通过全双工长连接实现了服务端与客户端的主动通信&#xff0c;成为实时系统的首选方…

作者头像 李华
网站建设 2026/9/23 17:12:40

KDTREE based RRT*类型注释版本

以下是添加了类型标注的代码&#xff1a; from typing import List, Tuple, Optional, Any import numpy as np import matplotlib.pyplot as plt from scipy.spatial import KDTree import math import randomclass Node:"""RRT*节点类"""def …

作者头像 李华
网站建设 2026/9/24 7:06:17

Web第三周

本文章写与2025年12月 1.初步了解数据库&#xff08;MySQL&#xff09; MySQL 是目前最流行的开源关系型数据库管理系统&#xff08;RDBMS&#xff09; 之一&#xff0c;广泛应用于 Web 开发、数据分析、后端服务等场景&#xff0c;以轻量、高效、易用、免费&#xff08;社区版…

作者头像 李华