为了给视频里的人脸打码,我让 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

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

相关推荐
张建飞(Frank)19 小时前
从零构建Agent(十):Model管理
人工智能·agent
沐曦股份MetaX19 小时前
沐曦股份亮相CCF第三届算力活动:重磅发布Token算力普惠计划,赋能科研新时代
人工智能·科技·ai·开源·gpu算力
趣味科技v20 小时前
开发周期从“周”到“天”:创想三维用AI重写研发节奏
人工智能·创想三维
用户693717500138420 小时前
我买的电视,我还不能研究它吗?
前端·后端·ai编程
中电金信20 小时前
开发更高效、监控更实时、运维更省心,源启数据开发平台构筑一站式数据开发新底座
网络·数据库·人工智能
科技云报道20 小时前
从佩戴到交互全面升级:乐奇Rokid发布Rokid Glasses 2,让AI眼镜更自然地融入日常
人工智能
小亮_money20 小时前
Agent开发工程师-Python环境搭建
人工智能·python
Hilaku20 小时前
删了一个没用的 console.log,生产环境直接崩了!
前端·javascript·程序员
rolt20 小时前
04 ESLint和Dijkstra-评点茹炳晟文章中的一段话
人工智能·软件工程·ddd·领域驱动设计·敏捷开发
计算机魔术师20 小时前
Latent Space 解读 Anthropic 提交 S-1:拟以代码 AN 上市纳斯达克,H1 2026 营收 16.3B 美元
前端