warmshao / FasterLivePortrait

Bring portraits to life in Real Time!onnx/tensorrt support!实时肖像驱动!
455 stars 42 forks source link

关于出现Windows版本运行camera.bat出现cv:resize错误的解决方法分享。 #38

Closed leetraman822 closed 1 month ago

leetraman822 commented 1 month ago

感谢warmshao大佬制作的windows一键整合包♥。 关于曾经在使用win整合包时出现过cv:resize的错误,我曾在https://github.com/warmshao/FasterLivePortrait/issues/27讨论过。 最后我找到了真正的解决方法😂。 其实出现这个问题的根本原因是:摄像头内没有人脸⚠。 是的,如果画面中没有人脸,那么不管启用的是用真实摄像头还是虚拟摄像头,都会出现cv:resize的错误😔。 所以,当你启动camera.bat时: 1.请确保你的摄像头已经启用✔ 2.你的头部完完整整的处于画面内✔ 3.这样就会成功运行开始render✔ (如果还出现resize错误,可能是人脸暂时没有识别到,请调整好脸部角度,睁大眼睛👀,多运行几次camera.bat,这个方法是可行的。)

当时我为这个问题困扰了好长时间,我想着“明明电脑连接着摄像头,怎么就有时候能运行,有时候就resize出错呢,是不是我电脑里有多个摄像头驱动导致没有成功输入摄像头画面?”,我卸载了所有的虚拟摄像头,只使用网络摄像头,还是出错,给我整的一头雾水。 直到我决定把摄像头对准我的脸,然后启动camera.bat,就成功运行了,同时我又尝试了虚拟摄像头,依旧成功运行,终于找到了问题所在。 希望能帮到遇到相同错误的伙伴。

warmshao commented 1 month ago

感谢warmshao大佬制作的windows一键整合包♥。 关于曾经在使用win整合包时出现过cv:resize的错误,我曾在https://github.com/warmshao/FasterLivePortrait/issues/27讨论过。 最后我找到了真正的解决方法😂。 其实出现这个问题的根本原因是:摄像头内没有人脸⚠。 是的,如果画面中没有人脸,那么不管启用的是用真实摄像头还是虚拟摄像头,都会出现cv:resize的错误😔。 所以,当你启动camera.bat时: 1.请确保你的摄像头已经启用✔ 2.你的头部完完整整的处于画面内✔ 3.这样就会成功运行开始render✔ (如果还出现resize错误,可能是人脸暂时没有识别到,请调整好脸部角度,睁大眼睛👀,多运行几次camera.bat,这个方法是可行的。)

当时我为这个问题困扰了好长时间,我想着“明明电脑连接着摄像头,怎么就有时候能运行,有时候就resize出错呢,是不是我电脑里有多个摄像头驱动导致没有成功输入摄像头画面?”,我卸载了所有的虚拟摄像头,只使用网络摄像头,还是出错,给我整的一头雾水。 直到我决定把摄像头对准我的脸,然后启动camera.bat,就成功运行了,同时我又尝试了虚拟摄像头,依旧成功运行,终于找到了问题所在。 希望能帮到遇到相同错误的伙伴。

感谢反馈,我后面会增加没有人脸时候的处理🫡

leetraman822 commented 1 month ago

https://github.com/user-attachments/assets/d0824633-08f8-4168-b59d-6f09ac9e208c

我刚才尝试了将render输出画面粘贴到完整尺寸原图的玩法。 我使用了OBS进行辅助。 首先我稍微改了一下run.py,将render调整为仅显示输出画面。 然后我使用OBS添加了完整尺寸的原始图片,并添加了render窗口捕获。 接着我为render窗口添加了蒙版遮罩滤镜,加载FasterLivePortrait\assets\mask_template.png图像作为蒙版文件,这样就使窗口的边缘进行了一些羽化。 最后将render窗口与原图进行变换对齐。

因为我对代码不是非常懂,所以我不知道怎么在原始项目中编辑代码、将输出结果直接粘贴回图像原位,于是就突然想到了这个笨方法。😂