SuperAPI AI 工具集

object-separation

设计与创作

查看项目

更新于 10-15 17:24

技能介绍

用途:从视频中分离出单个主体(人物、产品或手),在用户本机运行,不联网上传。结果是一段用绿色高亮主体的视频,外加逐帧掩码文件,便于确认分离范围。

主要能力:先扫描机器(系统、GPU、显存),据此选择模型;按帧区间处理视频,支持在多帧范围内传播掩码;把结果渲染成带绿色高亮和边缘描边的视频,并保留原音频;同时把每帧掩码保存为 PNG(白色为主体)。

使用方式:需要 Python 3.10+ 和 ffmpeg,建议用虚拟环境安装依赖。示例命令为 python3 -m venv .object-separation,随后用该环境的 pip 安装 torch、transformers、opencv-python-headless、pillow、numpy。Windows 使用 .object-separation\Scripts\pip,NVIDIA 显卡建议先装 CUDA 版 torch。模型按显存选择:12 GB+ 用 facebook/sam2.1-hiera-large,显存不足或 Apple Silicon 用 base-plus,纯 CPU 用 tiny。代码中设置 VIDEO、START、END、点击点和标签(1 为主体、0 为排除),可先在起始帧上生成带网格的预览图选点,先跑约 20 帧验证再跑全段。输出为 work/separated.mp4 和 work/masks/subject/。若可变帧率,可先用 ffmpeg -i in.mp4 -vsync cfr -r 30 out.mp4 转换。

适用场景:需要本地、隐私友好地抠出视频主体并保留掩码,用于后续替换背景或合成。

限制:CPU 处理约每帧 5 秒,10 秒 30fps 视频约需半小时,建议只处理需要的片段;掩码边缘较硬,对发丝等柔软边缘效果一般;与主体粘连的包装或膜会被算作主体,需要额外加标签 0 的点排除;首次运行需要联网下载模型。