DEMILADE07/cv-threat-intelligence

GitHub: DEMILADE07/cv-threat-intelligence

这是一个基于YOLO的计算机视觉威胁情报概念验证工具,用于实时监控视频流并检测特定威胁目标或行为。

Stars: 0 | Forks: 1

# CV 威胁情报 POC 此仓库现在包含 36 小时概念验证(POC)的第一个初始构建版本。 此 POC 的目标很简单: - 连接实时摄像头源 - 对每一帧运行计算机视觉推理 - 在屏幕上高亮显示检测结果 - 为配置的类别触发威胁警报 - 检测到威胁时保存证据帧和短视频片段 ## 此初始版本支持的功能 - 网络摄像头输入 - RTSP 流输入 - 视频文件输入作为安全的演示备选方案 - 可配置的 YOLO 权重 - 可配置的威胁类别 - 检测结果证据保存 ## 重要的现实考量 如果您使用标准的预训练 YOLO 权重(例如 `yolov8n.pt`),通常只能获得来自公共数据集的常见物体类别。 这意味着: - 管道本身可以立即得到验证 - 真正的 `knife`(刀具)、`gun`(枪支)、`fight`(打斗)或 `stealing`(偷窃)检测可能需要自定义权重或更专业的模型 因此最快的路径是: 1. 验证实时管道正常工作 2. 首先使用 `person`(人)或其他可用类别进行测试 3. 一旦准备好,立即替换为自定义权重 ## 推荐的 36 小时计划 ### 轨道 1:POC 演示 - 在网络摄像头上运行检测器 - 验证覆盖层和警报正常工作 - 验证证据文件已保存 - 使用视频文件测试同一个应用程序 - 在可用时使用 RTSP 流测试同一个应用程序 ### 轨道 2:模型实验 - 仅使用 Colab 进行快速模型实验或微调 - 保持演示的实时推理在本地进行 - 不要让 POC 因 Jetson 或类似 Jetson 的部署工作而受阻 ## 快速开始 ### 1. 创建虚拟环境 ``` python -m venv .venv .\.venv\Scripts\Activate.ps1 python -m pip install --upgrade pip pip install -r requirements.txt ``` ### 2. 使用网络摄像头运行冒烟测试 这证明了实时管道正常工作。 ``` python detector.py --source 0 --weights yolov8n.pt --threat-classes person --show ``` 这不是您最终的威胁逻辑。这只是验证以下内容的最快方式: - 摄像头捕获 - 帧推理 - 边界框渲染 - 警报 - 证据保存 ### 3. 使用 RTSP 流运行 ``` python detector.py --source "rtsp://username:password@camera-ip:554/stream" --weights yolov8n.pt --threat-classes person --show ``` ### 4. 使用预录制的视频运行 ``` python detector.py --source "demo.mp4" --weights yolov8n.pt --threat-classes person --show ``` ## 使用自定义威胁权重运行 当您拥有针对 `knife`(刀具)、`gun`(枪支)或 `fight`(打斗)等类别的自定义权重时,运行: ``` python detector.py --source 0 --weights "models\best.pt" --threat-classes knife,gun,fight --show ``` ## 威胁逻辑层 检测器现在支持在原始检测结果之上进行第二层基于规则的威胁评估。 有用的参数: - `--person-classes`:规则引擎将其视为人的标签 - `--weapon-classes`:规则引擎将其视为危险物体的标签 - `--threat-classes`:仍应直接触发警报的显式类别 - `--assault-distance-ratio`:控制持械人员必须距离另一人多近,应用程序才会标记 `POSSIBLE ASSAULT` 使用自定义武器权重的示例: ``` python detector.py --source 0 --weights "models\best.pt" --person-classes person --weapon-classes knife,gun --threat-classes knife,gun --show ``` 使用独立的人员和武器模型的示例: ``` python detector.py --source 0 --weights yolov8n.pt --person-weights yolov8n.pt --weapon-weights "models\weapon_best.pt" --weapon-loader yolov5 --person-classes person --weapon-classes knife,gun --threat-classes knife,gun --show ``` 当您的自定义检查点仅知道武器类别时,这是最佳的同日设置。 有用的实时调优标志: - `--weapon-conf 0.65` 或更高值以减少误报 - `--debug-weapon` 打印确切的武器检测结果和置信度 - `--min-threat-frames 3` 在提升威胁级别前忽略单帧闪烁 使用更严格的实时调优的示例: ``` python detector.py --source 0 --weights yolov8n.pt --person-weights yolov8n.pt --weapon-weights "models\weapon_best.pt" --weapon-loader yolov5 --person-classes person --weapon-classes knife,gun --threat-classes knife,gun --weapon-conf 0.80 --min-threat-frames 3 --debug-weapon --show ``` ## 暴力启发式方法 检测器现在还支持基于姿态的启发式暴力层。 这不是一个训练好的动作识别模型。它使用: - 人员接近度 - 手腕运动速度 - 手臂伸展 - 武器到手部附着启发式方法 新的高级状态: - `VIOLENCE SUSPECTED` - `POSSIBLE STABBING` - `POSSIBLE ARMED ASSAULT` 推荐的暴力测试命令: ``` python detector.py --source 0 --weights yolov8n.pt --person-weights yolov8n.pt --weapon-weights "models\weapon_best.pt" --weapon-loader yolov5 --pose-weights yolov8n-pose.pt --person-classes person --weapon-classes knife,gun --threat-classes knife,gun --weapon-conf 0.80 --min-threat-frames 3 --violence-min-frames 4 --debug-weapon --debug-violence --show ``` 如果您想暂时禁用基于姿态的暴力逻辑: ``` python detector.py --source 0 --weights yolov8n.pt --person-weights yolov8n.pt --weapon-weights "models\weapon_best.pt" --weapon-loader yolov5 --pose-weights "" --person-classes person --weapon-classes knife,gun --threat-classes knife,gun --show ``` 预期的屏幕状态: - `DANGEROUS OBJECT`:可见危险物品 - `ARMED PERSON`:武器在空间上似乎附着于检测到的人员 - `POSSIBLE ASSAULT`:持械人员靠近另一个检测到的人员 重要提示: - 这些高级状态目前是启发式的 - 它们旨在用于同日 POC 演示层,而非作为最终的动作识别声明 ## 证据输出 检测结果保存在 `runs\detect\` 下。 每个事件可以生成: - 一张带注释的图像 - 一段带注释的短视频片段 ## 建议的即时后续步骤 1. 首先运行网络摄像头冒烟测试。 2. 确认管道在您的本地机器上正常工作。 3. 添加您租用的 RTSP 摄像头作为第二个测试源。 4. 获取或训练针对 `knife`(刀具)和 `gun`(枪支)的感知武器权重。 5. 使用新的威胁规则层来演示 `ARMED PERSON` 和 `POSSIBLE ASSAULT`。 6. 仅在需要快速训练或微调时使用 Colab。 ## 诚恳的建议 对于这第一个截止日期,不要试图一次性解决所有威胁类别。 最好的里程碑是: - 一个可工作的检测器应用程序 - 一个实时输入 - 一两个可检测的威胁类别 - 一个为您的联合创始人准备的清晰演示
标签:Jetson, POC, Python, RTSP流, YOLO, YOLOv8, 威胁情报, 安全预警, 实时推理, 开发者工具, 摄像头, 无后门, 智能安防, 模型微调, 深度学习, 目标检测, 视频分析, 视频监控, 计算机视觉, 证据保存, 边界框, 逆向工具