基于智谱 AI 的全栈视频语义检索系统,专为视频侦查设计。通过级联过滤算法,在有限的硬件资源下实现海量视频的极速理解与确凿检索。
为了解决私有化部署中“算力昂贵”与“视频冗余”的核心矛盾,本系统采用以下三大核心策略:
系统构建了三道防线,层层拦截无效数据,确保昂贵的大模型算力仅消耗在高价值片段上:
- 第一层:OpenCV 运动检测 (极速过滤) —— 在本地 CPU 毫秒级剔除 100% 静止的空镜(如深夜无人的马路),过滤率通常可达 50%-70%。
- 第二层:Local YOLO 初筛 (精准拦截) —— 利用轻量级 YOLO 模型快速确认画面中是否出现“人、车”等目标。若仅有树叶晃动或光影变化,将在此层被拦截。
- 第三层:GLM-4.6V 深度理解 (按需触发) —— 仅对幸存的、确认有目标的片段调用大模型进行深度特征提取。
针对超大监控视频(如 10 小时以上的录像),系统摒弃了固定时长切片(8s/段)的传统做法,彻底解决了“目标出现在切片边缘导致被空镜稀释”的问题:
- 第一步:流式极速粗扫 (Fast Scan):系统不进行任何预先切片,而是利用本地 YOLO 对全视频进行 1fps 的“快进式”扫描,记录下目标出现的所有离散时间点。
- 第二步:动态事件聚类 (Event Clustering):将相邻的时间点(间隔 < 5s)自动连成线,聚合成一个完整的“案发事件块”,并前后预留 2s 缓冲。对于无人的长达数小时的垃圾时段,直接丢弃。
- 第三步:以目标为中心的精选抽帧 (Target-Centric Keyframes) [大杀器]:截取出事件片段后,系统不会把整个长视频发给大模型(避免“7.5秒空镜+0.5秒有人”导致大模型失焦)。系统会让 YOLO 重新逐帧评估目标,仅挑选出目标面积最大、最清晰的 3 张照片,拼合后发给 GLM-4.6V。这保证了大模型看到的永远是嫌疑人最聚焦的特写。
为了解决向量匹配中“模糊搜索不确凿”的问题:
- 高浓度 Prompt:采用定制的公安图侦提示词,强制模型拒绝文学化描述,仅输出“性别, 衣着颜色, 车型, 行为轨迹”等高浓度特征词组。
- 向量提纯:对提纯后的词组进行向量化,极大提升了在复杂案情(如:找戴白头盔骑红色电动车的人)下的检索精确度与可解释性。
- 智能扫描: 自动定位目标时段,解决超大视频冗余分析问题。
- 视觉理解: GLM-4.6V 视频分析,精准识别人物、车辆、行为。
- 语义检索: 支持自然语言搜索,秒级定位目标视频片段。
- 全控面板: 前端支持实时调节检测开关、OpenCV 阈值、识别目标。
编辑 backend/config.py,设置智谱 API Key。
Linux/macOS:
./start.sh --installbackend/: FastAPI 后端,包含视频扫描、级联过滤、向量存储逻辑。frontend/: React 前端,包含智能分析配置面板与可视化进度监控。
- 参数调优:在上传前,根据视频环境(室内/室外)调节运动阈值。
- 目标勾选:选择本次侦查关注的目标(如:person, car)。
- 上传扫描:系统自动执行“扫描 -> 聚类 -> 过滤 -> 提取”流水线。
- 确凿检索:输入特征描述,瞬间定位嫌疑人出现的视频时刻。
MIT License