← 返回 PaperDaily 视觉与图像

视频异常检测告别光流!朱拉隆功大学YOLO+CLIP飙到51FPS

视频异常检测一直是监控系统的刚需,但以往方法又要光流又要姿态估计还要密度评分,管线拖到只有15FPS根本跑不动实时。这篇来自朱拉隆功大学的工作把整个流程砍到只剩YOLO+CLIP两个模型,不依赖光流、不用密度估计、不需要异常样本标注,端到端跑出51.39FPS,直接3.36倍提速。做法不炫技,但工程和产品层面很能打,部署友好的路线值得一看。

视频异常检测告别光流!朱拉隆功大学YOLO+CLIP飙到51FPS
原论文信息如下:
论文标题:
Real-Time Video Anomaly Detection Using YOLO Pose Estimation and CLIP-Based Semantic Scoring
发表日期:
2026年08月
发表单位:
Chulalongkorn University(朱拉隆功大学); King Mongkut's University of Technology Thonburi
原文链接:
https://arxiv.org/pdf/2608.31074v1.pdf

先问大家一个扎心的问题:你所在的小区、学校、公司,有多少个监控摄像头?再问一个更扎心的:真的有人盯着那些屏幕看吗?
答案是:大部分时候没有。人类保安盯多路监控视频时,注意力在几分钟内就会断崖式下降。让AI来盯屏幕,是视频监控领域多年来的执念,也就是今天要聊的"视频异常检测"(Video Anomaly Detection,VAD)。
这个领域有个老毛病:方法越来越花哨,速度越来越感人。要检测一个人摔倒、躺地、打架这类异常行为,很多SOTA方案堆砌了光流估计、姿态估计、密度估计、重建网络一大堆模块,精准度确实上去了,但推理速度掉到每秒十几帧甚至几帧。放在真实监控场景里,这等于告诉保安:您的人工盯屏可以停了,AI已经换成"PPT盯屏模式"——看起来在跑,实际上跟不上事。
朱拉隆功大学和泰国国王科技大学的研究者这次换了个思路:与其在复杂管线上缝缝补补,不如直接把架构砍到只剩两个模型。用YOLO v11n-pose做人员检测和姿态估计,用CLIP做文本-图像语义匹配来判定异常行为。不需要光流、不需要密度估计、不需要任何异常样本的标注,端到端吞吐直接飙到51.39 FPS,比多特征基线提速3.36倍。
论文里还提到这套系统已经在朱拉隆功大学Charoen Wisawakam大楼的真实CCTV上部署运行了。实验室里的SOTA谁都会讲,真放到电梯口去看12层楼的人来人往,那就是另一回事了。这篇文章,就带大家看看这条"少即是多"的路线到底怎么走通。

实时异常检测新突破:YOLO+CLIP双阶段框架实现51FPS

先看看这套两阶段框架的整体面貌。论文的图1把整个流程画得很清楚,龙哥直接放上来。
图1
提出的异常检测管线总览。第一阶段采用YOLO v11n-pose进行人员检测与骨骼关键点提取;第二阶段通过CLIP图像编码器对每个裁剪的人员区域进行编码,并与CLIP文本编码器生成的异常行为
文本提示进行相似度计算,进而完成异常判定。整个链路只有两个神经网络模型,没有光流、没有独立的姿态估计器,也没有密度打分模块。
这句"没有"在视频异常检测领域可太稀缺了。翻翻这个方向过去的代表作:Conv-AE要把每一帧重建一遍,MPED-RNN要维护多尺度循环网络跟踪骨骼轨迹,DSTN要把背景移除和光流两个分支跑完才算完,而Reiss和Hoshen那套属性化方法,更是把Mask R-CNN、AlphaPose、FlowNet2、CLIP和GMM/kNN五个组件串成一条流水线。精度确实好看,但端到端速度被压在15 FPS附近——连25帧/秒的监控视频都跑不满。
本论文要做的,就是把这条臃肿的管线砍到只剩两个模型。图2展示了系统在真实运行时的GUI效果,可以直观感受一下"实时"的含义。
(a) 正常行为(行走)时的GUI输出
(a) 正常行为(行走)时的GUI输出
(b) 检测到异常(躺地)时的GUI输出
(b) 检测到异常(躺地)时的GUI输出
图2:CU Indoor Anomaly数据集上的实时检测结果。(a)–(b)为完整系统GUI,包含实时视频流、异常分数曲线和历史帧面板;(c)–(d)为放大视图,正常行为绿框、异常行为红框并显示异常分数。
正常行走时,行人被绿色边界框锁定;检测到有人躺倒在地时,系统立刻切换红色边界框,并在右侧实时绘制异常分数曲线。从画面更新到报警,整个过程没有明显的延迟感。
这套系统的具体工作流程可以概括为四步:YOLO v11n-pose在单次前向传播中同时完成人体检测和17个骨骼关键点提取;每个检测到的人体区域被裁剪并缩放成224×224;CLIP ViT-B/32图像编码器把裁剪区域编码成512维特征向量,与4条预定义的异常文本提示计算余弦相似度;帧内所有个体的最高相似度分数经高斯时序平滑后与阈值比较,输出异常/正常判定。
论文报告,在NVIDIA Titan XP单卡上,端到端吞吐达到51.39 FPS,相比多特征融合基线提速3.36倍。这是本文最核心的数字,也是整个系统工程的"验收总结"。R-C.jpeg

从多组件到两阶段:架构简化的核心设计

要理解这次简化为什么有效,得先看看旧管线里的每个模块到底在干什么。
以Reiss和Hoshen的属性化方法为典型。那条基线流水线包含四个关键组件:Mask R-CNN负责把人从画面里框出来;AlphaPose负责估计每个人的骨架姿态;FlowNet2负责计算相邻帧之间的光流,用来捕捉运动速度信息;CLIP负责提取人的外观深度特征。最后,所有特征拼接在一起,用GMM/kNN做密度估计——正常样本在特征空间中聚集在高密度区域,偏离密度中心的就被判为异常。
这套设计的思路是"信息越多越好":位置、骨架、运动、外观,全都要。但代价也随之而来——模块间传递特征需要同步,光流计算本身很耗时,密度估计每次都要对历史特征做拟合,整条流水线的最慢环节直接成为系统吞吐的瓶颈。论文实测基线端到端只有15.32 FPS。
本论文的第一阶段,只用YOLO v11n-pose一个模型完成检测和姿态提取。YOLO v11n-pose是Ultralytics YOLO v11的nano版本派生的姿态估计模型,在检测头基础上增加了17个关键点的回归分支,一次前向传播同时输出边界框和骨骼点,遵循COCO关键点拓扑(鼻子、眼睛、耳朵、肩膀、肘部、手腕、臀部、膝盖、脚踝),每个关键点还附带可见性标志。论文用COCO预训练权重初始化,并在自建CU Indoor Anomaly数据集的1154张手工标注帧(扩增至2864张)上微调了500轮。
每个检测到的人体按如下公式从原帧中裁剪出来:
公式1:人体区域裁剪
公式1:人体区域裁剪
公式中b_i=(x_i, y_i, w_i, h_i)表示第i个检测框的坐标和尺寸,δ是填充边距。论文将δ设为10像素,约为640×480帧宽度的1.6%。这个值是在CU Indoor Anomaly上经验选择的:过小的裁剪会把姿态信息截断,过大的裁剪又会引入过多背景噪声。
第二阶段则是把裁剪区域直接丢给CLIP编码和打分。整个系统从原来"五个模块各司其职"变成"两个模型端到端贯通",部署时只需要两个checkpoint、一张GPU。

零样本语义评分:CLIP文本提示如何工作

CLIP(Contrastive Language-Image Pre-Training,对比语言-图像预训练)是OpenAI 2021年提出的多模态模型。它的核心训练目标,是让图像编码器和文本编码器把成对的图像与描述映射到同一向量空间中的邻近位置。训练完成后,模型自然具备一种能力:给定任意一张图片和一句自然语言描述,都能计算它们之间的语义相似度。
这正好为视频异常检测提供了一条捷径——异常行为千变万化,与其训练一个只能识别固定类别的分类器,不如直接用自然语言描述异常,然后让CLIP判断"画面里的这个人,像不像描述中的状态"。
论文选用了4条固定文本提示,覆盖目标场景中的四类异常:
"A person lying on the floor"(一个人躺在地上)
"A person falling down"(一个人摔倒)
"A person fighting with another person"(一个人和另一个人打架)
"A person sitting on the floor"(一个人坐在地上)
这些文本提示由CLIP文本编码器在初始化时一次性编码为512维向量并缓存,推理期间零额外开销。
对第i个人体裁剪区域,CLIP图像编码器输出归一化嵌入f_i^{img},其异常分数定义为与所有文本嵌入的余弦相似度的最大值:
公式2:单人体异常分数
公式2:单人体异常分数
其中f_j^{txt}是第j条提示的文本嵌入,M=4。取最大值意味着只要这个人最像某一种异常状态,分数就会被拉高。
帧级分数进一步在所有人之间取最大值:
公式3:帧级异常分数
公式3:帧级异常分数
N_t表示第t帧检测到的人体数量。这种"最大池化"式的聚合策略是有意为之:一场打架事件只要一个人动作异常,系统就应当报警,而不是被其他人拉低平均值。
原始分数随后通过一维高斯核(σ=5、半窗口w=15)做时序平滑,用于抑制单帧抖动带来的偶发误检。最终平滑分数与阈值θ比较,超过阈值即判定为异常帧。阈值通过验证集搜索得到,最优值θ*=0.7。
需要强调的是,"零样本"指的是CLIP评分部分不需要异常样本标注;YOLO检测器本身由COCO人体标注监督训练,负责的是"找人"而非"判异常"。论文在实验设置中对此做了明确的界定,避免概念混淆。

三大数据集验证:性能与速度的平衡

论文在三个数据集上做了评估。CUHK Avenue包含37个视频、30652帧画面,来自校园固定路径的监控视角;ShanghaiTech Campus规模更大,共437个视频、317398帧,覆盖13个不同场景;CU Indoor Anomaly是论文自建的室内异常数据集,40个视频、17798帧,画面取自朱拉隆功大学四栋楼的CCTV系统,并专门标注了摔倒、躺地、坐地、打斗四类异常。
主结果如表I所示。
表I:帧级AUROC(%)与现有方法对比
表I:帧级AUROC(%)与现有方法对比
有两点值得展开。第一,Proposed与Multi-feat. baseline†在Avenue和ShanghaiTech上数值完全相同。这不是巧合,而是实验设计的刻意安排:baseline是作者用YOLO检测器复现的Reiss & Hoshen方法,与提出方法共享同一个检测器,唯一的变量是评分方式。Avenue和SHTech上完全相同,说明用CLIP语义评分替代GMM/kNN密度估计,在精度上没有损失;CU Indoor上反而超出2.01个百分点(84.13%对82.12%)。
第二,ShanghaiTech的70.26%暴露了固定提示的局限。该数据集包含骑自行车、滑滑板、车辆闯入等多样异常,与四条提示描述的场景重合度有限,CLIP的文本-图像相似度自然难以覆盖。
表II展示了检测器的独立性能。
表II:CU Indoor Anomaly上YOLO v11n-pose的检测性能
表II:CU Indoor Anomaly上YOLO v11n-pose的检测性能
整体精度91%、召回率97%、mAP@.5为92%。正常姿态的精度(95%)高于异常姿态(86%),原因在于倒地、坐地这类姿态形态更多变,边界框回归难度更高。但异常和正常两类都保持了96%以上的召回率,这个指标对下游CLIP评分至关重要——检测器一旦漏掉人,评分环节连"工作"的机会都没有。
表III给出了本论文最核心的卖点。
表III:处理吞吐对比(帧每秒)
表III:处理吞吐对比(帧每秒)
检测模块从Mask R-CNN的23.41 FPS提升到YOLO v11n-pose的87.76 FPS;CLIP评分的124.04 FPS远高于基线"CLIP特征提取+密度估计"的组合效率;端到端吞吐从15.32 FPS上升到51.39 FPS,3.36倍提速。而且这个端到端数字是包含了视频解码、CPU-GPU拷贝、推理和后处理绘制的完整链路,不是单纯模型benchmark。
(c) 正常:边界框
(c) 正常:边界框
(d) 异常:摔倒
(d) 异常:摔倒
图2(c)(d)的放大视图可以更清楚地看到检测与打分的配合:正常行人被绿色框标出,异常行为则被红色框标出,并同时显示YOLO置信度和CLIP分数。

局限与展望:固定提示的边界与未来方向

这篇论文的诚实体现在对局限的表达上。固定文本提示带来的直接问题就是"字典不够厚":系统能识别什么,取决于那四句话写了什么。ShanghaiTech上70.26%的AUROC就是这个边界的量化体现——不是CLIP能力不够,而是提示词没覆盖到看不见的场景。
另一个潜在的坑在于YOLO检测器在CU Indoor异常数据上做了微调。虽然论文强调COCO预训练权重提供了跨场景泛化基础,但在完全不同的环境(夜间、雨天、鱼眼镜头)下,检测精度的衰减风险依然存在。论文也将低光环境预处理列为未来工作。
值得肯定的部分,是这篇论文真的走到了部署环节。朱拉隆功大学Charoen Wisawakam大楼12层电梯厅的5路真实CCTV上,系统稳定运行在约10 FPS/路的水平,包含视频采集、实时画框、异常分数曲线更新在内的完整功能。相比很多只停留在实验数据里的方法,这一步在工程上更有说服力。
未来的改进方向在论文中也交代得很清楚:引入可学习的提示扩展(参考VadCLIP的做法),用LLM来生成候选提示以扩大异常覆盖范围;开发对照明鲁棒的预处理模块;最终把系统统一成端到端模型,部署到算力受限的边缘设备上。

龙迷三问

下面是龙哥对于大家可能的一些问题的解答:
这篇论文到底在解决什么问题?朱拉隆功大学提出轻量级两阶段视频异常检测框架,YOLO v11n-pose完成检测与姿态估计,CLIP进行文本语义评分,无需光流与密度模块。端到端吞吐达51FPS,较基线提速3.36倍,AUROC与基线可比。
这篇工作最值得看的点是什么?在CUHK Avenue上达到89.26% AUROC,与多特征基线持平;在ShanghaiTech Campus上达到70.26% AUROC;在自建CU Indoor Anomaly数据集上达到84.13% AUROC,超过基线约2个百分点。端到端吞吐量51.39 FPS,比基线提升3.36倍。
这篇工作的边界或风险在哪里?优点:1) 架构简洁,仅需两个神经网络模型即可完成异常检测;2) 利用CLIP零样本能力,无需标注异常训练数据;3) 文本提示机制便于适应新场景,无需重新训练;4) 实时性能优异,达到51.39 FPS。缺点:1) 仅覆盖四种固定异常类型,对超出提示范围的异常检测能力有限;2) 在ShanghaiTech Campus等场景多样化的数据集上性能较低;3) YOLO检测器在室内场景微调,可能影响在不同环境下的泛化能力。
如果你还有哪些想要了解的,欢迎在评论区留言或者讨论~

龙哥点评

论文创新性分数:★★★★☆

提出两阶段轻量级框架,第一阶段用YOLO v11n-pose同时完成行人检测和17个骨骼关键点提取,第二阶段用CLIP ViT-B/32对裁剪行人区域编码并与预定义异常行为文本提示计算余弦相似度,实现实时视频异常检测。

实验合理度:★★★★☆

帧级AUROC、精确率、召回率、mAP@.5、mAP@.5:.95、端到端吞吐量(FPS)

学术研究价值:★★★★☆

提出两阶段轻量级框架,第一阶段用YOLO v11n-pose同时完成行人检测和17个骨骼关键点提取,第二阶段用CLIP ViT-B/32对裁剪行人区域编码并与预定义异常行为文本提示计算余弦相似度,实现。

稳定性:★★★☆☆

现有材料未提供充分的极端条件、重复运行或扰动测试,稳定性暂按中性评价。

适应性以及泛化能力:★★★☆☆

现有材料未完整展示跨数据集、跨场景或分布外实验,泛化能力仍需进一步验证。

硬件需求及成本:★★★☆☆

端到端处理速度51.39 FPS(NVIDIA Titan XP GPU),相比基线方法提升3.36倍。

复现难度:★★★☆☆

现有材料未确认完整代码、配置、数据处理脚本和权重是否齐备,复现难度暂按中性评价。

产品化成熟度:★★★☆☆

论文验证以研究实验为主,真实部署中的时延、成本、维护和异常场景仍需补充验证。

可能的问题:1) 仅覆盖四种固定异常类型,对超出提示范围的异常检测能力有限;2) 在ShanghaiTech Campus等场景多样化的数据集上性能较低;

主要参考文献

[1] Warnasooriya V G, Hajian A, Ruangsang W, et al. Real-Time Video Anomaly Detection Using YOLO Pose Estimation and CLIP-Based Semantic Scoring. arXiv:2608.31074, 2026.
[2] Reiss T, Hoshen Y. An attribute-based method for video anomaly detection. arXiv:2212.00789, 2022.
[3] Radford A, et al. Learning transferable visual models from natural language supervision. ICML, 2021.
[4] Jocher G, Chaurasia A, Qiu J. Ultralytics YOLO (v11). 2024.
[5] Wu P, et al. VadCLIP: Adapting vision-language models for weakly supervised video anomaly detection. AAAI, 2024.

end
监控视频千千万,AI眼睛帮你盯!
想和更多同行一起聊视频异常检测、目标检测、多模态大模型?
欢迎加入龙哥读论文粉丝群,扫描下方二维码或者添加龙哥助手微信号加群:kangjinlonghelper。一定要备注:研究方向+地点+学校/公司+昵称(如 视频异常检测+上海+清华+龙哥),根据格式备注,可更快被通过且邀请进群。
『龙哥读论文』微信群目前包含:图像处理、大模型及智能体、自动驾驶及机器人、AI医疗及AI金融5个群,等你来唠~
wechat_helper dianzan

*本文仅代表个人理解及观点,不构成任何论文审核或者项目落地推荐意见,具体以相关组织评审结果为准。欢迎就论文内容交流探讨,理性发言哦~ 想了解更多原文细节的小伙伴,可以点击"阅读原文",查看更多原论文细节哦!       

转发文章 微博 X LinkedIn Facebook
龙哥读论文 · PaperDaily

本文基于龙哥读论文 PaperDaily 数据库整理,结合论文原文与工程视角进行解读。