ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Jasna 马赛克修复选型手册:6 个检测模型与 3 个阈值,新手 3 分钟快速定稿

Jasna 马赛克修复选型手册:6 个检测模型与 3 个阈值,新手 3 分钟快速定稿

Jasna 马赛克修复选型手册:6 个检测模型与 3 个阈值,新手 3 分钟快速定稿

【免费下载链接】jasnaVideo restoration tool项目地址: https://gitcode.com/GitHub_Trending/ja/jasna

Jasna 是一款开源的视频马赛克修复工具:检测模型先逐帧圈出马赛克位置,修复模型再重建画面。开始处理前你要做的决策只有一组——6 个检测模型选哪个、3 个阈值动不动。一句话结论:没有特殊需求就用默认rfdetr-v6——它已内置(detection_registry.py 中DEFAULT_DETECTION_MODEL_NAME = "rfdetr-v6"),576 分辨率推理、动态批处理,是速度与综合效果的平衡点。下面先讲怎么验证效果对不对,再给选型表和调参方法。

🧪 先建立验证方法:3 种症状判断"检测不对"

选型之前先确定"什么算对"。检测只有三种失败形态,每种对应一个参数,记方向比记数值重要:

症状(你在成片里看到什么)属于哪种错误该动哪个参数
修复后的帧里马赛克仍可见漏检--detection-score-threshold调低
没马赛克的区域被圈出来,成片出现色斑误检--detection-score-threshold调高
马赛克一直在,修复区域却一明一暗逐帧闪烁检测时断时续--max-detection-gap/--min-detection-duration

两个验证工具让判断有据可依:

  • 短片段试跑:从素材里截 30 秒马赛克最典型的片段,只跑这一段(命令见后文),逐帧对比原片。全片的任何参数问题都能在这 30 秒里暴露。
  • 马赛克扫描:GUI 区间编辑器里的 GPU 加速预检,支持逐帧或每 0.25–2 秒扫描一次,RTX 5090 上约 2000 FPS,扫完可拖动阈值滑块实时看检测框增减(流程见 docs/zh/segments.md)。扫描时设定的检测模型与阈值会单独记住给该视频,并直接用于最终处理,不会干扰队列里的其他视频。

🎯 模型选型:按"显卡 + 素材"对号入座

Jasna 有 RF-DETR 与 YOLO 两个后端共 6 个检测模型,注册定义在 detection_registry.py。先看你手里有什么,再看要处理什么:

你的情况选哪个关键规格一句话理由
NVIDIA,普通 1080p 及以下视频rfdetr-v6(内置,默认)576 分辨率,阈值 0.35官方默认,最快且综合表现最好
NVIDIA,4K / 4K VR,漏检等不起rfdetr-v6-large(需下载放入 model_weights/)768 分辨率,阈值 0.40更大模型漏检更少,代价是更慢
VR180 左右并排宽幅画面rfdetr-vr-v1(内置)768 分辨率,阈值 0.40专为 VR180 训练;zelefans-vr-yolo-v2可作备用
2D 动画风格画面lada-yolo-v4(需下载)640×640 letterbox,阈值 0.25YOLO 后端对动画风格马赛克识别更稳
AMD 显卡、速度优先lada-yolo-v4同上模型轻量且不涉及引擎编译,官方明确建议在 AMD 上速度比质量重要时选它(docs/zh/models.md)
AMD 显卡、质量优先rfdetr-v6576 分辨率AMD 上 RF-DETR 以 torch 方式直跑.pt权重,比 NVIDIA 同模型慢,可用但接受耗时

三个决定运行形态的事实:

  • NVIDIA 与 AMD 的权重格式不同:Jasna 按显卡厂商自动匹配——NVIDIA 加载 RF-DETR 的.onnx并编译成 TensorRT 引擎(rfdetr.py),YOLO 系同样可编译 TensorRT 引擎;AMD 则加载.pt权重直接用 torch 跑在显卡上(rfdetr_torch_runner.py)。你不用手动选,但要知道 AMD 上 RF-DETR 路径更慢。
  • 批处理大小有默认值:NVIDIA 默认 batch 4,AMD 默认 batch 8(default_detection_batch_size()),一般无需动。
  • 内置只有两个:rfdetr-v6和rfdetr-vr-v1随 Jasna 附带;其余模型(rfdetr-v6-large、rfdetr-v5、YOLO 系)放进model_weights/后,GUI 的下拉框和 CLI 的--detection-model会自动发现。rfdetr-v5是旧版(固定 batch 4、阈值 0.25),仍受支持,新任务没有理由选它。

速度参考:官方基准(scripts/benchmark_scan_backends.py)在 RTX 5090、默认配置(rfdetr-v6 + fp16 + batch 4)下的逐帧扫描吞吐量——1080p 约 830 FPS,4K 约 490–720 FPS,8K VR 约 170–217 FPS(原始数据见 benchmarks/2026-07-21_v0.8.2_scan_decode_backends.md)。检测这一步很快,瓶颈通常不在这里。

🎛️ 调参手册:3 个参数各按"现象 → 怎么调 → 怎么验证"三步走

三个参数都有合理默认值,只有输出不对时才需要碰。

1. 置信度--detection-score-threshold(默认取各模型推荐值)

  • 现象:成片里还能看到马赛克(漏检)。
  • 怎么调:向下调约 0.05–0.10。rfdetr-v6默认 0.35,可先降到 0.28–0.30;各模型推荐基线为rfdetr-v60.35、rfdetr-v6-large/rfdetr-vr-v10.40、YOLO 系 0.25。反方向是误检(正常画面被圈、成片色斑),则调高,例如 0.35 → 0.42。
  • 怎么验证:重跑同一段 30 秒短片段。漏检方向上,原先漏掉的区域应被覆盖——如果误检同时变多,说明降过头,回调 0.05 再试;误检方向上,误检应明显减少且没有引入新的漏检。

2. 断档填补--max-detection-gap(默认 2)

  • 现象:马赛克大部分时间都被检测到,中间断几帧,修复区域闪烁。
  • 怎么调:调大到 3–5。它会在同一位置重新出现时,填补最多 N 帧的检测中断。
  • 怎么验证:暂停到原先闪烁的帧,确认检测框已连续覆盖,且没有把本来该消失的临时框错误补出。

3. 最短时长--min-detection-duration(默认 2)

  • 现象:某位置瞬间误检一下,成片出现一闪而过的色斑。
  • 怎么调:调大到 3–5。它会丢弃持续不足 N 帧的检测。
  • 怎么验证:复看原片段,瞬时色斑消失,同时确认真实的短马赛克(持续超过 N 帧的)没有被误丢。

前两个参数都在 jasna/main.py 的 Detection 参数组中定义,完整参数说明见 docs/zh/cli.md。

🏁 执行闭环:先短片段,后全片

任何参数都先在 30 秒短片段上验证,再上全片。可直接复制的命令:

# 1) 短片段试跑:只修复 10–40 秒这一段 jasna --input input.mp4 --output output.mkv --segments 10-40 # 2) 确认无误后跑全片(默认 rfdetr-v6) jasna --input input.mp4 --output output.mkv # 3) 4K 素材:换大模型 jasna --input input.mp4 --output output.mkv --detection-model rfdetr-v6-large # 4) 漏检偏多:把阈值从默认 0.35 降到 0.30 jasna --input input.mp4 --output output.mkv --detection-score-threshold 0.30 # 5) VR180 左右并排素材 jasna --input input.mp4 --output output.mp4 --detection-model rfdetr-vr-v1 --vr-mode auto

GUI 用户只需要知道两件事:设置面板的检测模型下拉框自动扫描model_weights/目录列出可用模型,内置的rfdetr-v6与rfdetr-vr-v1无需下载;区间编辑器可以为每个视频单独指定检测模型与阈值,设置互相独立并直接用于最终处理。VR180 工作流保持--vr-mode auto(默认值)即可——高度超过 1080 且严格 2:1 的并排画面(如 3840×1920、8192×4096)会自动识别为左右并排 VR,修复前还会按片商自动选择 raw / 鱼眼 / 等距投影(docs/zh/vr180.md)。

📋 踩坑速查:遇到 X 就做 Y

  • 什么都没配就想直接开跑→ 保持默认rfdetr-v6,这是默认值也是内置模型,开箱即用。
  • 拿不准阈值往哪边调→ 记方向:漏检调低(0.35 → 0.28–0.30),误检调高(0.35 → 0.42),每次只动 0.05 左右并用短片段验证。
  • 队列里混着不同清晰度的视频→ 在区间编辑器为每个视频单独设检测模型与阈值,各视频设置互相独立。
  • 成片仍有零星几帧闪烁→ 把--max-detection-gap从默认 2 调大到 3–5,让同一位置的检测中断被补上。
  • 检测框和画面里的马赛克对不上→ 在区间编辑器暂停到该帧,点提交更好的遮罩勾画区域,数据匿名上传用于改进未来的检测模型(实现见 jasna/gui/mask_feedback.py)。
  • AMD 卡上跑得慢→ 速度比质量重要就换lada-yolo-v4;质量优先则接受rfdetr-v6的 torch 路径耗时。
  • 想快速知道哪些区间有马赛克→ 用区间编辑器的马赛克扫描预检,扫完调整阈值滑块,一键把检测到的区间加入修复列表。

选对模型后,试错成本基本用完;短片段到全片这条链路走一遍,能覆盖绝大多数素材。想深入实现,从检测模块 jasna/mosaic/ 和 docs/zh/models.md 入手即可。

【免费下载链接】jasnaVideo restoration tool项目地址: https://gitcode.com/GitHub_Trending/ja/jasna

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进