# DJDO_Agent **Repository Path**: agent-project/djdo_-agent ## Basic Information - **Project Name**: DJDO_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检测多人场景,再通过大模型(Qwen2-VL-7B-Instruct)进行精确判断,对视频进行逐帧分析,识别潜在的暴力行为。 ## 功能特性 - 支持本地视频文件和拉流地址输入 - 使用OpenCV进行视频帧提取(每500毫秒截取一张图) - 基于YOLOv8进行人体检测和多人行为识别 - 集成大模型(Qwen2-VL-7B-Instruct)进行精确判断 - 自动标注检测到的人体目标(绿色边框) - 输出标准化的JSON格式结果 - 支持串联式处理,一旦检测到打架斗殴事件立即停止 - **自动日志记录**: 所有响应数据自动保存到本地logs文件夹,文件命名格式为:`中移_算法名称+图片名称+时间戳.log` ## API接口说明 ### 接口地址 `POST /video/create` ### 请求参数 ```json { "sourceUrl": "视频文件路径或拉流地址" } ``` ### 响应格式 ```json { "image": "base64编码的图片", "bbox": [ { "conf": 0.85, "class": "0", "classStr": "people", "coordinate": [x1, y1, x2, y2] } ] } ``` **响应说明**: - 如果检测到打架斗殴事件,返回包含检测结果的图片和边界框信息 - 如果未检测到打架斗殴事件,`bbox`字段为空数组 - `conf`: 检测置信度 - `class`: 目标类别ID - `classStr`: 目标类别名称 - `coordinate`: 边界框坐标 [x1, y1, x2, y2] ## 技术架构 - **后端框架**: FastAPI - **计算机视觉**: OpenCV - **目标检测**: YOLOv8 - **大模型**: Qwen2-VL-7B-Instruct - **图像处理**: PIL - **HTTP请求**: requests - **数据格式**: JSON ## 安装依赖 ```bash pip install -r requirements.txt ``` **注意**: - 本项目支持Python 3.12和3.13 - 首次运行时会自动下载YOLOv8模型文件 ## 运行方式 ```bash python main.py ``` ## API测试 ### 快速测试 ```bash python api_test.py --quick ``` ### 完整测试(包含视频文件测试) ```bash python api_test.py --video your_video.mp4 ``` ### 自定义服务器地址测试 ```bash python api_test.py --url http://your-server:8000 ``` ### 测试功能说明 - ✅ 服务器连接状态检查 - ✅ API文档访问测试 - ✅ 视频处理端点测试 - ✅ 模型文件状态检查 - ✅ 依赖包完整性验证 ## 使用示例 ### 启动服务 ```bash python main.py ``` ### API调用 1. 启动服务后,向 `http://localhost:8000/video/create` 发送POST请求 2. 请求体中包含视频文件路径或拉流地址 3. 系统将返回检测结果,包含标注后的图片和坐标信息 ### 查看API文档 访问 `http://localhost:8000/docs` 查看交互式API文档 ## 日志记录功能 ### 日志文件格式 系统会自动将所有响应数据保存到 `logs` 文件夹下,文件命名格式为: ``` 中移_打架斗殴识别算法_[图片名称]_[时间戳].log ``` ### 日志内容结构 ```json { "timestamp": "2024-01-01T12:00:00.000000", "video_name": "视频文件名", "algorithm_name": "打架斗殴识别算法", "response_data": { "image": "base64编码的图片", "bbox": [...], "detection_type": "打架斗殴事件/无打架斗殴事件", "frame_index": 帧索引, "saved_image_path": "保存的图片路径" } } ``` ### 日志文件类型 - **检测到打架斗殴事件**: 包含检测结果、边界框信息、图片数据等 - **未检测到打架斗殴事件**: 包含处理统计信息、检测到的多人场景数量等 ## 注意事项 - 确保视频文件路径正确且文件存在 - 系统会自动过滤搂抱、勾肩搭背等非打斗行为 - 检测结果仅包含存在打架斗殴事件的帧 - 大模型服务地址为 `http://192.168.3.53:55055`,请确保网络连接正常 - 系统采用串联式处理,一旦检测到打架斗殴事件立即停止处理后续帧 - 所有API响应都会自动记录到日志文件,便于后续分析和审计