在流水线末端放五个质检员,各查一样东西。
他们现在是实习期——照常检查、照常记录,但没有按停机键的权力。
AI 生成一条视频,很少一次就能用。实际流程是:机器出片 → 人看一遍 → 说哪儿不对 → 改 → 再看,平均来回三到四轮。
「人看一遍」这步不自动化,产品就没法交给客户自己用——客户身边不可能站个人盯着。
所以要把这一遍换成机器看。
但有个关键区别:机器要说的不是「这条片子 7 分」,而是「第 7 个镜头画面不对题」。
前者是体检报告,后者是医生。打个分没法让机器自己去改,指到具体哪一镜才可以。
| 查什么 | 说人话 |
|---|---|
| 镜头撞车 | 二十几个画面里,是不是有八个都是同一个客厅 |
| 闪切 | 一段片子中间有没有突然闪过别的画面 |
| 口型崩坏 | 人物整张下半脸有没有被糊成一团 |
| 口型偏移 | 嘴和声音对不对得上,具体哪一秒不对 |
| 停顿异常 | 句子中间有没有不该有的长空白 |
一条命令挨个跑完,出一张表。
✓ 查过了,没事
✗ 查过了,有问题
! 压根没查成(目录给错了、文件名不匹配、依赖没装)
以前只有前两种。「没查」和「查过没事」在系统里长得一模一样,都是一个绿灯。
结果就是:某条片子的闪切检查因为文件名对不上,从头到尾一次都没跑过,而所有人都以为查过了。
系统建好后做了一次实测:把闸门报警的那一段、和它判「通过」的另一段,都拿给人听。
两边都翻了。
而且被漏掉的那段,分数是同批里最好的一档。
也就是说,那一刻它拦的是错的、放的也是错的。
如果当时有权停机,会把好素材扣下、把坏的放出去。
所以现在这样安排:它跟着流水线跑、把每次报警记进一个账本,但拦不住任何东西。
每条片子做完,人在账本里填一句「它报的对不对、有没有漏」。攒够几轮就知道它几分准,那时才把拦截权交给它。
值得单独说,因为它解释了这类系统最容易犯的错。
口型检查原本只看整段的平均分。而问题是:一段一秒半的片子里,只有一个字的口型做错了,其余三十多帧都对得上——平均下来照样是高分。
修法是不再只看平均分,而是把整段切成几十个小窗口,逐个窗口打分,找异常深的坑。
实测十四段:出问题那段的最深坑只有段内中位的 24%,而正常段都在 44% 到 68% 之间。用 30% 划线,正好只捞出它,同时之前那个误报也自动消失了。
改完之后,系统还自己预测出另一段有问题,指到具体第几秒。拿去让人听——确认了。
做镜头撞车检测时,连试六种方法全部惨败。据此下结论「这活绕不开大模型」,下了 8 个多 G 的模型、改了两版提示词、跑了两轮推理。
全是白做的。
真相是:标准答案取自「修改前」的素材,而实验数据取的是同一批素材「修改后」的版本——两者的生成时间差了几分钟。在修好的东西上找没修时的问题,方法当然全败。
换对靶子重跑,最土的那个方法(把画面缩成 16×16 的小图比构图)直接反转成前七名全中。
撞车检测第一版用了一个固定的相似度阈值,在室内全景图上标定得很准。
拿到特写类素材上一试就废:同一面墙上的两个水管特写(真撞车)分数不够线被漏掉,而地砖和白墙这两个毫不相关的反倒差点报警。
原因是相似度的绝对值随素材类型漂移——全景图之间天然就比特写之间更「像」。
检查「画面对不对题」时,第一版拿模型描述的词跟预期标签做字符串比对。二十六张里报了十六个不对题——绝大多数是同义词:「地板」对「地砖」、「罗马杆」对「窗帘杆」、「柜子」对「衣柜」。
改成直接问模型「这张画面是不是在拍 X」,并要求放宽判断,报警从十六个降到两个。
五个质检员全部本地运行,零 API 费用。整套跑一条片子几十秒。
另有两项检查(画面对不对题、有没有第三方品牌标识)需要跑本地视觉模型,十几分钟一条,太慢塞不进流水线,交付前单独跑一次。这两项同样不花 API 钱。