Fictionarry / ER-NeRF

[ICCV'23] Efficient Region-Aware Neural Radiance Fields for High-Fidelity Talking Portrait Synthesis
https://fictionarry.github.io/ER-NeRF/
MIT License
894 stars 124 forks source link

视频预处理的问题 #41

Open owenmao opened 9 months ago

owenmao commented 9 months ago

1 自己的视频经过crop到450*450,在process.py处理之后的parsing目录下的分割结果很奇怪(如下图所示,前两张为parsing, 后面一张为torso_imgs),没有demo中obama的视分割的那么干净。

请问输入的视频是否有有什么要求? obama的视频是否经过什么预处理? 对高分辨率视频是否要裁剪? 视频中人物全身的躯干是否可以?

2 在处理视频 步骤 python data_utils/face_tracking/face_tracker.py 中, 运行到 print(f'[INFO] fine frame-wise fitting...')阶段 在中经常遇到一个报错,应该来自pytorch3d Bin size was too small in the coarse rasterization phase. This caused an overflow, meaning output may be incomplete. To solve, try increasing max_faces_per_bin / max_points_per_bin, decreasing bin_size, or setting bin_size to 0 to use the naive rasterization. 这个问题在很多视频中出现,导致在process.py阶段出错。是不是对视频预处理有要求?

0 206

Fictionarry commented 9 months ago

目前只对类似obama的人像占比的一些视频进行了测试,预处理阶段都没有出什么大问题,除裁剪和缩放不需要额外的处理,人像和背景区别明显的视频效果会更好。您给出的这种人像比例目前的预处理流程不一定支持,可能会因为头部比例过小或其他原因产生各种各样不可预估的问题,若需在其余人像占比的情况下使用请自行调整整体流程

owenmao commented 9 months ago

上面原始照片中背景是单一色,和人像区别还是比较明显的。测试了其他几个视频后,有分割效果较好的。如下所示: 12 12

在代码中的关于parsing的部分: def extract_semantics(ori_imgs_dir, parsing_dir): print(f'[INFO] ===== extract semantics from {ori_imgs_dir} to {parsing_dir} =====') cmd = f'python data_utils/face_parsing/test.py --respath={parsing_dir} --imgpath={ori_imgs_dir}' os.system(cmd) print(f'[INFO] ===== extracted semantics =====')

如果对头部和身体躯干分割的不好,后面生成结果很差,也会有其他问题, 包括上面提到的: Bin size was too small in the coarse rasterization phase..... try increasing max_faces_per_bin / max_points_per_bin....

所以能把这个头像和躯干分割的像obama视频那样的干净,效果应该会更好。 请问作者, 在上述的 test.py代码中的模型(79999_iter.pth)或者其他阈值可以调整来改进,对头部和躯干的分割效果

目前看可能是光线问题, 对视频拍摄和调光要求比较高,还在学习调试中...

Fictionarry commented 9 months ago

上面原始照片中背景是单一色,和人像区别还是比较明显的。测试了其他几个视频后,有分割效果较好的。如下所示: 在代码中的关于parsing的部分: def extract_semantics(ori_imgs_dir, parsing_dir): print(f'[INFO] ===== extract semantics from {ori_imgs_dir} to {parsing_dir} =====') cmd = f'python data_utils/face_parsing/test.py --respath={parsing_dir} --imgpath={ori_imgs_dir}' os.system(cmd) print(f'[INFO] ===== extracted semantics =====')

如果对头部和身体躯干分割的不好,后面生成结果很差,也会有其他问题, 包括上面提到的: Bin size was too small in the coarse rasterization phase..... try increasing max_faces_per_bin / max_points_per_bin....

所以能把这个头像和躯干分割的像obama视频那样的干净,效果应该会更好。 请问作者, 在上述的 test.py代码中的模型(79999_iter.pth)或者其他阈值可以调整来改进,对头部和躯干的分割效果

目前看可能是光线问题, 对视频拍摄和调光要求比较高,还在学习调试中...

语义分割是比较关键的一步,模型和权重均来源于 https://github.com/zllrunning/face-parsing.PyTorch 。他们的权重是在CelebAMask-HQ数据集上训练得到的,输入的数据应尽可能跟原数据集一致,偏离太大不能保证分割效果。想分割全身的话可以试试换个模型

另外目前长发的效果不好,会有比较大的问题

dizhenx commented 8 months ago

上面原始照片中背景是单一色,和人像区别还是比较明显的。测试了其他几个视频后,有分割效果较好的。如下所示: 在代码中的关于parsing的部分: def extract_semantics(ori_imgs_dir, parsing_dir): print(f'[INFO] ===== extract semantics from {ori_imgs_dir} to {parsing_dir} =====') cmd = f'python data_utils/face_parsing/test.py --respath={parsing_dir} --imgpath={ori_imgs_dir}' os.system(cmd) print(f'[INFO] ===== extracted semantics =====') 如果对头部和身体躯干分割的不好,后面生成结果很差,也会有其他问题, 包括上面提到的: Bin size was too small in the coarse rasterization phase..... try increasing max_faces_per_bin / max_points_per_bin.... 所以能把这个头像和躯干分割的像obama视频那样的干净,效果应该会更好。 请问作者, 在上述的 test.py代码中的模型(79999_iter.pth)或者其他阈值可以调整来改进,对头部和躯干的分割效果 目前看可能是光线问题, 对视频拍摄和调光要求比较高,还在学习调试中...

语义分割是比较关键的一步,模型和权重均来源于 https://github.com/zllrunning/face-parsing.PyTorch 。他们的权重是在CelebAMask-HQ数据集上训练得到的,输入的数据应尽可能跟原数据集一致,偏离太大不能保证分割效果。想分割全身的话可以试试换个模型

另外目前长发的效果不好,会有比较大的问题

现在什么工具做语义分割比较好?感觉这个分割太挑剔

souyang11 commented 5 months ago

上面原始照片中背景是单一色,和人像区别还是比较明显的。测试了其他几个视频后,有分割效果较好的。如下所示: 在代码中的关于parsing的部分: def extract_semantics(ori_imgs_dir, parsing_dir): print(f'[INFO] ===== extract semantics from {ori_imgs_dir} to {parsing_dir} =====') cmd = f'python data_utils/face_parsing/test.py --respath={parsing_dir} --imgpath={ori_imgs_dir}' os.system(cmd) print(f'[INFO] ===== extracted semantics =====') 如果对头部和身体躯干分割的不好,后面生成结果很差,也会有其他问题, 包括上面提到的: Bin size was too small in the coarse rasterization phase..... try increasing max_faces_per_bin / max_points_per_bin.... 所以能把这个头像和躯干分割的像obama视频那样的干净,效果应该会更好。 请问作者, 在上述的 test.py代码中的模型(79999_iter.pth)或者其他阈值可以调整来改进,对头部和躯干的分割效果 目前看可能是光线问题, 对视频拍摄和调光要求比较高,还在学习调试中...

语义分割是比较关键的一步,模型和权重均来源于 https://github.com/zllrunning/face-parsing.PyTorch 。他们的权重是在CelebAMask-HQ数据集上训练得到的,输入的数据应尽可能跟原数据集一致,偏离太大不能保证分割效果。想分割全身的话可以试试换个模型

另外目前长发的效果不好,会有比较大的问题

请问有全身的视频如何处理呢,能直接训练么?如果不行的话有什么方法么?因为希望能够看到全身的效果。

a3131919 commented 1 month ago

当前这个项目并未开源支持半身的视频。

owenmao commented 1 month ago

关于人体的语义分割mask,使用了其他方法,可以支持全身和高分辨率(1920*1080)

Athicbliss commented 1 month ago

关于人体的语义分割mask,使用了其他方法,可以支持全身和高分辨率(1920*1080) 大佬 能告诉一下用了哪个语义分割方法嘛

qwert1887 commented 1 week ago

@owenmao 大佬,语义分割还有其他啥方法,可以指点一下吗。拜谢