Skip to content

Farewell-CK/shadowhunter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

猎影 (ShadowHunter) - 视频语义检索系统

基于智谱 AI 的全栈视频语义检索系统,专为视频侦查设计。通过级联过滤算法,在有限的硬件资源下实现海量视频的极速理解与确凿检索。

系统处理策略 (Core Strategies)

为了解决私有化部署中“算力昂贵”与“视频冗余”的核心矛盾,本系统采用以下三大核心策略:

1. 级联过滤漏斗策略 (Cascade Funnel Strategy)

系统构建了三道防线,层层拦截无效数据,确保昂贵的大模型算力仅消耗在高价值片段上:

  • 第一层:OpenCV 运动检测 (极速过滤) —— 在本地 CPU 毫秒级剔除 100% 静止的空镜(如深夜无人的马路),过滤率通常可达 50%-70%。
  • 第二层:Local YOLO 初筛 (精准拦截) —— 利用轻量级 YOLO 模型快速确认画面中是否出现“人、车”等目标。若仅有树叶晃动或光影变化,将在此层被拦截。
  • 第三层:GLM-4.6V 深度理解 (按需触发) —— 仅对幸存的、确认有目标的片段调用大模型进行深度特征提取。

2. 智能事件扫描策略 (Smart Event Scan Strategy)

针对超大监控视频(如 10 小时以上的录像),系统摒弃了固定时长切片(8s/段)的传统做法,彻底解决了“目标出现在切片边缘导致被空镜稀释”的问题:

  • 第一步:流式极速粗扫 (Fast Scan):系统不进行任何预先切片,而是利用本地 YOLO 对全视频进行 1fps 的“快进式”扫描,记录下目标出现的所有离散时间点。
  • 第二步:动态事件聚类 (Event Clustering):将相邻的时间点(间隔 < 5s)自动连成线,聚合成一个完整的“案发事件块”,并前后预留 2s 缓冲。对于无人的长达数小时的垃圾时段,直接丢弃。
  • 第三步:以目标为中心的精选抽帧 (Target-Centric Keyframes) [大杀器]:截取出事件片段后,系统不会把整个长视频发给大模型(避免“7.5秒空镜+0.5秒有人”导致大模型失焦)。系统会让 YOLO 重新逐帧评估目标,仅挑选出目标面积最大、最清晰的 3 张照片,拼合后发给 GLM-4.6V。这保证了大模型看到的永远是嫌疑人最聚焦的特写。

3. 刑侦级语义提纯策略 (Semantic Distillation Strategy)

为了解决向量匹配中“模糊搜索不确凿”的问题:

  • 高浓度 Prompt:采用定制的公安图侦提示词,强制模型拒绝文学化描述,仅输出“性别, 衣着颜色, 车型, 行为轨迹”等高浓度特征词组。
  • 向量提纯:对提纯后的词组进行向量化,极大提升了在复杂案情(如:找戴白头盔骑红色电动车的人)下的检索精确度与可解释性。

功能特性

  • 智能扫描: 自动定位目标时段,解决超大视频冗余分析问题。
  • 视觉理解: GLM-4.6V 视频分析,精准识别人物、车辆、行为。
  • 语义检索: 支持自然语言搜索,秒级定位目标视频片段。
  • 全控面板: 前端支持实时调节检测开关、OpenCV 阈值、识别目标。

快速开始

1. 配置 API Key

编辑 backend/config.py,设置智谱 API Key。

2. 启动服务

Linux/macOS:

./start.sh --install

项目结构

  • backend/: FastAPI 后端,包含视频扫描、级联过滤、向量存储逻辑。
  • frontend/: React 前端,包含智能分析配置面板与可视化进度监控。

使用流程

  1. 参数调优:在上传前,根据视频环境(室内/室外)调节运动阈值。
  2. 目标勾选:选择本次侦查关注的目标(如:person, car)。
  3. 上传扫描:系统自动执行“扫描 -> 聚类 -> 过滤 -> 提取”流水线。
  4. 确凿检索:输入特征描述,瞬间定位嫌疑人出现的视频时刻。

许可证

MIT License

About

AI测试DEMO

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors