如何替换视频中的人脸:靠精准抠图匹配帧画面完成替换
前段时间帮朋友处理短视频素材,折腾了整整一下午研究如何替换视频中的人脸,踩了一堆实打实的操作漏洞,没有花里胡哨的技巧,全是一步步试出来的实操办法,能用,但有明显的局限性。
最开始压根没考虑视频帧的问题,直接找了个图片换脸的工具,想着视频就是连续的图片,直接导入素材一键替换就行。导入完整视频、上传备用人脸照片,点击开始处理后,等待了十几分钟,出来的成品彻底没法看。人脸勉强换上去了,但只要视频里人物转头、眨眼、轻微晃动,换上去的脸就会错位、扭曲,五官直接拉扯变形,画面卡顿又违和,完全衔接不上原视频的动作。
很多人都会犯这个低级错误,把视频换脸等同于图片换脸。视频的核心是动态帧,每一秒都有十几二十帧画面,单一静态人脸贴图,根本跟不上动态的面部变化。
当时急着出成片,没时间慢慢钻研专业软件的复杂参数,只能临时调整操作逻辑。放弃了一键全自动换脸工具,改用逐帧适配的剪辑方式,先把原视频拆解成单帧图片。普通剪辑软件就能完成这个操作,导入视频后选择帧导出,按照原视频帧率,导出全部画面图片,整个过程不需要手动操作,软件自动批量完成。
导出所有帧画面之后,用轻量化AI抠图工具,只针对每一帧的人脸区域做替换处理。没有对整张图片做改动,仅仅精准框选出原视频人物的脸部范围,匹配备用人脸的五官角度、大小、肤色。这里很关键,不能直接平铺贴图,要根据每一帧人物的侧脸角度、抬头低头的幅度,微调新人脸的透视比例,不然每一帧的脸都会突兀怪异。
操作到一半发现新的问题,手动逐帧调整太慢,一分钟的短视频有上千帧,根本不可能全部手动修改。摸索出一个省力的方式,只改动关键动作帧。人物正面、转头、低头、抬头这几个关键动作的画面单独微调,中间过渡的细微晃动帧,交给软件的智能补帧功能自动适配,大大缩减了操作时间。
处理完所有需要修改的帧画面后,把全部修改好的图片重新导入剪辑软件,按照原本的帧顺序拼接合成视频。合成之后,还要统一调整整体色调和光影。原视频有自然光或者灯光的明暗变化,新人脸的光影是固定的,不调整的话,脸部亮度、色温和身体画面脱节,一眼就能看出是后期替换的。
整个流程走下来,成品没有了扭曲错位的问题,动态画面基本自然,日常短视频、普通素材使用完全够用。
这个方法有很明显的短板,没办法处理大幅度面部动作的视频。如果原视频里人物大笑、张嘴说话、大幅度侧脸,智能补帧会失效,依旧会出现人脸糊边、五官错位的情况。而且全程处理下来,视频画质会有轻微压缩损耗,没法保留原片的高清质感。
最后做完所有调试,导出了1080P分辨率的成品视频,保存了整套帧导出、改帧、合成的操作预设,方便下次直接套用。