← INDEX SYS.OK // PIPELINE
A Computational Approach to Film Studies

全链路
视频认知引擎

让机器像电影学者一样看电影。这不是一个简单的检索工具,而是一套从视觉感知到剧情理解,最终能够实证人文观点的完整管线。

技术框架

YOLOv8, DeepSORT, InsightFace, CLIP

语言模型

Qwen-VL-Max, text-embedding-v3

处理对象

112分钟全片, 数十个角色

验证阶段

Phase 2 完成

Retro Film Camera

引子

找视频片段通常是个苦差事。文字能 Ctrl+F,图片能以图搜图,但视频的内容藏在时间轴里。面对一部两小时、十万帧画面的电影,我们找片段最可靠的方法依然是:拉进度条,用眼睛扫。

我想知道,机器能不能真正"看懂"电影——认出里面的人,理解剧情,甚至回答关于视听语言的问题。为此,我拿 112 分钟的《爱情神话》做实验,搭建了一条横跨六个独立工程的视频认知管线。


全景

这张图是管线的视觉路标:

管线全景图

底层负责将视频数字化提取信号;中层负责认人并理解语义;顶层则汇总这些能力,自动完成对学术论文观点的实证。


§ 1. 认人

画面里有四个人,谁是谁?

彩色片靠衣服颜色认人很容易。但《爱情神话》室内对话多,中年角色穿搭相近,加上频繁的正反打剪辑,同一个人常常被切成多段毫无关联的轨迹。

解决方案是**"先打碎,再缝合"**。

认人引擎流程

第一步,用 YOLOv8 做逐帧检测并配合 DeepSORT 追踪,提取短轨迹碎片。这一步保证了每段碎片里绝对是同一个人,代价是碎得很厉害。

第二步,用三种特征同时"缝合"碎片:InsightFace 提取面部特征(权重最高),MobileNet 提取全身体型特征,CLIP 提取身体局部特征。在最后的聚类算法中,有一条很管用的硬规则:同一帧画面里出现的两个人,不可能是同一个人。 把这个朴素事实编码进算法,直接排除了大量错误匹配。

另外,为了让机器像人一样感知角色情绪,系统每 6 帧将画面送入 CLIP 匹配情绪,并对生成的概率向量进行指数移动平均处理(EMA,衰减系数设为0.18)。系统生成的情绪标签不会在"平静"和"焦虑"之间突变闪烁,而是展现出平滑的过渡。


§ 2. 记住剧情

认人之后,下一步是要让机器"记住"电影讲了什么。

如果仅用 CLIP 提取画面做相似度检索,系统会分不清"初次约饭"和"闹翻散席"——由于是同一批人在同一张桌子上,它们视觉极度相似,但叙事截然相反。

所以我采用的做法是**"先理解,再索引"**。

RAG 缝合管道

我用 FFmpeg 将整部电影切成 2 分钟片段,投入 Qwen-VL-Max 让其生成一段包含角色行为、对白含义和情节逻辑的文字描述。接着,通过 SenseVoice ASR 提取音频对白和说话者情绪。将这两路结果汇总,最后进行向量化。

这样建出来的索引,记录的是"这场戏究竟发生了什么"。目前,550 个散乱的镜头已被聚类为 97 个有连续时空意义的场景簇,核心片段的剧情索引构建也已跑通。


§ 3. 做验证

前两步解决了"看"和"记",第三步则更进一步:把真实的学术论点交给机器去验证。

我设计了一组 A/B 对照测试,让视觉大模型分析 5 张核心关键帧:

A/B 实验对比

结果差距惊人: 对照组对着图片张冠李戴,甚至虚构出不存在的角色名字;而实验组不仅能准确报出四主演的人名,还能给出判定依据对号入座(如"外籍男性的五官立体特征符合知识库描述")。

先验知识注入的作用被证实后,我把某篇关于《爱情神话》真实影评论文的片段连同 12 帧画面交给了模型。以下是 VLM 自己写出的论证节选:

"三位女性围坐于餐桌两侧,形成一个半包围的结构... 镜头采用过肩视角,以一位女性的背影作为前景遮挡,将老白置于画面的'被观看者'位置。"

"她们的目光频繁交汇,构成一个内部沟通圈,而老白则始终处于这个闭环之外。这种'内聚—外排'的空间逻辑,不仅建构了女性集体的认同感,也完成了对男性角色的'去中心化'。"

注意,这些关于构图关系、视线走向、空间权力结构的深度分析不是人力所写,而是大模型在看完 12 帧画面后自主推导出来的。


尾声

这条从感知到认知,再到实证的完整链路,第一次在《爱情神话》上成功跑通。

机器不仅认出了谁在画面里,理解了故事情节,还能为抽象的人文研究论点找出具体的视频帧证据。视频,不必再是一个无法搜索的黑箱了。