# Object_detection_processing **Repository Path**: ferry_zhou/Object_detection_processing ## Basic Information - **Project Name**: Object_detection_processing - **Description**: 智能视频分析系统 基于YOLO的多进程视频分析系统,支持热更新配置、多模型并行推理和实时业务处理。系统采用先进的多进程架构,具备零停机配置更新能力,适用于工业安全监控、智能交通、行为分析等场景。 🚀 核心特性 热更新系统 零停机更新: 支持在不重启程序的情况下动态更新配置 智能配置管理: 自动检测配置文件变化并应用更新 进程动态管理: 根据配置变化自动增删改相关进程 - **Primary Language**: Python - **License**: MulanPSL-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-17 - **Last Updated**: 2026-06-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智能视频分析系统 基于YOLO的多进程视频分析系统,支持热更新配置、多模型并行推理和实时业务处理。系统采用先进的多进程架构,具备零停机配置更新能力,适用于工业安全监控、智能交通、行为分析等场景。 ## 🚀 核心特性 ### 热更新系统 - **零停机更新**: 支持在不重启程序的情况下动态更新配置 - **智能配置管理**: 自动检测配置文件变化并应用更新 - **进程动态管理**: 根据配置变化自动增删改相关进程 - **配置回滚**: 支持配置错误时的快速回滚机制 ### 多进程架构 - **相机进程**: 独立的视频流采集和帧率控制 - **调度进程**: 智能帧分发和负载均衡 - **模型进程**: 并行AI推理和批量处理 - **结果处理进程**: 业务逻辑处理和结果输出 ### 业务功能 - **人员闯入检测**: 危险区域人员入侵监控 - **车道人员统计**: 车道内人员检测与计数 - **慢动作检测**: 异常行为和慢动作识别 - **方向越界检测**: 人员移动方向监控 - **安全帽检测**: 工业安全防护监控 - **火灾检测**: 火焰和烟雾识别报警 ## 🏗️ 系统架构 ``` ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ ConfigManager │ │ ProcessManager │ │ Main Process │ │ │ │ │ │ │ │ - 配置监控 │◄───┤ - 进程管理 │◄───┤ - 主循环控制 │ │ - 变化检测 │ │ - 动态增删改 │ │ - 资源协调 │ │ - 哈希比较 │ │ - 队列管理 │ │ - 异常处理 │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │ │ │ │ ▼ ▼ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ 多进程工作池 │ ├─────────────┬─────────────┬─────────────┬─────────────────────────┤ │ Camera │ Dispatcher │ Model │ Result │ │ Processes │ Process │ Processes │ Process │ │ │ │ │ │ │ - 视频采集 │ - 帧分发 │ - AI推理 │ - 结果处理 │ │ - 帧率控制 │ - 负载均衡 │ - 批处理 │ - 业务逻辑 │ │ - 队列管理 │ - 配置更新 │ - 配置更新 │ - 配置更新 │ └─────────────┴─────────────┴─────────────┴─────────────────────────┘ ``` ## 📋 环境要求 ### 系统要求 - **操作系统**: Windows 10/11, Linux, macOS - **Python版本**: 3.8+ - **内存**: 建议8GB以上 - **GPU**: 支持CUDA的NVIDIA显卡(可选,用于加速推理) ### 核心依赖 ``` opencv-python>=4.5.0 numpy>=1.19.0 onnxruntime>=1.8.0 PyYAML>=5.4.0 shapely>=1.7.0 matplotlib>=3.3.0 pika>=1.2.0 minio>=7.0.0 paho-mqtt>=1.5.0 ``` ## 🚀 快速开始 ### 1. 环境安装 ```bash # 克隆项目 git clone cd Object_detection_processing # 安装依赖 pip install -r requirements.txt ``` ### 2. 配置设置 ```bash # 复制配置模板 cp config/message.yaml.template config/message.yaml # 编辑配置文件 vim config/message.yaml ``` ### 3. 运行系统 ```bash # 启动主程序 python main_model_scheduler.py # 系统将自动: # 1. 加载配置文件 # 2. 启动配置监控 # 3. 初始化所有进程 # 4. 开始视频分析 ``` ### 4. 热更新测试 ```bash # 修改配置文件 vim config/message.yaml # 系统将自动检测变化并应用更新,无需重启 ``` ## 📁 项目结构 ``` Object_detection_processing/ ├── main_model_scheduler.py # 🎯 主程序入口 ├── 热更新系统详解.md # 📖 热更新系统文档 ├── config/ │ └── message.yaml # ⚙️ 主配置文件 ├── Business/ # 🏢 业务逻辑模块 │ ├── Lane_personnel.py # 车道人员检测 │ ├── general_B.py # 通用业务处理 │ └── __init__.py ├── package_ferry/ # 🛠️ 核心工具包 │ ├── Yolov7_m.py # YOLO模型封装 │ ├── yolo_tools.py # YOLO工具函数 │ ├── RW_yaml.py # 配置文件读写 │ ├── linbo_MinIO_tools_v11.py # MinIO存储工具 │ ├── linbo_rabbitmq_publisher_tool.py # RabbitMQ发布工具 │ └── linbo_Mqtt_tools/ # MQTT通信工具 ├── models/ # 🤖 模型相关代码 │ ├── common.py # 通用模型组件 │ ├── experimental.py # 实验性功能 │ └── yolo.py # YOLO模型定义 ├── utils/ # 🔧 通用工具 │ ├── general.py # 通用函数 │ ├── datasets.py # 数据集处理 │ ├── plots.py # 可视化工具 │ └── torch_utils.py # PyTorch工具 ├── data/ # 📊 数据目录 │ ├── image/ # 测试图片 │ ├── output_frames/ # 输出帧 │ └── parameter/ # 参数文件 └── old/ # 📦 历史版本 ``` ## ⚙️ 配置说明 ### 主配置文件 (config/message.yaml) ```yaml # 模型配置 model_used: M10001: path: "../weights/models/yolo11n.onnx" batch_size: 4 confidence_threshold: 0.5 M10002: path: "../weights/models/helmet_detection.onnx" batch_size: 2 confidence_threshold: 0.6 # 相机配置 camera_dict: C10001: Flow_address: "rtsp://192.168.1.100/stream1" Model_configuration: M10001: CBflag: true detection_zones: [] M10002: CBflag: false detection_zones: [] # 业务配置 business_config: Lane_personnel: enabled: true parameters: max_persons: 5 alert_threshold: 3 ``` ## 🔧 高级功能 ### 热更新配置 - **实时模型切换**: 无需重启即可更换AI模型 - **动态相机管理**: 实时增减监控摄像头 - **业务参数调整**: 在线调整检测阈值和业务参数 ### 性能优化 - **批量推理**: 支持模型批量处理提高效率 - **队列控制**: 智能队列管理防止内存溢出 - **负载均衡**: 自动分配计算资源 ### 监控和告警 - **实时日志**: 详细的系统运行日志 - **性能指标**: 队列长度、处理速度监控 - **异常处理**: 完善的错误恢复机制 ## 🔌 集成接口 ### 消息队列 - **RabbitMQ**: 结果消息发布 - **MQTT**: 实时状态推送 ### 存储服务 - **MinIO**: 图片和视频存储 - **本地存储**: 结果文件保存 ### 数据库 - **MySQL**: 检测结果存储 - **时序数据库**: 性能指标记录 ## 🚨 故障排除 ### 常见问题 1. **进程启动失败** - 检查配置文件格式 - 确认模型文件路径 - 验证相机连接 2. **配置更新不生效** - 检查文件权限 - 确认配置格式正确 - 查看系统日志 3. **性能问题** - 调整批处理大小 - 优化队列配置 - 检查硬件资源 ### 日志分析 ```bash # 查看系统日志 tail -f logs/system.log # 过滤错误信息 grep "ERROR" logs/system.log # 监控性能指标 grep "队列长度" logs/system.log ``` ## 🤝 贡献指南 1. Fork 项目 2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 打开 Pull Request ## 📄 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情 ## 📞 技术支持 - **文档**: 查看 `热更新系统详解.md` 了解系统架构 - **问题反馈**: 通过 Issues 提交问题 - **技术交流**: 欢迎提交 Pull Request --- **注意**: 详细的热更新系统实现原理请参考 [热更新系统详解.md](热更新系统详解.md) 文档。