为了给视频里的人脸打码,我让 Claude 做了个 Skill

昨天跳完舞,想给视频里的其他人打码发布,又难到了我。

我首先想到的是剪映。它有人脸跟踪和局部打码功能,我之前也尝试用过,但画面里的人一多,处理起来就比较麻烦:需要逐个添加遮罩、调整跟踪,人物互相遮挡或者快速移动时,还容易出现跟丢和漏脸的情况。

更麻烦的是,我不是要把所有人都打码,而是要指定保留其中一个人。

如果视频只有几秒,手动处理也不是不行。但视频稍微长一点,画面里的人再多一点,光是逐个添加遮罩和检查有没有漏脸,就很折磨了。

我干脆把视频交给 Claude,让它想办法处理。

Claude 不仅把视频做出来了,还把整个过程整理成了一个可以重复使用的 Skill。

以后再遇到类似的视频,我只需要这样告诉 Claude/其他 Agent:"保留左边穿棕色衣服的人,其他人全部打码。"它就知道接下来应该怎么做。

这件事比"识别人脸"复杂一点

最直接的思路,是先用模型检测每一帧里的人脸,再在检测框内加上马赛克。听起来并不复杂,但如果只做到这一步,成片的效果通常不好。

人脸检测不是每一帧都稳定。人物侧脸、低头、被遮挡或者移动太快时,模型都可能短暂漏检。如果直接按照每一帧的检测结果打码,马赛克就会时有时无,不断闪烁,甚至偶尔露出完整的人脸。

所以,这个工作流没有停留在人脸检测,而是要把同一个人的检测框连接成一条连续轨迹。中间偶尔漏掉几帧,就根据前后帧的位置进行补齐,让马赛克能够持续跟着人物移动。

另一个问题是,怎么告诉 Claude 应该保留谁。

这里并不是让模型自动识别"这个人是我"。Claude 会先从视频里抽取几张参考画面,并给检测到的人脸加上编号。我只需要在其中一帧里指出要保留的人,脚本就会从这个位置向前、向后跟踪。正式渲染时,属于这个人的人脸框会从打码列表里排除,其他检测到的人脸继续打码。

这样,给 AI 比较模糊的一句话,就能实现人脸打码了,比如输入一句:

保留我框住的这个人,其他人全部打码。

中途还踩了一个 HDR 的坑

第一次处理出来的视频,人脸打码本身没有太大问题,但成片明显变灰、变白了,和原视频的颜色差别很大。

检查后才发现,源视频是手机拍摄的 HDR 素材。如果按照普通 SDR 视频的方式解码和重新编码,BT.2020、HLG 等色彩信息可能会丢失。播放器用错误的方式解释画面颜色,看起来就像视频被蒙上了一层灰。

为了解决这个问题,正式处理前需要先用 ffprobe 检查视频的色彩信息。如果检测到 HLG 或 HDR10,就换成适合 HDR 素材的处理方式,使用更高位深的管线和 HEVC 10bit 输出,同时把原视频的色彩元数据重新写回去。

重新处理后,视频的亮度和颜色才恢复正常。

由此可见,一套真正可以复用的视频处理流程,不能只包含核心功能,还得包含输入检查和结果验收。

我把这套流程整理成了一个 Skill

视频处理完成后,我顺手把这次用到的脚本、处理步骤和踩过的坑,整理成了一个 video-face-mosaic Skill。

这次整理的 Skill 已经放到了 GitHub:

video-face-mosaic Skill

如果你也有"视频里只保留一个人,其他人全部打码"的需求,可以直接拿去试试。

相关推荐
Martina_03216 小时前
AI生成的模块场景一烘焙就有黑边?用6步检查Lightmap UV、纹素密度与Padding
人工智能·游戏·3d·aigc·uv·游戏策划·关卡设计
熊猫钓鱼>_>6 小时前
从闲置平板到家里的“控制大脑“:鸿蒙智慧中控面板完整实战
运维·人工智能·华为·自动化·电脑·ai编程·harmonyos
accept 99%7 小时前
拆开Jev 的原理和本地跑法 Jev科普(二)
人工智能·机器学习
补码缩写7 小时前
视频跳转触发了seeked,画面就到位了吗
前端
johnsong7 小时前
125B模型装上桌面:AI推理主权革命与治理悖论
人工智能
库拉镜像AI牛牛7 小时前
漫剧工作室量产方案:依托知漫剧 AI 短剧降本增效
大数据·服务器·前端·人工智能·语音识别
狂野小白兔7 小时前
AI游戏制作04——Codex 搭配 Godot MCP 全流程教程
人工智能·游戏·godot
skywalk81637 小时前
deepseek harness 官方已经更新到新版:v0.2.1-alpha.1 Pre-release请把咱们的FreeBSD版本也同步更新到新版本!
人工智能·freebsd·实践·deepseek·harness
不可能片场7 小时前
内容运营自动化 用相似度拦住撞车选题
前端·electron
静默回滚7 小时前
视频进度条跳回去,先别改事件监听
前端