展开本页目录
开始前准备什么
- 把本题ZIP解压到独立目录,保留原始文件与README中的素材身份。
- 模型步骤需在官方支持的隔离环境、相应权重与硬件中运行;本包不含权重,不承诺Apple本机支持CUDA。
- 本地文件检查使用Python、NumPy/Pillow或Blender;模型运行与素材/格式校验是分开的证据。
- 先给两个实体建立身份表
- 用官方多对象视频状态处理一段视频
- 为每个obj_id检查独立的正点
- 使用multi模式传播两条对象轨
- 重点回看相交与前后遮挡区
- 分开统计完整性与身份一致性
- 交付两路原始mask及身份说明
1. 先给两个实体建立身份表
播放input.mp4,确认ID 1在首帧画面右侧、ID 2在首帧画面左侧,两者随后交叉;ID 2略在后方。ID 1与ID 2是你给实体的稳定编号,不是模型识别人名,也不应每帧按左右位置重新编号。
2. 用官方多对象视频状态处理一段视频
复用一个inference_state,在同一个视频状态里添加两组提示。本题使用SAM 2.1小模型配置;不要每个对象重新打开视频后再凭文件夹名称猜对应关系。官方图是项目数据示例,非本次预测。
3. 为每个obj_id检查独立的正点
prompts.json列出两个objects;对照point-prompts.png确认每点落在对应实体。两只物体交叠时,首帧只要彼此可见即可建立ID;点位不能复用同一个像素后期待自动分开。
commands.md
bash extract-frames.sh
python run-sam-video.py --frames frames --checkpoint /path/to/sam2.1_hiera_small.pt --mode multi --out actual-sam-two-objects4. 使用multi模式传播两条对象轨
脚本把每帧返回的object_ids和logits逐一配对,再分别写object-1与object-2。用模型返回ID寻址,不按数组第0项永远代表左边物体,也不把两份相同mask重命名成两轨。
5. 重点回看相交与前后遮挡区
打开第18帧对应的两张实际mask并叠回原图。核对首帧指定的ID 1/ID 2对应实体,检查被遮挡部分是否被错误补成另一个实体;区域被遮住不等于可以擅自画出不可见结构。
6. 分开统计完整性与身份一致性
每路应有36张640×360蒙版;run.json保存每帧对象ID和面积。面积突变、两路完全相同、两路大面积重叠都是待检查信号,不凭数量通过就认定跟踪正确。
7. 交付两路原始mask及身份说明
保留原片、prompts、模型配置、两路mask和review.csv。若交叉帧身份交换,标记失败并进入补点修正,不在导出时交换文件夹名称来掩盖错误。
怎样确认已经完成
- 原始输入、人工参考、官方示例和实际模型输出标识分开。
- 保存真实帧号/坐标/对象ID或几何版本,不只凭文件能打开判断质量。
- 模型未运行时保留not-executed,不把参考文件复制更名为成功结果。
常见问题
SAM 2多个物体各导一轨和普通视频抠像有什么不同?
每个实体有稳定的obj_id和独立PNG序列;本题专门检查交叉时身份是否互换。只导出一张所有前景的合并mask不能满足这个任务。
视频多人分别抠像会识别每个人的姓名吗?
不会。ID是使用者指定的对象标签,不能当作身份识别结果。练习采用两只原创玩具,避免把匿名跟踪标签写成人名。
某一路面积变成0是否一定失败?
先看原帧。实体完全被挡住或出画时,空区域可能合理;实体仍可见却突然为空,才需要定位相应帧检查。




