# RYPG_AGENT **Repository Path**: agent-project/rypg_-agent ## Basic Information - **Project Name**: RYPG_AGENT - **Description**: 人员攀高检测识别 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-29 - **Last Updated**: 2025-07-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 人员攀爬检测算法 ## 项目概述 本项目实现了一个基于YOLOv8的人员攀爬检测算法,用于检测视频中是否存在人员攀爬行为(如爬围墙、爬栏杆、建筑外墙等)。系统结合YOLOv8目标检测和大模型判断,实现高精度的攀爬行为识别。 ## 功能特性 - 视频帧提取:每500毫秒截取一张图片 - 目标检测:使用YOLOv8检测人体和围墙/栏杆物体 - 大模型判断:使用Qwen2-VL-7B-Instruct模型判断是否存在攀爬行为 - 异常检测:检测到攀爬行为时立即停止处理并输出告警 - API接口:提供RESTful API接口进行视频分析 ## 工作流程 1. 从视频中按时间间隔提取帧图像 2. 使用YOLOv8检测每帧中的人体和相关物体 3. 将检测结果(图片+标注框)发送给大模型进行判断 4. 如果大模型判断存在攀爬行为,立即停止处理并输出告警结果 5. 如果所有帧都处理完毕且无异常,输出空结果 ## API接口说明 ### 接口地址 `POST /video/create` ### 请求参数 ```json { "sourceUrl": "视频文件路径或拉流地址" } ``` ### 响应格式 系统会将检测结果输出到日志文件中,命名格式:`中移_人员攀爬检测算法_视频名称_时间戳.log` #### 检测到告警事件时的输出格式: ```json { "image": "base64编码的图片", "bbox": [ { "conf": 0.6679233908653259, "class": 0, "classStr": "people", "coordinate": [1178, 535, 1245, 593] } ] } ``` #### 未检测到告警事件时的输出格式: ```json { "image": "", "bbox": [] } ``` ## 大模型配置 - 模型地址:`http://192.168.3.53:55055/v1/chat/completions` - 使用模型:`/models/Qwen/Qwen2-VL-7B-Instruct` - 判断逻辑:大模型根据图片和标注框坐标判断是否存在攀爬行为 ## 技术栈 - Python 3.8+ - OpenCV (视频处理) - YOLOv8 (目标检测) - FastAPI (API框架) - Ultralytics (YOLO模型加载) - Requests (HTTP请求) - Qwen2-VL-7B-Instruct (大模型判断) ## 安装依赖 ```bash pip install opencv-python ultralytics fastapi uvicorn python-multipart requests ``` ## 使用方法 ### 1. 安装依赖 ```bash pip install -r requirements.txt ``` ### 2. 启动API服务 ```bash # 方式1: 直接运行 python app.py # 方式2: 使用启动脚本 python start_server.py ``` ### 3. 测试API ```bash python test_api.py ``` ### 4. API调用示例 ```python import requests url = "http://localhost:8000/video/create" data = { "sourceUrl": "test_video\\freecompress-video.mp4" } response = requests.post(url, json=data) print(response.json()) ``` ### 5. 查看结果 检测结果会保存在 `logs/` 目录下,文件名格式为 `中移_人员攀爬检测算法_视频名称_时间戳.log` ## 文件结构 - `app.py`: 主API服务文件(包含所有检测功能) - `yolov8n.pt`: YOLOv8预训练模型 - `logs/`: 日志文件目录 - `requirements.txt`: 项目依赖文件